How do I configure and manage Webhook v2 in MyOperator?

How do I configure and manage Webhook v2 in MyOperator?

⚡Quick answer -

Webhook v2 lets Owners or Admins send real-time call and WhatsApp events to any HTTPS endpoint through a single, authenticated POST webhook. Create the webhook in Admin Panel → APIs & Webhooks → Webhooks (v2 tab), set authentication, pick the sub-events you need, and save. The system retries once after 3 seconds on failure and logs every unsuccessful delivery.

When should I use this guide?

Use these steps when you need to:

• Push MyOperator call or WhatsApp data into a CRM, ERP, or custom app.

• Diagnose failed deliveries, duplicate events, or missing agent data.




1. Prerequisites & Access

Role & plan matrix:

Action

Owner / Admin

Manager

Call Agent

View list

Create / Edit / Delete

Enable / Disable

View failure logs

Other limits:

• Feature path: Admin Panel → APIs & Webhooks → Webhooks → v2 tab

• Max 10 webhooks per company

• HTTPS endpoints only (HTTP rejected)

• Supported auth: None, Basic, API Key (Header or Query)







2. Step-by-step setup

1. Open Webhooks (v2)

    • Click “+ Add Webhook” (or “Create first Webhook” if empty).
    • The Add New Webhook form opens as a full-page two-panel layout. The left panel is for Endpoint Details; the right panel is for Events.



2. Endpoint details

In the left panel, locate the 'Webhook URL' field (marked with a red asterisk — required) and enter the full HTTPS URL of the endpoint where you want events delivered.

Field Detail

Specification

Field

Webhook URL

Required?

Yes (*)

Default

https:// (placeholder)

Validation

Must start with https://. HTTP URLs are rejected with: 'Valid HTTPS URL required.'

Character limit

2048

Why it matters

All payloads are delivered to this URL via HTTP POST. If the URL is wrong or unreachable, all events will fail.



3. Authentication: 

      • None – public/IP-whitelisted endpoints 
      • Basic – Username + Password 
      • API Key – Choose Header or Query, then Key Name + Key Value








4. Additional custom headers (optional):

    1. Below the Authentication section, the Additional Headers panel is always visible.
    2. Click '+ Add Header' to add a custom HTTP header row. Each row has a Key field (required) and a Value field (optional).

Field Detail

Specification

Key

Required per row. Duplicate keys show an inline error.

Value

Optional.

Max rows

10 custom headers per webhook.

Why it matters

Use this for routing metadata (e.g., X-Source: myoperator) or content negotiation headers your server requires.





5. Event selection

    • Collapse/expand “Call events” or “WhatsApp events”.
    • Tick the parent box for all, or choose sub-events individually. Example (SkillBridge Academy): 
      • Call Summary, Call Disposition, Message Received → “3 selected”.

Call Events — 6 Sub-Events

Sub-Event

When It Fires

Start of the call

Call reaches MyOperator and a new channel is created. event_type: call.initiated

Start Dialing

System starts dialing to any leg (agent or customer). event_type: call.dial_begin

Call Responded

Any leg answers the call. event_type: call.answered

Call Ended

Call is terminated by caller. Includes all leg data and call metadata. event_type: call.end

Call Summary

Enriched final summary — adds agent{} objects with name, email, extension, and department{} data. event_type: call.summary

Call Disposition

Triggered after an agent submits a disposition tag. Not sequenced — no event_sequence field. event_type: call.disposition

WhatsApp Events — 8 Sub-Events

Sub-Event

When It Fires

Message Sent

Any text or template message is sent. event_type: message.sent

Message Received

The customer sends a message to your WhatsApp number. event_type: message.received

Message Delivered

Message is delivered to the customer's device. event_type: message.delivered

Message Read

The customer reads the message. event_type: message.read

Message Failed

Send fails due to invalid number, block, or network error. event_type: message.failed

Track URL Clicked

The customer clicks a tracked URL inside a template. event_type: message.link_tracking

Conversation Assigned

A conversation is assigned to an agent. event_type: conversation.assign

Conversation Closed

A conversation is closed. event_type: conversation.close






6. Save the webhook

    • Click “Save Webhook” → toast “Webhook created” → list view shows Status = Active.


7. Manage afterwards

  • From the Webhooks list, click the three-dot action menu (⋮) on the row you want to edit.
  • Select 'Edit'. The Edit Webhook form opens with all fields pre-populated.
  • The Save button is disabled until you make at least one change.
  • To temporarily stop event delivery without deleting the webhook: click ⋮ → Disable.


    • A confirmation modal appears: 'Are you sure you want to disable this webhook?' Click Yes.


    • Status changes to Inactive (grey). The action menu now shows Edit | Enable | Delete.
    • To re-enable: click ⋮ → Enable. Status changes back to Active (green)
  • To delete a webhook, click ⋮ → Delete.
    1. A modal appears with a warning icon and the message: 'This action permanently deletes the webhook.' You must type 'DELETE' in uppercase to confirm.
    2. Click the Delete button. The row is removed from the list. This action is irreversible.

*Note: There is no bulk delete or bulk enable/disable in this version. Each webhook must be managed individually.






3. How retry & failure logging works

• 3 delivery attempts per event (1 original + 2 retries)

• Retry delay: 3 seconds

• A webhook moves to Status = Failed after 3 non-2xx responses inside 24 h.

• View logs: ⋮ → Failure logs → Inspect (eye icon) shows pretty-printed JSON and HTTP status.






• Success on any retry resets the failure counter to 0.




4. What Webhook v2 can and cannot do

CAN ✅

  1. Consolidate all call + WhatsApp events into one endpoint.
  2. Granular sub-event selection.
  3. Basic or API Key authentication.
  4. Up to 10 custom headers.
  5. Automatic retry & persistent failure logs.
  6. Enriched agent{} and department{} data in call.summary.
  7. Unique event_id for idempotency; event_sequence for ordering.

CANNOT (yet) ❌

  1. Send real-time email/SMS alerts on failure (logs only).
  2. Filter events by department, agent, or call direction—the downstream system must filter.



5. Troubleshooting FAQ

Symptom

Likely cause

Fix

“Webhooks menu not visible”

Logged in as Manager/Agent or the plan doesn’t include the feature

Log in as Owner/Admin; verify plan

“URL invalid” error on save

URL not starting with https://

Correct the URL scheme

No events delivered

Webhook Inactive/Failed or no events selected

Re-enable webhook, select events, trigger test

Webhook auto-Failed

3× non-2xx within 24 h

Inspect logs, fix the endpoint, and enable again

Missing agent/department fields

Using call.end instead of call.summary

Subscribe to Call Summary

Duplicate events

Endpoint processes retries twice

Implement idempotency using event_id

WhatsApp campaign events are missing

Filtering on myop_ref_id instead of source

Use source = lccmpapi