How do I integrate MyOperator with Freshdesk and manage the Freshdesk API key safely?
Quick answer
The integration pushes every incoming or outgoing MyOperator call into Freshdesk as a ticket—complete with caller details, agent information, and a recording link—then auto-assigns it to the matching agent (via email match). To set it up, you need:
- MyOperator Company ID and an After-Call webhook (POST JSON).
- Freshdesk domain and API key (found in Profile → Settings).
- Matching agent emails in both tools.
- One-time user sync, then test: answered call → assigned to agent; missed call → unassigned or fallback.
When should I use this guide?
Use it to automatically track calls in Freshdesk, eliminate manual ticket creation, or rotate an API key without breaking the MyOperator connection.
What this integration does
- Automatic ticket creation (inbound): Every incoming call via MyOperator becomes a ticket automatically.
- Click-to-call (outbound): Call buttons in Freshdesk dial via MyOperator; outcome & recording log back to the ticket.
- Agent/team assignment: Ticket routes to the right agent/group; fallback if no match.
- Detailed call logs: Activity shows status, start/end time, duration, department, and recording URL.
Prerequisite checklist
Item | Where to find it | Required? |
|---|---|---|
MyOperator Company ID | MyOperator → Manage → API | Yes |
Freshdesk domain | Browser URL | Yes |
Freshdesk API key | Profile → Settings → API | Yes |
After-Call webhook ON | MyOperator → API & Webhook → Calling Webhooks | Yes |
Matching agent emails | Freshdesk Agents ↔ MyOperator Users | Yes |
Find & secure your Freshdesk API key
Mint UI (most accounts)
- Sign in: https://yourdomain.freshdesk.com
Alt text: Login to the Freshdesk CRM using superadmin access
- Click your avatar (top-right) → Profile Settings.
Alt text: Click on the profile icon at the top right side of the screen and select Profile settings option from drop down
- In “Your API Key” panel, click Show → Copy.
Alt text: Click on the View API option on the screen as shown in the screenshot
Alt text: After that API key will show on the screen, just copy the same and use it accordingly
Classic UI (older accounts)
Avatar (top-right) → Your Profile → API Key panel → Show → Copy.
Security & rotation best practices:
- Treat the key like a password; store it in a password manager.
- Rotate the key if it was ever shared in chat or email.
- After rotation, update all integrations that used the old key.
Architecture at a glance
Flow | Trigger | Where configured | Result in Freshdesk |
|---|---|---|---|
Inbound | Customer calls your MyOperator number | MyOperator → Freshdesk connector/webhook | New ticket with call metadata + optional recording URL |
Outbound | Agent clicks to call from Freshdesk | Freshdesk UI/extension → MyOperator | Call placed; outcome/recording logged back to ticket |
Step-by-step setup
- Enable After-Call webhook:
- MyOperator → API & Webhooks → Calling Webhooks → Add Webhook → After-Call.
- Method = POST
- Content-Type = application/json
- URL = your Freshdesk listener
Alt text: After call webhook
- Connect Freshdesk:
- MyOperator → Integrations → Freshdesk → Connect. Enter Company ID, Freshdesk domain, API key, and optional filters.
Alt text: Connect Freshdesk
Alt text: Enter required details
Alt text: Integration successful
- Sync agents:
- Click Sync Users and confirm agent emails match exactly.
- Test: Place a call.
- A ticket should appear in Freshdesk in ≤ 3 s with the correct agent assigned. Expected toast: “Integration successful.”
Integration flow logic
- Validate Freshdesk domain + API key.
- Sync agents from Freshdesk → MyOperator.
Alt text: Agent synchronisation
- MyOperator sends After-Call webhook (POST JSON).
- Freshdesk API creates a ticket.
- Auto-assignment engine matches agent email; ticket routed.
- Agent works the ticket; call log and recording remain attached.
Ticket fields created
Freshdesk field | Description |
|---|---|
Subject | {Event} {Status} call from {caller} |
Status | Open |
Priority | Medium |
Description | Caller: {Caller Number}; Agent: {Agent Name}; Department: {Department Name}; Status: {Status of call}; Event: {Event of call}; Duration: {Duration of Call}; UID: {UID of call}; Recording: {Recording Link}; Start Time: {Start Time of Call} |
Filter options
Filter | Options | Default |
|---|---|---|
Ticket Type | create_new · update_existing | create_new |
Event Type | incoming · outgoing · both | incoming |
Call Status | connected · missed · both | connected |
Department | all · comma-separated list | all |
Alt text: Filters in Freshdesk integration
How tickets are assigned
- If Agent exists: Ticket is assigned to the responding agent.
- If the Agent doesn’t exist: An unassigned ticket is created.
- For each new incoming/outgoing call, a new Freshdesk ticket is created (unless update_existing is set).
Edge cases & limitations — when does it NOT work?
- Webhook disabled: No ticket created.
- Duplicate webhooks: Multiple tickets created.
- Agent email mismatch: Ticket remains Unassigned.
- API key expired: 401 errors until regenerated and updated.
- Rate limits: Large exports or syncs may hit Freshdesk API limits; stagger your requests.
- Sandbox vs. production: Keys are workspace-specific; ensure you’re in the right portal.
Troubleshooting
Scenario | Outcome | Fix |
|---|---|---|
Agent email mismatch | Ticket stays Unassigned | Sync users or correct email |
Webhook disabled | No ticket created | Enable After-Call webhook |
Duplicate tickets | Multiple webhooks active | Keep only one active webhook |
API key expired | 401 errors | Regenerate key, update integration |
Wrong domain | 401 errors |
Can’t see the API key?
- Ensure you’re viewing your own profile (not another user’s page).
- Ask an admin if API access is restricted by policy/plan.
Escalation & support
Open a ticket at support@myoperator.com with:
- Subject: Freshdesk-Integration-Issue
- Company ID (e.g., cmp_203948)
- Call SID (e.g., abc123)
- Webhook delivery log (raw JSON + HTTP status)
SLA: first response in 2 business hrs; resolution target < 8 hrs.
Keywords: Freshdesk-MyOperator integration, After-Call webhook, API key, agent sync, ticket assignment, call tracking, create_new, update_existing, incoming vs outgoing
Updated on: 19/01/2026