We use optional, privacy-safe analytics to understand which pages help visitors. Nothing optional runs until you choose. Privacy policy

Skip to content
Guide AvailableWorkflow + HTTP Request

Using SendiMessage with Retell AI

Retell AI runs the AI phone call. SendiMessage handles what happens on text afterward: your backend sends a confirmation, link, or follow-up on a managed line, and the customer's reply returns as a signed webhook your workflow can act on.

There is no native Retell AI connector — the integration is a standard API-plus-webhook pattern, wired through your own backend. That keeps the two systems cleanly separated: Retell AI owns the voice interaction; SendiMessage owns the messaging transport.

Request This SetupBook an Integration Review

What this integration enables

Post-call confirmation
When Retell sends its call-ended / call-analyzed webhook, your backend sends a written confirmation or link the customer can keep.
Reschedule by text
The customer replies to change a time; the reply arrives as a webhook and your workflow updates the booking.
Follow-up nudge
No answer on the call? Send a text follow-up on the same customer relationship.
Opt-out honored
A STOP reply sets durable opt-out state automatically; later sends to that number are blocked.

Architecture

How it fits together: Retell AI call ends, then Your backend, then SendiMessage API, then Customer receives the message, then Customer replies, then Signed receive webhook, then Your workflow continues.
  1. Retell AI call endsRetell sends its call-ended / call-analyzed webhook
  2. Your backendReceives the Retell AI event and decides whether to text
  3. SendiMessage APIPOST /send-message — the follow-up is queued on your line
  4. Customer receives the messageiMessage where supported, SMS fallback where configured
  5. Customer repliesThe answer arrives on the same line and thread
  6. Signed receive webhookSendiMessage posts the reply to your endpoint
  7. Your workflow continuesConfirm, reschedule, or escalate — the loop stays in your application

Example request

Send after the call
// Your application (not SendiMessage) decides what to say.
const res = await fetch("https://api.sendimessage.com/v1/send-message", {
method: "POST",
headers: {
"X-API-Key": process.env.SENDIMESSAGE_API_KEY,
"X-API-Secret": process.env.SENDIMESSAGE_API_SECRET,
"Content-Type": "application/json",
// Idempotency-Key derived from your own record id keeps a
// retried automation from double-texting the customer.
"Idempotency-Key": callId,
},
body: JSON.stringify({ number: customer.phone, content: agentReply }),
});
const { message_handle } = await res.json(); // store this on your record

Runs in your backend when the call-ended event fires. Derive Idempotency-Key from the call id so a retry never double-sends.

Limitations and honest notes

  • iMessage delivery is available on supported messaging lines and destinations. Recipients without iMessage receive SMS when fallback is configured — never assume universal iMessage availability.
  • Messages are accepted asynchronously — the API returns status QUEUED and final status arrives via webhook or the message endpoints.
  • No official SDK for this ecosystem yet — the example uses plain HTTP against the REST API. Official SDKs are published for JavaScript/TypeScript (npm: sendimessage), Python (PyPI: sendimessage), PHP (Composer: sendimessage/sdk), and Go (github.com/sendimessage/sendimessage-go). Every SDK is dependency-free and covers the full public API surface.
  • SendiMessage does not integrate with Retell AI natively; you wire the Retell AI call-ended event to your backend, and your backend calls SendiMessage.
  • SendiMessage sends and receives messages — it does not run the AI voice call, transcription, or model. Those stay in your stack.

Security considerations

  • Do not place SendiMessage API credentials directly in browser code. Send requests through your own server route or backend.
  • Keep your API key server-side, in environment variables or a secrets manager — never in client code, CRM front-end scripts, or repositories.
  • Verify the signature header on every incoming webhook before trusting the event.
  • Scope keys per environment and rotate them if they are ever exposed.

Frequently asked questions

Is this an official Retell AI integration?
No. SendiMessage is an independent product and is not affiliated with, endorsed by, or sponsored by Retell AI. Retell AI is a trademark of its respective owner and is referenced here only to describe an integration pattern. The connection is implemented through the SendiMessage REST API and webhooks from your own backend.
Where does the AI logic live?
In your application and Retell AI. SendiMessage provides the messaging line, delivery, and inbound replies — not the reasoning.

Ready to connect Retell AI?

Request a messaging line and a SendiMessage integration specialist will review your Retell AI workflow and guide the setup.