How do MyOperator Call Disposition Webhooks work?

How do MyOperator Call Disposition Webhooks work?

⚡Quick answer –

A Call Disposition Webhook fires automatically when an agent adds a disposition to a call log in MyOperator. As part of the 2025 security update, all webhooks must now use HTTPS + POST + JSON and static parameters.

GET, dynamic query strings, XML/form-data, and non-HTTPS URLs are deprecated, and any webhook using them becomes view-only.

When should I use this guide?

– Review this FAQ if you need to:

(a) capture disposition data in your CRM,

(b) migrate an old GET-based webhook to the new POST standard, or

(c) View the complete field reference, sample payload, and troubleshooting steps


1. What is a Call Disposition Webhook? 

A Disposition Webhook sends real-time call and disposition information from MyOperator to your application. Anytime an agent adds a disposition to a call log, MyOperator will automatically trigger a webhook to the URL you provide.

This helps you:

  • Capture call + disposition data in your own database
  • Trigger CRM actions (e.g., create lead, update ticket)
  • Automate downstream workflows

2. What are Webhooks used for? 

Webhooks notify your system whenever something happens in your MyOperator account. Examples include:

  • Incoming call
  • Missed call
  • Call completed
  • Disposition added

The Disposition Webhook is specifically triggered after an agent submits a disposition.


3. What’s new in the 2025 webhook update? (Important) 

To improve security, reliability, and standardisation, MyOperator has simplified the webhook system.

Supported Now (2025+)

✔ HTTPS URLs only

✔ POST method only

✔ JSON format only

✔ Static parameters only

Deprecated Now:

❌ GET method

❌ HTTP (non-HTTPS) URLs

❌ Dynamic query string parameters

❌ XML / form-data / text payloads

❌ Legacy log filters (Mobile/SMS via query params)

If an existing webhook uses deprecated options, it becomes view-only.To modify, create a new webhook using the latest format.


4. When is a Disposition Webhook triggered?

The webhook fires when:

  • A call is logged AND
  • An agent adds one or more dispositions to the call

If multiple dispositions are added, multiple entries will appear in the _dsp array.


5. How do I add a Disposition Webhook? 

Step-by-step Setup:

  1. Go to MyOperator Panel → API & Webhook → Calling Webhook
  2. Click Add New Webhook
  3. Select Disposition Webhook

image.png

Alt text: selecting Disposition webhook

  1. Enter your HTTPS endpoint URL
  2. POST + JSON will be pre-selected (default & mandatory)
  3. (Optional) Add Custom Headers
  4. (Optional) Add Basic Auth credentials
  5. Click Save

Your webhook will now start receiving disposition data.


6. What format does the webhook send? 

Disposition Webhooks always send:

  • HTTPS POST request
  • Content-Type: application/json
  • Payload inside the key: myoperator

7. What security options are supported?

✔ Custom Headers — Useful for validating whether MyOperator sent the request.

✔ Basic Authentication — The webhook can include username & password using HTTP Basic Auth.


8. What were Query Parameters earlier? (And why deprecated?) 

Earlier (OLD System):

You could map call-log fields to query parameters like: ?caller_number=+919876543210

Why Deprecated?

  • Not secure
  • Error-prone
  • Confusing when mixed with POST
  • Inconsistent with industry standards

Replacement: information is now sent inside the JSON payload.


9. Full Query Parameter Field Reference (for legacy understanding)

(All of these must now be read from JSON instead.)

  • Caller number with country code — _cl
  • Caller number without country code — _cr
  • Creation date of log (epoch) — _ts
  • Event of log — _ev
  • Status of log — _su
  • UID — _pm.ui
  • Company ID — _ci
  • User phone number — _ld._rr._ct
  • Department name — _dn
  • Recording file name — _fn
  • Recording URL — _fu
  • Start time (epoch) — _st
  • End time (epoch) — _et
  • Push timestamp — _ms
  • Unique caller ID — _ai
  • Location — _se
  • Dispositions — _dsp array
  • Duration — _dr
  • Duration (minutes) — _drm
  • Department ID — _di
  • Custom fields — _pm or user-defined

10. Complete Call Log Field Reference (ALL Fields Included) 

Core Call Fields

  • _an — Anonymous User (1/0)
  • _ai — Call Log ID
  • _cl — Caller Number (formatted)
  • _cr — Caller Number (raw)
  • _cm — Contact Name
  • _cy — Country Code
  • _ev — Event Type
  • _fu — Recording URL
  • _fn — Recording File Name

Timestamps

  • _ts — Log timestamp (epoch)
  • _ms — Log timestamp (ms)
  • _st — Call start time
  • _et — Call end time
  • _ss — Duration (seconds)

Status & Source

  • _ns — Notification Status
  • _se — Location (State, Country)
  • _su — Call Status
  • _so — Source
  • _ty — Type (call/sms)

Company / Department

  • _ci — Company ID
  • _di — Department ID
  • _dn — Department Name

Duration

  • _dr — hh:mm:ss
  • _drm — minutes

Reference IDs

  • _ri — Reference ID
  • _ji — OBD Job ID
  • _ivid — Public IVR ID
  • _cri — Client Ref ID

Leg / Agent Details

  • _ld._rst — Ring start time
  • _ld._rr._na — Agent name
  • _ld._rr._id — Agent ID
  • _ld._rr._em — Agent email
  • _ld._rr._ct — Agent contact
  • _ld._rr._nr — Agent contact (CC included)
  • _ld._su — Leg status
  • _ld._st — Leg start time
  • _ld._et — Leg end time
  • _ld._dr — Leg duration
  • _ld._ds — Dial string
  • _ld._did — Last Caller ID
  • _ld._ac — Leg status (received/missed/transferred)

Transfer Details

  • _ld._tt._na — Transferred agent name
  • _ld._tt._id — Transferred agent ID
  • _ld._tt._em — Transferred agent email
  • _ld._tt._ct — Transferred agent contact
  • _ld._tt._nr — Transferred agent number (CC)

PM (Meta Fields)

  • ui — Call UID
  • is — Starred
  • ic — Is commented
  • ia — Is archived
  • ib — Is billable
  • vt — View type

Disposition Fields

  • _dsp._lb — Disposition Level (1/2)
  • _dsp._na — Disposition Name
  • _dsp._ag — The agent who added
  • _dsp._ts — Disposition timestamp

11. Troubleshooting

Webhook not firing?

  • Check if your endpoint is HTTPS
  • Ensure the webhook is not using deprecated settings
  • Verify your server's SSL certificate
  • Check response status in webhook logs

Receiving empty payload?

  • You must parse the POST body, not GET
  • Ensure your endpoint handles JSON correctly

Multiple dispositions?

Check _dsp array — it may contain multiple entries.


12. Migration Guide (Old → New) 

Old behavior

New requirement

GET method

❌ Deprecated → Use POST

HTTP URL

❌ Deprecated → Use HTTPS

Dynamic query params

❌ Deprecated → Use JSON

Form-data / XML

❌ Deprecated → Use JSON

Editable old webhooks

❌ Locked to view-only

To update: create a new webhook with POST + JSON + HTTPS.


13. Support 

If you need help implementing or migrating your Disposition Webhook:📧 support@myoperator.com


Keywords: MyOperator Disposition Webhook, POST JSON, webhook update 2025, call disposition API