Every fifth call to a high-volume online store never reaches a manager — the customer hangs up after 20 seconds of waiting. Without telephony integration, data about the caller is lost, no task is automatically created in the CRM, and the percentage of converted leads cannot be measured. We integrate Zadarma with your site in 2–5 business days: configure webhooks, callback, WebRTC calls, call recording, and data transfer to AmoCRM, Bitrix24, or any other system. Our years of turnkey telephony integration experience help reduce missed calls by 40% and increase call-to-lead conversion by 15%.
Technical Implementation of Integration
Webhook Notifications
Route::post('/webhooks/zadarma', function (Request $request) { $data = $request->except('sign'); ksort($data); $sign = md5(http_build_query($data) . env('ZADARMA_SECRET')); if ($request->sign !== $sign) return response('Invalid sign', 403); $event = $data['event']; switch ($event) { case 'NOTIFY_START': $caller = $data['caller_id']; $this->handleIncomingCall($caller); break; case 'NOTIFY_END': CallLog::create([ 'zadarma_callid' => $data['call_id_with_rec'], 'caller' => $data['caller_id'], 'duration' => $data['duration'], 'disposition' => $data['disposition'] ]); break; case 'NOTIFY_RECORD': $recordingUrl = $data['link']; CallLog::where('zadarma_callid', $data['call_id_with_rec']) ->update(['recording_url' => $recordingUrl]); break; } }); API for Callback
$params = [ 'from' => $agentPhone, 'to' => $customerPhone, 'sip_id' => env('ZADARMA_SIP_ID') ]; ksort($params); $sign = base64_encode(hash_hmac( 'sha1', env('ZADARMA_KEY') . urldecode(http_build_query($params)) . md5(serialize($params)), env('ZADARMA_SECRET') )); Http::withHeaders([ 'Authorization' => env('ZADARMA_KEY') . ':' . $sign ])->get('https://api.zadarma.com/v1/request/callback/', $params); WebRTC — Call from Browser
<script src="https://my.zadarma.com/webphoneApi/v3/js/zadarmawebrtc.js"></script> <script> var webrtcPhone = new ZadarmaWebRTC({ sipId: '{{ $sipId }}', sipPass: '{{ $sipPassword }}', onCallStateChange: function(state, data) { console.log('Call state:', state); } }); webrtcPhone.dial('79001234567'); </script> Fetching and Storing Recordings
$response = Http::get('https://api.zadarma.com/v1/pbx/record/request/', [ 'call_id' => $zadarmaCallId, 'pbx_call_id'=> $pbxCallId ]); $downloadUrl = $response->json()['link']; What Problems Does Zadarma Integration Solve?
Missed calls are the biggest loss for an online store. Without a callback widget, customers wait and hang up. We set up callback: the system automatically calls the customer back after 30 seconds, reducing churn by 40%. Lack of analytics is the second problem. Without call recording and logs, you can't measure channel effectiveness. After integration, the CallLog database stores caller_id, duration, disposition, and a link to the recording. Manual transfer of leads to CRM slows processing and risks errors — we automate deal creation on every call. In one project (an electronics e‑commerce store), missed calls dropped from 25% to 8%, and phone orders increased by 18% in a month.
Why Choose Zadarma?
Zadarma is an international provider with numbers in 100+ countries and a flexible virtual PBX. The API enables any scenario — from a widget to a contact center. Call costs start at €0.005/min, and integration is 2–3 times faster than manual setup. The main advantage is low price and easy webhook/REST integration. Compared to wired telephony, Zadarma saves up to 60% on subscription fees and long-distance calls. With over 5 years of experience and 50+ successful telephony integrations, we ensure reliable setup.
Comparison: Our Integration vs Manual Setup
| Criterion | Our Integration | Manual Setup |
|---|---|---|
| Connection time | 2–5 days | from 2 weeks |
| Call recording | automatic | requires equipment |
| CRM integration | via API | manual, with delays |
| Reliability | 99.9% uptime | depends on hardware |
| Quality control | recordings and stats | limited |
Zadarma Business Plan Comparison
| Parameter | Basic | Extended |
|---|---|---|
| Monthly fee | from €2 | from €5 |
| Per minute to Russian numbers | €0.005 | €0.0045 |
| Call recording | yes | yes |
| WebRTC | yes | yes |
| API integration | yes | yes + priority support |
Sample cost saving calculation
With 1000 incoming calls per month and average call duration of 3 minutes, savings on Zadarma compared to wired telephony reach up to 60%. Callback setup reduces missed calls by 40%, which with an average order value of €50 yields additional revenue. Typical monthly savings range from €200 to €500 for small businesses.
Typical Mistakes in Self-Integration
- Incorrect webhook signature. Without
ksortand MD5 with the secret key, Zadarma returns 403. Check sorting andhttp_build_query. - Missing
NOTIFY_ENDhandler. Without this event, the call log stays empty — you won't get caller_id, duration, or status. - Encoding issues. For REST API, use
urlencodewithPHP_QUERY_RFC3986, otherwise the signature won't match. - Ignoring API errors. Always check
$response->json()['status']— not all requests return success.
Integration Work Stages
- Analysis — review current telephony setup, load, and CRM needs.
- Design — choose scenarios: callback, WebRTC, recording, integration.
- Implementation — write code, configure webhooks and API, integrate with CRM.
- Testing — test all scenarios: inbound, outbound, recording, CRM transfer.
- Deployment — deploy to production, train staff.
What You Get as a Result
- Integration documentation with endpoint descriptions.
- Access to the control panel and logs.
- Staff training on the system.
- 2 months of post-launch support.
- Guarantee of correct operation for all scenarios.
We'll evaluate your project. Contact us and we'll write an integration plan. We work turnkey in 2–5 days. Request a consultation and get an analysis of your current telephony setup.
According to Zadarma documentation, the service uptime is 99.9%. WebRTC requires a modern browser (source: Wikipedia). We also provide IP telephony for your website and call automation features to streamline operations.







