Message Templates and Variables
Rewrite what Perceny sends automatically, insert client variables, and build reusable templates for blasts, without breaking the links inside them.
Every automatic message Perceny sends comes from a template you can edit. Messaging → Templates: "Manage the SMS and email templates sent to your clients."
There are two kinds, and they behave differently.
Standard templatesCopy a link to this section
These are the messages Perceny sends on its own. Each has a fixed job:
| Template | When it goes out |
|---|---|
| Appointment Reminder | Ahead of the appointment, at your reminder lead times |
| Appointment Scheduled / Confirmed / Rescheduled / Canceled / Declined | As those things happen |
| Appointment Completed | After the visit, with details and a rebooking link |
| Appointment Ready | When the stylist marks the client ready |
| Waitlist Spot Available | When a matching slot opens |
| Walk-In Almost Ready / Kiosk Ready | A few minutes before their turn |
| Receipt | Once a ticket is paid |
| Refund Processed | When you refund with Send Notification on |
| Payment Link | When you share a payment link |
| Invoice | When you send an invoice |
| Phone Invite | To a team member you invite |
| Gift Card Purchased: Buyer / Recipient | With the codes and the total |
You cannot add or delete standard templates, only rewrite their wording. If a template shows "This message is turned off in your notification settings. Turn it back on to send it.", editing it changes nothing until you re-enable it. Which messages exist and when each fires is covered in What your clients actually receive.
VariablesCopy a link to this section
Templates use single-brace variables that Perceny fills in per client. The editor lists the ones available for that template ("Available variables (tap to insert)"), so you never have to remember the spelling. Among them:
{firstName} · {clientName} · {businessName} · {stylistName} · {appointmentTime} ·
{estimatedTime} · {services} · {amount} · {totalAmount} · {link} · {scheduleLink} ·
{reviewLink} · {receiptNumber} · {address} · {businessPhoneNumber} · {planName} ·
{visitsRemaining} · {rewardDescription} · {expiration} · {customPolicyText} · {appLink}
{appLink} (Perceny Go App Link) is offered in every template whose variables have names. It
fills in your Perceny Go join link: a client who taps it gets the app with your business already
added (see Get your clients into the app).
Refund Processed has its own: {refundAmount}, {refundMethodText} (" to your card ending in
4242"), {refundSummaryText} (how much of the total has gone back, on a partial refund only),
{refundArrivalText} (the 5 to 10 business days note, on a card refund only), {refundItemsText}
(" for Haircut, Color") and {receiptLink}. The ones in brackets are empty when they do not apply
and carry their own leading space, so put them straight after the word before them.
Two rules save most of the pain:
- Insert them, do not type them. A misspelled variable renders as literal text in a real client's message.
- Never delete the link variable. A reminder without
{link}cannot be confirmed; a receipt without its link is a dead end.
Wordings for other situationsCopy a link to this section
Some templates say something different in specific circumstances, and the editor exposes each one:
- Default message: "Sent whenever none of the wordings below apply."
- When you ask for a review: sent instead of the default once your Google review link is configured and the client has hit the visit count you ask at. The helper is blunt about the trap: "Include {reviewLink} or clients will never be asked."
- Reward progress line: appended when reward notifications are on and the client is close to their next reward.
Edit all of the wordings, not only the default. The default is the one you will see while testing; the variants are the ones your best clients get.
LanguagesCopy a link to this section
You do not translate templates by hand: "Messages are automatically translated into your clients' languages." Write the English wording well and let the translation follow. The table shows which languages a template carries; in the phone app each template lists them under its name.
Length and costCopy a link to this section
Under the body of a text message, the editor tells you what your rewrite costs, on the web and in the phone app alike:
- "About N segment(s) per message, same as the M we send by default, so no credits are charged."
- "About N segment(s) per message against the M we send by default: the extra E cost C credits every time this message goes out."
That second line is the one to watch. Adding a friendly sentence to your reminder can push it from one segment to two, on every reminder, forever. Emoji are worse than they look: they drop the segment limit from 160 characters to 70. See Credits and segments.
Both lines are about US and Canadian numbers, where the built-in texts are free. To a number in any other country every segment of the message uses credits, at that country's rate, so there a longer template costs more on every send, and the extra is never charged twice.
Custom templatesCopy a link to this section
Custom Templates are for blasts: "Reusable message templates with client variables for your blasts. Channels are picked when you send."
Create one with a name and a body (Hey {firstName}, we have two openings Friday…) and it becomes
selectable in the blast composer. Because channels are chosen at send time, one custom template can
go out as a text and as an email, and you can tweak the wording per channel in the composer without
editing the template.
The variable picker in the template form and the composer offers two groups. Client fills in per
recipient: {firstName}, {lastName}, {email}, {phoneNumber}. Business fills in from the
business the message goes out from: {businessName}, {businessPhoneNumber}, {businessEmail},
{locationAddress} and {appLink}, the location's Perceny Go join link. That second group is what
makes one piece of wording safe to reuse across a chain: a blast sent from the group, or a workflow
shared to every location, signs each message with the name, number, address and app link of the
location it actually goes out from, not the one that wrote it. The preview shows your own business
in their place, so you read exactly what a client will; the app link shows as a sample
(https://example.com/j/123456) and is filled in with your real link as each message goes out.
Workflows offer the same {appLink} in their message steps and as an email button link, so an
onboarding workflow can invite every new client to the app. The link is empty while your client
portal is turned off.
You need at least one before you can send a blast: "Create a custom template first to send a blast."
Who can edit themCopy a link to this section
The Manage Message Templates permission: "Create and edit the templates used for automatic and blast messages." Grant it narrowly. A template edit changes what every client receives from then on, and there is no per-message approval step.
Test before you trustCopy a link to this section
Book yourself a real appointment with your own phone number on the client record, let the reminder
fire, and read it on a phone. Variables that look fine in the editor are how you discover that
{estimatedTime} reads oddly in your sentence, or that your message wraps into a second segment.