Send your first message
Submit a message only after confirming the conversation and connection are ready.
Prepare the request
- Fetch the conversation and confirm its active connection.
- Query capabilities for the intended message type.
- Generate a stable idempotency key for this user action.
- Send the message from your server.
Handle acceptance
An accepted message begins in a queued or submitted state. Show a pending state until a delivery event confirms the next transition.
Understand delivery states
Delivery is asynchronous and may transition after the create-message request returns.
Normalized lifecycle
| State | Interpretation |
|---|---|
| queued | Accepted for processing |
| submitted | Handed to the channel provider |
| delivered | Provider confirmed delivery |
| read | A supported channel reported a read event |
| failed | Processing or provider delivery ended with an error |
Reconciliation
Process webhook events idempotently and periodically reconcile long-running queued or submitted messages.