AWS prerequisites for Zendesk for Contact Center

<body>
<div class="article-banners" translate="no">
<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="addon_contact-center">
<table>
<tbody>
<tr>
<td>
<strong>Add-on</strong>
</td>
<td>Zendesk for Contact Center</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">To set up the Contact Center, configure your AWS account by creating an Amazon Connect instance, enabling customer profiles and data streaming, and adding approved origins. For web chat, enable attachments and set a CORS policy. If using cases, email routing, or smart tools, enable cases, configure a verified domain in Amazon SES, and select an AI provider like Amazon Bedrock or Azure Open AI.</p>
</div>

<div class="body">

<p class="p">Before you set up Zendesk for Contact Center, you must configure specific components within
your AWS account.</p>
<div class="p">This article contains the following topics:<ul class="ul" id="topic_aqx_jnf_yfc__ul_bf5_nnf_yfc">
<li class="li"><a class="xref" href="#topic_qvf_pnf_yfc">Configuring Amazon Connect</a></li>
<li class="li"><a class="xref" href="#topic_cs1_qnf_yfc">Configuring cases, email, and smart
tools</a></li>
</ul>
</div>
</div>
<div aria-labelledby="ariaid-title2" class="topic nested1" id="topic_qvf_pnf_yfc">
<h2 class="title topictitle2" id="ariaid-title2">Configuring Amazon Connect</h2>
<div class="body">
<p class="p">You must do the following to configure Amazon Connect:</p>
<div class="p">
<ul class="ul" id="topic_qvf_pnf_yfc__ul_ntm_tnf_yfc">
<li class="li">
<strong class="ph b">Create the Amazon Connect instance</strong>. The CloudFormation template requires the
instance ARN (Amazon Resource Name) to be populated. See the Amazon Connect
documentation to <a class="xref" href="https://docs.aws.amazon.com/connect/latest/adminguide/amazon-connect-instances.html" target="_blank">create an Amazon Connect instance</a>.</li>
<li class="li">
<strong class="ph b">Enable customer profiles</strong> for the Amazon Connect instance. See the Amazon
Connect documentation to <a class="xref" href="https://docs.aws.amazon.com/connect/latest/adminguide/enable-customer-profiles.html" target="_blank">enable customer profiles</a>.</li>
<li class="li">
<strong class="ph b">Enable data streaming</strong> for the Amazon Connect instance and configure a valid
Kinesis Data Stream for the Contact Trace Records events. See the Amazon Connect
documentation to <a class="xref" href="https://docs.aws.amazon.com/connect/latest/adminguide/data-streaming.html" target="_blank">enable data streaming</a>. Note that a Kinesis Data
Stream is required, not a Kinesis Firehose.</li>
<li class="li">
<strong class="ph b">Add the Zendesk for Contact Center URL as approved origins</strong> for your Amazon
Connect instance. To do so, go to AWS Console &gt; Amazon Connect &gt; Instance alias &gt;
Approved origins, then enter the following two entries. Be sure to substitute the region
and workspace tags with the correct values.<ul class="ul" id="topic_qvf_pnf_yfc__ul_q1n_q5f_yfc">
<li class="li">https://engage.${LMRegion}.localmeasure.com</li>
<li class="li">https://${LMWorkspace}.${LMRegion}.localmeasure.com</li>
</ul>
</li>
<li class="li">
<strong class="ph b">Enable attachments</strong>, if you are using web chat as a channel. See the Amazon
Connect documentation to <a class="xref" href="https://docs.aws.amazon.com/connect/latest/adminguide/enable-attachments.html" target="_blank">enable attachments</a>. <p class="p">If you enable
attachments, you must configure a CORS policy for the S3 bucket where the attachments
are stored. To do so, navigate to S3, then select the bucket. Click the Permissions
tab, then paste the following configuration in the Cross-origin resource sharing
(CORS) section. Be sure to substitute the region and workspace tags with the correct
values.</p>
<div class="p">
<pre class="pre codeblock"><code>[
{
"AllowedHeaders": [
"*"
],
"AllowedMethods": [
"PUT",
"GET"
],
"AllowedOrigins": [
"https://${LMWorkspace}.my.connect.aws",
"https://engage.${LMRegion}.localmeasure.com",
"https://${LMWorkspace}.${LMRegion}.localmeasure.com"
],
"ExposeHeaders": []
}
]</code></pre>
</div>
</li>
</ul>
</div>
</div>
</div>
<div aria-labelledby="ariaid-title3" class="topic nested1" id="topic_cs1_qnf_yfc">
<h2 class="title topictitle2" id="ariaid-title3">Configuring cases, email, and smart tools</h2>
<div class="body">
<div class="p">You must do the following if you plan to use cases, email routing, or smart tools:<ul class="ul" id="topic_cs1_qnf_yfc__ul_rcd_4rf_yfc">
<li class="li">
<strong class="ph b">Enable cases</strong> for the Amazon Connect instance, if you plan to use Amazon Connect
cases. See the Amazon Connect documentation to <a class="xref" href="https://docs.aws.amazon.com/connect/latest/adminguide/enable-cases.html" target="_blank">enable cases</a>. </li>
<li class="li">
<strong class="ph b">Configure a verified Domain in Amazon Simple Email Services (SES)</strong>, if you plan
to use email routing. See <a class="xref" href="https://resources.localmeasure.com/articles/corporate-email-routing" target="_blank">Corporate email routing</a>.</li>
<li class="li">
<strong class="ph b">Select an AI provider</strong>, either Amazon Bedrock or Azure Open AI, if you plan to
use smart tools. See the <a class="xref" href="https://resources.localmeasure.com/articles/smart-tools-prerequisites" target="_blank">Smart tools prerequisites</a>.</li>
</ul>
</div>
</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="article-banners-script">
//<![CDATA[
const banner_style = document.createElement('style');
banner_style.innerHTML = `#styled-article-body{padding:0 0 0}#article-body #docs-wmp-link{text-align:right;font-size:.8em}#article-body .article-banners{margin-bottom:1rem}#article-body .article-banner{border:1px solid #ded7ca;background-color:#f6f0e6;margin:0 0 3px;line-height:1}#article-body .article-banner table{border-collapse:collapse;border:none;margin:0;width:auto}#article-body .article-banner td{padding:8px 6px 8px;border:none;font-size:.85em}#article-body .article-banner td:nth-child(2){border-left:1px solid #d0c9bd}#article-body .article-banner strong{font-weight:400;text-shadow:0 0 1px rgba(0,0,0,.5);letter-spacing:.5px}@media (min-width:1600px){#article-body .article-banner td{font-size:.8em}#article-body .docs-wmp-link{font-size:.7em}}`;
document.head.appendChild(banner_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>