> ## Documentation Index
> Fetch the complete documentation index at: https://docs.floral.so/llms.txt
> Use this file to discover all available pages before exploring further.

# Arbejd med personer

> Hent, opret, opdatér, arkivér og gendan personer gennem Florals offentlige API.

Personhandlingerne synkroniserer stabile profilfelter og en valgfri forbindelse til en aktiv virksomhed. Liste- og detaljesvar er begrænset til den offentlige personkontrakt.

## Forudsætninger

Du skal have `contacts:read` for at hente personer og `contacts:write` for at oprette eller ændre dem. Metadata, brugerdefinerede felter, livscyklus, arkivering og gendannelse kræver også Work.

Angiv værdierne én gang i din shell, før du kører eksemplerne:

```bash theme={null}
export FLORAL_BASE_URL="https://app.floral.so/api/v1"
export FLORAL_WORKSPACE="dit-arbejdsomraade"
export FLORAL_TOKEN="floral_pat_..."
```

Brug en personlig adgangsnøgle, der er oprettet til arbejdsområdet. Eksemplerne bruger kunstige id'er og værdier. Erstat dem med værdier fra dit arbejdsområde.

<Warning>
  Gem `FLORAL_TOKEN` i et hemmelighedslager uden for lokal udvikling. Læg det aldrig i kildekode eller logs.
</Warning>

## Hent personer

Filtrér efter livscyklus, arkivstatus eller aktiv virksomhed. Lister bruger uigennemsigtig cursor-paginering.

```bash theme={null}
curl --get --fail-with-body \
  --url "$FLORAL_BASE_URL/workspaces/$FLORAL_WORKSPACE/people" \
  --header "Authorization: Bearer $FLORAL_TOKEN" \
  --data-urlencode "companyId=1842" \
  --data-urlencode "status=active" \
  --data-urlencode "sort=name-asc" \
  --data-urlencode "limit=20"
```

Send en `nextCursor`, der ikke er `null`, tilbage som `cursor` for at hente næste side. Brug `status=archived` til at finde en person før gendannelse.

## Opret en person

Oprettelse kræver en unik idempotensnøgle. `companyId` skal identificere en aktiv virksomhed i samme arbejdsområde.

```bash theme={null}
export PERSON_CREATE_KEY="01J5C4B8R3W7N2M9Q0H6K1V5TX"

curl --request POST --fail-with-body --include \
  --url "$FLORAL_BASE_URL/workspaces/$FLORAL_WORKSPACE/people" \
  --header "Authorization: Bearer $FLORAL_TOKEN" \
  --header "Content-Type: application/json" \
  --header "Idempotency-Key: $PERSON_CREATE_KEY" \
  --data '{
    "name": "Ada Nielsen",
    "email": "ada.nielsen@example.com",
    "title": "Driftsdirektør",
    "department": "Drift",
    "companyId": 1842,
    "lifecycleStage": "PROSPECT",
    "metadata": {
      "source": "partner_sync"
    },
    "customFields": {
      "preferred_language": "da"
    }
  }'
```

Et gennemført kald giver `201`, en kanonisk `Location` og den nye persons `ETag`.

## Opdatér delvist

Hent personen, og kopiér svarets `ETag`:

```bash theme={null}
curl --request GET --fail-with-body --include \
  --url "$FLORAL_BASE_URL/workspaces/$FLORAL_WORKSPACE/people/731" \
  --header "Authorization: Bearer $FLORAL_TOKEN"
```

Send kun ændrede felter med denne `ETag`. Sæt `companyId` til `null` for at fjerne den aktuelle virksomhedsforbindelse. Objektet `customFields` er en typet merge-patch, hvor en `null`-værdi fjerner feltets værdi.

```bash theme={null}
export PERSON_ETAG='"v1.ZXhhbXBsZS1wZXJzb24"'

curl --request PATCH --fail-with-body --include \
  --url "$FLORAL_BASE_URL/workspaces/$FLORAL_WORKSPACE/people/731" \
  --header "Authorization: Bearer $FLORAL_TOKEN" \
  --header "Content-Type: application/json" \
  --header "If-Match: $PERSON_ETAG" \
  --data '{
    "title": "Driftschef",
    "lifecycleStage": "CUSTOMER",
    "customFields": {
      "preferred_language": "en",
      "former_region": null
    }
  }'
```

Erstat den gemte `ETag` med opdateringens værdi.

## Arkivér og gendan

Arkivér en person med den aktuelle `ETag` og en unik idempotensnøgle:

```bash theme={null}
export PERSON_ARCHIVE_KEY="01J5C4Q9D8F2R6N3M7K0W1V5TY"

curl --request POST --fail-with-body --include \
  --url "$FLORAL_BASE_URL/workspaces/$FLORAL_WORKSPACE/people/731/archive" \
  --header "Authorization: Bearer $FLORAL_TOKEN" \
  --header "Idempotency-Key: $PERSON_ARCHIVE_KEY" \
  --header "If-Match: $PERSON_ETAG"
```

Gendan samme id med arkiveringssvarets `ETag` og en ny nøgle:

```bash theme={null}
export ARCHIVED_PERSON_ETAG='"v1.ZXhhbXBsZS1hcmNoaXZlZA"'
export PERSON_RESTORE_KEY="01J5C4Z0M6T3Q8N2D7K1R5V9WX"

curl --request POST --fail-with-body --include \
  --url "$FLORAL_BASE_URL/workspaces/$FLORAL_WORKSPACE/people/731/restore" \
  --header "Authorization: Bearer $FLORAL_TOKEN" \
  --header "Idempotency-Key: $PERSON_RESTORE_KEY" \
  --header "If-Match: $ARCHIVED_PERSON_ETAG"
```

Floral beskytter skrivekald med to uigennemsigtige værdier:

* Send en unik `Idempotency-Key`, når handlingen kræver det. Et identisk nyt forsøg med samme nøgle gentager resultatet i 24 timer. Hvis nøglen genbruges med et andet kanonisk input til samme handling, får du `409 IDEMPOTENCY_CONFLICT`.
* Send den nyeste stærke `ETag` som `If-Match`, når en eksisterende ressource ændres. En forældet værdi giver `412 VERSION_CONFLICT`, og en manglende værdi giver `428 PRECONDITION_REQUIRED`.

Behold anførselstegnene omkring en `ETag`, og erstat den gemte værdi efter hvert gennemført skrivekald. Se [Driftssikkerhed og nye forsøg](/da/developers/api/reliability) for alle regler om nye forsøg.
