Placeholders are references to ticket and user data that you include in the subject and body of email notifications. Without them it would be impossible to create automated messages. For the complete list of placeholders, and where they can be used, see Zendesk Support placeholders reference. When you specify placeholders, remember they are case sensitive.
Support includes inborn system rules that suppress placeholders in triggers in certain situations. Inborn system rules are rules that you cannot change, modify, or override, which dictate the default behavior of Support. These rules may sometimes make it seem like placeholders in triggers failed to work, but this isn’t a mistake. These rules protect you because they prevent spammers from using your account to distribute spam messages. For more information, see Understanding placeholder suppression rules.
Related articles:
Using placeholders in business rules
The placeholders are contained within matched double curly brackets and are, in the following example, references to ticket properties. If a placeholder references a field that does not have a value, then the placeholder will be blank in the automation, trigger, or macro.
Here’s an example of how placeholders are used in an email notification:
When you’re composing email notifications, you can view the list of placeholders by clicking View Available Placeholders.
For the complete list of placeholders, and where they can be used, see Zendesk Support placeholders reference. If you want more control on how placeholder data is selected and displayed, see Understanding Liquid markup.
When you apply a macro containing a placeholder to a ticket, the placeholder is evaluated according to what is currently true about the ticket. If the output of the evaluation returns any information, it is added as a ticket comment. For example, if a macro that returns the ticket ID is run on a ticket that has not been saved (and therefore has no ticket number yet), the ticket comments will not be updated. The macro is not re-evaluated when the ticket is saved. You could manually add the placeholder to the ticket using the placeholder {{ticket.id}}. This would allow it to be evaluated when you submit the ticket, and the value returned by the placeholder would be added to the ticket comments.
Using placeholders for custom fields
Placeholders are generated automatically, based on the ticket and current user properties. These are referred to as system placeholders.
When you add custom fields for tickets, users, or organizations, they are also available as placeholders. You can use placeholders for your custom fields as you would any other system placeholder.
Every custom field has a unique ID or key. When you create a custom ticket field, the ID is automatically generated for you. When you create a custom user or custom org field, you enter a unique key that cannot be edited once it is set.
Custom fields are not included in the list of available placeholders, but they follow this simple naming pattern that references their unique ID or key.
Ticket custom fields | {{ticket.ticket_field_<field ID number>}} |
User custom fields | {{ticket.requester.custom_fields.<field_key>}} |
Organization custom fields | {{ticket.organization.custom_fields.<field_key>}} |
For example, a custom ticket field like this has the following placeholder:
{{ticket.ticket_field_505156}}
The placeholder name for the options in a custom drop-down list follows a different pattern. There's only one placeholder for all three drop-down list options because this is a reference to the option that was selected. The ID is for the custom drop-down list because options do not have IDs. Again, this is a reference to the single option that was selected.
Ticket custom drop-down fields
Ticket custom multi-select fields |
{{ticket.ticket_field_option_title_<field ID number>}}
{{ticket.ticket_field_<field ID number>}}
Note: The {{ticket.ticket_field_option_title_<field ID number>}} placeholder displays the title of the selected options while {{ticket.ticket_field_<field ID number>}} displays the tags associated with the selected options.
|
User custom drop-down fields | {{ticket.requester.custom_fields.<field_key>.title}} |
Organization custom drop-down fields | {{ticket.organization.custom_fields.<field_key>.title}} |
For example, the placeholder for a drop-down list for a custom ticket field would look like this:
{{ticket.ticket_field_option_title_515416}}
To find the ID for a custom ticket field
- In Admin Center, click
Objects and rules in the sidebar, then select Tickets > Fields.
- Locate your custom field in the list and then click Edit from the Options menu.
The ID is displayed in the right column:
To find the key for a custom user field or a custom organization field
- Open the configuration for User fields or Organization fields.
- In Admin Center, click
People in the sidebar, then select Configuration > User fields.
- In Admin Center, click
People in the sidebar, then select Configuration > Organization fields.
- In Admin Center, click
- Click the name of a custom field.
The field key appears in the properties panel on the right.
Using placeholders for a checkbox custom field
You can use placeholders in combination with Liquid markup to verify if a checkbox (custom field) has been selected on a ticket and provide customized output based on the checkbox status (checked, or not checked).
When you use Liquid markup if/else/case
statements for checkbox custom ticket fields, remember that the checkbox field has a value of 0 or 1, not false or true. For example:
{% if ticket.ticket_field_<insert field_id here> contains 1 %}
checkbox is checked
{% else %}
checkbox is unchecked (or null)
{% endif %}
45 Comments
@Administrador and Diogo Maciel,
It is possible to list the "tag" value (natively) for drop-down options, by utilizing " ticket.ticket_field_id ". To clarify, for drop-down options, this is the behavior:
This is not true for all Field types, but it is possible for single-select drop-down fields.
~Konstantin
Hey Sydney! You can use the following placeholder format to pull the current user custom user field information:
For drop-down custom user fields, you'll want to use this format:
Hi Mike Konstantin,
Thank you for providing this solution! And thank you GoFundMe for pointing it out. I've updated the article with this information.
Shoutout to Mike Konstantin for that perfect solution! Exactly what I needed. That info should be added to the article, Anton de Young / Joyce
the checkbox logic should actually be swapped.
should actually be
reason: when a checkbox is not visible on a form; it returns null value. This accounts for explicitly checked boxes
Hi there Scott!
This happens sometimes because the {{ticket.url}} placeholder does not include "http://" or "https://" as you can see on our Placeholder Reference article. This might affect if the url is clickable.
The easiest solution is to use the {{ticket.link}} placeholder, which does include this, or add the missing section yourself, like this:
http://{{ticket.url}}
https://{{ticket.url}}
I hope this helps!
Are you looking for the placeholder to use to pull the phone number value on the ticket requester's user field? If so, you can use the placeholder {{ticket.requester.phone}},
which pulls the ticket requester's phone number on file. Check our Zendesk Support placeholders reference for more information.
If it is about the acceptable phone number format that you are inquiring about, phone numbers should be formatted with the internationally standardized E.164 format. E.164 numbers can have a maximum of fifteen digits and are usually written as follows: [+][country code][subscriber number including area code].
Hi Andy,
Where are you attempting to use these? I created a macro in my test account that adds a comment including these two placeholders:
{{ticket.organization.name}}
{{ticket.requester.organization.name}}
If the ticket requester has an associated Organization, the placeholders resolve and display the organization name. I also added these placeholders to the notification text box in my "Notify requesters and CCs of comment update" trigger, and they worked there as well. I think your custom field placeholders above should also work, so long as you're substituting the field ID into the placeholder as instructed in the documentation above.
If you're still not able to get these to work, I'd suggest chatting with our support team (Option 1 here: Contacting Zendesk Customer Support), so they can help you troubleshoot.
I encourage you to create a new post in the General Product Feedback topic in our community to engage with other users who have similar needs and discuss possible workarounds. Conversations with a high level of engagement ultimately get flagged for product managers to review when they go through roadmap planning.
Specific examples, details about impact, and how you currently handle things are helpful for our product teams to understand the full scope of the need when working on solutions. You may also want to review the Product feedback guidelines and how to write an effective feedback post [https://support.zendesk.com/hc/en-us/community/posts/360004391547-Product-feedback-guidelines-how-to-write-a-good-feedback-post].
We truly value customer feedback and your voice and votes in the forums help influence future Zendesk functionality.
the checkbox logic should actually be swapped.
should actually be
Screen Value: {{% if ticket.ticket_field_9508015623188 contains 1 %}}
Screen Value line, from above, does not work for getting if the checkbox was selected.
I updated both these Placeholder articles to include the following sentence:
"When you specify placeholders, remember they are case-sensitive."
https://support.zendesk.com/hc/en-us/articles/4408886858138
https://support.zendesk.com/hc/en-us/articles/4408887218330
I'm marking this ticket as Solved. Let me know if you disagree.
Hi,
Is it possible to create custom Zendesk Placeholders within our Macros, which can then be updated through the API? I'm noticing no API call I make, despite success, changes the field value within, ie, I want to add {{iban}} and {{phone_number}}.
If you can share to use the placeholder that you are using, maybe we can determine what could be causing this behavior.
Wooo, thanks for doing that, Colleen Hall!
Is there any place holder like {{user_email}} which can display the user email id on the help center page.
For example:
This show the full name of the user who is logged in on the help centre
Hello, do placeholder work in the Email HTML template. For example, If I add an HTML signature and I use {{current_user.phone}} where the phone number would go, should it display the agent that responded to the ticket's phone number in the HTML signature? I have been unable to get any {{current_user.XXX}} placeholders to show anything in the HTML template.
https://support.zendesk.com/hc/en-us/articles/4408843597850-Contacting-Zendesk-Customer-Support
I'm afraid the system placeholders like current_user.phone won't work when used within email templates. An alternate solution is to use the signature field in the user profiles; you can use these placeholders within that field. But, at this time, the signature field does not support HTML. You may only use Markdown formatting.
If you can, I suggest that you upvote or add a comment to this product feedback thread - Feature Request: HTML or Rich Text Editor for Signatures.
Thanks Albert!
Hi,
I am using a drop-down control.
When using the placeholder: ticket.ticket_field_option_title_id, I see that I am getting the display value and not the internal label value.
How can I get the internal label, or is it not possible?
Regards
Hi Chin Sin,
Placeholders cannot be used to populate custom ticket fields, unfortunately. In addition, we advise against using triggers and webhooks to update tickets using the API as this can potentially lead to race conditions which may result in unexpected behavior. Here’s an article which goes in to more detail:
https://support.zendesk.com/hc/en-us/articles/4408882855578-Can-I-use-a-trigger-and-a-webhook-to-update-tickets-
One possible way you could achieve the same result is using a background ZAF app that makes a PUT request to the tickets API in response to an event. You can find out more about the apps framework here:
https://developer.zendesk.com/documentation/apps/app-developer-guide/using-the-apps-framework/
I hope this helps! Feel free to reach out with any questions.
Tipene
Edit: See following comment for clarification around testing custom fields and placeholders
Unfortunately, it doesn't work for the web widget (Classic) chat trigger.
However, it works for web widget Messaging. I have tested the following scenario.
1. Created placeholder using dynamics content for each brand
2. Added my custom placeholder "" into triggers and macros.
Please notice content text is different for each language.
It works for both cases.
Hope it helps
Hello, what is the correct format for the "phone" placeholder? For example, for as French number such as ... (+33) 12 45 78 78
Ke Zhao,
Out of curiosity, are you running all of this in one command? If so, it won't work (from similar testing and work I've performed), as Zendesk doesn't understand who the Requester is until the ticket is actually saved with the Requester's details. It is best to perform this within two steps (first create the ticket, then have automation apply the Macro).
~Konstantin
I've tried every variation of trying to get anything in the organization to come back and its always blank
{{custom_fields.custom_cust_id}}},
{{ticket.organization.name}}
{{ticket.requester.organization.name}}
{{ticket.requester.organization.external_id}}
{{ticket.requester.org..custom_cust_id}}
{{ticket.requester.organization.custom_fields..custom_cust_id}}
{{ticket.requester.organization.custom_cust_id}}
Ah I see, thank you for clarifying. Yes, unfortunately placeholders will only display the value of the field and not the associated tag. The tag present in dropdown fields' values serve mainly to have a referenceable value internally for things like searches, viewsa and reports. I am sorry for the inconvenience.
I'm creating a placeholder for the chat in Zendresk. I need a placeholder that automatically modifies the brand of the casino we are serving, as well as the name of customers and agents changing when adding the placeholder. Is that possible?

I have tried the placeholder below and it worked on my end. Make sure to use Cmd/Ctrl + Shift + V when pasting to avoid converting it to HTML.
Hi Everyone!
Does {{ticket.ticket_field_<field ID number>}} works with a text field?
I've tried on macro and it didn't work. Value in a comment is always blank.
Hi Joyce,
I am trying to use a custom user field in a macro but the format is coming back reading:
2022-01-15 00:00:00 +0000
The data in the customer profile shows "January 15, 2022" which matches the format I want to use in my Macro. Can you help me solve this please?
Please sign in to leave a comment.