Skip to main content
Send your own events into Senderz — from a backend, a POS, a subscription system, anything. An event resolves or creates the contact and enrols any custom_event flow scoped to that event name.

Send an event

Authenticated with the X-Sender-Tenant + X-API-Key headers.

Body

event
string
required
The event name (1–128 chars), e.g. subscription_renewed. Flows enrol on a matching custom_event name.
contactId
string
Existing contact UUID. If omitted, the contact is resolved by email/phone or created.
email
string
Contact email (used to resolve or create).
phone
string
Contact phone (used to resolve or create), max 32 chars.
firstName
string
Optional, set on a newly-created contact. Max 255.
lastName
string
Optional, set on a newly-created contact. Max 255.
properties
object
Arbitrary event properties. Stored on the event and available as flat merge tags in flow templates. Capped at ~8 KB.
A contact is created only if you supply an email or phone and none matches. A brand-new contact imports with source api and fires contact_created flows.

Response

status
string
ok when processed, no_contact when no contact could be resolved or created.
enrolled
integer
Number of flows the event enrolled the contact into.
contactId
string | null
The resolved/created contact UUID.
created
boolean
true if this event created the contact.

Example

Using event properties in flows

Properties become flat merge tags in flow email/SMS templates — {{plan}}, {{amount}}, and so on. Identity and compliance tags ({{firstName}}, {{unsubscribeUrl}}) are reserved and can’t be shadowed. See Flows.
Events are deduplicated per contact/event/minute, so a burst of identical events won’t create duplicate timeline rows or re-enrol repeatedly within the same minute.