Setting up AWS to send call recordings to Zendesk Contact Center (writeback)

<body>
<p id="docs-hc-snippet" style="display: none;">To set up AWS to send call recordings and transcriptions back to Zendesk following a call (known aswriteback), turn on the required Lambda functions in AWS.</p>
<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="addon_contact-center">
<table>
<tbody>
<tr>
<td>
<strong>Add-on</strong>
</td>
<td>Contact Center</td>
</tr>
</tbody>
</table>
</div>

</div>
<div id="docs-ai-summary">
<p id="docs-ai-summary-toggle">Summary: <span id="up-triangle">◀</span><span id="down-triangle">▼</span></p>
<p id="docs-ai-summary-content">You can turn on AWS Lambda triggers to send call recordings and transcriptions back to the ticket after a voice call. Enable the required Kinesis and EventBridge triggers for the post-call Lambda functions, including the recording, transcript, and contact lens functions. After setup, call recordings and transcripts are added to the ticket for review and follow-up.</p>
</div>

<div class="body">

<p class="p">To set up AWS to send call recordings and transcriptions back to Zendesk following a call
(known as <em class="ph i">writeback</em>), turn on the required Lambda functions in AWS.</p>
<p class="p">AWS Lambda is a service that lets you run code without setting up or managing servers.
It's useful for tasks that only need to happen once in a while, like responding to a
user clicking a button or a file being uploaded. For the latest information about using
Lambdas in the AWS Console, see <a class="xref" href="https://docs.aws.amazon.com/lambda/" target="_blank">Amazon's product documentation</a>.</p>
<p class="p">Enabling writeback requires admins to activate the Kinesis and EventBridge triggers for
the post-call Lambda functions that handle recordings and transcripts.</p>
<div class="p">
<div class="note note">
<span class="notetitle">Note:</span> As of CloudFormation stack version 1.2.1, recordings and transcriptions are
handled by dedicated Lambda functions (<code class="ph codeph">RecordingIngestLambda</code> and
<code class="ph codeph">TranscriptIngestLambda</code>) rather than being processed inline by
the PostCall Lambda. The steps below apply to stack version 1.2.1 and later.</div>
</div>
<p class="p"><strong class="ph b">To configure your triggers</strong></p>
<ol class="ol" id="final_cc_writeback_pod__ol_qpk_5cw_zfc">
<li class="li">In your AWS console, access <a class="xref" href="https://console.aws.amazon.com/lambda" target="_blank">the Lambda page</a>.</li>
<li class="li">In the <strong class="ph b">Functions</strong> section, search for and select each Lambda function.<p class="p">The
following are the required functions:</p>
<ul class="ul" id="final_cc_writeback_pod__ul_rkt_plv_bkc">
<li class="li"><strong class="ph b">ZendeskVoicePostCall</strong></li>
<li class="li"><strong class="ph b">ContactLensEventsLambda</strong></li>
<li class="li"><strong class="ph b">CTRIngestLambda</strong></li>
<li class="li"><strong class="ph b">RecordingIngestLambda</strong></li>
<li class="li"><strong class="ph b">TranscriptIngestLambda</strong></li>
</ul>
</li>
<li class="li">Open each function, then on the Function overview page, select <strong class="ph b">Configuration</strong>
&gt; <strong class="ph b">Triggers</strong>.<p class="p"><img class="image img-screenshot" id="final_cc_writeback_pod__image_tlv_w4v_zfc" src="https://zen-marketing-documentation.s3.amazonaws.com/docs/en/lm_graphics_rs_39.png" width="550"></p>
</li>
<li class="li">If the trigger is <strong class="ph b">Kinesis</strong>, select it and then click <strong class="ph b">Edit</strong>.<p class="p"><img class="image" id="final_cc_writeback_pod__image_jc2_y4v_zfc" src="https://zen-marketing-documentation.s3.amazonaws.com/docs/en/lm_graphics_rs_40.png" width="550"></p>
</li>
<li class="li">On the Edit trigger page, click <strong class="ph b">Activate trigger</strong>.<p class="p"><img class="image" id="final_cc_writeback_pod__image_q2h_z4v_zfc" src="https://zen-marketing-documentation.s3.amazonaws.com/docs/en/lm_graphics_rs_41.png" width="550"></p>
</li>
<li class="li">Click <strong class="ph b">Save</strong>.</li>
<li class="li">If the trigger is <strong class="ph b">EventBridge</strong>, click the link next to the EventBridge
trigger.<p class="p"><img class="image" id="final_cc_writeback_pod__image_yn2_1pv_zfc" src="https://zen-marketing-documentation.s3.amazonaws.com/docs/en/lm_graphics_rs_42.png" width="550"></p>
</li>
<li class="li">On the <strong class="ph b">EventBridge</strong> rule details page, click <strong class="ph b">Enable</strong>.<p class="p"><img class="image" id="final_cc_writeback_pod__image_oxn_bpv_zfc" src="https://zen-marketing-documentation.s3.amazonaws.com/docs/en/lm_graphics_rs_43.png" width="550"></p>
</li>
<li class="li">Repeat the steps for each function in the list above.</li>
</ol>
<p class="p">Now, after a Contact Center voice call, recordings and transcriptions will be processed
and added to the Zendesk ticket.</p>
<div class="p">
<div class="note note">
<span class="notetitle">Note:</span> If a <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/9829206009242#topic_uzp_34z_hgc" target="_blank">dual-stack
upgrade</a> is performed, then these triggers must be turned off on the old
Lambda and only then turned on for the new Lambda.</div>
</div>
</div>
<script id="docs-schema-markup" type="application/ld+json">{
"@context": "https://schema.org",
"@type": "TechArticle",
"@id": "https://support.zendesk.com/hc/en-us/articles/9696142065306",
"url": "https://support.zendesk.com/hc/en-us/articles/9696142065306",
"headline": "Setting up AWS to send call recordings to Zendesk Contact Center (writeback)",
"description": "You configure AWS Lambda triggers so call recordings and transcriptions are sent back and added to the ticket after a voice call.",
"articleSection": "Setting up Contact Center",
"datePublished": "2025-09-09T20:18:18+00:00",
"dateModified": "2026-08-29T22:11:31.783809+00:00",
"inLanguage": "en",
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "https://support.zendesk.com/hc/en-us/articles/9696142065306"
},
"author": {
"@type": "Organization",
"name": "Zendesk",
"@id": "https://www.zendesk.com"
},
"publisher": {
"@type": "Organization",
"name": "Zendesk",
"@id": "https://www.zendesk.com"
},
"isPartOf": {
"@type": "WebSite",
"name": "Zendesk Help",
"@id": "https://support.zendesk.com/hc/"
},
"about": {
"@type": "SoftwareApplication",
"name": "Zendesk",
"@id": "https://www.zendesk.com",
"softwareAddOn": {
"@type": "SoftwareApplication",
"name": "Contact Center",
"@id": "https://support.zendesk.com/hc/en-us/sections/9248688983706"
}
}
}</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>