Providing multiple language support with dynamic content

<body>
<div class="article-banners">
<div id="docs-wmp-link">
<a href="https://support.zendesk.com/hc/en-us/articles/5411234991258-plan" rel="noopener" target="_blank">What's my plan?</a>
</div>

<div class="article-banner" id="suite_gpee">
<table>
<tbody>
<tr>
<td>
<strong>All Suites</strong>
</td>
<td>Growth, Professional, Enterprise, or Enterprise Plus</td>
</tr>
</tbody>
</table>
</div>

<div class="article-banner" id="support_pe">
<table>
<tbody>
<tr>
<td>
<strong>Support</strong>
</td>
<td>Professional or Enterprise</td>
</tr>
</tbody>
</table>
</div>

</div>
<div id="docs-ai-summary">
<p id="docs-ai-summary-toggle">Verified AI summary <span id="up-triangle">◀</span><span id="down-triangle">▼</span></p>
<p id="docs-ai-summary-content">Create dynamic content with language variants to support multiple languages. Use placeholders in automations, macros, triggers, and messages to automatically insert the correct language version based on user preferences. Manage translations by editing directly or exporting for translation. Track usage in business rules, ensuring consistent communication across languages without manually updating each instance.</p>
</div>

<div class="body">

<div class="note fastpath">
<span class="fastpathtitle">Location: </span> <span class="ph">Admin Center &gt; Workspaces &gt; Agent tools &gt; Dynamic
content</span>
</div>
<p class="p">If you <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/4408888770714" target="_blank">support multiple languages</a>,
you can create dynamic content with language variants that can be referenced
by a placeholder in automations, macros, triggers, custom fields, custom
agent statuses, and many of the system-generated messages. When the dynamic
content is referenced, the appropriate language variant text is inserted
based on the user's language. </p>
<div class="p">This article covers the following topics:<ul class="ul" id="topic-1__ul_wpq_pxc_3r">
<li class="li"><a class="xref" href="#topic_ag4_zgp_2fc">About using
dynamic content to support multiple
languages</a></li>
<li class="li"><a class="xref" href="#topic_qcy_eci_je">Creating dynamic
content and variants</a></li>
<li class="li"><a class="xref" href="#topic_enk_bdi_je">Using your dynamic
content</a></li>
</ul>
</div>
<div class="p">Related article:<ul class="ul" id="topic-1__ul_mfh_y5w_n3c">
<li class="li"><a class="xref" href="https://support.zendesk.com/hc/en-us/articles/9208752810650" target="_blank">Accessing and viewing
your dynamic content list</a></li>
</ul>
</div>
</div>
<div aria-labelledby="ariaid-title2" class="topic nested1" id="topic_ag4_zgp_2fc">
<h2 class="title topictitle2" id="ariaid-title2">About using dynamic content to support multiple languages</h2>
<div class="body">
<p class="p">To provide multiple language support, you can create dynamic content that
can then be referenced by 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. </p>
<p class="p">For example, the text of a message that you currently add to a macro can
be replaced by a dynamic content placeholder. </p>
<p class="p">This text: </p>
<div class="p">
<pre class="pre codeblock"><code>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</code></pre>
</div>
<p class="p">Is replaced with the placeholder referencing your dynamic content.</p>
<div class="p">
<pre class="pre codeblock"><code>{{dc.password_help}}</code></pre>
</div>
<p class="p">In the macro:</p>
<p class="p"><img class="image img-screenshot" height="NaN" id="topic_ag4_zgp_2fc__image_chp_jfx_n3c" src="https://zen-marketing-documentation.s3.amazonaws.com/docs/en/dc_macro_password.png" width="NaN"></p>
<p class="p">When the macro is applied to the ticket, the appropriate language variant
text is inserted into the comment based on the user's language. If
the end user's language is not one of your supported languages, the
default variant is used. </p>
<p class="p">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.</p>
<p class="p">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. 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 <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/10395044176538">Setting and detecting a user's
language</a>. </p>
<p class="p">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
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. </p>
<p class="p">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. 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). </p>
<p class="p">Finally, how you use dynamic content in automations, macros, and triggers
is tracked in the dynamic content itself so that you have an easy
way to monitor use. </p>
</div>
</div>
<div aria-labelledby="ariaid-title3" class="topic nested1" id="topic_qcy_eci_je">
<h2 class="title topictitle2" id="ariaid-title3">Creating dynamic content and variants</h2>
<div class="body">
<p class="p">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. </p>
<p class="p">You can manage the translation of your dynamic content in the following
ways: </p>
<div class="p">
<ul class="ul" id="topic_qcy_eci_je__ul_fkn_1dw_n3c">
<li class="li">Add translated content when you create the variants. You
can then manage updates to the translated content by
editing the variants. </li>
<li class="li">Create all the default language versions of the dynamic
content, then <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/4408894053530" target="_blank">export the dynamic
content</a> as CSV (comma separated values)
files and send them out for translation. When the
translations are complete, import the CSV files and
all the language variants are added. </li>
<li class="li">Use 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 using a third-party translation
agency. </li>
</ul>
</div>
<p class="p">After you create dynamic content and its variants, you can <a class="xref" href="#topic_enk_bdi_je"> use the dynamic
content</a> in automations, macros, triggers, and system
messages.</p>
</div>
<div aria-labelledby="ariaid-title4" class="topic nested2" id="topic_j55_5nq_2fc">
<h3 class="title topictitle3" id="ariaid-title4">Creating dynamic content</h3>
<div class="body">
<p class="p">You can create dynamic content to provide support in multiple languages.</p>
<div class="p">
<strong class="ph b">To create a dynamic content item</strong><ol class="ol" id="topic_j55_5nq_2fc__ol_oys_aph_le">
<li class="li"><span class="ph">In <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/4581766374554#topic_hfg_dyz_1hb" target="_blank">Admin Center</a>, click <img class="image" id="topic_j55_5nq_2fc__d8e1158" src="https://zen-marketing-documentation.s3.amazonaws.com/docs/en/ac_workspaces_icon.png">
<strong class="ph b">Workspaces</strong> in the sidebar, then select <strong class="ph b">Agent tools &gt; Dynamic content</strong>.</span></li>
<li class="li">Click <strong class="ph b">Add item</strong>. </li>
<li class="li">Enter a title for the dynamic content. </li>
<li class="li">Select the default language. <p class="p"><img class="image img-screenshot" height="NaN" id="topic_j55_5nq_2fc__image_ght_hnh_le" src="https://zen-marketing-documentation.s3.amazonaws.com/docs/en/dc_select_lang.png" width="NaN"></p>
<div class="p">
<div class="note note">
<span class="notetitle">Note:</span> The list of languages you can choose from is
based on your default language and the <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/4408888770714" target="_blank">additional
languages you support</a>. You can add language
variants for all of the languages that Zendesk
supports.</div>
</div>
</li>
<li class="li">Enter the text of the dynamic content. <p class="p">You
can use <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/4408886858138" target="_blank">Zendesk
placeholders</a>, such as ticket and user
properties, in your dynamic content. You can also
add other dynamic content placeholders. For HTML
formatting to render correctly, you must add <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/4408842967578" target="_blank">Liquid markup</a> to your dynamic
content.</p>
<p class="p">Placeholders of all types that are
used in dynamic content are limited to a maximum
of five levels of recursion.</p>
</li>
<li class="li">Click <strong class="ph b">Create</strong>. </li>
</ol>
</div>
<p class="p">After you create dynamic content, you need to <a class="xref" href="#topic_trk_vqh_le">add
variants</a> for each of your supported
languages. To do so now, click <strong class="ph b">Add variant</strong> in your
newly created dynamic content. </p>
<p class="p">Depending on how you're managing the translations, you can
instead first create all your dynamic content in your
default language, then <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/4408894053530" target="_blank">export the dynamic
content</a> to send out for translation. When
ready, import the files back into Zendesk and all of the
language variants are added to the dynamic content. </p>
</div>
</div>
<div aria-labelledby="ariaid-title5" class="topic nested2" id="topic_trk_vqh_le">
<h3 class="title topictitle3" id="ariaid-title5">Creating variants</h3>
<div class="body">
<p class="p">Variants are different language versions of the default variant for your dynamic content. </p>
<div class="p">
<strong class="ph b">To create a variant</strong><ol class="ol" id="topic_trk_vqh_le__ol_tgh_tov_le">
<li class="li"><span class="ph">In <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/4581766374554#topic_hfg_dyz_1hb" target="_blank">Admin Center</a>, click <img class="image" id="topic_trk_vqh_le__d8e1158" src="https://zen-marketing-documentation.s3.amazonaws.com/docs/en/ac_workspaces_icon.png">
<strong class="ph b">Workspaces</strong> in the sidebar, then select <strong class="ph b">Agent tools &gt; Dynamic content</strong>.</span></li>
<li class="li">Click the title of the dynamic content where
you'd like to add a variant.</li>
<li class="li">Click <strong class="ph b">Add variant</strong>. </li>
<li class="li">Select the variant language. <p class="p">The list of
languages you can choose from is based on the
<a class="xref" href="https://support.zendesk.com/hc/en-us/articles/4408888770714" target="_blank">languages you
support</a>.</p>
</li>
<li class="li">Set the variant to <strong class="ph b">Active</strong> or
<strong class="ph b">Inactive</strong>. <ul class="ul" id="topic_trk_vqh_le__ul_ecv_xww_n3c">
<li class="li">
<strong class="ph b">Active</strong> means that the variant is used
as the text for all users of that language. </li>
<li class="li">
<strong class="ph b">Inactive</strong> means that you're disabling
its use, and users of the inactive language will
see the default content variant. So, 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.</li>
</ul>
</li>
<li class="li">You can also optionally set the variant to be
the default variant, which overrides the current
default variant. <p class="p">Setting a language variant as
the default 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. </p>
<p class="p"><img class="image img-screenshot" height="NaN" id="topic_trk_vqh_le__image_gkh_jpv_le" src="https://zen-marketing-documentation.s3.amazonaws.com/docs/en/dc_new_variant.png" width="NaN"></p>
</li>
<li class="li">Enter the text of the variant language.</li>
<li class="li">Click <strong class="ph b">Create</strong>. </li>
</ol>
</div>
<p class="p">Variants are listed in the dynamic content item.</p>
<p class="p"><img class="image img-screenshot" height="NaN" id="topic_trk_vqh_le__image_ays_wzk_me" src="https://zen-marketing-documentation.s3.amazonaws.com/docs/en/dc_variants_list.png" width="NaN"></p>
</div>
</div>
</div>
<div aria-labelledby="ariaid-title6" class="topic nested1" id="topic_enk_bdi_je">
<h2 class="title topictitle2" id="ariaid-title6">Using your dynamic content</h2>
<div class="body">
<p class="p">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. The content is also shown to agents in the same language
as the end user. As with <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/4408886858138" target="_blank">Zendesk placeholders</a>,
to use your dynamic content you simply reference the placeholder. </p>
<p class="p">Every dynamic content item has a corresponding placeholder, located below the title of your
dynamic content. You can use the placeholder to refer to this
dynamic content in business rules, for example. Changing the title
after you've created the dynamic content does not change the
placeholder name. It remains the same regardless of any changes you
make to the title. </p>
<p class="p"><img class="image img-screenshot" height="NaN" id="topic_enk_bdi_je__image_o3x_wzw_n3c" src="https://zen-marketing-documentation.s3.amazonaws.com/docs/en/dc_new_dc.png" width="NaN"></p>
<p class="p">Once you use the placeholder, you can see where it's used in the
References section. References are tracked for automations, macros,
and triggers in the dynamic content. If you use a dynamic content
placeholder elsewhere, you'll need to track its use manually. </p>
<p class="p">You can use dynamic content placeholders in the following:</p>
<div class="p">
<ul class="ul">
<li class="li">Ticket field names, both system and custom (see <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/4408883892762" target="_blank">Using dynamic
content to translate your ticket
fields</a>)</li>
<li class="li">Custom drop-down labels</li>
<li class="li">Custom ticket statuses</li>
<li class="li">Ticket form names</li>
<li class="li">Agent signature (see <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/4408822471322" target="_blank">Adding an agent signature to
ticket email notifications)</a>
</li>
<li class="li">Help center (see <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/4408834328090#topic_wnw_fbg_yj" target="_blank">Adding translated
text</a>)</li>
<li class="li">Sign-up messages for end users (visible only when help
center is active), including: <ul class="ul" id="topic_enk_bdi_je__ul_yjm_fso_ne">
<li class="li">User registration message</li>
<li class="li">User welcome email</li>
<li class="li">Email verification email</li>
</ul>
</li>
<li class="li">Custom unified agent statuses</li>
<li class="li">Other dynamic content</li>
<li class="li">Macros</li>
<li class="li">Triggers and automations<div class="note note">
<span class="notetitle">Note:</span>
<ul class="ul" id="topic_enk_bdi_je__ul_el1_4yj_c3c">
<li class="li">Dynamic content in the body of a <strong class="ph b">Notify URL
target</strong> action always uses the default
variant.</li>
<li class="li">Dynamic content in the body of an
<strong class="ph b">Autoreply</strong> action must formatted as HTML to
appear properly.</li>
</ul>
</div>
</li>
</ul>
</div>
<p class="p">How an end user's language is set and detected and then used when displaying dynamic content is
explained in <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/4408888770714#topic_tmu_gno_ze" target="_blank">Setting and detecting a user's
language</a>. You can also find several examples of how
to build a workflow based on language in <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/10395046998170" target="_blank">Using a requester's language in your
business rules</a>.</p>
</div>
</div>
<script id="fast-path-script">
//<![CDATA[
const fast_path_style = document.createElement('style');
fast_path_style.innerHTML = `#article-body .fastpath{font-size:.9em;background-color:#f3f3f3;border:1px solid #d3d3d3;padding:10px 10px 8px;margin-bottom:16px}#article-body .fastpath::before{content:none!important}`;
document.head.appendChild(fast_path_style);
//]]>
</script><script id="ai-summary-script">
//<![CDATA[
const ai_summary_style = document.createElement('style');
ai_summary_style.innerHTML = `#styled-article-body{padding:0 0 0}#article-body #docs-ai-summary{background-color:#f3f3f3;border:1px solid #d3d3d3;padding:10px 10px 6px;margin-bottom:16px}#article-body #docs-ai-summary #docs-ai-summary-toggle{font-size:.9em;font-weight:700;margin-bottom:4px;cursor:pointer;display:flex;justify-content:space-between;align-items:center}#article-body #docs-ai-summary #docs-ai-summary-toggle #up-triangle{margin-left:auto;padding-right:10px;display:none}#article-body #docs-ai-summary #docs-ai-summary-toggle #down-triangle{margin-left:auto;padding-right:10px}#article-body #docs-ai-summary #docs-ai-summary-content{font-size:.9em;padding-left:25px;padding-right:25px;margin-bottom:12px}`;
document.head.appendChild(ai_summary_style);

const toggleAISummary = () => {
const summary = document.getElementById("docs-ai-summary-content");
const upTriangle = document.getElementById("up-triangle");
const downTriangle = document.getElementById("down-triangle");
if (summary.style.display === "none") {
summary.style.display = "block";
upTriangle.style.display = "none";
downTriangle.style.display = "inline";
} else {
summary.style.display = "none";
upTriangle.style.display = "inline";
downTriangle.style.display = "none";
}
};

document.getElementById("docs-ai-summary-toggle").addEventListener("click", toggleAISummary);
//]]>
</script>
</body>