Layers
| Layer | Role |
|---|---|
| Developer API | REST /v1/...; API key → workspace context |
| Dashboard | Session authentication → workspace, user, and role scope |
| Workers | Background tasks: message dispatch, campaign execution, reservation resolution, billing reconciliation |
Two authentication modes
- Developer API:
Authorization: Bearer <api_key>— programmatic, workspace-scoped. - Dashboard: interactive user sessions — not interchangeable with API keys.
Message pipeline
Every send — from a directPOST /v1/messages call or from a campaign flow node — goes through the same steps regardless of channel:
Channel pre-send checks
Requirements vary by channel:
- Email — the sending domain and sender identity must be verified.
- RCS — the agent must be approved and the destination phone number is checked for RCS capability; results are cached to reduce duplicate lookups.
- SMS (coming soon) — no pre-send checks; delivered immediately once the channel launches.
Classify and check session
The message is classified into a billing unit — Basic, Single, Conversation, or MAU — based on channel, content shape, and length. For RCS, an active 24-hour conversation session means no additional balance hold is needed for that send.
Hold balance
A balance reservation is placed against the workspace. If the free balance would go negative, the API returns 402 immediately.
Enqueue and respond
The dispatch task is queued for background processing. The API responds immediately with
message_id, status: queued, and a billing snapshot — no waiting for the provider.Dispatch (worker)
A background worker calls the channel provider, records a usage event, and fires your developer webhooks.
If a provider delivery webhook marks the send as failed, the hold is released immediately — you are not charged for undelivered messages.
Storage layers
| Layer | Purpose |
|---|---|
| Database | Source of truth — accounts, reservations, messages, campaigns, contacts |
| Cache | Balance state, session tracking, rate limiting, task queue |
| Analytics | Usage events, aggregations, dashboard queries |
| Object storage | Template images, assets, invoice PDFs |
Related
- Authentication — API key security and practices
- Errors and billing — what the
billingobject contains - Email capabilities — sender domains and deliverability
- RCS agents — agent approval and newsletter enablement