How a ticket lands on the AI
The match step is the load-bearing one. OpenCX uses the Freshdesk ticket ID to decide whether to append to an existing session or open a new one, and ingests the whole ticket thread — customer messages, public agent replies, and private notes — so the OpenCX Inbox mirrors what your reps see in Freshdesk. The ticket’s source picks the OpenCX channel: email tickets become Email sessions, portal/chat/feedback-widget tickets become Web sessions, and phone tickets become Phone sessions. Channel settings — including autopilot vs assist mode — apply per channel.Intake gate
The Auto Handle All Incoming Tickets toggle on the Freshdesk integration settings picks which new tickets the AI answers. See Connect Freshdesk for setup.- Auto-handle all incoming tickets — the AI answers every new ticket.
- Assigned-only — the AI only answers new tickets assigned to the OpenCX agent or placed in your configured default group.
How the AI replies
Autopilot — public reply
Autopilot — public reply
On channels with autopilot, the AI posts a public reply as the OpenCX agent. On email tickets this emails the requester; on portal tickets it appears in the thread.
Assist mode — private draft
Assist mode — private draft
On channels with assist mode, the AI posts its answer as a private note the customer never sees. Your rep reviews and sends it. The optional assist-mode footer is appended so drafts are recognizable.
opencx plus opencx_autopilot or opencx_assist_mode, so you can build Freshdesk views and reports on AI-touched tickets.
When the AI hands off
The AI decides it cannot resolve
Handoff triggers follow your global handoff rules — topics not in the Autopilot allowlist, explicit customer asks for a human, confidence thresholds, office-hours rules.
A private handoff note lands on the ticket
OpenCX posts a private note containing the AI summary and detected sentiment.
The note is Freshdesk-internal — your customer never sees it. Your rep reads
the summary before typing.
OpenCX reopens and routes the ticket
The ticket moves back to Open, then your configured routing applies:
unassign it, unassign + set the handoff marker for your Freshdesk automation,
assign it to your handoff agent, or assign it to your handoff group. If a
configured target is invalid, OpenCX falls back to unassign + marker — a
handed-off ticket is never left assigned to the AI.
Assignment is the switch. Reassign the ticket back to the OpenCX agent in
Freshdesk and the AI resumes answering on the next customer message. Assign it
to a human and the AI goes quiet. No OpenCX-side toggle needed.
When the AI resolves
The AI session auto-resolves
OpenCX’s auto-resolution logic closes the session when the conversation is complete — for example, after a successful answer with no further customer response.
When a rep changes status in Freshdesk
Status syncs on every webhook delivery:- Rep sets the ticket to Resolved or Closed → the OpenCX session closes as resolved.
- Ticket is reopened (by a rep or a customer reply) → the closed OpenCX session reopens.
- Ticket is marked spam or deleted → the linked session closes.
Channel-specific details
Attachments are re-hosted, both directions
Attachments are re-hosted, both directions
Customer and agent attachments on the ticket are copied into OpenCX storage (Freshdesk’s links expire) and land on the session, so the AI sees them alongside text. AI replies can carry attachments back onto the ticket. Freshdesk caps attachments at 20 MB total per reply or note.
Contact identity comes from the requester
Contact identity comes from the requester
OpenCX resolves the ticket requester to a contact using the email and phone on
the Freshdesk contact record. If requester details are missing, the session is
still created — just without contact details.
Freshdesk tags and group mirror onto the session
Freshdesk tags and group mirror onto the session
Own replies are not re-ingested
Own replies are not re-ingested
Freshdesk fires the update webhook for the AI’s own replies too. OpenCX
recognizes the OpenCX agent’s messages and skips them, so the AI never answers
itself and nothing is duplicated. Re-delivered webhooks are deduplicated by
message ID.
Historical tickets from before the integration
Historical tickets from before the integration
On first connect, OpenCX backfills open and pending tickets from the last ~180 days as read-only history. The AI never replies to backfilled tickets — it only engages from the next customer message after connection.
Related Documentation
Troubleshooting
AI not replying, handoff not routing, tickets not closing.
Connect Freshdesk
Re-verify credentials, automation rules, and routing settings.
Overview
What the Freshdesk integration does and how it fits with your team.
Human handoff
Global handoff rules and office hours.