How does MyOperator log—and sometimes fail to log—calls in Zoho Recruit, Zoho Bigin, and Zoho Desk?
How MyOperator logs calls and activities in Zoho Recruit, Zoho Bigin, and Zoho Desk
Quick answer
- Every inbound, outbound, or missed call is pushed to Zoho as a Call Activity.
- If the number matches an existing record, the activity is appended; if no match exists, MyOperator auto-creates the record, assigns an owner, and then logs the call.
- Calls are not logged when PhoneBridge is disabled, the OAuth token is expired, or you use Customer-first / Parallel dial modes that break owner mapping (see section 5) (#2-5-when-does-myoperator-not-log-a-call).
Table of Contents
- When to use this guide
- Prerequisites
- Five-step configuration
- What happens after each call type
- When does MyOperator not log a call?
- Edge cases & field-length limits
- Expected outcome & test commands
- Troubleshooting & common errors
- Best-practice dial modes
- Data-flow diagram
- Related articles
1. When to use this guide
- Real-time call logging for candidates (Recruit), deals (Bigin), or tickets (Desk)
- Click-to-call, owner auto-assignment, and duplicate prevention
- A deterministic recipe that agents and AI bots can follow
2. Prerequisites
Item | Requirement/location |
|---|---|
Zoho editions | Recruit Enterprise, Bigin Express+, Desk Professional+ |
MyOperator plan | Growth or higher (CRM integrations) |
Roles | Zoho Admin + MyOperator Admin |
Services | PhoneBridge and OAuth 2 enabled |
Browser | Latest Chrome, Firefox or Edge |
Number format | E.164 ( |
3. Five-step configuration
Step | Action | UI path/command | Expected result |
|---|---|---|---|
1 | Enable After-Call Webhook | MyOperator → Settings → Webhooks → AfterCall → Enable | ‘Webhook enabled’ badge |
2 | Install & authorise Zoho app | Zoho Marketplace → MyOperator → Install & Authorise | OAuth consent screen |
3 | Map fields | MyOperator → Integrations → Zoho → Map Fields | Field mapping saved |
4 | Enable PhoneBridge | Zoho Settings → Channels → Telephony → PhoneBridge → Enable → MyOperator | ‘Connected’ badge |
5 | Place a test call | Call your IVR or use Click-to-Call | Call Activity appears in Zoho ≤ 5s |
Optional token check
curl --location GET 'https://www.zohoapis.com/crm/v4/settings/apis' \
--header 'Authorization: Zoho-oauthtoken <YOUR_TOKEN>'
4. What happens after each call type
Event | MyOperator action | Zoho result |
|---|---|---|
Incoming – match | Log Call Activity (agent, duration, recording-URL) | Activity appended to the record |
Incoming – no match | Create record → log activity | New record + activity |
Outgoing (Click-to-Call) | Log outbound Call Activity | Activity added to the target |
Missed call | Log the Missed Call activity if the toggle is on | Activity logged or skipped |
Toggle at MyOperator → Integrations → Zoho → Missed Call Logging
5. When does MyOperator not log a call?
Scenario | Why logging fails | Quick fix |
|---|---|---|
PhoneBridge disabled | Telephony channel offline | Enable PhoneBridge in Zoho |
OAuth token expired | Token revoked or password reset | Re-authenticate in MyOperator |
API limit 250 req/min | 429 errors; logs delayed or dropped | Throttle or request a higher limit |
Do-Not-Disturb number | Legal compliance | Remove the number from the DND list |
Customer-first / Parallel dial | Owner mismatch | Use Balanced / Serial-wise |
Duplicate numbers | Same phone in multiple modules | Deduplicate or set module priority |
Field mapping deleted | Mandatory Phone field removed | Re-map fields |
Sandbox mismatch | Prod PBX → Sandbox Zoho | Use matching environments |
6. Edge cases & field-length limits
- Module priority: Zoho attaches to the first record found (Lead > Contact > Ticket)
- Subject ≤ 255 characters (truncated)
- Description ≤ 4,000 characters (truncated)
- UID ≤ 50 characters
- Recording URL stored as plain text (HTTPS not validated)
7. Expected outcome & test commands
Test GET (sanity)
curl --location GET 'https://www.zohoapis.com/crm/v4/activities' \
--header 'Authorization: Zoho-oauthtoken <YOUR_TOKEN>'
HTTP 200 + JSON array = credentials OK.
Sample POST payload for After-Call Webhook
{
"uid": "zoho.1693821.44210",
"call_type": "Inbound",
"phone": "+15559876543",
"module": "Leads",
"record_id": "350450000012345001",
"agent_email": "agent@example.com",
"call_start": "2025-09-04T08:12:10Z",
"call_end": "2025-09-04T08:13:40Z",
"duration_sec": 90,
"recording_url": "https://files.myoperator.co/rec_12345.mp3",
"status": "Connected"
}
8. Troubleshooting & common errors
Symptom | Likely cause | Resolution |
|---|---|---|
Activity missing | Webhook disabled | See configuration Step 1 |
INVALID_OAUTH_TOKEN | Token expired | Re-authenticate in MyOperator |
Duplicate records | Mixed phone formats | Run Zoho Data Deduplication |
Long logging delay | API throttled | Check Zoho Developer Console |
Need more help? Email support@myoperator.com (Tier-2 SLA ≤ 4 h).
9. Best-practice dial modes
Dial mode | Accuracy | When to choose |
|---|---|---|
Balanced (recommended) | ★★★★★ | Even distribution; correct owner mapping |
Serial-wise | ★★★★☆ | Sticky-agent experience; reliable logging |
Customer-first | ★★☆☆☆ | Quick customer reach; the owner may mismatch |
Parallel | ★☆☆☆☆ | Fast ring-all; logs can fail → emergencies only |
Flip-side summary: faster dial modes risk mis-assigned activities.
10. Data-flow diagram
Alt-text: decision tree showing when a call is logged versus not logged in Zoho.
11. Related articles
- What prerequisites and setup steps are required for the Freshsales CRM ⇄ MyOperator integration?
- What fields does the Freshsales–MyOperator integration push into Call Activities?
- How a Webhook Works?
Keywords: Zoho integration • MyOperator call activity • PhoneBridge • Customer-first dial • E.164 • After-Call Webhook • logging failures
Updated on: 11/09/2025