Integration for Developers

Simply. Call an API

Drive Productivity

Boost Revenue


MyZiwo Slack Community


Start here

Drive Productivity


Boost Revenue

  • Use Autodialer
  • Chase Abondoned calls
  • Auto Call Back
  • Subscription renewal

Improve Engagement

Optimize Attendance

  • Live Stats
  • Live Events

About ZIWO


Install WebPhone 
Install ZIWO Web Phone in minutes in your own CRM or web app, where you can use your business number to communicate with staff and clients. Just copy the script and paste it inside your app. Agents connect directly from their web app and access all ZIWO superpowers right from your app: receive, place or transfer calls, view their call history or even change their status.

Step 1: "Copy /paste the “script ” in your application,

      // Contact center configuration
    let contactCenterName = ''; //If left empty Jorel will be in non call center specific mode. User will have to enter its call center name on login.

      // Default display configuration
    let defaultPosition = 'top-right'; //Choose between 'bottom-right', 'bottom-left', 'top-right' and 'top-left'. Initial if not set is 'bottom-right'.
    let defaultSize = 'normal'; //Choose between 'normal', 'small' and 'mini'. Initial if not set is 'normal'.

      // Settings
    let defaultRegionCode = ''; //Used for local phone numbers used in the API, if you want to set one use the corresponding 2 letters country code. None set by default;
    let fixedPositionAndSize = false; //By default false;
    let deactivateMinimization = false; //By default false;
    let deactivateConsoleOutput = false; //By default false;

      // Initialisation

      // Functions for initialisation
    function addJorelScriptLoader() {
      const jorelScriptLoader = document.createElement('script'); = 'jorelScriptLoader';
      jorelScriptLoader.type = 'text/javascript';
      jorelScriptLoader.async = true;
      jorelScriptLoader.src = '';
      jorelScriptLoader.src += '?v=' +; //Prevents caching

    function setJorelConfiguration() {
      if (contactCenterName) localStorage.setItem('_jorel-ccName', contactCenterName);
      localStorage.setItem('_jorel-default-position', defaultPosition);
      localStorage.setItem('_jorel-default-size', defaultSize);
      localStorage.setItem('_jorel-default-phone-number-region-code', defaultRegionCode);
      localStorage.setItem('_jorel-fixed', fixedPositionAndSize);
      localStorage.setItem('_jorel-no-minimization', deactivateMinimization);
      localStorage.setItem('_jorel-no-console-output', deactivateConsoleOutput);

Step 2: Put your Ziwo instance URL, and get it connected instantly.
Don't have a Ziwo POC? Get it Here.
Manual Login 
There are 3 fields to fill when you manually login to WebPhone :

- contact center name (“your instance”)

- username (“[email protected]”)

- password (“secretpassword”)

After your manual login into ZIWO Web phone, some fields will be stored for a while in local so that you do not need to re-log again each time you refresh the page.
Auto Login 
If in your integration you want to always skip this first initial manual login authentication, you can set these fields in local storage so that ZIWO Web phone always auto-connects !

Step 1: Here are the fields which needs to be set :
- “_jorel-token” - “_jorel-ccName”

Step 2: The first item to be stored is _jorel-token. It should correspond to the token an agent get after login to ZIWO, through API /auth/login. (“see: ZIWO API doc, section auth/login”)

Step 3: The second item to be stored is _jorel-ccName. It should correspond to the contact center name of your instance. For example, if your instance is, it should correspond to wayne-enterprise

WebPhone Parameter 
Jorel is a ZIWO Web phone that can be integrated in any web app or CRM. Agents are connecting right in their web app and get all the functionalities to receive and place calls, view their call history or even change their status.



Getting them via WebPhone means you don’t have to bother on getting or even generating them from our API.

You can find their various uses in the Ziwo full API documentation !
Learn More

Call History
You can fetch call history using ZIWO Web phone (web phone) events

Step 1: Enter URL
Step 2: Enter the desired parameter for ID. This endpoint gets a CDR by given id.


access_token b10c6840-a9e7-11e8-8476-8d2a2f09b159

Fetch Recordings
You can fetch call recording MP3 file using ZIWO Web phone (web phone) events.

Step 1: Enter URL<CallID>.mp3
Step 2: Enter the desired parameter for CallID. This endpoint downloads a recording MP3 file for the CDR identified by the given CallID (UUID of the CDR).


    access_token b10c6840-a9e7-11e8-8476-8d2a2f09b159

Click to Call
You can make any phone numbers of you web app clickable to generate a call by the agent !

Step 1: In the agent app : Agent clicks to generate a call for himself
You can directly use the ZIWO Web phone function for calling a phone number !

This function can be called via : “window[‘_jorel-callPhoneNumber’]”.
It takes the phone number in international format as String parameter.
Add screenshot / videocast

Step 2: In the admin app : Admin clicks to generate a call for an agent
This is useful if you want to allow a manager wants to create a call for an agent.
For this you need simply need to use this endpoint of our REST API
CRM Profile Pop-up
This is an example of how to use ZIWO Web phone event broadcasting of call states, but they are many others depending on your business and web app !

Step 1: Scenario
You have a CRM containing information on the customers you are calling or who are calling you. You want the agent to automatically get access to the customer CRM data when the call is active, by opening a pop-up page with this data (for which your CRM has an URL).

Step 2: Conception using ZIWO Web phone documentation
Using the ZIWO Web phone documentation, you can see the various jorel events meaning and the outbound and inbound call flows. From this you can see that the appropriate events to use for the pop-up opening are the ‘ringing’ one for inbound calls and the ‘early’ one for the outbound calls.

Call verto events are broadcasted from the "window" element with the prefix : '_jorel-dialog-state-' with suffix amongst :
'requesting' Requesting operator to make the call Outbound
'trying' Operator trying to make the call Outbound
'early' Call is waiting for customer to pick up Outbound
'ringing' Call is ringing agent phone Inbound
'answering' Agent is answering call Inbound
'active' Agent and customer can talk to each other Both
'held' Customer has been put on hold by the Agent Possible in both
'hangup' Call is being hanged up Both
'destroy' Call is being destroyed Both
'recovering' When reconnecting to virtual phone and a call wasn't over, Jorel automatically recovers it ! Possible in both
If browser supports "CustomEvent" class, the "event.detail" object will have the following attributes :
callID Id of the current leg of the call
primaryCallID Id of the primary / initial leg of the call
customerNumber Phone number of the customer called or calling
direction 'outbound', 'inbound', 'internal' or 'service'
stateFlow Array listing the states the call went through, with the date for each (Properties of the objects in the array: 'state', 'date', 'dateUNIX')
currentCall Full data of the call, including the ones above and much more
dialog Similar to the above currentCall, but also allows to interract with the call state for example by answering or hanging up. (See verto documentation for full details of possible interractions)

Also for getting the CRM data you need to use the customer phone number. Using the documentation you can see that you’ll find it in the event details with “event.detail.customerNumber”.

Step 3: Implementation in JS
From what we gathered above here is a script you can use for your pop-up opening. You simply need to complete its first function, which gets the CRM URL from the customer phone number !


    function getCrmUrlFromPhoneNumber(customerNumber) {

    // Here include your CRM logic to get the customer data URL from the customer phone number

    // This function can either return a String or a Promise resolving a String


    async function openingCustomerPopUpFromEvent(event) { getCrmUrlFromPhoneNumber(event.detail.customerNumber));


    window.addEventListener('_jorel-dialog-state-ringing', openingCustomerPopUpFromEvent);

    window.addEventListener('_jorel-dialog-state-early', openingCustomerPopUpFromEvent);


Fetch Voicemail
You can fetch call history using ZIWO Web phone (web phone) events.

Step 1: Enter URL
Step 2: Enter the desired parameter for CallID. This endpoint downloads a recording MP3 file for the CDR identified by the given CallID (UUID of the CDR).


access_token b10c6840-a9e7-11e8-8476-8d2a2f09b159


Verto Integration
May 27, 2019
Rolling out the red carpet for ASWAT verto integrations
With 200+ API and live sockets, integrate with Ziwo& leverage the power of your customer data.


Need More help for integration?

Get Full Access to tutorials,videos,how to’s , FAQ and more …