Messaging
Messages on rails.
Consent on record.
SMS, MMS, and RCS that respect the law and the recipient. Templates are signed, opt-ins are recorded, and DNC state is enforced at the boundary.
At a glance
A messaging stack designed for autonomous senders.
Channels
SMS · MMS · RCS
One API, one audit trail, three transports.
10DLC
Brand + campaign
Brand registration and campaign vetting handled in-platform.
Consent
Signed + dated
Every opt-in is hashed and time-stamped at the source.
Suppression
DNC + STOP
STOP, UNSUBSCRIBE, and global DNC checked before send.
Send
One template.
Three transports.
Define a message once. Dials picks the cheapest viable transport (SMS, MMS, RCS) that matches the recipient's capability and consent state.
- Signed templates
- Per-recipient capability
- Quiet hours by jurisdiction
- Throughput-aware rate limit
HTTP
POST /api/messages/send
{ "to": "+15125550100",
"template": "appt.reminder.v3",
"consent_id": "csn_01HQT..." }CLI
dials messages send \
--to +1 512 555 0100 \
--template appt.reminder.v3 \
--consent csn_01HQT...MCP
{
"tool": "dials.messages.send",
"arguments": {
"to": "+15125550100",
"template": "appt.reminder.v3",
"consent_id": "csn_01HQT..."
}
}Consent
Opt-ins are evidence.
Each recorded opt-in carries the channel, the timestamp, the IP, the language, and the wording the recipient agreed to. Pull it any time. Hand it to a regulator any day.
- Verifiable opt-in trail
- Per-channel state
- Withdrawal in one step
- Exportable as JSON or PDF
Subject+1 512 555 0100
ChannelSMS · marketing
Opt-in2026-02-08 · 14:42:11Z
SourceWeb form · IP 198.51.100.42
WordingReceive appointment reminders
StatusActive
Send like you mean it.
Run the messaging flow in mock mode and verify every send carries a consent ID and a usage event before you ever wire a real carrier.