To provide multiple language support, you can create dynamic content that can then be referenced via a placeholder in automations, macros, triggers, custom fields, custom agent statuses, and by many of the system generated messages such as those sent in email notifications when a user creates an account.
As an example of how dynamic content is used, the text of a message that you currently add to a macro can be replaced by a dynamic content placeholder.
This text:
If you forget your password, just click the "Help! I don't know what to enter here!" link on the login page.
Thanks and have a great day!
The MondoCam Support Team
Is replaced with this placeholder:
{{dc.password_help}}
When the macro is applied to a ticket, the content is inserted into the ticket. If you're already using Zendesk placeholders, you're already familiar with how this works. The primary difference between the Zendesk placeholders and dynamic content is that you define the content that is dynamically inserted into your business rules and communications with your customers.
Dynamic content is a combination of a default version of the text (typically in the same language as your default language) and variants for every other language that you support. In the example above, the default variant is in English. If your Zendesk also supports French and German, for example, you create variants for each of those languages. Then, based on the end user's language, the appropriate variant is automatically used when the dynamic content is referenced and displayed to the end user.
If the end user's language is not one of your supported languages, the default variant is used.
Dynamic content provides you with a way to streamline support for multiple languages. You reference one placeholder and the appropriate language is displayed based on the end user's language preference. How an end user's language is detected is described in Setting and detecting a user's language.
Of course when you support multiple languages, you must translate your content into the languages you support in your Zendesk. There are a number of ways to manage the translation of your default content. You can create and edit all your language variants directly in your Zendesk or you can export all your dynamic content and send it off to a translation agency. You then import the dynamic content back into your Zendesk and all language variants are added.
If you later update the default content, the variants are flagged as being potentially out of date with the default content. Meaning that if you update the default content you probably need to also update the translations in the variants. When an update is required, you simply repeat the export and import process to update the content. See Managing the translation of your dynamic content.
You can also manually set variants to be inactive so that they are not used. You might do this if your variant isn't ready to be made public (for example, if the translation is incomplete or incorrect).
Finally, how you use your dynamic content in automations, macros, and triggers is tracked so that you have an easy way to monitor their use.
Creating dynamic content
When you create a dynamic content item, you select the default language and enter the text of the dynamic content. You then create variants for each of your supported languages.
The list of languages you can choose from is based on your default language and the additional languages you've chosen to support in the Localization settings page. You can add language variants for all of the languages that Zendesk supports.
- In Admin Center, click
Workspaces in the sidebar, then select Agent tools > Dynamic Content.
- Click Add item.
- Enter a title for the dynamic content.
- Select the default language.
- Enter the text of the dynamic content.
- You can use Zendesk placeholders in your dynamic content. For example, you can add placeholders for ticket and user properties. See Zendesk data object (placeholders) reference. You can also add other dynamic content placeholders.
- Click Create.
When you create a dynamic content item, the detail page is displayed. Below the title of the dynamic content, you'll see the placeholder that you'll use to refer to this dynamic content in your automations, macros, triggers and in system messages.
Once you use the placeholder, you'll see where its been used in the References section.
You can edit the dynamic content title by selecting Edit.
The text of your default content, shown above in the Variants section, can be edited by clicking the Edit button in the table row.
After you create your language variants, they are listed in the Variants section of the page.
Creating variants
Variants are different language versions of the default variant.
- Select Add Variant.
- Select the variant language. The list of languages you can choose from is based on the languages you've chosen to support in the Localization settings page. For more information, see Configuring your Help Center to support multiple languages.
- Set the variant to Active or
Inactive.
Active means that the variant will be used as the text for all users of that language. When you set a variant to Inactive, you're disabling its use and users of the inactive language will instead see the default content variant. In other words, if the default content is in English and you make the German variant inactive, German users see English content. Typically, you set a variant to inactive if the variant's content is not ready to be made public (i.e., the translation is not complete).
- You can also optionally set the variant to be
the default variant, which overrides the current
default variant.
Setting a language variant as the default variant is useful when you want to create dynamic content specifically for a group that supports a language other than your default language. For example, a Japanese language support group can set default variants as Japanese. When you change the default from one variant to another, the status of the other variants changes to Out of date.
- Enter the text of the variant language.
Depending on how you're managing the translation of the content, you can instead first create all your dynamic content in your default language and then export the content and send it to a translation agency. An export file is created for each of the languages that your Zendesk supports. You then import the files back into your Zendesk and all of the language variants are added to the dynamic content. For information about managing the translation workflow, see Managing the translation of your dynamic content.
- Click Create.
Here's an example of the password help dynamic content variant in German (translation courtesy of Google Translate).
When you add variants, they are listed as shown here:
In the list of variants, you'll see that the default content is flagged as the default. You can edit each variant by clicking Edit. You can also delete all the variants that are not the default. To delete the default variant you need to either set a different variant as the default or delete the entire dynamic content item. See Deleting dynamic content.
- Active
- Inactive
- Active (Out of date)
As described below (Filtering the dynamic content list by status), you can quickly view the dynamic content items that contain variants that are out of date.
Managing dynamic content
You can view all of your dynamic content from the Dynamic content page. To add variants to a dynamic content item, or to edit an item, click the item's title.
The list of dynamic content items contains the title, the date of the last update, and the status.
- Current, which means that the default content and all the variants are up to date.
- Out of date, which means that one or more of the variants are out of sync with the default content. In other words, the default content was updated and one or more of the variants were not. This status gives you a quick way to locate content that may need a translation update.
Filtering the dynamic content list by status
You can filter the list by status. By clicking the drop-down list located at the top left of the dynamic content table, you can filter the list using the following options:
Filtering by the out of date status allows you to quickly see the dynamic content that needs to be updated.
Organizing and viewing dynamic content by category
You can also organize your dynamic content into categories. This is done in the same way that you can organize your macros: just add the category name and double colons (::) to the beginning of the dynamic content title. You can then filter the list by category.
Deleting dynamic content
You can delete dynamic content only if it is not being referenced by your automations, macros, or triggers. How your dynamic content is being used is shown in the References section of each dynamic content item.
By clicking the link to the reference you can edit the business rule and remove the dynamic content placeholder. Once all the references have been removed, you can delete the dynamic content item.
- In Admin Center, click
Workspaces in the sidebar, then select Agent tools > Dynamic Content.
- Locate the item you want to delete
- Click Delete.
- You'll be prompted to confirm that you want to delete the item. Click OK. If there are no references to the dynamic content, the item is deleted. If there are references, the item is not deleted. You can then remove the references and delete the item.
Deleting variants
Any of the non-default variants in a dynamic content item can be deleted at any time. References to the dynamic content placeholder do not affect the variants. To delete the default variant, you need to make another variant the default or delete the entire dynamic content item.
-
In Admin Center, click
Workspaces in the sidebar, then select Agent tools > Dynamic Content.
- Locate the item that contains the variant you want to delete and open it.
- Locate the variant and click Delete.
- You'll be prompted to confirm that you want to delete the item. Click OK.
Searching your dynamic content
The content in your dynamic content variants can be searched. The dynamic content search tool is located on the Dynamic content page.
You can search for any text string in any of the languages you've used in your dynamic content variants.
Managing the translation of your dynamic content
You can manage the translation of your dynamic content in the following ways:
- You can add translated content when you create the variants in your Zendesk. You can then manage updates to the translated content by editing the variants.
- You can create all the default language versions of the dynamic content and then export them as CSV (comma separated values) files and send them out for translation. When the translations are complete you import the CSV files back into your Zendesk and all the language variants are added.
- You can do a combination of both these approaches; translating and editing some variants in-house and using the export/import process to create and update the language variants via a third-party translation agency.
For information about exporting and importing your dynamic content, see Exporting and importing dynamic content.
Using your dynamic content
The dynamic part of dynamic content is that the correct version of the content is automatically shown to the end user based on their language. As with the Zendesk placeholders (see Zendesk data object (placeholders) reference), to use your dynamic content you simply reference the placeholder.
Using the 'Password Help' dynamic content as an example, you can use the dynamic content by adding the placeholder into a comment in a business rule, such as a macro.
Every dynamic content item has a corresponding placeholder (it's shown below the title of the dynamic content).
In this example, it's {{dc.password_help}}.
When the macro is applied to the ticket, the appropriate language variant text is inserted into the comment. If the end user's language is not one of your supported languages, the default variant is used.
Dynamic content placeholders can be used in your automations, macros, and triggers. You can also use your dynamic content for common system messages such as those used in the sign up process. For example, the text contained in the user welcome email message can be replaced with a dynamic content placeholder.
You can use dynamic content placeholders in the following:
- Ticket field names, both system and custom (see Using dynamic content to translate your ticket fields)
- Custom drop-down labels
- Ticket form names
- Agent signature (see Adding an agent signature to ticket email notifications)
- Help center (see Adding translated text)
- Satisfaction reasons (See Working with satisfaction reasons)
- Sign-up messages for end users (visible only when Guide
is enabled), including:
- User registration message
- User welcome email
- Email verification email
- Macros
- Triggers and automationsNote: When dynamic content is used in the body of a Notify URL target action, the default variant is always used.
- Custom unified agent statuses
- Other dynamic contentNote: Placeholders of all types that are used in dynamic content are limited to a maximum of five levels of recursion.
How an end user's language is set and detected and then used when displaying dynamic content is explained in Setting and detecting a user's language. You can also find several examples of how to build a workflow based on language in Using a requester's language in your business rules.
24 Comments
Hey I had a question, I'm providing our contact form in multiple languages, with some custom fields that have specific values in each of them but are not reused anywhere else, currently I created dynamic items for each one of the fieldvalues so they are translated when needed, but is there an easier way to do this with text/items that are not used in multiple places?
Hi Omar and thank you for reaching out. I think you have used the best way to handle the situation. And I can't provide another way that would be less tedious or more efficient. Enjoy the rest of your day Omar, and stay safe!
Jeff | Zendesk Advocate | EMEA
support@zendesk.com
Hey, I have a question. I want to add a variant to the dynamic content but the button 'Add variant' is not there. We are using the Professional plan. An extra language is already configured so I don't really get why I don't see the button 'Add variant'?
Hello @...,
I will have to look directly into your account to see what is exactly going on, therefore I will open a private ticket and reach out to you directly.
Have a great day!
I would like to be able to use dynamic content in replacement for listing out tags to exclude. For instance we use two list boxes in our forms throughout; "Remind Me In" and "Remind Customer In". These are use for dynamically determining time for automations to fire based on user selections. The challenge is excluding these tags from other automations that might be doing the same thing for specific static times. This is a list of many tags in the list box to exclude where we list over and over again. We have also added more fields to this list. Instead of replacing the list of tags over and over again in many automations we would prefer to have a DC field where we could make this tag list and update once but propagate throughout many automations.
See attached example in an automation (with an error)
Would it be possible to generate dynamic content items from a manifest.json (like settings)?
Hi Alex,
I don't believe that's possible, but it is possible to create Dynamic Content variants and items via the API – see Dynamic Content Items and Dynamic Content Item Variants in our API documentation.
Most of the links of this article are out of date
Hi Basile,
We've updated the article today – let us know if you still see anything amiss!
Hi @... - is there any consideration to add the ability to use the search function to be able to search for the placeholder or dynamic content name?
If I have dynamic content in triggers etc that need to be updated, searching by a text string (which I don't have readily available) is essentially useless.
Would be interested to hear if others out there find the existing functionality fit for what I see as the most likely use-case.
Chris S. This has been requested many times and always greeted by support and PMs with "Can't you just scroll through your 500 pages of dynamic content until you find what you are looking for, you lazy people???"
This page doesn't link to anything in the article above :( I'd love to know what the specific references are so I could organize our system better
I'll let our documentation team know that link needs to be updated. Thanks for the heads-up@
Line breaks putted in dynamic content and then used as macros for messaging or chat disappear :/
Hi, is there a possibility to see a complete list in ZD or export a list of the names given to dynamic content and all variants? I mean to be able to search for e. g. "Coupon" (possibly also in other languages) and see at first glance all dynamic contents that contain this word + their variants.
P. S. I agree with Chris S. A search function for the name of DC instead of text parts would be way easier.
Hi there! I'm adding the French version to the dynamic content of our Help Page, following all the instructions (same as I did with the other languages), but the French help centre is still missing these translations. Can you advise me what I'm doing wrong?
Upon checking, your concern has been resolved through a ticket. For visibility, the resolution was achieved by creating a new variant for your FR dynamic content.
Hi Ira,
This can only be done by utilizing Zendesk APIs, mainly List Items and List Variants.
I think we're missing a little 'copy' button near the freshly created placeholder in order to copy/paste easily. In general, would be appreciated near any placeholder :)
It seems Dynamic Content placeholders don't work in the Agent signature of a Brand. Is that correct?
Also, Dynamic Content placeholders don't seem to work in the Agent Signature on an agent's profile.
My Dynamic Content is working just fine when it's in a ticket comment, but can I use it in either of these places that don't require action from the agent?
I have tested it on my end. The value of the dynamic content was rendered without any issues.
ok, thanks Dane. Then it may be the logic I've put into the Dynamic Content. Are there any values that should that might not work inside Dynamic Content when the Dynamic Content placeholder is placed in certain areas?
{% if ticket.brand.name == Brand 1 %}phone number 1
{% elsif ticket.brand.name == Brand 2 %}phone number 2
{% elsif ticket.brand.name == Brand 3 %}phone number 3
{% else %}ALL ELSE
-
{% endif %}
You can use dynamic content placeholders in the following:
We need most of our macros in both Dutch and English and got the tip to use DC for this. However, DC does not allow formatting like bold text. Neither can I add attachments in dc. How would you advise to solve this?
For example we have a macro with appointment confirmation. We use bold headers to divide crucial information. Next to that in the macro we added a pdf with important information in our brand style. Using DC we cannot use the headers and all text is flat. An attachment cannot be added to the variants, so how do we make sure the macro adds the correct pdf (Dutch or English, depending on the language of the customer)?
This seem basic options to me when DC is the way to go for translations of macros. At least you'd want to be able to use the same formatting/options as you can use in the Comment option in macros.
Even easier would be if you could set up translations of macro's the same way as Guide articles; select the variants of the macro/Comment (or whatever you want to translate) WITHIN the macro, so you don't have to edit contents anywhere else than in the macro itself. It's so cumbersome you have to go to dynamic contents if you want to correct a spelling mistake or change a sentence, instead of being able to do this in the macro itself...
Hey Cheyenne Oorebeek! This is great feedback as this functionality isn't something that is available with Dynamic Content currently. I would highly recommend that you follow and upvote this feedback post Add formatting (rich text editor) to dynamic content so our product managers can see how wanted this is by folks. An alternative option that you could look into in the meantime is using liquid markup in your macro: Using Liquid markup to support multiple languages in automations, macros, and triggers.
Please sign in to leave a comment.