SMS API for CRMs

Add SMS to your CRM without building a telecom operation

Your users want to text from the record they are already looking at. The API call is the easy part. What follows it is sender registration, consent records, opt-out handling, delivery reconciliation, and a carrier relationship nobody on your roadmap owns. Tells gives you the REST surface and takes the telecom operation.

  • One REST API Integration surface
  • OAuth2 bearer Auth
  • Webhook callbacks Events

A CRM adds SMS by calling a messaging API from the record that triggered it and by accepting webhook callbacks that write delivery status, inbound replies, and opt-outs back onto that record. Tells provides that as one OAuth2 authenticated REST surface covering SMS and MMS, RCS with automatic SMS fallback, AI voice agents, call announcements, and number intelligence across United States and Canada routes. The Tells team prepares and tracks 10DLC, short code, and toll-free registrations, so the work your engineers own stays inside your own product.

Architecture

Where Tells sits in your architecture

Tells is the messaging layer between your application and the carriers. Your CRM stays the system of record. Nothing about your data model has to move.

System of record

Your CRM

  • Contacts and consent state
  • Workflow and automation triggers
  • Conversation UI in the record
Messaging layer

Tells REST API

  • Send SMS, MMS, and RCS
  • Number intelligence in the send path
  • Webhook callbacks back to you
Delivery and registration

Carrier routes

  • US and Canada routes
  • 10DLC, short code, toll-free senders
  • Registration handled by Tells

Two integration points do most of the work: an outbound call when your workflow fires, and an inbound endpoint that receives everything the network has to say back.

Message paths

Two integration points do most of the work

Outbound: your workflow fires a message

A record changes, an automation runs, or a user hits send in your conversation view. Your service authenticates with an OAuth2 bearer token and posts the message to the Tells API. Because number intelligence is available in the send path, your platform can check carrier and line type, CNAM, and a 0 to 100 activity score before spending a segment on a number that will not convert.

  • Server side token, never embedded in your front end
  • Triggered from workflows, automations, or a user action in the record
  • Line type and activity checks before the send, not after the invoice
  • 10DLC, short code, and toll-free senders depending on the program

Inbound: the network answers back

Carrier acceptance, delivery receipts, inbound messages, replies, call completions, and opt-out events arrive at endpoints you own. Your CRM writes them onto the record, so the conversation thread and the consent state stay accurate without a polling loop or a nightly reconciliation job.

  • Delivery and carrier acceptance events per message
  • Inbound messages and replies threaded onto the contact
  • Opt-out events so suppression is a fact in your database, not a guess
  • Automated STOP and HELP handling on the platform side

Webhook events

Events your CRM should listen for

These are the message lifecycle events the platform surfaces. Map each one to a write on your side before you ship, because every one of them changes what your users see in the record.

Carrier acceptance
Message moved from queued to accepted by the carrier route.
Delivery receipt
Per-message delivery result by sender, route, and segment.
Inbound message
A new inbound message threaded onto the matching contact record.
Reply
A response to an outbound message, attributed to the conversation that produced it.
Opt-out
Consent withdrawn. Suppression state on the contact, enforced before the next send.
Call completion
Result of an AI voice agent call or announced call, with escalation context.

Design your handler to be idempotent and to tolerate retries. Message lifecycle events are not guaranteed to arrive exactly once in any messaging platform, so key your writes on the message identifier.

Number intelligence

Number intelligence inside the send path

CRM databases accumulate bad numbers: disconnected lines, landlines typed into a mobile field, and contacts who have not been reachable in years. Number intelligence lets your platform decide before it sends.

Carrier and line type

Know whether the number is mobile, landline, or VoIP before a workflow burns a segment on it.

CNAM

The caller name on record for the number, useful when your users need to confirm they are messaging the right party.

Activity score

A 0 to 100 score you can threshold on, so stale records get suppressed or routed to a different channel instead of sent.

These run in real time and are usable directly in the send path for routing and suppression decisions. Detail: Number intelligence.

Compliance

The compliance work a CRM inherits

When your platform sends on behalf of your customers, you inherit questions that a single brand sending for itself never faces. Here is the honest split.

What the Tells team performs

  • Prepares, submits, and tracks 10DLC, short code, and toll-free registrations
  • Works carrier review follow ups and requested campaign edits
  • Runs automated STOP and HELP handling on the platform side
  • Monitors the program and works filtering events when traffic is affected

