Sell the conversation, not the message
A ~15-turn agent chat is one billed 24-hour session — not a stream of metered texts. The unit Google doesn't sell, manufactured for you.
Agent-native RCS messaging with automatic SMS fallback — one API and an MCP server. We turn the carrier's 24-hour conversation into the runtime your agent lives in, and handle the 8–16-week compliance gauntlet underneath.
Built on the rails behind Google RBM · Twilio · Bandwidth — abstracted into one agent-native surface.
Twilio sells a message primitive. Infobip sells API reachability. Cadence sells the conversation — with compliance productized beneath it.
A ~15-turn agent chat is one billed 24-hour session — not a stream of metered texts. The unit Google doesn't sell, manufactured for you.
Rich cards, quick-reply chips, verified sender where RCS is reachable. Automatic, seamless SMS fallback where it isn't.
Drop-in tools for any agent framework. Your LLM lives inside the conversation — it doesn't manage messaging infrastructure.
The 8–16-week carrier gauntlet, opt-in vault, and STOP/HELP handling — abstracted into a status bar.
Verified-sender branding, a pre-disclosed fallback identity so a downgrade never reads as smishing, and PHI-safe-minimal templates enforced before anything reaches the wire.
Agent-initiated, opt-in enforced, fallback automatic, engagement measured.
Your agent speaks first over RCS, with opt-in provenance and a PHI-safe template. Reachability and channel are resolved for you.
Consumer replies — chip taps and free text — stream back as typed events. onReply fires; your agent responds.
Undeliverable? onFellback flips to a branded SMS automatically. Every leg is measured against your SMS baseline.
Install the SDK, drop in a key, and open an agent-initiated conversation. Rich content auto-degrades to text on the SMS leg. The channel flip is a first-class callback, not a surprise.
import { Messaging } from "@cadence/sdk";
const m = new Messaging({ apiKey: process.env.CADENCE_KEY });
const convo = await m.open({
to: "+15551234567",
useCase: "transactional",
optin: { method: "appointment_booking", capturedAt },
opening: {
text: "Your 3pm is confirmed. Reschedule?",
suggestions: ["Reschedule", "Cancel appt", "All good"],
},
});
convo.onFellback(() => /* RCS → SMS, re-render as text */);
convo.onReply(async (intent) => {
await convo.send({ text: await agent.respond(intent) });
});
Apple turned RCS on. The channel inflected in the same window agents did.
The conversation layer for the agent era — RCS-first, fallback-native, compliance-handled.