Step 1. Prepare an HTTPS URL
Create a WebHook in n8n, Make or your own system. The receiver must accept POST requests, read JSON and return 2xx only after the event has been stored safely.
Step-by-step guide
Connection takes a few minutes: prepare an HTTPS endpoint, paste it into ProZvonki, send a test and select the events you need. Below is the setup order and the exact request format.
Create a WebHook in n8n, Make or your own system. The receiver must accept POST requests, read JSON and return 2xx only after the event has been stored safely.
Go to Settings → the “Business” tab → Integrations → WebHook and enable the integration.
Paste the full HTTPS URL. If the receiver uses Bearer authentication, enter the token. Tap “Save and send test” and make sure the app reports a successful request.
Enable call_started if you need an event as soon as a call begins. Separately decide whether to send the contact name and call recording. On a dual-SIM phone, choose the work SIM and add clear labels.
Store processed event_id values. If the server receives a request but its response is lost, the phone sends the same event again. Use the shared call_id to link all events for one call.
Fields that do not apply are sent as null, so the JSON structure remains predictable.
{
"event_id": "550e8400-e29b-41d4-a716-446655440000",
"call_id": "663dbf58-1bfd-4a59-a3af-bad6f9511cec",
"event": "call_finished",
"direction": "incoming",
"result": "answered",
"ended_by": "remote",
"number": "+79001234567",
"hidden": false,
"contact_name": "John Smith",
"contact_name_source": "contacts",
"duration_sec": 42,
"timestamp": "2026-09-25T10:30:00Z",
"timestamp_unix": 1790332200,
"sim_slot": 0,
"sim_label": "Work SIM"
}
recording_ready arrives as multipart/form-data. The payload part contains JSON with event_id, the same call_id, number, direction, duration, file name, format and size. The recording part contains the audio file itself. The server does not need to decode Base64.
Return any 2xx HTTP response only after saving the event and file. For a temporary problem return 408, 425, 429 or 5xx and the app retries. Responses 401/403 mean the URL, token or access rules need to be corrected.
FAQ
Return an HTTP 2xx response only after the event and file are stored safely. Otherwise, a lost response can make data appear delivered too early.
If the server response is lost or a temporary network error occurs, the app retries delivery with the same event_id. The receiver must be idempotent.
Check the full HTTPS URL, whether the endpoint is reachable from the internet, the Bearer token and your receiver logs. A successful receiver must return 2xx.
Use HTTPS. Plain HTTP is blocked by Android network-security policy except for explicitly allowed local development addresses.
In a separate multipart request: JSON metadata is in the payload part and the binary audio file is in the recording part. Base64 is not used.