What stays on your side

  • Accurate brand and use case information for each sender you register
  • Consent records for every contact your customers message, and a way to show them
  • Honoring suppression state in your own send logic, not only at the platform
  • Deciding which of your customers may send, and under whose brand they send

Registration outcomes are decided by carriers, The Campaign Registry, and external vetting partners. Carrier and registry approval decisions remain outside any provider control, including ours. More detail on the operational split lives on Managed SMS compliance.

Beyond SMS

What comes after SMS

The reason to integrate once is that the second and third channel do not become second and third integrations. These attach to the same REST surface and the same relationship.

RCS Business Messaging

Verified brand sender with rich cards, carousels, and quick replies, falling back to SMS automatically on devices that cannot receive it. Tells handles the Google verification submission for your brand.

Detail: /solutions/rcs-messaging

AI SMS and voice agents

Agents that share conversation context across SMS and voice and escalate to a human with the full transcript and captured fields, so your CRM record keeps the whole thread.

Detail: /solutions/ai-sms-voice-agents

SMS call announcements

Branded SMS delivered ahead of an outbound dial through the same REST API, so the call your users place is not an unknown number on the recipient side.

Detail: /solutions/sms-call-announcements

Use cases

What CRM teams build with it

Texting in the record

A conversation view on the contact, with replies threaded back automatically instead of pasted in by a rep.

Workflow triggered messaging

Stage changes, appointment reminders, and follow ups sent by the automation your customers already configured.

Multi tenant sending

Each of your customers sends under their own registered sender, with suppression and consent tracked per tenant.

Speed to lead

A message within seconds of a lead landing, triggered by the same event that creates the record.

List hygiene

Line type and activity checks that keep unreachable numbers out of campaigns and out of your delivery statistics.

Escalation to voice

A conversation that starts on SMS and moves to an AI voice agent or a human without losing context.

Before you build

What the integration conversation covers

Access is provisioned per account, so the first step is a scoping conversation rather than a signup form. These are the questions that actually shape your build.

  • Whether you send as one brand or on behalf of many customers, because that changes registration entirely
  • Expected volume, message mix, and which sender types the program needs
  • Which events in your product should trigger a message, and which should not
  • How your CRM stores consent today, and what the suppression path looks like
  • Whether RCS, voice agents, or call announcements are in scope now or later
  • Your integration timeline, so credentials and a guided first send line up with your sprint

FAQ

Questions CRM teams ask first

How do I add SMS to a CRM?

Call a messaging API from the workflow or user action that should send, and expose a webhook endpoint that receives delivery status, inbound messages, replies, and opt-out events so your records stay accurate. With Tells that is one OAuth2 authenticated REST surface, and the sender registration behind it is performed by the Tells team rather than by your engineers.

Does my CRM need its own 10DLC registration?

If your platform sends on behalf of customers, each sending brand generally needs its own registration rather than one shared under your name. Tells prepares, submits, and tracks those filings and works the carrier review follow ups. Your part is supplying accurate brand and use case information. Carrier and registry approval decisions remain outside any provider control, including ours.

How do replies get back into the CRM?

Inbound messages and replies arrive as webhook callbacks to an endpoint you own, and your handler writes them onto the matching contact. Because the events are pushed rather than polled, the conversation thread in your interface reflects what actually happened on the network.

Can we check a number before we send to it?

Yes. Carrier and line type, CNAM, and a 0 to 100 activity score are available in real time and usable directly in the send path, so your platform can suppress or reroute before a message is dispatched.

What happens when a contact texts STOP?

STOP and HELP handling runs automatically on the platform side, and an opt-out event is delivered to your webhook endpoint. Write it to the contact as suppression state and enforce it in your own send logic as well, so the consent decision is visible to your users inside the CRM.

Can we test against a sandbox before onboarding?

The full endpoint reference, SDKs, Postman collection, and sandbox environment are provided with account credentials during onboarding rather than published openly. Plan the integration spike for after access rather than before it.

Can we start with SMS and add RCS or voice later?

Yes. RCS with automatic SMS fallback, AI SMS and voice agents, and SMS call announcements are reached through the same REST surface and the same account relationship, so adding them later is a scope conversation rather than a new vendor integration.

Scope the CRM integration with the team that runs the messaging

Fifteen minutes on volumes, sender types, and how your platform sends on behalf of customers. That conversation is what shapes registration, and registration is what paces the launch.

Prefer email? Developer onboarding runs through dave@tells.co.