Using variables
You can easily customize your responses or templates with dynamic content like your recipient's name by using our variables templating engine.
A response like this:
Hi {{ recipient.first_name | default: 'there' }},… if it matches a recipient.first_name would render something like this
Hi Philippe,
… and if it didn't match anything something like this:
Hi there,
Getting started
Adding variables
Adding a variable to a response is as easy as clicking the {{ icon in the response composer:
A new modal will open where you can easily create your variable without knowing the exact syntax.

You can also create a response with dynamic content that entirely change depending if a variable is present or not.
It would look like this:
... if there's no recipient first name, it will render like this:
Hello,
... and if there's a recipient's first name, it will render like this:
Hi Philippe,
Build forms
When adding a variable, you don't have to use one that matches a data point provided by Missive (recipient, user). You can create a variable linked to no data, like in this screenshot:

Make sure to use underscores and dots instead of spaces.
When inserted in a draft, a form will ask the Missive user what should the value be:
Instead of using text placeholders (that you might forget to replace), this technique lets you create forms your team always has to fill in when inserting a response.
Liquid.js
Our templating engine is based on liquid.js and supports all of its tags and filters. Make sure to read the documentation if you want to go deeper and create complex logic.
Objects
recipient object
recipient objectThe recipient data is matched by first looking into the user contacts for matches based on the message recipient address, then on the message data itself.
Labels
Contact labels can be used to scope the search. For instance {{ recipient.work.phone_number }} would search only in phone numbers with the label work.
recipient.handle
Handle of the recipient(s). This depends on the message type, can be an email address, a phone number, etc.
frodo@missiveapp.com
+1 (155) 555-555
@frodo
recipient.name
First and last name(s) of your recipient(s).
Philippe Lehoux
recipient.first_name
First name(s) of your recipient(s).
Philippe
recipient.middle_name
Middle name(s) of your recipient(s).
L.
recipient.last_name
Last name(s) of your recipient(s).
Lehoux
recipient.email
Email address(es) of your recipient(s).
frodo@missiveapp.com
recipient.phone_number
Phone number of your recipient(s).
+1 (155) 555-555
recipient.url
URL(s) associated with your recipient(s).
https://missiveapp.com/
recipient.physical_address
Physical address(es) associated with your recipient(s).
123 Missive Street
Quebec, QC, G1K 3B4
Canada
recipient.twitter
Twitter username(s) associated with your recipient(s).
@frodo
recipient.facebook
Facebook username(s) associated with your recipient(s).
Philippe Lehoux
recipient.nickname
Nickname of your recipient(s).
Chewbacca
recipient.prefix
Prefix(es) of your recipient(s).
Mr.
recipient.suffix
Suffix(es) of your recipient(s).
PhD
recipient.gender
Gender(s) of your recipient(s).
Male
recipient.file_as
File as value of your recipient(s).
ACME
recipient.phonetic_first_name
Phonetic first name(s) of your recipient(s).
recipient.phonetic_last_name
Phonetic last name(s) of your recipient(s).
recipient.phonetic_middle_name
Phonetic middle name(s) of your recipient(s).
recipient.custom.order_amount
Access your recipient(s) custom contact data. Both variations Order Amount and order_amount would be accessible using the same key: recipient.custom.order_amount
$99
user object
user objectThe user object data is matched with the logged-in Missive user (you).
user.first_name
First name of the user
Philippe
user.last_name
Last name of the user
Lehoux
user.name
Name of the user
Philippe Lehoux
user.email
Email address of the user
frodo@missiveapp.com
user.avatar_url
URL of the user avatar
https://...
user.status
Status of the user
Working from home
user.status_emoji
Status emoji of the user
🏠
conversation object
conversation objectThe conversation object data is matched with the current conversation.
conversation.id
The ID of the conversation
d85eed67-5ac2-477b-aa27-521f01eb9783
message object
message objectThe message object data is matched with the current draft.
message.id
The ID of the message
d85eed67-5ac2-477b-aa27-521f01eb9783
message.from_handle
Handle of the sender. This depends on the message type, can be an email address, a phone number, etc.
frodo@missiveapp.com
+1 (155) 555-555
@frodo
message.from_email
Email address of the sender
info@missiveapp.com
message.from_name
Name of the sender
Philippe Lehoux
message.from_first_name
First name of the sender
Philippe
message.from_last_name
Last name of the sender
Lehoux
Last updated