Webhooks in Hosted Contact Center (HCC)

Webhooks in Hosted Contact Center (HCC)

Webhooks in Hosted Contact Center (HCC)

Overview

Webhooks allow the Hosted Contact Center (HCC) and Intelligent Portal to send real-time event data to your system of record.

Instead of relying on:

  • Scheduled sFTP exports
  • Manual data retrieval

Webhooks deliver updates immediately when events occur.


How Webhooks Work

Webhook setup consists of two steps:

  1. Configure authentication (Access Setup)
  2. Create a webhook (Webhook Settings)

Step 1: Configure Authentication (Access Setup)

Navigate to: Webhooks → Access Setup

Create New Access

  1. Click Add New Access
  2. Select authentication type:
    • Basic Authentication
    • API Key Authentication
  3. Enter your system credentials
  4. Click Submit
Note: Client ID and Client Secret used for API integrations are not required for webhook setup.

Authentication Types

Basic Authentication

FieldDescription
Authentication Key NameHeader name expected by your API (for example, Authorization)
API NameIdentifier for the API
Client IDAPI credential
Client SecretAPI credential

API Key Authentication

FieldDescription
Authentication Key NameAPI key header name (for example, x-api-key)
API NameIdentifier for the API
API KeyAPI key value
Header LocationHeader or Body

Step 2: Create a Webhook

Navigate to: Webhooks → Webhook Settings

  1. Click Add New Webhook
  2. Complete required fields:
    • Request Method
    • Event
    • Authorization Configuration
    • Webhook Target URL
  3. Click Submit

Webhook Configuration Fields

FieldDescription
Request MethodHTTP method. POST is most commonly used.
EventThe trigger for the webhook
Authorization ConfigurationPreviously configured authentication
Webhook Target URLDestination endpoint for webhook delivery

Supported Events

  • Call Created – triggered when a call starts
  • Call Ended – triggered when a call ends
  • Call Saved – triggered when an agent saves the wrap form
  • Regulation F Declined – triggered when a lead is marked ineligible

Webhook Logs

Navigate to: Reports → Webhooks Logs

  • Filter by date
  • Filter by event
  • View request and response details

Sample Payloads

Expand each section below to view the full payload example.

Call Created – Triggered when a call starts
{
"headers": {
"Authorization": "test123****"
},
"json": {
"call_id": 11142,
"call_date": "2023-06-27 13:22:18",
"lead_id": 65439,
"call_result": -1,
"agent_disp": -1,
"agent_id": 0,
"call_type": "Outbound",
"revenue": 0,
"dnis": "",
"phone": "9725550138",
"camp_id": 235,
"pool_id": 591,
"account_id": "12345678",
"call_duration": 0,
"talk_time": 0,
"hold_time": 0,
"queue_time": 0,
"ivr_time": 0,
"position": 0,
"is_abandoned": false,
"api_sent": false,
"call_final_event": null,
"idle_time": 0,
"wrap_time": 0,
"preview_time": 0,
"callback_time": null,
"callback_call_id": 0,
"caller_id": "9725550106",
"onhold_queue": false,
"internal": false,
"billable_seconds": 0
}
}

Call Ended – Triggered when a call ends
{
"headers": {
"Authorization": "test123****"
},
"json": {
"call_id": 11142,
"call_date": "2023-06-27 13:22:18",
"lead_id": 65439,
"call_result": -1,
"agent_disp": -1,
"agent_id": 19,
"call_type": "Outbound",
"revenue": 0,
"dnis": "",
"phone": "9725550138",
"camp_id": 235,
"pool_id": 591,
"account_id": "12345678",
"call_duration": 0,
"talk_time": 10,
"hold_time": 0,
"queue_time": 0,
"ivr_time": 0,
"position": 0,
"is_abandoned": false,
"api_sent": false,
"call_final_event": "COMPLETEAGENT",
"idle_time": 0,
"wrap_time": 0,
"preview_time": 5,
"callback_time": null,
"callback_call_id": 0,
"caller_id": "9725550106",
"onhold_queue": false,
"internal": false,
"billable_seconds": 0
}
}

Call Saved – Triggered when an agent saves the wrap form
{
"headers": {
"Authorization": "test123****"
},
"json": {
"call_id": 11142,
"call_date": "2023-06-27 13:22:18",
"lead_id": 65439,
"call_result": 2,
"agent_disp": 51,
"agent_id": 19,
"call_type": "Outbound",
"revenue": 0,
"dnis": "",
"phone": "9725550138",
"camp_id": 235,
"pool_id": 591,
"account_id": "12345678",
"call_duration": 12,
"talk_time": 10,
"hold_time": 0,
"queue_time": 0,
"ivr_time": 0,
"position": 0,
"is_abandoned": false,
"api_sent": false,
"call_final_event": "COMPLETEAGENT",
"idle_time": 0,
"wrap_time": 5,
"preview_time": 5,
"callback_time": null,
"callback_call_id": 0,
"caller_id": "9725550106",
"onhold_queue": false,
"internal": false,
"billable_seconds": 12
}
}

Regulation F Declined – Triggered when a lead is marked ineligible
{
"headers": {
"Authorization": "test123****"
},
"json": {
"camp_name": "Manual Reg F",
"lead_phone": "9725550148",
"lead_email": null,
"account_id": "1234",
"client_id": "1234",
"reason": "RF: communication_limits",
"pool_id": null,
"pool_name": null,
"retry_at": "2023-07-06 01:00:00"
}
}

Important Notes

Custom Port Requirement:
If your webhook target URL uses a custom or non-standard port, you must notify the Intelligent Contacts Support team.

The Infrastructure team must open the port before webhook delivery will succeed.

Best Practices

  • Use POST unless otherwise required
  • Ensure your endpoint responds quickly
  • Validate incoming authentication headers
  • Monitor webhook logs regularly

    • Related Articles

    • Reports: Webhook Logs - Webhook Output Descriptions

      Included below are the various fields found in the webhooks sent by the HCC. Field Sample Data Description call_id 240 Database ID of the call call_date 2025-04-07 14:43:29 Timestamp of the call lead_id 172 Database ID of the lead pulled from the ...
    • How to Add a New User (Agent) in the HCC

      Before adding a new user (agent, supervisor, admin, etc.) in the Hosted Contact Center, remember that you must first create a dedicated extension for that user. This guide covers both the extension creation and the subsequent user setup. Step 1: ...
    • Contact Lists: Remove a Contact

      Remove a Contact Under “Remove a Contact” in the Contact Lists tab, [Users] are able to delete a contact from a single, or all, campaigns. This does not remove that number from a contact list, nor does it place it on a do not call list. If a contact ...
    • Configuration: Call Restrictions

      The purpose of this article is to show you how to restrict calls to specific States, Zipcodes or area codes. 1) Login to Call Center 2) On the side go to Configuration-> Call Restrictions 5) Click on Add new 6) Now name this restriction and choose ...
    • Contact Lists: Contacts Lists

      Contact Lists contains the individual documents containing the numbers to be dialed by your Agents. These documents may include a variety of information such as name, address, and account number. Contacts Lists Under “Contacts Lists”, [Users] are ...