Send text messages
The Send SMS step texts a UK mobile from your organisation's Centrus number: an engineer on the way, a reminder the day before, an urgent job for the on-call manager. This guide covers every setting, the number formats it accepts, texting a whole list, what each text costs, how to test without texting anyone, and what to do when a text is not sent.
Checked against the app on
On this page15 sections
- 1What Send SMS does
- 2Your Centrus number
- 3Add the step
- 4Choose who to text
- 5UK mobile numbers
- 6Write the message
- 7Text everyone on a list
- 8Check texts before they go
- 9See what was sent
- 10Replies, opt-outs and consent
- 11What a text costs
- 12Test it without texting anyone
- 13Examples
- 14When a text is not sent
- 15Good to know
What Send SMS does
Send SMS is a step in the General group of the Nodes panel. Each time a run reaches it, Centrus sends one text to one UK mobile, from the number your organisation has been given. The number to text and the message can both be filled in from earlier steps, so the same step can text a different customer, with their own engineer and arrival time, on every run.
Build modular AI workflows with reusable nodes
Engineer on the way
Job status changed
Fetch the job
Get job
Text the customer
To {{ item.json.personMobile }}
- 1Send SMS in the General group.
- 2The step on the canvas. Its summary shows who it texts.
- 3From: your organisation's Centrus number. Every text comes from it.
- 4To: the mobile to text. Here it is taken from the job fetched in the step before.
- 5Body: the message, with references that are filled in from the job.
- 6The note on cost and use, which is the same on every Send SMS step.
The step is for operational texts: job updates, appointments and alerts, sent to your own people or to customers about work they have booked. It is not for marketing. Texts go one way. Replies to your Centrus number do not come back into Centrus, and the Runs window shows that a text was handed over for sending, not that it reached the phone. Both are covered below.
Your Centrus number
Every text your organisation sends comes from one UK mobile number assigned to it. From shows it on every Send SMS step, greyed out, because it belongs to the organisation and not to the step. The help text under it says so: One number per organisation. From is not a node field.
No number yet
One number per organisation. From is not a node field.
Number assigned
One number per organisation. From is not a node field.
None available
No SMS numbers are available to assign. You can still place this node and save a draft; publish needs an assigned number.
One number per organisation. From is not a node field.
If your organisation has no number yet, From is a menu reading Assign a number to this organisation. Choosing a number from it assigns that number straight away, with no confirmation, and it then shows on every Send SMS step in every agent. The builder has no option to change or release it afterwards, so agree with your team which number to take before you pick one.
Anyone who can edit an agent can assign the number: it is not limited to admins. If your organisation wants one person to choose it, tell the people who build agents.
If no numbers are free, From reads: No SMS numbers are available to assign. You can still place this node and save a draft; publish needs an assigned number. You can build and save the agent, but publishing it stops with This organisation has not assigned an SMS number. until a number is assigned.
Add the step
- 1Open the agent in the builder and find Send SMS in the General group of the Nodes panel.
- 2Drag it onto the canvas and connect the step before it to it. The new step's summary reads Set the mobile number until To is filled in.
- 3Click the step to open its Details panel. Give it a name that says who it texts, such as Text the customer.
- 4Fill in To and Body, as described in the next sections.
- 5Click Save draft, then test it as described in Test it without texting anyone.
Engineer on the way
Job status changed
Fetch the job
Get job
Send SMS
Set the mobile number
- 1Send SMS in the General group.
- 2The new step. Its summary reads Set the mobile number until To has a value.
A Send SMS step can also be connected to a Voice AI step, so the agent can text someone during a phone call. That works a little differently and is covered in Good to know.
Choose who to text
To takes one UK mobile number. Its placeholder shows the three ways to fill it: +447… or 07… or {{ item.json.personMobile }}.
- A fixed number. Type it, for example 07700 900412. Use this for your own staff, such as an on-call manager.
- A number from an earlier step. Open Step data references under To, find the earlier step and click the field that holds the mobile. Centrus inserts a reference such as
{{ item.json.personMobile }}, and each run texts the number in that field.
Engineer on the way
Job status changed
Fetch the job
Get job
Text the customer
To {{ item.json.personMobile }}
- 1To, holding a reference rather than a number.
- 2Step data references, listing the steps before this one and their fields. Click a field to insert it. Here, the highlighted personMobile field from the job holds the customer's mobile.
The fields listed depend on what the earlier step returned. If the list is empty, or the field you want is missing, run the agent once (a dry run is enough) so Centrus can see the real data. Field names differ between systems, so check the name before relying on it.
To holds one number. Putting two numbers in it, separated by commas or spaces, does not text both: the step fails because the field is not a single UK mobile. To text more than one person, either add one Send SMS step for each person, or, when the numbers come from a list, put the step inside a Loop, as described in Text everyone on a list.
New job logged
Job Created
Urgent jobs only
Keep ALL of 1 rule(s)
Text the on-call manager
To 07700 900412
Text the back-up manager
To 07700 900587
UK mobile numbers
Send SMS texts UK mobiles only: numbers that start 07, or +44 7 in international format. Centrus tidies the number before sending it, so you do not have to clean up how it is stored. It removes spaces, brackets, dots and dashes, accepts 07, +447, 447, 00447 and +44 (0)7, and puts back a leading 0 that Excel has dropped. Landlines, numbers outside the UK and numbers with digits missing are not sent.
When you click Validate or publish, a typed number that is not a UK mobile is an error: Send SMS To must be a UK mobile (+447…, 447…, or 07…). An empty To is also an error: Send SMS needs a UK mobile in To (+447…, 447…, or 07…), or an expression bound from an upstream item. A reference is not checked until the run, because the number is not known before then. If the number it brings in is missing or not a UK mobile, that step fails with Send SMS needs a UK mobile in To (+447…, 447…, or 07…).
To also cannot be your own Centrus number. If it is, the step fails with Send SMS To cannot be the same as the organisation’s From number.
Write the message
Body is the text itself. Type it as you want it to read, and use Step data references under the box to insert details from earlier steps, such as the engineer's name or the job reference. Each reference is replaced with the real value when the step runs.
One number per organisation. From is not a node field.
Internal operational UK texts only. 6 credits (6p) per segment. Raise the per-run budget in workflow settings when texting a list. Run now sends a real text.
2Text Message
Today 09:58
- 1Body, with four references from the BigChange job.
- 2The note: internal operational UK texts only, 6 credits a segment.
- 3The text as the customer receives it, from your Centrus number.
Dates and times arrive from most systems in a form people do not read easily, such as 2026-10-09T09:40:00Z. Add | date('HH:mm') inside the reference for a 24-hour time, or | date('DD/ for a date, as in the example. Both give UK time, so 09:40 in the system's record reads 10:40 in a summer text.
Some practical points:
- Say who it is from. The customer sees a mobile number they may not know, so start with your company name.
- Keep it short. Texts are charged by the segment. A plain text of up to 160 characters is one segment; longer texts are split into parts of about 153 characters each. A single emoji, or a character outside the basic set, lowers that to about 70 characters a segment. The Body box has no character counter, so check long references with a dry run.
- 1,600 characters at most. That is the limit after the references are filled in. A longer text fails with Send SMS body cannot be longer than 1600 characters.
- An empty Body is an error. Send SMS has an empty body. shows when you validate or publish, and the same message fails the step if every reference comes back empty.
- Give a way to reply. Replies to your Centrus number are not read, so include a phone number or email address if the person may need to respond.
Text everyone on a list
Send SMS sends one text each time the run reaches it, using the first item it receives. If the step before it returns several items, such as every job booked for tomorrow, only the first gets a text. Put a Loop between them, and the Loop hands the items over one at a time, so each gets its own text. Leave the Loop's Batch size at 1.
Weekday evenings
Daily at 17:00 · Mon, Tue, Wed, Thu, Fri
Tomorrow's visits
List jobs
Has a mobile
Keep ALL of 1 rule(s)
Each booked visit
For each of incoming items
Text the reminder
To {{ item.json.personMobile }}
- 1A Filter that keeps only jobs with a mobile number, so no text fails for want of one.
- 2The Loop hands over one booked visit at a time.
- 3Send SMS runs once for each visit. The line back to the Loop asks for the next one.
If you leave the Loop out, Validate warns you. The warning begins: Send SMS only produces one text per run of this node (using the first item it receives), and goes on to say that the extra items are dropped without a text. It is a warning, so you can still publish, but the agent will text only one person each run.
Before you text a list, check two limits. Each run has a credit budget, 250 credits unless your agent's settings say otherwise, which is enough for about 40 single-segment texts once the other steps are paid for. The Loop's Max iterations, 100 by default, is a safety cap on how many times it goes round in one run. Conditions, loops and approvals covers both settings, and What a text costs shows the sums.
Check texts before they go
To have someone look at a run before any text is sent, add an Approval step before the Send SMS step. When the run reaches it, the run waits, and the Runs window shows This run is awaiting approval. with Approve and Reject buttons. Nothing after the Approval step runs until someone approves it. If they reject it, the run takes the Approval step's reject path instead, so no text is sent unless you have connected a Send SMS step there.
Runs
Each run executes the workflow node-by-node. Select a run to follow its steps.
9 Oct 2026, 17:00
3.1sSchedule2.2 credits
8 Oct 2026, 17:00
48sSchedule74.2 credits
7 Oct 2026, 17:00
41sSchedule62.2 credits
9 Oct 2026, 17:00
This run is awaiting approval.
RejectApprove- 1Approve sends the run on to the texts. Reject takes the reject path.
- 2The Approval step the run is waiting at.
When you text a list, put the Approval before the Loop rather than inside it. One approval then covers the whole batch, instead of one for every text. Conditions, loops and approvals covers who can approve and how long a run waits.
See what was sent
Every run shows its steps in the Runs window. A Send SMS step is listed as Send SMS, whatever you named it, with its summary underneath, such as Sent SMS …0412 (1 segment). The summary gives the last four digits of the number and how many segments were charged. Click the step to see its full output.
Runs
Each run executes the workflow node-by-node. Select a run to follow its steps.
9 Oct 2026, 09:58
3.4sBigChange8 credits
9 Oct 2026, 09:21
2.9sBigChange8 credits
9 Oct 2026, 08:47
1.6sBigChange2 credits
9 Oct 2026, 09:58
Sent SMS …0412 (1 segment)
1Step output
{
"handles": { "main": 1 },
"items": {
"main": [
{
"jobRef": "J-48213",
"contactName": "Riverside House",
"personMobile": "07700 900412",
"resourceName": "Dylan Hughes",
"plannedStartAt": "2026-10-09T09:40:00Z",
"sent": true,
"to": "+447700900412",
"from": "+447700900321",
"numSegments": 1,
"status": "queued"
}
]
},
"summary": "Sent SMS …0412 (1 segment)"
}- 1The summary: the last four digits texted and the segments charged.
- 2Step output: the fields from earlier steps, plus what Send SMS added.
Send SMS passes on everything it received and adds these fields, which later steps can use:
sent: true once the text has been handed over for sending.toandfrom: the number texted and your Centrus number, both in +44 format.numSegments: how many segments the text used, and so how many lots of 6 credits it cost.status: the status when the text was handed over, usuallyqueued.- A message reference, which Centrus support can use to trace a text.
The status is recorded once, at the moment the text is handed over, and is not updated afterwards. Runs cannot tell you whether a text reached the phone. A text to a phone that is switched off, for example, still shows as sent.
Read the Runs panel covers the rest of the window, including how to find a run.
Replies, opt-outs and consent
Replies to your Centrus number do not come back into Centrus. Nobody sees them, no agent can start from them, and Centrus cannot pass them on. Put a phone number or email address in the text when the person may need to answer.
If someone replies STOP to your number, they are opted out, and later texts from your number to them are refused. Centrus does not keep a list of who has opted out and does not warn you in advance. The next text to that person fails with This recipient has opted out of SMS (STOP). The text was not sent. It costs nothing, but unless the step is set to continue on error, it stops the run, and anyone later in a list misses their text.
Text Message
Thu 8 Oct at 17:00
Delivered
9 Oct 2026, 17:00
21sSchedule32.1 credits
This recipient has opted out of SMS (STOP). The text was not sent.
The next text to that number failsTo keep a list running past an opted-out number, open the Send SMS step's On error setting and choose Continue (pass input through). The failed text still shows in Runs, and the Loop moves on to the next person. If your job system records who has asked not to be texted, add a Filter before the Loop to drop them.
Centrus sends the texts your agents ask it to send. Your organisation is responsible for having a proper reason to text each person and for following its own privacy and communications policies. Keep texts to the job or booking the person is expecting. If you are not sure whether a text is appropriate, check with whoever handles data protection in your organisation.
What a text costs
Each text costs 6 automation credits for every segment it uses, which the builder shows as 6p. A single-segment text is 6 credits, a two-segment text 12. The credits are taken once the text has been sent, using the segment count returned at the time. A text that is not sent, for any reason, costs nothing, and a dry run never sends one.
The rest of the run is charged as usual: 1 credit for the run itself, 1 for each step that calls another system, 0.1 for most logic steps such as a Filter, and nothing for a Loop. Here is the reminder agent from Text everyone on a list, texting 12 customers:
Before each real text, Centrus checks that sending it would not take the run past its budget, allowing 6 credits for the text. If it would, the step fails with This run has reached its per-run automation-credit budget (250 credits). Raise the workflow's budget in its settings to let it continue., showing your own budget. With the default of 250, the reminder agent above can send 41 single-segment texts in one run; the 42nd fails. The check allows for one segment, so long texts can take a run slightly past its budget.
To text more people in one run, raise Per-run credit budget in the agent's settings, up to 1,000. Automation credits and usage limits covers the budget, your monthly allowance and where to see what has been used.
Test it without texting anyone
Run now offers two choices. Run for real sends real texts and charges for them. Dry run (no actions performed) runs the earlier steps, works out each text, and stops short of sending it. A whole dry run costs 1 credit.
Choose how to run this workflow. Both options run the trigger, knowledge steps and AI for real. Billing uses your organisation’s automation credits, not message credits. A full run charges normally; a dry run skips per-step charges while still simulating write actions safely.
Performs every step for real, including write actions such as sending emails. Charged as a normal automation run. Use this once you are happy with the workflow.
Runs read actions for real, but simulates write actions (e.g. sending an email) and shows you exactly what they would have done. Nothing is sent or changed. Does not charge per-step automation credits the way a full run does.
9 Oct 2026, 09:12
2.2sManual1 credit
DRY RUN: would text 0412 (not sent)
2Step output
{
"handles": { "main": 1 },
"items": {
"main": [
{
"jobRef": "J-48213",
"contactName": "Riverside House",
"personMobile": "07700 900412",
"resourceName": "Dylan Hughes",
"plannedStartAt": "2026-10-09T09:40:00Z",
"sent": false,
"dryRun": true,
"to": "+447700900412",
"from": "+447700900321",
"segmentEstimate": 1
}
]
},
"summary": "DRY RUN: would text 0412 (not sent)"
}- 1Dry run (no actions performed). Nothing is sent.
- 2The summary of a dry run: the last four digits that would have been texted.
In a dry run the step's output has sent set to false, dryRun set to true, the number it would have texted in to, and a segmentEstimate. The estimate counts one segment for every 160 characters, so a text with emoji may use more when it is sent for real. A dry run checks that To is a UK mobile and that Body is not empty or too long, so most mistakes show up here.
A dry run does not show you the message itself. To see exactly what will arrive, make a copy of the agent with your own mobile in To, and run it for real once. That costs one text, and you can read it on your phone as the customer will. Test an agent before it goes live covers dry runs and test runs in more detail.
A full run of an agent that reads live jobs will text the real customers on those jobs. Use a dry run, or point To at your own mobile, until you are happy with the message.
Examples
Three agents that use Send SMS, each built from steps described above.
Engineer on the way
Text Message
Today 09:58
Reminder the day before
Text Message
Thu 8 Oct at 17:00
Urgent job, on-call manager
Text Message
Today 22:14
Engineer on the way. A BigChange webhook listening for Job status changed starts the run when an engineer sets off. BigChange REST with Get job fetches the job, and Send SMS texts the contact's mobile with the engineer's name, the planned time and the job reference, as in the overview. Set the status filter in BigChange so only the on-the-way status sends alerts; Start an agent from a system alert explains how.
Reminder the day before. A Schedule runs at 17:00 on weekdays. BigChange REST with List jobs fetches tomorrow's visits, a Filter keeps those with a mobile, and a Loop runs Send SMS once for each, as in Text everyone on a list. The text gives the date and time, using | date('DD/ and | date('HH:mm'), and a number to call to change it. For 12 visits a night it costs about 74 credits.
Urgent job, on-call manager. A JobLogic webhook listening for Job Created starts the run. A Filter named Urgent jobs only lets through only the priority you treat as urgent, and two Send SMS steps text the on-call manager and the back-up, each with a fixed number, as in Choose who to text. Put the site, the customer and the fault in the text so the manager can decide what to do without logging in.
When a text is not sent
When a text cannot be sent, the Send SMS step fails and its message shows in a red box when you expand the step in Runs. No credits are charged for it. Unless you have changed the step's On error setting, the run stops there and is marked failed, so later steps, and later people in a list, are skipped.
A few other messages can appear when the number cannot be reached or texting is not set up correctly for your organisation. They are rare and not something you can fix in the agent, so contact Centrus support if you see one.
The On error setting decides what happens next:
- Stop the workflow, the default, ends the run as failed.
- Continue (pass input through) carries on as if the step had worked, which keeps a Loop going to the next person.
- Continue via error branch sends the run down a separate path, where you could, for example, email the office to phone that customer instead.
If a run retries a Send SMS step that has already sent its text, Centrus reuses the earlier result rather than texting again, and the summary reads SMS already sent (idempotent reuse).
Good to know
Each text
6 credits
For every segment, charged once the text is sent. Dry runs cost nothing.
Message length
1,600
Characters at most, after the references are filled in.
Recipients
1 per text
A UK mobile. Use a Loop for a list, or one step per person.
Replies
Not received
Replies and delivery reports do not come back into Centrus.
- Texts come from your Centrus number. You cannot send from a company name or from a different number.
- UK mobiles only. Landlines and numbers outside the UK cannot be texted.
- The note says Run now sends a real text. That is true of Run for real. Dry run (no actions performed) does not send anything.
- Texting during a phone call. Connect a Send SMS step to a Voice AI step and the agent can text during a call, for example to send the caller a confirmation. If To is left blank it texts the caller's number. References in To and Body are not used in this case, so leave them blank or type fixed text. Nothing is sent while you test the call in the builder's preview. Make outbound calls and answer incoming calls covers Voice AI.
- Publishing needs a number. An agent with any Send SMS step cannot be published until your organisation has a number, even if the step is on a path that rarely runs. Publish, pause and restore versions explains publishing.
More in Agent Builder
- Open Agent Builder
- Build your first agent from a message
- Build and edit agents from chat and WhatsApp
- Find your way round the canvas
- Choose how an agent starts
- Run an agent on a schedule
- Start an agent when an email arrives
- Start an agent from a system alert
- Run an agent from chat and WhatsApp
- Steps an agent can use
- Conditions, loops and approvals
- Make outbound calls and answer incoming calls
- Test an agent before it goes live
- Publish, pause and restore versions
- Read the Runs panel
- Share an agent
- Automation credits and usage limits