Front message template variables: every field, fallback and limit

Rama Adi
Written by

Rama Adi

Katelin Teen
Reviewed by

Katelin Teen

Last edited November 6, 2026

Expert Verified
Hand-drawn pair of teammates at a laptop beside curly-brace placeholder cards, with a purple Front-style logo shape
TL;DR

Front message template variables are placeholders you type as {{recipient.first_name}} that fill in from the contact you are replying to, their account, and the teammate sending. Add a fallback in single quotes, such as {{recipient.first_name | 'there'}}, or a missing name leaves the variable unpopulated. They fill in for the first recipient only, the user variables go blank in automatic replies, and templates are on every plan while application object variables need Professional or above.

eesel does not insert Front templates, but it can draft the replies your templates do not cover as an internal comment. With the eesel CLI, a coding agent can upload approved knowledge, such as your template text pulled through Front's API, and test its answers on a sample question before anything goes live. Approving the Front connection still needs someone with admin rights.

What are Front message template variables?

They are placeholder text in a message template or signature that Front fills in when the template is used. Front's help center describes them as dynamically filled "based on information you've provided", pulled from the saved details of your recipient or from custom field data.

I build helpdesk integrations at eesel, Front's included, and the variable list is the part of a template that quietly decides whether a reply sounds personal or like a form letter. The mechanics are simple. Type {{ in the template editor, a list opens, and you pick a variable. Front inserts it in double curly brackets, and the value appears when a teammate (or a rule) uses the template.

Front template editor with a double curly bracket opening a list of variables such as conversation.id and recipient.first_name, as taken from the Front Help Center
Front template editor with a double curly bracket opening a list of variables such as conversation.id and recipient.first_name, as taken from the Front Help Center

Message templates themselves are Front's version of canned responses. Per the templates article, a template can be private to you or shared with teammates, and shared ones can be limited to chosen inboxes. If you also use macros in other helpdesks, my Freshdesk canned responses guide shows how the same idea is built elsewhere.

Which variables does Front give you?

Four families, named by prefix: recipient, account, user and app, plus a few IDs. The ones below are the default list from Front's variables article, which says they populate from saved Contacts.

VariableWhat it fills inNote from the docs
recipient.first_nameFirst part of the contact's nameSplit on the first space; with a comma, everything after the comma
recipient.last_nameThe rest of the nameWith a comma, everything before it
recipient.nameContact's full name
recipient.email, recipient.phone, recipient.twitterContact detailstwitter is the X handle
recipient.handleThe contact's handle for this channelDepends on message type
recipient.linkThe contact's link attribute
account.nameName of the account the contact is tied to
conversation.id, conversation.public_id, conversation.ticket_idNumeric ID, public ID (like cnv_123abc), ticket ID
message.id, message.public_idNumeric and public message ID
user.name, user.first_name, user.last_name, user.email, user.idThe teammate sendingBlank in automatic replies
surveyInserts Front's CSAT survey

The name-splitting rule is worth reading twice. Front's example: a contact saved as "Sophia Marie Carpenter" gives first_name "Sophia" and last_name "Marie Carpenter", while "Carpenter, Sophia Marie" gives "Sophia Marie" and "Carpenter". If your contacts are imported as "Last, First", Front reads the comma and still gets the order right.

Hand-drawn rows showing which Front variable prefix fills from the contact, the account, the sending teammate and an application object
Hand-drawn rows showing which Front variable prefix fills from the contact, the account, the sending teammate and an application object

One mismatch to know about: the editor screenshot in that same article also lists message.from_channel and recipient.group, which the written list leaves out. The dropdown in your own workspace is the source of truth, so scroll it before assuming something does not exist. The survey item ties into CSAT surveys, and my AI CSAT post covers the measurement side.

How do custom field variables work?

