Incorrect merge field syntax
The most frequent cause of custom values not rendering is a syntax error in the merge field tag.| Issue | Incorrect | Correct |
|---|---|---|
| Missing braces | {contact.first_name} | {{contact.first_name}} |
| Extra spaces | {{ contact.first_name }} | {{contact.first_name}} |
| Wrong field key | {{contact.firstname}} | {{contact.first_name}} |
| Typo in object | {{contct.first_name}} | {{contact.first_name}} |
Missing contact data
If the syntax is correct but the value still appears blank, the contact record may not have data in the referenced field.Check the contact record
Open the contact in Contacts and verify the field you are referencing has a value. For example, if your message uses
{{contact.company_name}}, confirm the Company Name field is populated.Review the data source
If leads come from a form or integration, confirm the form field is mapped to the correct CRM field. An unmapped field will leave the contact record empty.
Setting fallback values
Fallback values ensure your messages still read naturally when a custom value is empty. You can configure a fallback value by using the format:{{contact.first_name,fallback=there}}” becomes “Hi Sarah” or “Hi there.”
Date and time formatting
Date and time custom values can produce unexpected results if the format does not match your audience’s expectations.- Default format: Dates render in the format configured under Settings > Business Info > Date Format
- Timezone: Appointment times render in the timezone set for the account, not the contact’s local timezone
- Relative dates: Custom values like
{{appointment.start_date}}return the absolute date, not relative phrasing like “tomorrow”
If appointment times appear off by several hours, check that your account timezone under Settings > Business Info matches the timezone where your appointments occur.
Nested and complex custom values
Some custom values reference nested objects or related records. These require specific formatting.| Custom value type | Example syntax |
|---|---|
| Contact field | {{contact.email}} |
| Appointment field | {{appointment.start_date}} |
| Opportunity field | {{opportunity.monetary_value}} |
| Custom field | {{contact.custom_field_key}} |
| Trigger data | {{trigger.form_name}} |
Find the correct field key
Open the Custom Values picker in the workflow message editor. Hover over a value to see its full key. Use this exact key in your message.
Testing custom value output
Always test your messages before activating a workflow to catch custom value issues early.Use the test action feature
In the workflow builder, click the Test button on the message step. Select a contact with complete data to see how the message will render.
Send a test to yourself
Create a test contact with your own email and phone number. Enroll the test contact in the workflow and verify the message arrives with all values populated.
FAQs
Why does my custom value show the raw placeholder text like {{contact.first_name}}?
Why does my custom value show the raw placeholder text like {{contact.first_name}}?
This typically means the merge field syntax is incorrect or the field key does not exist. Delete the placeholder and re-insert it using the Custom Values picker in the message editor.
Can I use custom values in email subject lines?
Can I use custom values in email subject lines?
Yes. Custom values work in email subject lines, preview text, and body content. The same syntax and fallback rules apply.
Do custom values work in SMS and MMS messages?
Do custom values work in SMS and MMS messages?
Yes. Custom values are supported in SMS and MMS workflow messages. Keep in mind that long custom value output (such as full addresses) can push your message over the SMS character limit, causing it to split into multiple segments.