# SMS

The SMS channel lets agents send and receive text messages through provisioned phone numbers. Outbound SMS is sent through a messaging service associated with an SMS use case, which manages sender selection, compliance gating, and delivery tracking automatically.

SMS is a supported channel for both inbound and outbound text conversations.

## Inbound SMS

Customers can text a configured phone number to start a conversation with the agent. The platform routes the message to the appropriate service, resolves patient context, and runs the agent's reasoning engine to generate a response.

## Inbound SMS

The platform receives and processes inbound SMS messages automatically. When a message arrives on a phone number assigned to an SMS use case, the platform validates the delivery, deduplicates it, and associates it with the correct use case based on the destination phone number.

Inbound message handling is configured automatically when you create an SMS use case - no manual webhook setup is required. Each inbound message is stored with its sender, destination, message body, and segment count for downstream processing and analytics.

Signature validation ensures that only authentic message deliveries are accepted. Duplicate deliveries (from network retries) are silently acknowledged without creating duplicate records.

## Outbound SMS

The platform supports agent-initiated outbound SMS, where the agent proactively sends a message to a customer without waiting for an inbound text. The reasoning engine generates the opening message using the full agent configuration - context graphs, memory, and connected data sources - then delivers it to the customer. The resulting conversation can be continued by the customer replying to the SMS.

Outbound SMS is useful for proactive outreach patterns such as appointment reminders, care gap follow-ups, post-visit instructions, and population health campaigns. See [Outbound](/channels/outbound.md) for more on agent-initiated communication across channels.

The SMS channel enables agents to send and receive text messages through provisioned phone numbers. SMS use cases are configured alongside voice and other channels through the same use case and phone number management workflows.

## How It Works

Each SMS use case is backed by a dedicated messaging service that manages a pool of phone numbers. When you create an SMS use case, the platform provisions a messaging service on your telephony setup. Phone numbers are then assigned to the use case's messaging service pool, and messages are routed through whatever number is available in the pool.

## Phone Number Assignment

SMS use cases require phone numbers with SMS capability, and the compliance requirement depends on the number type. Toll-free numbers must complete toll-free verification before they can be assigned. US local and national long-code numbers must have an approved messaging campaign registration before they can be assigned. Both paths keep the number compliant with carrier rules for application-to-person messaging.

Unlike voice channels - where a single phone number can serve different voice use cases on different channels (one for inbound voice, one for outbound voice, one for voicemail) - SMS assignment is exclusive. A phone number can only be assigned to one SMS use case at a time. This mirrors the underlying telephony constraint that a phone number belongs to exactly one messaging service.

## Channel Separation

SMS and voice operate on separate channel bindings. A phone number can be assigned to both a voice use case and an SMS use case simultaneously - the two channels do not conflict. The platform tracks voice and SMS assignments independently, so assigning a number to an SMS use case does not affect any existing voice assignments on that number, and vice versa.

## Lifecycle

SMS use cases follow the same lifecycle as other channel use cases:

1. **Create** - Provision the use case with a telephony setup. The platform creates a dedicated messaging service.
2. **Assign phone numbers** - Add SMS-capable numbers to the messaging service pool once they meet their compliance requirement (toll-free verification for toll-free numbers, approved campaign registration for long-code numbers).
3. **Send and receive** - Messages route through the pooled numbers.
4. **Unassign** - Remove phone numbers from the pool when no longer needed.
5. **Delete** - Tear down the use case and its messaging service. All phone numbers must be unassigned first.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.amigo.ai/channels/sms.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