Front lets you add your own fields to contacts, accounts and teammates, and each one becomes a variable. Type {{ followed by the family name to see them. Per the docs, a contact field called Customer ID shows up as recipient.custom.customer_id, an account field called Account Manager as account.custom.account_manager, and a teammate field called Job Title as user.custom.job_title.

Two rules keep these from misfiring:

  1. Account data comes from the To field. Front fills custom account variables for the recipient in the composer's To field, and that recipient must exist in your Contact Manager and be connected to an account.
  2. Application objects are separate. For third-party data attached to a conversation (an order, a subscription), type {{app. and filter by application or object name. These work in the composer and message templates only, so you cannot use them in a signature.

Application objects have their own limits. Front's docs say a template can use variables from only one application object at a time, and Front fills them from the object attached to the conversation. If there is none, you get a warning. If there are several, Front picks the first and lets you choose another.

Front rule action reading Reply once using the Order shipped template with a Requested Order object, as taken from the Front Help Center
Front rule action reading Reply once using the Order shipped template with a Requested Order object, as taken from the Front Help Center

That screenshot is the automatic-reply case: a rule sends the "Order shipped" template and names which object to read. Choosing the object that way is done with dynamic variables, covered below.

What happens when a value is missing?

The variable does not populate, and Front tells you to define a fallback. From the variables FAQ: if the recipient name does not exist in your Contacts Manager, the variable will not populate, so you write the fallback after a pipe and wrap it in single quotes:

{{recipient.first_name | 'there'}}

Hand-drawn fork showing a first name variable filling in Hi Sophia when the contact has a name and Hi there when it is missing
Hand-drawn fork showing a first name variable filling in Hi Sophia when the contact has a name and Hi there when it is missing

I would put a fallback on every variable that can be empty, not only names. A customer service email template that opens "Hi ," is exactly the kind of small slip that reads as careless, and it is the failure that tone of voice work cannot fix after the fact.

Front's docs do not say what a template shows when a variable has no value and no fallback: blank text or the raw braces. They also do not say whether a fallback applies to custom fields the same way. Test both in a message to yourself before a rule sends the template to customers. One G2 reviewer, describing why templates matter to a team that shares an inbox, put the stakes plainly:

G2

"It would result in 2 different prices being sent sometimes, which could hurt the revenue and make us look bad."

That reviewer was talking about two people answering the same request, which shared inboxes and templates help prevent. My Front shared inbox ownership guide covers the ownership side.

Where do Front template variables work?

In more places than the template editor, with different rules in each. Pick a place to see what Front's docs say fills in.

Where is the variable used?

Everything fills in. recipient, account, user and app variables all work in the composer. For app, Front reads the object attached to the conversation, warns if there is none, and picks the first if there are several (you can switch).
Mostly, but not user. With the Reply using message template action, user variables are blank because no teammate is tied to the reply. app variables work if you choose the object with dynamic variables, which are Enterprise or Autopilot add-on only.
Yes, in email signatures. Variables work in both the Sender info field and the body, so each teammate sees their own name. Signatures are for email channels only, and app variables are for the composer and message templates only.
Yes. A variable in the subject fills in when a teammate inserts the template (new messages and replies) and when a rule sends it. Inserting a template with a subject overrides the earlier subject.
Only two kinds. Sequences accept {{sequence...}} CSV columns (up to 20) and {{recipient...}} custom fields. Fallbacks use the same single-quote syntax. Typing {{ in the subject does not open the list, so type the variable out.
First recipient only. Variables fill in for the first person in the list, not a separate copy for each. For individual copies with their own values, Front points to Sequences.

The sequence row matters if you send outbound mail. Front's Sequences article works like a mail merge from a CSV, so the same {{ habit carries over, but the variable list is narrower. If you are comparing it with tools built around email personalization, that narrowness is the difference to weigh.

How do I build a template with variables?

Write the message, drop in variables, and save it where the right people can find it. Front's steps, in short:

  1. Click the gear icon, pick workspace or personal settings, and select Templates, then the Messages tab.
  2. Click Create, then fill in a name, an optional subject, and the text box. Type {{ for variables.
  3. Optionally file it under a folder (you can nest up to 5 layers) and, for shared templates, choose which shared inboxes can use it.
  4. Click Create. Teammates insert it from the template icon in the composer or by typing /template or a forward slash and the template name.

You can also write a draft in the composer first and use New from draft in the template menu. Front's tip is to highlight the text a teammate should edit before sending, so personal touches do not get skipped.

Front Templates page in the Messages tab listing a CSAT request template that opens with a recipient first name variable, as taken from the Front Help Center
Front Templates page in the Messages tab listing a CSAT request template that opens with a recipient first name variable, as taken from the Front Help Center

A few limits from the same article decide how you organize things:

  • No hard cap on the number of templates, but Front recommends folders for large sets.
  • Private and shared are fixed. You cannot convert one into the other. Copy the content and recreate it.
  • No moving across workspaces. Templates cannot be copied or moved from one workspace to another, and shared templates are set up per workspace.
  • No bulk access changes. Inbox availability is set one template at a time.
  • No default sender. A template has no From field, so the teammate's choice in the composer stands.

Someone with the Templates - Create and edit permission can see all shared templates in workspace settings, even for inboxes they cannot open. If that matters to you, a custom permission set can remove it. If you ever migrate, my macro templates and managing macros posts help you audit what you have first.

Are these the same as Front's dynamic variables?

No, and the naming trips people up. The variables in this article are placeholders in text. Front's dynamic variables are a separate tool used inside Smart Rules, chatbots and macros. They pull and transform data (text, email, URL, number, teammate, inbox, tag, boolean, date, and lists of those) so that one rule or macro can replace several hardcoded ones.

The link between the two is the Order shipped screenshot above. A dynamic variable can pick which application object an automatic reply reads. Per Front's dynamic variables article, they are available on the Enterprise plan or with the Autopilot add-on, and they include a Build with AI option that turns a plain-English description into a variable. Front's macros guide adds that a dynamic variable built for one macro cannot be reused in another.

Which Front plan do I need?

Templates and their variables need no upgrade. The extras sit higher up:

FeaturePlan, per Front's docs
Message templates and foldersAll plans
Rules that send or draft from a templateAll plans; Starter up to 10 rules, Professional up to 20
Application objects (app. variables)Latest Professional or above
Sequences with CSV variablesProfessional or above
Dynamic variablesEnterprise or Autopilot add-on
AI Compose on email draftsStarter, Professional, Enterprise; 200 requests per teammate per day

Front's pricing page lists Starter at $25, Professional at $65 and Enterprise at $105 per seat per month, billed annually, with Autopilot at $0.39 per conversation and Copilot at $20 per seat per month. Check it before you plan, since my Front pricing and Front review posts can lag behind a plan change.

What do Front's docs not say?

A few things I went looking for and did not find. I would test each before building a customer-facing rule on it.

  • Unfilled variables with no fallback. Blank or raw braces is not stated.
  • Variable names that do not exist. The docs do not describe what happens if you type a name by hand that is not in the list.
  • The full list. As noted, the screenshot shows two variables the written list omits, so the text may lag the product.
  • API behavior. Front's message template API shows templates as a name, subject and HTML body, and the create call takes that body with inline CSS. It does not say whether {{ }} variables in an API-created body are resolved the same way, so confirm by creating one and inserting it.
  • Translation. The docs for AI Compose (translate between 18 languages) do not say how a template with variables behaves when you translate the draft afterward.

None of this is a flaw so much as an edge. The template system is small and predictable, and that is mostly the appeal.

Where does AI fit next to message templates?

Templates fix the questions you have already answered. AI fills in what is left. Front's own AI Compose edits an existing draft, with spelling, tone, length and translation options, and Front AI Copilot drafts with custom prompts for the add-on or Enterprise customers. They work on a draft you or a template started. If you want the bigger picture, my Front AI overview compares the field.

The gap templates leave is the long tail. A team usually has templates for returns, billing and password resets, and then a queue of questions nobody wrote a template for. That is where a drafting agent earns its place, and where it can go wrong. An AI hallucination in a customer reply is worse than a blank box, which is why I test drafts against old conversations before enabling anything. My notes on AI first response automation and AI escalation cover when to stop automating.

smava shows the template-first pattern well, on a different helpdesk. It runs eesel on Zendesk, where one agent searches the macro library and drafts the matching macro word for word with the placeholders filled, from about 820 macros and help center articles. The draft lands on the ticket with Approve and Reject buttons, and eesel never sends it. The same shape would suit a Front team: your own template wording stays the source of truth, and a person decides what goes out. I have not seen eesel documentation for reading Front templates directly, so on Front the practical route is to upload the approved template text as knowledge.

If your Front inbox also uses Front AI email triage, my load balancing post covers what happens before the reply is written. For staffing and queue questions, read AI for support staffing.

Try eesel in your Front inbox

If your templates already handle the repeat questions but everything else starts from a blank reply box, eesel is built for that gap in Front. It reads your help center and past Front conversations, then drafts a reply as an internal comment on each new conversation, so a teammate starts with something to edit instead of typing from scratch. You can begin with drafts only and expand from there, keeping your template wording as the approved source.

A Front conversation assigned to eesel AI with an internal comment showing what it read before answering, as shown in the eesel docs
A Front conversation assigned to eesel AI with an internal comment showing what it read before answering, as shown in the eesel docs

For the setup steps, see my guide to adding AI to Front and the Front vs eesel comparison. Try eesel on a few real conversations before deciding.

Frequently Asked Questions

How do I add variables to a Front message template?
Type two opening curly brackets, {{, in the template editor and pick a variable from the list that appears. Front's help center says the list fills from saved contact details and custom field data. Save the template from the composer with New from draft or from Templates in settings. For the wider setup, see my AI canned responses guide.
What is the Front message template variable for the customer's first name?
{{recipient.first_name}}. Front splits the saved contact name on the first space, so "Sophia Marie Carpenter" gives "Sophia". If the name has a comma, first name is everything after it. Add a fallback such as {{recipient.first_name | 'there'}} for contacts with no name. Compare how Freshdesk canned response fields handle the same job.
What happens if a Front template variable has no value?
Front's help center says the variable will not populate and tells you to define a fallback in single quotes. It does not say whether an unfilled variable without a fallback shows as blank text or as the raw braces, so send a test to yourself first. My auto reply rule best practices post covers testing automatic replies.
Do Front message template variables work in automatic replies?
Partly. Recipient and account variables fill in when a rule sends a template. The user variables, which stand for the sending teammate, are blank because no teammate is tied to an automatic reply. Application object variables need dynamic variables to pick the object, which Front lists as Enterprise or Autopilot add-on only. See Front AI auto reply for the AI side.
Which Front plan includes message templates and variables?
Front's help center says message templates are available on all plans. Application objects need the latest Professional plan or above, and Sequences need Professional or above. Front's pricing page lists Starter at $25, Professional at $65 and Enterprise at $105 per seat per month, billed annually. My Front pricing guide breaks down what each tier adds.
Can I send a Front template to several recipients with each name filled in?
Not from one composer message. With several recipients, Front's variables only fill in for the first recipient in the list, and the docs point you to Sequences when each person needs their own copy. A template sent that way is the closest thing Front has to a mail merge. If you are weighing tools, my Front alternatives roundup compares the options.
Can an AI agent like eesel use Front message templates?
eesel's Front integration drafts replies as internal comments from your help center and past conversations. I could not find documentation saying it reads Front's message templates or fills their variables, so I would treat your templates as source material to upload as knowledge, not as something it inserts. See adding AI to Front for the setup.

Share this article