Skip to main content
The Freshchat integration uses a to read and write conversations in your workspace, plus a webhook you register in Freshchat that pushes events back to OpenCX.
Setup takes about 10 minutes. You need admin access in both Freshchat and your OpenCX organization.

Before you start

Only Freshchat admins can generate API tokens and register webhooks. Agent roles cannot reach the Admin Settings → Integrations & APIs page.
The AI posts replies in Freshchat as an agent you designate. Customers see that agent’s name and avatar on every AI message, so create a dedicated agent (for example OpenCX AI) rather than reusing a person’s account. The agent must exist in Freshchat before setup — OpenCX resolves it by email.
Required to save integration settings in Settings → Integrations.

Setup

1

Generate a Freshchat API access token

In Freshchat, open Admin Settings → Integrations & APIs and create a new API token.
  1. Label it OpenCX (or anything recognizable).
  2. Make sure the token has conversation management permissions.
  3. Copy the token immediately — Freshchat hides it after you close the dialog.
See Freshchat’s API documentation for the latest path if Freshchat moves it.
The token is bound to the admin that created it. If that admin is deactivated or loses permissions, the integration stops working.
2

Open Freshchat in OpenCX

In your OpenCX dashboard, go to Settings → Integrations and select FreshChat.
3

Enter your credentials

FieldValue
DomainYour Freshchat workspace domain — for example yourcompany.freshchat.com. Include the full domain, do not prefix with https://.
Access TokenThe API token you just copied.
Default Agent EmailThe email of the Freshchat the AI posts as. The agent must already exist in Freshchat.
Click Test & Save. OpenCX calls the Freshchat API with your credentials before saving — a wrong domain, bad token, or missing agent returns an error and nothing persists.
4

Pick a routing mode

The Auto Handle All Incoming Chats toggle controls which conversations the AI picks up.
The AI claims every unassigned Freshchat conversation by assigning it to the default agent, then replies. Use this when the AI is the front door to your chat support.
The AI only replies to conversations Freshchat has already assigned to the default agent email. Use this when your existing Freshchat routing rules decide which chats go to the AI — for example, business-hours routing or team-based assignment.
You can change modes anytime. New conversations follow the current setting; in-flight conversations keep their current assignment.
5

Copy your webhook URL

After saving, OpenCX displays a Webhook URL unique to your organization. Keep this tab open — you’ll paste it into Freshchat in the next step.
The webhook URL contains a signed token tied to your organization. Anyone with it can post events into your OpenCX pipeline. Treat it like a password.
6

Register the webhook in Freshchat

In Freshchat, open Admin Settings → Integrations & APIs → Webhooks and add a new webhook.
FieldValue
Endpoint URLPaste the OpenCX webhook URL.
Events to subscribeMessage Created, Conversation Resolved, Conversation Closed.
If Message Created is unchecked, OpenCX will never see inbound customer messages — the AI stays silent. If Conversation Resolved or Conversation Closed is unchecked, closures in Freshchat will not sync back to OpenCX.
Save the webhook.
7

Send a test message

Open your Freshchat widget as an end user and send a message. Within a few seconds:
  1. A new session appears in your OpenCX Inbox under the Web channel.
  2. The AI’s reply appears in the Freshchat conversation as the default agent.
The session back-links to Freshchat. Open the session from your inbox — the Freshchat conversation URL is stored on it so you can jump straight back into Freshchat to audit the rep view.
If the session doesn’t appear, jump to Troubleshooting.

Rotating the API token

Freshchat tokens are long-lived but admins sometimes rotate them for compliance. To rotate:
  1. Generate a new token in Admin Settings → Integrations & APIs.
  2. Paste it into Settings → Integrations → FreshChat and click Test & Save.
  3. Revoke the old token in Freshchat.
The webhook URL does not change when you rotate the token — the webhook is signed with a separate key tied to your organization.

Disconnecting

In OpenCX, open the Freshchat integration and click Disconnect. Then in Freshchat, delete the webhook you created. Conversations already exchanged stay in your OpenCX inbox; no new Freshchat messages flow in, and the AI stops posting in Freshchat.

Conversation flow

How inbound messages match to sessions, how handoff unassigns the chat, how resolutions sync.

Troubleshooting

Credentials failing, webhook silent, handoff note missing.

Overview

What the Freshchat integration does and how it fits with your team.

Human handoff

Global handoff rules and office hours.