Interface: ContactInput
Defined in: packages/sdk/src/types.ts:81
Properties
| Property | Type | Description | Defined in |
|---|---|---|---|
brand? | string | null | Brand slug. Omit it and an existing contact keeps the brand it has; new contacts get the project default. | packages/sdk/src/types.ts:96 |
consent? | Consent | Compliance evidence for the opt-in. On an existing contact this is the only thing that can rewrite it: source and the request's ip/user-agent seed the consent record on insert only, never on update. | packages/sdk/src/types.ts:111 |
displayName? | string | null | Preferred whole-name presentation. contact.fullName falls back to joining first and last name when this is absent. | packages/sdk/src/types.ts:104 |
email | string | - | packages/sdk/src/types.ts:86 |
firstName? | string | null | Omit a name to preserve it on an existing contact; send null to clear it. | packages/sdk/src/types.ts:100 |
id? | string | Optional caller-supplied uuid, pinned on insert so a migrating consumer can preserve its own contact ids (keeps already-issued unsubscribe links valid). Ignored when the contact already exists — the existing id is kept. | packages/sdk/src/types.ts:85 |
lastName? | string | null | - | packages/sdk/src/types.ts:101 |
resubscribe? | boolean | Required to move a contact out of unsubscribed or bounced — without it an upsert can never re-subscribe someone, whatever status says. Set it only where the person actually opted back in. | packages/sdk/src/types.ts:93 |
source? | string | null | Omit it and an existing contact's source is kept; send null to clear it. | packages/sdk/src/types.ts:98 |
status? | ContactStatus | Omitting this leaves an existing contact's status untouched; new contacts default to subscribed. | packages/sdk/src/types.ts:89 |
tags? | string[] | Replaces the existing tags ([] clears them) — it does not merge. Omit it and they're left alone. | packages/sdk/src/types.ts:107 |