Message Templates

Build reusable SMS and email templates once, then use them from Campaigns, Workflows, and your automated customer messages. Includes the variable list, what each one resolves to, and SMS length rules.

Written By Support Team

Last updated 4 days ago

A template is a message you write once and reuse β€” a spring promo text, a review request, an appointment reminder. Templates keep your team's wording consistent, they let you personalize each message automatically, and they are what Campaigns and Workflows send on your behalf.


Where Templates Live

There are two places messages are written in Rotor, and it helps to know which one you're in.

  • Engagement β†’ Templates β€” your reusable library. Click + New and choose SMS or Email. These are the templates you attach to campaigns and workflows.

  • Settings β†’ Messaging β€” the message content for Rotor's built-in customer notifications: visit reminders, On My Way, visit started and finished, agreement and quote messages, invoice and receipt messages, payment reminders. Each of these has its own editable body rather than pulling from the template library. See Client Messaging Settings for the full list.

Rotor ships with a set of default templates, so you usually have a starting point rather than a blank page. Each one appears in your library with a (Default) suffix.

Default SMS templates:

  • Job Created

  • Job Reminder

  • Job On My Way

  • Job Completed

  • Job Cancellation

  • Job Reschedule

  • Job Quote

  • Job Payment Reminder

  • Job Review Request

  • Lead Follow Up

  • Referral Request

  • Re-engagement Message

  • Seasonal Promotion

Default email templates:

  • Welcome New Customer

  • Job Created

  • Job Reminder

  • Quote Request Response

  • Payment Reminder

  • Job Completed


Variables

Variables are placeholders that get replaced with the real value when the message sends. Rotor's default templates use single curly braces:

  • Hi {first_name}, this is a reminder for your job with {your_company_name} on {job_date} at {job_time}.

Three different forms show up across the product, and they are not interchangeable on the page:

  • Single curly braces β€” {first_name}, {job_date}. This is what Rotor's shipped default templates use.

  • Double curly braces β€” {{review_link}}, {{unsubscribe_link}}, and {{first_name}} in hand-authored campaign templates.

  • Square brackets β€” the Campaigns article documents the Add Variable button with the example Hey [first_name].

This matters more than it looks. If you type a token in a syntax the send-time renderer does not resolve, nothing errors β€” the message goes out with the raw placeholder in it, and your customer reads "Hey [first_name]" or "Hi {first_name}".

The safe habit: use the Add Variable button in the template editor rather than typing the token by hand. It inserts the exact syntax Rotor expects for the context you're in. Then send yourself a test and confirm the values filled in.

Variable Reference

The tokens below are taken from Rotor's shipped default templates β€” the ones named "… (Default)" in your library β€” so they reflect what the product actually sends out of the box.

Variable

Resolves to

Use it in

{first_name}

The contact's first name

Anything β€” leads and customers both have it

{your_company_name}

Your business name

Anything; carriers expect your name in the first message

{company_phone}

Your business phone number

Cancellations, reschedules, anything with a "call us"

{job_date}

The scheduled date of the job

Job and visit messages only

{job_time}

The scheduled time of the job

Job and visit messages only

{job_location}

The service address on the job

Job and visit messages only

{service_type}

The service type on the job (e.g. quarterly pest)

Job and visit messages only

{{review_link}}

The review URL you saved in Settings β†’ Messaging

Review requests β€” see Review requests

{quote_link}

The link the customer uses to view and accept a quote

Quote messages and follow-ups

{invoice_number}

The invoice number

Invoice messages and payment reminders

{invoice_total}

The amount due

Invoice messages and payment reminders

{invoice_due_date}

The invoice due date

Invoice messages and payment reminders

{invoice_payment_link}

The pay-now link for that invoice

Invoice messages and payment reminders

{{unsubscribe_link}}

A one-click unsubscribe link

Marketing email footers

Match the variable to the context

A variable only fills in if the record it points at exists. Job variables are empty on a lead who has never been scheduled, and invoice variables are empty on a message that isn't attached to an invoice. Two rules keep you out of trouble:

  • In Workflows, make the variable match the trigger. Don't use {job_date} in a workflow triggered by "Lead created."

  • In Campaigns, be careful with job and invoice variables when the audience includes leads β€” they don't have job history yet.


Using a Template

  • From Campaigns β€” build the template first, then create the campaign with that template applied, then add your audience from the Leads or Customers page using More Actions β†’ Add to Campaign. Full walkthrough in Campaigns.

  • From Workflows & Automations β€” the Send Text and Send Email actions accept a template, support variables, and allow HTML formatting for email. Turn on Respect Business Hours so automated texts don't land at 11pm.

  • From the Inbox β€” the template icon in the bottom right of the inbox text entry allows you to use your saved tempaltes.

SMS Length and Segments

Carriers bill and throttle by segment, not by message.

  • A plain-text SMS is one segment up to 160 characters. Beyond that it splits, and each segment holds 153 characters.

  • Add a single emoji or a curly quote pasted from a word processor and the whole message switches to Unicode: 70 characters for one segment, 67 per segment after that.

  • Variables expand. {first_name} is 12 characters in the editor and can become 11 on screen for "Christopher" β€” write to the longer version, not the shorter one.

  • Links count toward the total.

Keep promotional texts to one or two segments. Long texts cost more, deliver slower, and read worse on a phone.

Required Opt-Out Language

Marketing templates need an opt-out line β€” Reply STOP to opt out β€” and every template should identify your business by name. STOP, UNSUBSCRIBE, CANCEL, END, and QUIT are honored at the carrier level, and HELP must return your business name and contact info. This is a carrier requirement, not a Rotor preference; see A2P 10DLC registration for the full picture. For email, include {{unsubscribe_link}} in the footer. The first automated text message in Rotor includes this for you.

Tips

  • Check the preview bubble in the editor to see the message as it will appear on a phone.

  • Send yourself a test before a campaign goes out, and confirm the variables filled in and the link works.

  • Go easy on attachments in SMS β€” they can cause delivery issues with some carriers.

  • Name templates for the job they do β€” "Quarterly reminder – 1 day before" beats "Template 4."


Congratulations! You can now build reusable SMS and email templates, personalize them with the right variables, and send them from Campaigns and Workflows without retyping a word.

Have additional questions? Our team is ready to help you succeed. Contact us through the chat or drop us an email at support@getrotor.com.