How to set up Webhook integration

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: September 2024

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

Introduction

Webhook integration allows to connect different third-party web applications and services by sending events related to calls.  

Requirements 

  • WMS 6.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 set up the integration

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

Note: In case of WMS version lower than 6.05.20240119.1, the tab is named Calendars (or x-bees in case of a PBX with x-bees license).


2. Click on the Webhook integration -> click Add new integration


3. On the New webhook 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 URL field, indicate the URL where the data should be sent to. 
  2. Secret is generated automatically and cannot be edited. 

    Note: The endpoint should be publicly accessible with a valid HTTPS certificate, accept HTTP POST requests with JSON payloads, respond with codes from 200 to 299 as quickly as possible, and handle multiple identical calls in case of retries due to network or server failures (up to 3 times).

  3. Choose types of events: 
    1. Call events
    2. Conference events
    3. Chat events
    4. Analytics events
    5. Presence events

      By clicking on the event type, you can view the list of events and choose if you want to use all events in the list or only the selected ones:

Depending on the number of chosen events the checkbox in front of event type may look differently: dash icon (1) if not all events were selected and checkmark (2) in case all the events within a particular event type are used:


Presence events return 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 Add

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

b) In case of AWS SQS transmission type:

  1. In the SQS URL field, indicate the SQS URL where the data should be sent to.
  2. Enter AWS Key and Secret in the relevant fields. 

  3. Choose types of events: 
    1. Call events
    2. Conference events
    3. Chat events
    4. Analytics events
    5. Presence events


By clicking on the event type, you can view the list of events and choose if you want to use all events in the list or only the selected ones:

Depending on the number of chosen events the checkbox in front of event type may look differently: dash icon (1) if not all events were selected and checkmark (2) in case all the events within a particular event type are used:

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 Add.

How to manage WebHook integrations

Once installed, you can see details about the new integration which includes type, URL, and types of events selected:


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

Important: The timeout for Webhook reply is 5 seconds. 


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']

Edit the integration

To edit the integration, click on the pencil icon in front of the integration:

Remove the integration

To remove the integration, click on the delete icon in front of it:

The action cannot be undone. Confirm the deletion by entering the word delete and clicking the Delete button on the screen that pops up:

Configuration example

See Webhook configuration example on this page.

Supported event types examples

You can find examples of supported event types here: https://docs.wildix.com/docs/calls/webhooks/ (navigate between different sections of the doc, Calls / Conferences/ Presence etc. to view the necessary event examples). 

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.