Skip to main content

Interface: ContactInput

Defined in: packages/sdk/src/types.ts:81

Properties​

PropertyTypeDescriptionDefined in
brand?string | nullBrand 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?ConsentCompliance 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 | nullPreferred whole-name presentation. contact.fullName falls back to joining first and last name when this is absent.packages/sdk/src/types.ts:104
emailstring-packages/sdk/src/types.ts:86
firstName?string | nullOmit a name to preserve it on an existing contact; send null to clear it.packages/sdk/src/types.ts:100
id?stringOptional 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?booleanRequired 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 | nullOmit it and an existing contact's source is kept; send null to clear it.packages/sdk/src/types.ts:98
status?ContactStatusOmitting 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