Zadarma is a cloud-based VoIP provider, i.e. a virtual telephone exchange operated as a service. Integration with CDESK ensures that operators do not have to make calls outside of CDESK and that every call is recorded in the same place as other customer communications. From a received call, it is possible to create a request or a fulfilment in a single step; the call is linked to the contact and company, and the recording and call details remain associated with the request.
Calls are answered directly in the browser via the Zadarma WebRTC component or in the native Zadarma apps for Windows, macOS and phones. This is the main difference compared to the older VIPTel integration – there is no need for the external MicroSIP application or to manage it from CDESK. The call status is managed by the Zadarma switchboard, and CDESK is notified of every change via webhooks that Zadarma sends to your CDESK address.
There are two technical points worth understanding, as they explain much of the behaviour. Zadarma does not apply a WebSocket connection like VIPTel, but communicates exclusively via webhooks – CDESK is therefore only aware of a call when Zadarma sends it a notification. Furthermore, CDESK does not have its own SIP client; it uses a web phone (widget) from Zadarma, which simply wraps around it and manages its statuses. This is why numbers are dialled within CDESK and not directly in the widget – this is the only way the call will pass through contact recognition and logging.
The VoIP module is part of Omnichannel. It is enabled in the global settings, and users’ access to the telephone is controlled by permissions, just as with the other modules.
What integration enables
The following overview lists the features available with the Zadarma provider in CDESK. The individual fields are described in detail in the subsequent chapters.
- Receiving and making calls – an incoming call is signalled directly in CDESK and can be answered or declined. Outgoing calls are dialled from the selection list in the top panel, from the phone book, or by clicking on a number in a request.
- Click-to-call – clicking on the telephone icon or a link containing a number dials the call once confirmed. This works in the ‘Requested By’, ‘Requested For’ and ‘Assignee’ fields on a request, as well as in contacts and the phone book.
- Caller ID – the number is paired with a contact or user account registered in CDESK, so the operator can see who is calling even before answering.
- Call queues – calls can be routed to queues by department. Extensions are assigned to each queue as members or observers, and call distribution settings are configured.
- Interactive Voice Response (IVR) – callers press a key to select where their call is directed. This includes welcome messages, on-hold music, a ‘queue is busy’ alert and voicemail.
- Working time – calls received outside working time are handled according to the configured action. The public holiday calendar and lunch break are also taken into account.
- Call requests and fulfilments – during a call, a form is viewed from which a request is created, along with any associated fulfilment or deal. The default company, request template and tags can be pre-set for each queue individually.
- Call recordings – cloud recording can be enabled for individual extensions. Recordings can be played back, downloaded and attached to a request.
- AI transcription of recordings – call recordings can be transcribed into text, split by speaker and with timestamps.
- Supervisor mode – a selected extension can listen in on ongoing calls and provide real-time prompts to the operator.
- Phone book – a common list of users, company contacts, unassigned numbers and extensions, with search and one-click dialling.
- List of calls – a list of calls with filtering, call details and bulk deletion. Calls associated with a request are also displayed directly in its details under the ‘Calls’ and ‘Audio-to-text transcription’ tabs.
What integration does not allow
The following limitations stem from the nature of the solution and the way in which responsibilities are divided between CDESK and Zadarma’s head office. These are not faults, and it is advisable to be aware of them before deployment to avoid any unrealistic expectations.
Zadarma settings are not replicated in full within CDESK. Only what is essential for the smooth operation of telephone calls from CDESK has been intentionally transferred to CDESK’s global settings. Everything else is managed in the Zadarma portal, which has its own custom interface for this purpose. In practice, this means that you record voice recordings for the automated voice system and welcome alerts in Zadarma (Incoming calls and IVR → Voice greeting → SET UP) and then simply select them from the list in CDESK.
Some data in CDESK is read-only, as it is owned by the PBX. The extension name can only be changed in the Zadarma administration panel. The list of virtual telephone numbers is retrieved from the Zadarma account and cannot be edited in CDESK. The IVR key can only be selected when creating a queue – Zadarma does not allow it to be changed later.
Only one provider can be active at any one time. Zadarma and VIPTel (or 3CX) are never enabled simultaneously; switching providers hides the other’s interface.
The contact’s name is viewed on the extension only for calls routed through the CDESK voice response system, and is limited to 30 characters. The extension status in the CDESK status column indicates only whether the operator is logged into CDESK – it does not indicate whether they have the Zadarma mobile or desktop app running.
The integration depends on two factors on the Zadarma side. Without webhooks configured, CDESK is not aware of calls in real time, and without your CDESK domain signed up in Zadarma, the web phone will not work. Without a functioning WebSocket connection, real-time call notifications will not be received.
Zadarma does not support Slovak text-to-speech, so you must record all automated voice alerts as audio files and upload them to the Zadarma portal. The voicemail system allows you to enter only one email address – the Zadarma API does not permit multiple addresses.
With the manual strategy, there is an important limitation of the switchboard: manual routing is technically equivalent to a queue being disabled, so the switchboard does not route the call anywhere itself. If an operator actively declines a call, the switchboard quits the ringtone and returns the call to the voice menu – it does not transfer it to the next operator. Automatic forwarding to the next operator in the queue’s order is a feature of the queue’s native strategies (such as round robin), not of manual mode.
Taking a call waiting in the queue is temporarily unreachable – the button is hidden until Zadarma has completed its part of the process. Similarly, it is not possible to shorten the pause between the out-of-hours alert and the voicemail prompt; this occurs when the call is routed by the switchboard. If the pause seems too long, check whether the recording starts with silence – trimming this out will significantly reduce the perceived gap.
Deletions are not synchronised in both directions. If you delete a line or voice menu in CDESK, they will remain last modified on Zadarma; the change only affects CDESK.
The Zadarma API has a limit on the quantity of calls. With multiple operators running simultaneously, this limit can be reached; therefore, CDESK reads the extension statuses and links to recordings from cache, and if the limit is in danger of being exceeded, it automatically slows down non-essential restores so that calls always take priority.
Deployment requirements
Before you start setting up in CDESK, please have the following ready:
1. An active Zadarma account with a virtual phone number and extensions set up.
2. An API key and API secret generated in the Zadarma portal.
3. The Omnichannel module enabled, with the VoIP module enabled within it, in the CDESK global settings.
4. Webhooks configured in the Zadarma portal and pointing to your CDESK address.
5. Your CDESK domain registered in Zadarma for the WebRTC widget.
6. A user with permission to access global settings who will configure the integration.