The objects
Workspace
Your tenant. Every contact, campaign, domain and integration belongs to
exactly one workspace. A user can belong to several.
Contact
A recipient. Carries identity, consent per channel, tags, custom
properties and predictive scores.
Segment
A live filter over contacts. Dynamic segments re-evaluate on read;
static segments are a fixed membership list.
Campaign
A one-off send to a segment on a single channel — email, SMS or push.
Flow
A triggered automation. Reacts to events forever with wait timers,
branches and multi-channel steps.
Template
Reusable content. Email blocks, raw HTML, SMS text or a push
notification.
Public vs internal IDs
Your Workspace ID — the value you send asX-Sender-Tenant — is the workspace slug (a short, human-readable string), not the internal UUID. The API accepts either the slug or the UUID, but the slug is what the UI shows and copies.
Internal foreign keys, JWTs and row-level security use the UUID. You only
ever handle the slug.
The send pipeline
Every message — campaign, flow, test or transactional — flows through the same gates in the same order. This is why a bug in a builder can’t produce a non-compliant send: enforcement lives at the worker, not the UI.1
Suppression
Hard bounces, complaints and unsubscribes suppress a contact within
seconds. Suppressed recipients are dropped first. Push suppression is
per-browser-endpoint.
2
Consent
The recipient must have recorded opt-in for that channel. Source, IP,
timestamp and channel are logged on every consent change.
3
Frequency caps & quiet hours
Per-contact caps shared across channels. Marketing SMS, voice and push
to Israeli numbers respect quiet hours and Shabbat. Email is exempt from
the legal block.
4
SMS wallet (SMS only)
No tenant SMS reaches a carrier without a wallet authorisation. Push and
email have no per-message carrier cost, so no wallet step.
5
DKIM signing (email only)
Signed at the worker using a per-tenant key held in AWS KMS. The private
key never leaves KMS.
6
Provider dispatch
Email routes through a failover provider chain; SMS through Israeli
carriers; push through Web Push (VAPID); voice through the carrier TTS.
Channels at a glance
Consent states
Every channel on a contact carries one of four states:subscribed
Opted in — can receive marketing on this channel.
unsubscribed
Opted out — marketing is blocked; transactional/OTP still allowed.
never_subscribed
No opt-in ever recorded — the conservative default on import.
cleaned
Removed by hygiene (e.g. repeated bounces).
Marketing vs transactional
Transactional mail — order confirmations, password resets, OTP codes — flows through a separate path that bypasses frequency caps and quiet hours. This separation is at the message-type level, not the campaign level. Marketing sends always carry tracking, unsubscribe headers and (where applicable) the SMS wallet debit; transactional sends never do.Where to go next
Workspaces & team
Roles, multiple workspaces and switching.
Contacts
The contact model in depth.

