Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Scroll export button
scopecurrent
template-id0fa09813-8b86-460a-aa1d-ef450a80e9ce
quick-starttrue
add-onScroll PDF Exporter

Info

This guide explains how to configure Webhook integration with third-party web applications and services, for sending events related to calls.

Created: August 2023

Updated: March 2024

Permalink: https://wildix.atlassian.net/wiki/x/AYCODg

Table of Contents

Introduction

Webhook integration (currently, in Beta) allows to connect different third-party web applications and services by sending events related to calls.  

Requirements 

  • WMS Beta 6.046.03
  • Cloud Analytics enabled in WMS -> PBX -> Features (it is activated by default if a PBX or whole WMS Network are running in the Cloud). 
    For more details, see documentation WMS Settings Menu - Admin Guide (see the Features section).

How to configure the integrationthe integration

1. Go to WMS -> PBX -> Integrations -> Calendarstab (or to Cloud integrations tab

Note

Note: In case of WMS version lower than 6.05.20240119.1, the tab is named Calendars (or x-bees

tab

in case of a PBX with x-bees

licence

license).


Image RemovedImage Added

2. Click on the Webhook integration -> click Install 

3. On the Connect integration screen, fill out the following fields:

Select transmission type for sending the events:

  • WebHook: POST requests are sent to the URL, specified by customer
  • AWS SQS: events are sent to AWS SQS queue


a) In case of WebHook transmission type:

  1. In the Target field, indicate the URL where the data should be sent to. 
  2. Secret is generated automatically and cannot be edited. 
  3. Choose type of events: 
    1. Call start
    2. Call update
    3. Call end
      Image Removed
    4. User presence
    5. User presence telephony

      Image Added
      User presence returns user status (e.g. Available, Away, Busy) status message and time, as well as location. For the User presence telephony option, the following statuses are supported:
      • registered (registered and idle)
      • ringing (in ringing state)
      • talking (in conversation)
      • rt (in conversation and ringing state)

b) In case of SQS transmission type:

  1. In the Target field, indicate the SQS URL where the data should be sent to.
  2. Enter SQS Key and Secret in the relevant fields. 
  3. Choose type of events: 
    1. Call start
    2. Call update
    3. Call end
Image Removed
    1. User presence
    2. User presence telephony

Image Added

User presence returns user status (e.g. Available, Away, Busy) status message and time, as well as location. For the User presence telephony option, the following statuses are supported:

  • registered (registered and idle)
  • ringing (in ringing state)
  • talking (in conversation)
  • rt (in conversation and ringing state)

4. Click Install.

Once installed, you can see details about the new integration which includes Integration ID, Transmission type, URL, Secret, and types of events selected. 

Note

Note: Editing of the integration is currently not supported. If you need to update any data, please delete the current Webhook integration and create a new one. 


Copy the Integration ID and use it in your web application / service.

Warning

Important: The timeout for Webhook reply is 5 seconds. 


Warning

Important: For security reasons, it is highly recommended that you validate the data received to your web application / service and make sure the data comes from Wildix and the data is not broken. 

For this, check `signature` for all received events:

  • For webhook transport, you can find signature in the request's header x-signature
  • For SQS transport, you can find signature in the MessageAttributes ['X-SIGNATURE']

Configuration example

See Webhook configuration example on this page.


Supported event types

Call start 

