Skip to main content
PATCH

Authorizations

Authorization
string
header
required

Org-scoped Norbelys API key. Create one in Settings → API keys and send it as Authorization: Bearer ak_….

Path Parameters

id
string
required

The person id to update.

Example:

"con_tz4a98xat96iws9zmbrgj3a"

Body

application/json
customFields
object | null

Replaces the person's entire set of custom-field values, keyed by code.

Example:
familyName
string | null

The person's last name.

Example:

"Lovelace"

givenName
string | null

The person's first name.

Example:

"Ada"

privateNotes
string | null

A private note about this person, visible only in your dashboard.

Example:

"Met at SaaStr; wants a demo in Q3."

status
enum<string>

Set the lifecycle status: active, replied, bounced, undeliverable, spam, unsubscribed, finished. Bounced and spam people are terminal and cannot be reactivated through this endpoint.

Available options:
active,
replied,
bounced,
undeliverable,
spam,
unsubscribed,
finished
Example:

"unsubscribed"

telephone
string | null

Set the PRIMARY telephone number (normalized to E.164; it becomes telephones[0], keeping the person's other numbers). Null clears ALL the person's numbers. An invalid number is dropped (no change), never fatal.

Example:

"+14155550132"

telephones
string[] | null

REPLACE the person's full number set (normalized to E.164, deduped, first = primary; invalid entries dropped). Null clears all numbers.

Example:
timezone
string | null

Set the person's IANA timezone, or null to clear it. Recipient-local campaigns fall back to their own timezone when it is absent.

Example:

"America/New_York"

Response

OK

customFields
object | null
required

Custom field values, keyed by each field's code (the merge tag). Define fields on the Fields page.

Example:
email
string<email> | null
required

The person's email address.

emailDomain
string | null
required

The domain portion of the email address.

Example:

"acme.com"

emailSendable
boolean | null
required

System-owned sendability verdict. False means the address must not be enrolled or emailed; null means it has not been verified yet.

Example:

true

familyName
string | null
required

The person's last name.

Example:

"Lovelace"

givenName
string | null
required

The person's first name.

Example:

"Ada"

id
string
required

The person id.

Example:

"con_tz4a98xat96iws9zmbrgj3a"

importId
string | null
required

The CSV import batch that created this person, if any.

Example:

"imp_tz4a98xat96iws9zmbrgj3a"

privateNotes
string | null
required

A private note about this person, visible only in your dashboard.

Example:

"Met at SaaStr; wants a demo in Q3."

score
integer | null
required

Engagement score, 0–100 (system-computed).

Required range: 0 <= x <= 100
Example:

42

source
enum<string>
required

Where the person came from: csv_import, manual, api, form, inbound, integration.

Available options:
csv_import,
manual,
api,
form,
inbound,
integration
Example:

"csv_import"

status
enum<string>
required

Lifecycle status: active, replied, bounced, undeliverable, spam, unsubscribed, finished.

Available options:
active,
replied,
bounced,
undeliverable,
spam,
unsubscribed,
finished
Example:

"active"

telephone
string | null
required

The PRIMARY telephone number (E.164), if known.

Example:

"+14155550132"

telephones
string[] | null
required

EVERY known telephone number (E.164), primary first — telephone is always telephones[0]. Null when none.

Example:
timezone
string | null
required

The person's IANA timezone. Campaigns using timezoneSource: recipient evaluate their send window in this timezone.

Example:

"America/New_York"

archivedAt
any

When this person was archived, or null if still active.

createdAt
any

When the person was created (RFC 3339 timestamp).

Example:

"2026-05-20T09:00:00.000Z"

lastActivityAt
any

When the person last had outbound or inbound activity (RFC 3339).

Example:

"2026-06-01T12:30:00.000Z"

object
any
default:person

Always "person". Identifies the resource type.

updatedAt
any

When the person was last updated (RFC 3339 timestamp).

Example:

"2026-06-01T12:30:00.000Z"

enrollments
Enrollment · object[]

Expansion: the person's enrollments across all campaigns.

groups
PersonGroupRef · object[]

Expansion: the static groups this person belongs to.

segments
PersonSegmentRef · object[]

Expansion: the dynamic segments this person currently matches.

timeline
(OutboundMessage · object | InboundMessage · object)[]

Expansion: the person's merged sent + received messages, newest first.