A contact is an end-user that has or will interact with your account. Communication with contacts occurs via a channel. A contact can be:
- created within the contacts tab
- automatically generated when a new phone number interacts with your account via a channel
- or imported into your account via an XLS spreadsheet.
From the contacts tab, you can:
- view, add, edit or remove contact attributes.
- organize your contacts into groups.
- view each contact's message history and any messages they may be scheduled to receive by clicking on the contact.
- add, edit and prioritize contact addresses
Each contact is assigned attributes, called contact fields, that hold values such as their names, phone numbers, and any other individual information you want to include. Contact fields are divided into two types, default fields and custom fields, and they can hold three types of values: text, numeric, or date & time.
Default fields include the contact's name, addresses, and groups:
Custom fields are created by you. Click here to learn how.
Each contact has an address, or URN, to which messages from your account are sent. Contact addresses are a type of default field, just like Name and Groups. Addresses represent the ways in which you can connect with your contacts. The most common address type is a Phone Number, though a contact can also have a Twitter Handle, Telegram Identifier, Email Address, and any External Identifier you wish to add. Each contact can be assigned multiple addresses of the same type - meaning you can now assign multiple phone numbers to a single contact. A contact's addresses can be prioritized, in which case they'll appear on a contact's profile page in the order in which they're prioritized:
Additionally, only a contact's prioritized address will appear in the contacts tab view:
Channel Types & Contact Address Types
The table above maps each channel type to its corresponding contact address type. Each contact may have multiple addresses of the same type (e.g. multiple phone numbers). A contact's address type priority will dictate which channel type will send messages to the contact. If you have multiple channels of the same type connected to your account, the channel that the contact last initiated contact with will be prioritized. Contacts can be locked-in to a relationship with a specific channel (they'll only received messages from this channel) under three conditions:
- You have multiple channels of the same type connected to your account.
- The contact's address type priority corresponds with the channel type (e.g. phone number) that possess multiple channels (e.g. multiple phone numbers).
- The contact initiates contact through an incoming message.
@contact variables represent contact field values specific to each individual contact present in a flow.
@contact - The full name of the contact if one is set, otherwise their number, e.g. "Ben Haggerty"
@contact.name - Also the full name of the contact if one is set, otherwise their number, e.g. "Ben Haggerty"
@contact.first_name - The first name of the contact if one is set, otherwise their number, e.g. "Ben"
@contact.tel - The phone number of the contact in human readable format, e.g. "(206) 555 1212"
@contact.tel_e164 - The phone number of the contact in E164 format, e.g. "+12065551212"
@contact.groups - The groups in which the contact has been placed.
@contact.uuid - The universally unique identifier assigned to each contact.
@contact.[contact-field] - any contact fields you've created for your contacts, e.g. "@contact.age"
Referencing a Contact within a Flow
There are two ways to reference contacts and their fields within a workflow:
@contact - references the contact receiving the message. In most cases, this is the active contact - the person whose responses are being handled by the workflow. When using the Send a Message to Someone Else action, @contact refers to the contact or group of contacts to which the message is being sent.
@step.contact - references the contact who sent the last message handled by the workflow. In most cases, this is also the active contact. When using the Send an SMS Response action, @step.contact and @contact are the same contact. When using the Send a Message to Someone Else action, @step.contact refers to the contact who has reached the Send a Message to Someone Else action within the flow, thus triggering it to send.
Here's an example:
Since the message created by the Send a Message to Someone Else action is being sent to Edward, @contact.first_name will be replaced with Edward's first name. @step.contact.name and @step.contact.tel will be replaced with the name and phone number of the patient that just registered via the workflow containing the Send a Message to Someone Else action.
For more information about variables, visit the Flow Variable Reference.