Description
Reads the recent SMS exchange between the contact and the assistant and writes it, as a plain-text transcript, to a variable you nominate. It looks at messages sent and received in a short window — roughly the last 5 minutes — so it is used mid-call to pick up a reply the contact has just texted. Returnstrue when at least one SMS is found in that window and written to your destination variable.
This is a low-level building block. It does not interpret or extract anything from the reply — it hands you the raw conversation so a later step can act on it. To collect and validate an email address from a texted reply, use the dedicated SMS | Get Valid Email composite, which runs the whole round-trip (send, wait, read, extract, validate) and publishes the result as {{sms.email}}.
Manual Inputs
Global Inputs
This tool automatically uses:
It also draws on the assistant’s own mobile number and the current call’s team context, both supplied automatically. If any of these is missing, the tool returns
false.
Manual Outputs
Global Outputs
This tool writes no fixed global variable. Its only outputs are the booleanresult you route on and the message history it writes to the destination variable you nominate — see Variables this tool writes below.
Conditions
Success (true)
The tool returnstrue when:
- At least one SMS with the contact is found within the recent window (approximately 5 minutes)
- The transcript is written successfully to your destination variable
Failure (false)
The tool returnsfalse when:
- No SMS is found for the contact’s number within the window
- No destination variable was provided, or the value given is not a writable variable reference
- The contact’s mobile number is missing (and no valid sender number was supplied)
- The assistant’s phone number is not configured, or the call’s team context is unavailable
Variables this tool writes
This tool writes a single value: the recent SMS exchange with the contact, saved to the destination variable you nominate (typically a custom variable). It does not extract or write an email address itself.
The value is a plain-text transcript of the recent exchange: a
Messages History heading followed by one user: or assistant: line per message, in time order. The tool keeps no fixed variable namespace of its own — it writes only to the destination you point it at. On failure it returns false and writes nothing (for example when no SMS is found, the destination variable is missing, or the contact’s mobile number is unavailable).
To turn a texted reply into a validated email address, use the dedicated SMS | Get Valid Email composite: it sends the request, waits for the reply, then extracts and validates the email and publishes it as {{sms.email}} (string, e.g. jane.citizen@example.com) for you to map onto {{contact.email}}.
See Variables to reference these values in later steps.
Example Usage
{{custom.sms_history}} holds the recent exchange as plain text, ready for a following Code Step or LLM tool to read the reply and act on it.
Best Practices
- Send first, then read — Text the contact with Send to Contact before reading, so there is a fresh reply within the window
- Give them time to reply — Set a patient silence tolerance and, if needed, speak a short holding line before the read step
- Nominate a clear destination — Point the transcript at a purpose-named custom variable such as
{{custom.sms_history}} - Collecting an email? Use the composite — For a validated email address, use the SMS | Get Valid Email composite rather than parsing the transcript yourself
- Handle the no-reply path — Route the Otherwise condition to a retry or a fallback that collects the detail another way
Next Steps
- Send to Contact — Send an SMS to the contact during the call.
- SMS Tools Overview — How the SMS tools work together, and the variables each one writes.
- Tool Steps — Learn how to configure tool steps.
- Variables — See all available variables.

