Help centre

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
  1. 1What Send SMS does
  2. 2Your Centrus number
  3. 3Add the step
  4. 4Choose who to text
  5. 5UK mobile numbers
  6. 6Write the message
  7. 7Text everyone on a list
  8. 8Check texts before they go
  9. 9See what was sent
  10. 10Replies, opt-outs and consent
  11. 11What a text costs
  12. 12Test it without texting anyone
  13. 13Examples
  14. 14When a text is not sent
  15. 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.

app.centrus.ai/app/agents/workflow-builder
Agents

Build modular AI workflows with reusable nodes

Engineer on the way
1,240 / 10,000 creditsValidateResetRunsSettingsUpdate & Publish

Engineer on the way

Job status changed

Fetch the job

Get job

Text the customer

To {{ item.json.personMobile }}

2
AI builderMap
  1. 1Send SMS in the General group.
  2. 2The step on the canvas. Its summary shows who it texts.
  3. 3From: your organisation's Centrus number. Every text comes from it.
  4. 4To: the mobile to text. Here it is taken from the job fetched in the step before.
  5. 5Body: the message, with references that are filled in from the job.
  6. 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

From
Assign a number to this organisation
+447700900321
+447700900334
+447700900358

One number per organisation. From is not a node field.

Picking one assigns it at once

Number assigned

From+447700900321

One number per organisation. From is not a node field.

None available

From

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

  1. 1Open the agent in the builder and find Send SMS in the General group of the Nodes panel.
  2. 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.
  3. 3Click the step to open its Details panel. Give it a name that says who it texts, such as Text the customer.
  4. 4Fill in To and Body, as described in the next sections.
  5. 5Click Save draft, then test it as described in Test it without texting anyone.
Engineer on the way
Save changesSave and Publish

Engineer on the way

Job status changed

Fetch the job

Get job

Send SMS

Set the mobile number

2
  1. 1Send SMS in the General group.
  2. 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 }}

  1. 1To, holding a reference rather than a number.
  2. 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

Sarah Price, on call

Text the back-up manager

To 07700 900587

Dylan Hughes, back-up
Two people, two steps. Each has its own fixed number in To.

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.

What To contains when the step runsWhat Centrus does
07700 900412Texts +447700900412
+44 7700 900412Texts +447700900412
+44 (0)7700 900412Texts +447700900412
0044 7700 900412Texts +447700900412
447700900412A number column in ExcelTexts +447700900412
7700900412Excel dropped the leading 0Texts +447700900412
020 7946 0321A landlineNot sent: not a UK mobile
+353 87 123 4567A mobile outside the UKNot sent: not a UK mobile
07700 90041A digit missingNot sent: not a UK mobile
07700 900412, 07700 900587Two numbers in one fieldNot sent: not a UK mobile

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.

Set up
From+447700900321

One number per organisation. From is not a node field.

To{{ item.json.personMobile }}
Step data references0
BodyHello, this is Harbour FM. {{ item.json.resourceName }} is on the way to {{ item.json.contactName }} and should be with you at about {{ item.json.plannedStartAt | date('HH:mm') }}. Job ref {{ item.json.jobRef }}.
1
Step data references0

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.

2
09:41
+44 7700 900321

Text Message
Today 09:58

Hello, this is Harbour FM. Dylan Hughes is on the way to Riverside House and should be with you at about 10:40. Job ref J-48213.
Text Message
3
  1. 1Body, with four references from the BigChange job.
  2. 2The note: internal operational UK texts only, 6 credits a segment.
  3. 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/MM/YYYY') 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)

1

Each booked visit

For each of incoming items

2

Text the reminder

To {{ item.json.personMobile }}

3
  1. 1A Filter that keeps only jobs with a mobile number, so no text fails for want of one.
  2. 2The Loop hands over one booked visit at a time.
  3. 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.

runs: 6 · credits consumed: 302.4Auto-refreshingRefreshRun now
Awaiting approval

9 Oct 2026, 17:00

3.1sSchedule2.2 credits

Success

8 Oct 2026, 17:00

48sSchedule74.2 credits

Success

7 Oct 2026, 17:00

41sSchedule62.2 credits

Awaiting approval3.1s4 steps2.2 credits

9 Oct 2026, 17:00

This run is awaiting approval.

