Skip to main content
Email is the one channel that routes through the Ticketing API path, not Sunshine. Every email handoff creates (or appends to) a Zendesk so your reps work email the way Zendesk is designed to handle it — tickets with SLAs, triggers, and macros.

Pre-requisites

Set up email forwarding first. No email handoff has anything to ticket until inbound mail is reaching OpenCX — start with Connect Email and come back here.
  • Email forwarding configured — see Connect Email.
  • Zendesk Ticketing API credentials, webhook, and trigger saved — see Ticketing API.

How conversations land in Zendesk

Setting up

1

Confirm email forwarding works

Open Channels → AI Email in the OpenCX dashboard. Your forwarding address should be listed and verified. Send a test email and confirm it reaches the Inbox.
2

Confirm Zendesk Ticketing is connected

In Settings → Integrations, open Zendesk → Ticketing. The status should show Active and the webhook URL should be displayed.
3

Confirm the Zendesk trigger is active

In Zendesk Admin Center → Triggers, verify the OpenCX trigger fires on Ticket | Is | Updated with a public comment present. See Ticketing API setup for the exact configuration.
4

Trigger a test handoff

Send a test email to your connected address and respond with something that causes the AI to escalate. Alternatively, go to the Inbox and manually hand off the session.
5

Verify the ticket in Zendesk

A ticket should appear in Zendesk tagged opencx, opencx_handedoff, and opencx_channel_email. Check:
  • The summary is the ticket description.
  • The full transcript is the first comment.
  • Any you mapped are pre-filled.
  • The View session in OpenCX link opens the right session.
6

Reply and verify sync

Post a public reply from Zendesk. Confirm it arrives in the customer’s email and shows as an agent message in the OpenCX Inbox.

What the rep sees

  • A Zendesk ticket tagged opencx, opencx_handedoff, and opencx_channel_email.
  • Conversation summary as the description, full transcript as the first comment.
  • Custom fields pre-filled by the AI on the fields you mapped at Settings → Ticketing → Zendesk AI Fields.
  • external_id set to the OpenCX session UUID — filter Zendesk views by to find the ticket later.
  • A View session in OpenCX link in the first comment — one click opens the full AI reasoning, tool calls, and handoff event.

Channel-specific details

If the same contact re-engages before the ticket is closed, OpenCX appends to the existing ticket instead of opening a new one. Your reps keep context; your reports don’t inflate.
When your rep posts a public reply in Zendesk, the webhook fires and OpenCX delivers the reply to the customer’s original email thread. Internal notes stay private — they never reach the customer.Double-check the trigger payload uses {{ticket.latest_public_comment}} — the wrong variable leaks internal notes. See Troubleshooting.
Attachments the customer sends by email are uploaded to Zendesk and appear on the ticket. Attachments your rep adds to a public reply sync back through the customer’s email thread (subject to your email provider’s attachment limits).
By default OpenCX creates a ticket only on handoff. If your compliance or SLA reporting requires a ticket for every email, reach out to support — this flag is set per organization.

AI Email Support

The channel itself — forwarding setup, flow, troubleshooting.

Ticketing API setup

Credentials, webhook, trigger, AI Fields, tags.

Zendesk overview

What else Zendesk lights up across every channel.

Troubleshooting

Tickets not created, replies not syncing, AI fields blank.