> ## Documentation Index
> Fetch the complete documentation index at: https://docs.voxworks.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# SMS

> How the SMS tools text a contact mid-call and read their replies, and the variables each one writes.

## Overview

The SMS tools let a script text the contact during a call and read their replies, using the platform SMS stack with no integration to connect. Two tools are available:

* **[Send to Contact](/tools/sms/send)** — sends an SMS to the contact's mobile mid-call, typically a confirmation near the end of the call. The message text supports variable substitution, so booking times, names, and links can be included.
* **[Read from Contact](/tools/sms/read)** — reads the recent SMS exchange with the contact into a variable you nominate.

Each tool signals its outcome through a boolean `result` and routes on **true** / **Otherwise**. Only a small set of `sms` variables is written as output — the plumbing variables the tools read as inputs (the message body and the composite's opening, success, and failure lines) are not outputs and are not listed here.

***

## Variables the SMS tools write

The [Send to Contact](/tools/sms/send) tool writes `{{sms.send_error_spoken}}` (string) when a send fails; a successful send is signalled by the boolean `result` alone, and the tool writes nothing else to the `sms` namespace. The collected-email variable `{{sms.email}}` (string) is published by the **[SMS | Get Valid Email](/tools/composite/sms-get-email)** composite — which runs the whole round-trip (send, wait, read, extract, validate) — and you typically map it onward to a durable contact field such as `{{contact.email}}`. The [Read from Contact](/tools/sms/read) tool on its own writes only the recent message exchange to a variable you nominate; it adds nothing to the `sms` namespace.

| Variable                    | Type   | Written                                                                             | Example                                             |
| --------------------------- | ------ | ----------------------------------------------------------------------------------- | --------------------------------------------------- |
| `{{sms.email}}`             | string | On success — after the contact's reply parses as a valid email                      | `jane.citizen@example.com`                          |
| `{{sms.send_error_spoken}}` | string | On failure — immediately after a failed send attempt, as a line the agent can speak | `I wasn't able to send that text message just now.` |

The `sms` namespace is owned by the SMS tools — read from it in later steps, but never write into it yourself. For how variable references work across scripts and tools, see [Variables](/flows/variables).

***

## Next Steps

* [Send to Contact](/tools/sms/send) — Send an SMS to the contact during the call.
* [Read from Contact](/tools/sms/read) — Read the recent SMS exchange into a variable.
* [Tool Steps](/flows/steps-tool) — Add and configure tool steps in the flow editor.
* [Variables](/flows/variables) — How variable references work across scripts and tools.