RejectApprove
1
1Schedule Trigger12msSuccess
2BigChange REST1.9sSuccess
3Filter8msSuccess
4Approval1.1sAwaiting approval
2
  1. 1Approve sends the run on to the texts. Reject takes the reject path.
  2. 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.

runs: 9 · credits consumed: 72Auto-refreshingRefreshRun now
Success

9 Oct 2026, 09:58

3.4sBigChange8 credits

Success

9 Oct 2026, 09:21

2.9sBigChange8 credits

Failed

9 Oct 2026, 08:47

1.6sBigChange2 credits

Success3.4s3 steps8 credits

9 Oct 2026, 09:58

1BigChange webhook9msSuccess
2BigChange REST1.3sSuccess
3Send SMS1.8sSuccess
Started: 9 Oct 2026, 09:58Took: 1.8sOutput: main ×1

Sent SMS …0412 (1 segment)

1

Step 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)"
}
2
  1. 1The summary: the last four digits texted and the segments charged.
  2. 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.
  • to and from: 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, usually queued.
  • 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.

09:41
+44 7700 900321

Text Message
Thu 8 Oct at 17:00

Reminder from Harbour FM: Dylan Hughes is booked to visit Harbour View Apartments on 10/10/2026 at 09:30. To change it, call 0161 496 0123.
STOP
Centrus never receives replies

Delivered

Text Message
Failed

9 Oct 2026, 17:00

21sSchedule32.1 credits

13Send SMS0.6sFailed
Started: 9 Oct 2026, 17:00Took: 0.6s

This recipient has opted out of SMS (STOP). The text was not sent.

The next text to that number fails

To 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:

Reminders for 12 visitsTexts of 1 segmentTexts of 2 segments
The runCharged once when the schedule starts it11
Tomorrow's visitsBigChange REST, List jobs11
Has a mobileFilter0.10.1
Each booked visitLoop00
Text the reminder12 texts × 6 credits a segment72144
Credits for the run74.1146.1
One extra segment on every text almost doubles the cost of the run.

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.

Run workflow

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.

Full run

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.

Run for real
Dry run

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.

Dry run (no actions performed)1
SuccessDry run

9 Oct 2026, 09:12

2.2sManual1 credit

3Send SMS12msSuccess
Started: 9 Oct 2026, 09:12Took: 12msOutput: main ×1

DRY RUN: would text 0412 (not sent)

2

Step 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)"
}
  1. 1Dry run (no actions performed). Nothing is sent.
  2. 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

09:41
+44 7700 900321

Text Message
Today 09:58

Hello, this is Harbour FM. Dylan Hughes is on the way to Riverside House and should be with you at about 10:40. Job ref J-48213.
Text Message

Reminder the day before

09:41
+44 7700 900321

Text Message
Thu 8 Oct at 17:00

Reminder from Harbour FM: Dylan Hughes is booked to visit Harbour View Apartments on 10/10/2026 at 09:30. To change it, call 0161 496 0123.
Text Message

Urgent job, on-call manager

09:41
+44 7700 900321

Text Message
Today 22:14

Urgent job logged at 22:14: Harbour View Apartments, Northgate Housing. No heating in block B. Joblogic job 1126891.
Text Message

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/MM/YYYY') 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.

Message on the failed stepWhat to do
Send SMS needs a UK mobile in To (+447…, 447…, or 07…).To was empty or not a UK mobile when the step ran. Check the field it reads, and filter out rows with no mobile.
Send SMS has an empty body.The Body was blank once its references were filled in. Check the fields it reads.
Send SMS body cannot be longer than 1600 characters.Shorten the text, or the field it pulls in.
This organisation has not assigned an SMS number.Assign a number in From on any Send SMS step.
Send SMS To cannot be the same as the organisation’s From number.To has picked up your own Centrus number. Point it at the recipient.
That mobile number is not valid.The network rejected the number. Correct it in the source record.
This recipient has opted out of SMS (STOP). The text was not sent.They replied STOP to your number. Stop texting them and contact them another way.
The assigned From number is not SMS-capable.Contact Centrus support.
Send SMS failed:Followed by the reason. Read it, then contact Centrus support if it is not clear.
This run has reached its per-run automation-credit budget (250 credits).Raise the agent's Per-run credit budget, or text fewer people per run.

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