Code Block
{
  "id": "it_w118741_1693389850.110",
  "pbx": "221100001bab",
  "time": 1693389850810,
  "company": "it_w118741",
  "type": "call:start",
  "integrationId": "8qkmnq",
  "data": {
    "status": "CONNECTING",
    "caller": {
      "type": "LOCAL",
      "phone": "1001",
      "name": "admin",
      "company": null,
      "email": "vladimir.gorobets@wildix.com",
      "userId": "1257510555",
      "userExtension": "1001",
      "userDepartment": null,
      "groupId": "62177694",
      "groupName": "Admin",
      "userAgent": "Wildix Zero Distance 4.0.1 WebRTC-f2a0f5f1-6c4e-444f-b99f-a968bb5f7297",
      "userDevice": "COLLABORATION_WEB"
    },
    "callee": null,
    "service": null,
    "destination": "10020",
    "trunkName": null,
    "queueName": null,
    "queueId": null,
    "tags": [],
    "flags": [],
    "endCause": null,
    "endCauseStr": null,
    "endBy": null
  }
}
```

Call update


Code Block
{
  "id": "it_w118741_1693389850.110",
  "pbx": "221100001bab",
  "time": 1693389850810,
  "company": "it_w118741",
  "type": "call:update",
  "integrationId": "8qkmnq",
  "data": {
    "status": "CONNECTING",
    "caller": {
      "type": "LOCAL",
      "phone": "1001",
      "name": "admin",
      "company": null,
      "email": "vladimir.gorobets@wildix.com",
      "userId": "1257510555",
      "userExtension": "1001",
      "userDepartment": null,
      "groupId": "62177694",
      "groupName": "Admin",
      "userAgent": "Wildix Zero Distance 4.0.1 WebRTC-f2a0f5f1-6c4e-444f-b99f-a968bb5f7297",
      "userDevice": "COLLABORATION_WEB"
    },
    "callee": {
      "type": "LOCAL",
      "phone": "10020",
      "name": "user20",
      "company": null,
      "email": "vladimir.gorobets+3@wildix.com",
      "userId": "5753746",
      "userExtension": "10020",
      "userDepartment": null,
      "groupId": "874629312",
      "groupName": "Default",
      "userAgent": null,
      "userDevice": null
    },
    "service": null,
    "destination": "10020",
    "trunkName": null,
    "queueName": null,
    "queueId": null,
    "tags": [],
    "flags": [],
    "endCause": null,
    "endCauseStr": null,
    "endBy": null
  }
}
```

Call end

Code Block
{
  "id": "it_w118741_1693389850.110",
  "pbx": "221100001bab",
  "time": 1693389853611,
  "company": "it_w118741",
  "type": "call:end",
  "integrationId": "8qkmnq",
  "data": {
    "status": "CONNECTING",
    "caller": {
      "type": "LOCAL",
      "phone": "1001",
      "name": "admin",
      "company": null,
      "email": "vladimir.gorobets@wildix.com",
      "userId": "1257510555",
      "userExtension": "1001",
      "userDepartment": null,
      "groupId": "62177694",
      "groupName": "Admin",
      "userAgent": "Wildix Zero Distance 4.0.1 WebRTC-f2a0f5f1-6c4e-444f-b99f-a968bb5f7297",
      "userDevice": "COLLABORATION_WEB"
    },
    "callee": {
      "type": "LOCAL",
      "phone": "10020",
      "name": "user20",
      "company": null,
      "email": "vladimir.gorobets+3@wildix.com",
      "userId": "5753746",
      "userExtension": "10020",
      "userDepartment": null,
      "groupId": "874629312",
      "groupName": "Default",
      "userAgent": null,
      "userDevice": null
    },
    "service": null,
    "destination": "10020",
    "trunkName": null,
    "queueName": null,
    "queueId": null,
    "tags": [],
    "flags": [],
    "endCause": "21",
    "endCauseStr": "Call Rejected",
    "endBy": "CALLER"
  }
}
```


Use cases

Below you can find some examples of Webhook integration usage:

  • CRM Integration

You can integrate the Webhook to automatically log and update customer call details in the CRM system. This can helps in maintaining accurate customer records and improve follow-up processes.

  • Marketing automation

You can trigger marketing automation campaigns based on call events. For example, you can send follow-up emails or SMS messages when a call ends, which could help to nurture leads and provide better customer support.

  • Customer feedback and surveys

After a call ends, the Webhook can trigger the delivery of customer satisfaction surveys or feedback requests. This helps businesses to gather valuable input for improving the service in future.

  • Ticketing system integration

You can automatically generate support tickets or service requests when a call starts or ends, which would streamline the customer support processes.

  • Custom notifications

You can set up customized notifications based on call events. For example, you can receive an SMS alert when a high-priority call starts or when a call remains on hold for too long.


Macrosuite divider macro
dividerTypetext
dividerWidth70
emoji{"id":"smile","name":"Smiling Face with Open Mouth and Smiling Eyes","short_names":["smile"],"colons":":smile:","emoticons":["C:","c:",":D",":-D"],"unified":"1f604","skin":null,"native":"😄"}
textColor#000000
dividerWeight2
labelPositionmiddle
textAlignmentcenter
iconColor#0052CC
fontSizemedium
textNot finding the help you need? Join the Facebook group to ask a question!
emojiEnabledfalse
dividerColor#DFE1E6
dividerIconbootstrap/CloudsFill

...