Zadarma Voice

Connect a Zadarma Virtual PBX for CRM callback calling and signed call logging.

Zadarma is an optional bring-your-own-account voice provider for LeenOps. Workspace users can start a call from CRM; Zadarma rings the configured PBX extension, SIP login, scenario, or phone number and then connects the customer. Signed Zadarma events update the shared LeenOps call history.

For the cross-provider workflow, roles, call history, and operations, read the Telephony guide first.

Zadarma calls happen through your PBX or phone. They do not use the LeenOps browser microphone, and inbound calls cannot be answered in LeenOps.

What You Need

  • an active Zadarma account and Virtual PBX;
  • a Zadarma API key and API secret;
  • a callback source that Zadarma can ring;
  • sufficient balance and permission to call the intended destinations;
  • workspace telephony provider permissions.

Generate the key and secret in Zadarma under Settings > Integrations and API. Keep the API secret private. Enter it only in the LeenOps password field; never put it in a ticket, screenshot, chat, or source file.

Before Connecting: Check the PBX Notification URL

Zadarma provides one PBX call-notification URL. Connecting LeenOps on the production Workspace domain replaces the URL currently stored in that slot. If another CRM uses it, plan the cutover before connecting.

LeenOps automatically installs its signed event URL and enables the supported incoming and outgoing call notifications. Localhost and temporary Vercel preview domains deliberately skip this carrier-side change.

Connect Zadarma

  1. Open Settings > Telephony & Messaging.
  2. Open Providers and select Add Provider.
  3. Choose Zadarma.
  4. Enter the API key and API secret.
  5. Enter the required Callback source.
  6. Optionally enter a SIP extension / caller ID.
  7. Optionally enable Predictive callback.
  8. Choose whether Zadarma should be the default voice provider.
  9. Select Connect provider.

The callback source can be a PBX extension, SIP login, PBX scenario, or phone number supported by the account. In normal mode Zadarma rings this source first. With predictive callback enabled, it calls the customer first and connects the source only after the customer answers.

Make a CRM Call

  1. Open a CRM record with a phone number.
  2. Select the call action.
  3. Answer the callback on the configured source.
  4. Zadarma connects the destination.

Use international destination format. For a Belgian mobile number, for example, use +32470000000; LeenOps sends the digits to Zadarma.

The first local call-history row is queued before Zadarma's signed events add the PBX call identifier and final state. Avoid starting several callbacks to the same destination at exactly the same time because provider-to-local correlation is currently best-effort in that situation.

Signed Call Events

The provider card shows a connection-specific URL:

https://your-leenops-domain.example/api/webhooks/zadarma/<connection-id>

LeenOps verifies Zadarma's Signature header with the encrypted API secret and records supported incoming/outgoing start, answer, and end events. Duplicate payloads are deduplicated.

Current limitations:

  • call updates are processed immediately, not through a background retry queue;
  • a delayed older event can overwrite a newer state;
  • inbound history is assigned to the person who connected Zadarma, not to a mapped PBX extension;
  • recordings, transcripts, SMS, number management, transfer, and browser answering are not supported.

Health and Troubleshooting

The Zadarma provider card shows verification state, recent events, recent calls, failed calls, and the last provider error.

ProblemWhat to check
Connection failsConfirm the key, secret, callback source, PBX status, and account balance
Callback never ringsConfirm the callback source is valid and reachable in Zadarma
Destination failsUse international format and check balance, routing, and country authorization
Call history does not updateConfirm the production notification URL and enabled NOTIFY_* events in Zadarma
Webhook returns 401Confirm Zadarma is using the API secret belonging to the connected key
Incoming call has the wrong ownerPer-extension user mapping is not available yet
Provider card shows no queue failureZadarma processing is inline; inspect recent calls/events and application logs

Disconnect Safely

  1. Disconnect Zadarma in LeenOps to clear the encrypted local credentials.
  2. Open Zadarma Settings > Integrations and API.
  3. Remove the LeenOps call-notification URL or replace it with the next approved integration URL.

LeenOps does not currently remove or restore the Zadarma URL automatically on disconnect. Existing LeenOps call history remains available.

Security and Billing

  • Zadarma API credentials are encrypted in the Workspace provider connection.
  • Signed events are accepted only for the connected provider row.
  • Provider setup/default/disconnect actions use granular telephony permissions.
  • Calls and numbers are billed by the connected Zadarma account. LeenOps is not the carrier or merchant of record.
  • Run billable acceptance only with an approved account, destination, and budget.

Official Zadarma References