Send an email or SMS¶
Use this guide to queue an email or SMS to clients and follow its processing status.
Both channels use POST /api/v2/management/communications/. In the reference, select
the email or SMS request variant; channel identifies which contract you are sending.
Use the authentication and JSON headers shown in the
class booking example.
An email requires a non-blank subject and accepts up to 10,000 message characters.
{"channel":"email","client_ids":[123],"subject":"Your next visit","message":"Hello {firstname}, we look forward to seeing you."}
An SMS accepts up to 1,000 message characters and must omit subject entirely.
Each request accepts 1 to 100 distinct client IDs. Recipient placeholders in message text
include {firstname}, {lastname} and {unsubscribe_link}. Names come from the recipient's
client profile; an empty name supplies an empty value. Company placeholders include
{company_name} and {currency}. The request does not accept a custom placeholder map.
Avoid unrecognised placeholders: they are not a supported way to supply application data.
The client list is not an exclusive delivery list
Shared-contact and household relationships can add recipients beyond client_ids.
Do not use this endpoint for content that must go exclusively to the listed people.
recipient_count counts associated recipient records, not confirmed deliveries.
A 202 response returns id, channel and status=queued. Save that ID and retrieve
/communications/{id}/ to follow processing. The available states have these meanings.
| Status | Meaning |
|---|---|
queued |
Processing is pending. |
processed |
Processing finished; delivery to each recipient is not confirmed. |
failed |
Processing failed. This does not establish that no recipient received a message. |
unknown |
A processing status cannot be provided. |
sent |
Reserved; currently not returned. |
There is no idempotency key. After a lost response, the API provides no correlation filter to identify that attempt conclusively. Do not automatically resend: that can duplicate messages. Reads only return messages queued through this API, not Back Office or automation sends.
Sending has a separate limit of 10 requests per minute per company and franchise context, shared across API keys and managers. See Rate limits.