Hi Zoom Dev Team,
I’m currently integrating with Zoom (via API/webhooks) to process call data, and I’ve noticed some inconsistencies in the payload specifically regarding AI call summaries and recording IDs.
Context
My goal is to capture:
-
AI-generated call summaries (when available)
-
Recording IDs for calls that were recorded
However, I’m seeing that for some calls, these fields are missing or not returned, even when I expect them to be present.
Sample Observations
Case 1: Outbound - Call connected - no recording id - with ai call summary id
{
“id”: “a1b2c3d4-e5f6-7890-abcd-ef1234567890”,
“call_type”: “pstn”,
“caller_number”: “1001”,
“caller_number_type”: 1,
“caller_name”: “Test User”,
“callee_number”: “+10000000001”,
“callee_number_type”: 2,
“callee_number_source”: “external”,
“callee_location”: “United States”,
“direction”: “outbound”,
“duration”: 300,
“result”: “Call connected”,
“date_time”: “2026-01-01T00:00:00Z”,
“path”: “pstn”,
“has_recording”: false,
“has_voicemail”: false,
“log_details”: ,
“call_id”: “000000000000000000”,
“ai_call_summary_id”: “00000000-0000-0000-0000-000000000000”,
“caller_did_number”: “+10000000000”,
“caller_country_code”: “1”,
“caller_country_iso_code”: “US”,
“callee_country_code”: “1”,
“callee_country_iso_code”: “US”,
“call_end_time”: “2026-01-01T00:05:00Z”,
“department”: “Test Department”,
“cost_center”: “”
}
Case 2: Outbound - Call connected - no recording id - no ai call summary id
{
“id”: “a1b2c3d4-e5f6-7890-abcd-ef1234567890”,
“call_type”: “pstn”,
“caller_number”: “1001”,
“caller_number_type”: 1,
“caller_name”: “Test User”,
“callee_number”: “+10000000001”,
“callee_number_type”: 2,
“callee_number_source”: “external”,
“callee_location”: “United States”,
“direction”: “outbound”,
“duration”: 7,
“result”: “Call connected”,
“date_time”: “2026-01-01T00:00:00Z”,
“path”: “pstn”,
“has_recording”: false,
“has_voicemail”: false,
“log_details”: ,
“call_id”: “000000000000000000”,
“caller_did_number”: “+10000000000”,
“caller_country_code”: “1”,
“caller_country_iso_code”: “US”,
“callee_country_code”: “1”,
“callee_country_iso_code”: “US”,
“call_end_time”: “2026-01-01T00:00:07Z”,
“department”: “”,
“cost_center”: “”
}
Case 3: Inbound - Call connected - no recording id - no ai call summary id
{
“id”: “a1b2c3d4-e5f6-7890-abcd-ef1234567890”,
“call_type”: “pstn”,
“caller_number”: “+10000000001”,
“caller_number_type”: 2,
“caller_number_source”: “external”,
“caller_location”: “United States”,
“callee_number”: “801”,
“callee_number_type”: 1,
“callee_name”: “Main Auto Receptionist”,
“direction”: “inbound”,
“duration”: 129,
“result”: “Call connected”,
“date_time”: “2026-01-01T00:00:00Z”,
“path”: “autoReceptionist”,
“charge”: “null0.0000”,
“rate”: “null0.0000”,
“has_recording”: false,
“has_voicemail”: false,
“log_details”: [
{
“id”: “b2c3d4e5-f6a7-8901-bcde-f12345678901”,
“caller_number_source”: “external”,
“caller_location”: “United States”,
“duration”: 0,
“result”: “3”,
“date_time”: “2026-01-01T00:00:26Z”,
“path”: “ivrMenu”,
“caller_country_code”: “1”,
“caller_country_iso_code”: “US”,
“department”: “Test Department”,
“cost_center”: “”
},
{
“id”: “c3d4e5f6-a7b8-9012-cdef-123456789012”,
“call_type”: “pstn”,
“caller_number_source”: “external”,
“caller_location”: “United States”,
“duration”: 129,
“result”: “Call connected”,
“date_time”: “2026-01-01T00:00:28Z”,
“path”: “pstn”,
“charge”: “$0.0000”,
“rate”: “$0.0000”,
“caller_country_code”: “1”,
“caller_country_iso_code”: “US”,
“callee_did_number”: “+10000000000”,
“callee_country_code”: “1”,
“callee_country_iso_code”: “US”,
“answer_start_time”: “2026-01-01T00:00:29Z”,
“call_end_time”: “2026-01-01T00:02:09Z”,
“department”: “Test Department”,
“cost_center”: “”
}
],
“call_id”: “000000000000000000”,
“caller_country_code”: “1”,
“caller_country_iso_code”: “US”,
“callee_did_number”: “+10000000000”,
“callee_country_code”: “1”,
“callee_country_iso_code”: “US”,
“answer_start_time”: “2026-01-01T00:00:00Z”,
“department”: “Test Department”,
“cost_center”: “”
}
Case 4: Inbound - Call connected - with recording id but Admin has disabled this transcription. - with ai call summary id
{
“id”: “a1b2c3d4-e5f6-7890-abcd-ef1234567890”,
“call_type”: “voip”,
“caller_number”: “+10000000001”,
“caller_number_type”: 2,
“caller_number_source”: “external”,
“caller_location”: “United States”,
“callee_number”: “801”,
“callee_number_type”: 1,
“callee_name”: “Main Auto Receptionist”,
“direction”: “inbound”,
“duration”: 296,
“result”: “Call connected”,
“date_time”: “2026-01-01T00:00:00Z”,
“path”: “autoReceptionist”,
“has_recording”: false,
“has_voicemail”: false,
“log_details”: [
{
“id”: “b2c3d4e5-f6a7-8901-bcde-f12345678901”,
“caller_number_source”: “external”,
“caller_location”: “United States”,
“duration”: 0,
“result”: “2”,
“date_time”: “2026-01-01T00:00:30Z”,
“path”: “ivrMenu”,
“caller_country_code”: “1”,
“caller_country_iso_code”: “US”,
“department”: “Test Department AR”,
“cost_center”: “”
},
{
“id”: “c3d4e5f6-a7b8-9012-cdef-123456789012”,
“caller_number_source”: “external”,
“caller_location”: “United States”,
“duration”: 296,
“result”: “Auto Recorded”,
“date_time”: “2026-01-01T00:00:31Z”,
“path”: “callQueue”,
“recording_id”: “00000000000000000000000000000000”,
“recording_type”: “Automatic”,
“forward_to”: {
“type”: “callQueue”,
“name”: “Test Queue”,
“id”: “0000000000000000000000”,
“extension_number”: “981”
},
“caller_country_code”: “1”,
“caller_country_iso_code”: “US”,
“answer_start_time”: “2026-01-01T00:00:00Z”,
“department”: “Test Department - Intake”,
“cost_center”: “TEST”
},
{
“id”: “d4e5f6a7-b8c9-0123-defa-234567890123”,
“call_type”: “voip”,
“caller_number_source”: “external”,
“caller_location”: “United States”,
“duration”: 0,
“result”: “Answered by Other Member”,
“date_time”: “2026-01-01T00:00:32Z”,
“path”: “extension”,
“forward_to”: {
“type”: “user”,
“name”: “Test User A”,
“id”: “0000000000000000000000”,
“extension_number”: “1019”
},
“caller_country_code”: “1”,
“caller_country_iso_code”: “US”,
“call_end_time”: “2026-01-01T00:00:37Z”,
“department”: “Test Department”,
“cost_center”: “”
},
{
“id”: “e5f6a7b8-c9d0-1234-efab-345678901234”,
“call_type”: “voip”,
“caller_number_source”: “external”,
“caller_location”: “United States”,
“duration”: 296,
“result”: “Call connected”,
“date_time”: “2026-01-01T00:00:32Z”,
“path”: “extension”,
“forward_to”: {
“type”: “user”,
“name”: “Test User B”,
“id”: “0000000000000000000001”,
“extension_number”: “883”
},
“ai_call_summary_id”: “00000000-0000-0000-0000-000000000000”,
“caller_country_code”: “1”,
“caller_country_iso_code”: “US”,
“answer_start_time”: “2026-01-01T00:00:37Z”,
“call_end_time”: “2026-01-01T00:05:33Z”,
“department”: “Test Department”,
“cost_center”: “”
}
],
“call_id”: “000000000000000000”,
“caller_country_code”: “1”,
“caller_country_iso_code”: “US”,
“callee_did_number”: “+10000000000”,
“callee_country_code”: “1”,
“callee_country_iso_code”: “US”,
“answer_start_time”: “2026-01-01T00:00:00Z”,
“department”: “Test Department AR”,
“cost_center”: “”
}
Case 5: Inbound - Call connected - no recording id - with ai call summary id
{
“id”: “a1b2c3d4-e5f6-7890-abcd-ef1234567890”,
“call_type”: “voip”,
“caller_number”: “1001”,
“caller_number_type”: 1,
“caller_name”: “Test User A”,
“callee_number”: “1002”,
“callee_number_type”: 1,
“callee_name”: “Test User B”,
“direction”: “inbound”,
“duration”: 74,
“result”: “Call connected”,
“date_time”: “2026-01-01T00:00:00Z”,
“path”: “extension”,
“has_recording”: false,
“has_voicemail”: false,
“log_details”: ,
“call_id”: “000000000000000000”,
“ai_call_summary_id”: “00000000-0000-0000-0000-000000000000”,
“answer_start_time”: “2026-01-01T00:00:04Z”,
“call_end_time”: “2026-01-01T00:01:18Z”,
“department”: “”,
“cost_center”: “”
}
Case 6: Inbound - Call connected - with recording id but Unable to transcribe this recording. - with ai call summary id
{
“id”: “a1b2c3d4-e5f6-7890-abcd-ef1234567890”,
“call_type”: “voip”,
“caller_number”: “+10000000001”,
“caller_number_type”: 2,
“caller_number_source”: “external”,
“caller_location”: “United States”,
“callee_number”: “801”,
“callee_number_type”: 1,
“callee_name”: “Main Auto Receptionist”,
“direction”: “inbound”,
“duration”: 5,
“result”: “Call connected”,
“date_time”: “2026-01-01T00:00:00Z”,
“path”: “autoReceptionist”,
“has_recording”: false,
“has_voicemail”: false,
“log_details”: [
{
“id”: “b2c3d4e5-f6a7-8901-bcde-f12345678901”,
“caller_number_source”: “external”,
“caller_location”: “United States”,
“duration”: 0,
“result”: “1”,
“date_time”: “2026-01-01T00:00:34Z”,
“path”: “ivrMenu”,
“caller_country_code”: “1”,
“caller_country_iso_code”: “US”,
“department”: “Test Department AR”,
“cost_center”: “”
},
{
“id”: “c3d4e5f6-a7b8-9012-cdef-123456789012”,
“caller_number_source”: “external”,
“caller_location”: “United States”,
“duration”: 5,
“result”: “Auto Recorded”,
“date_time”: “2026-01-01T00:00:34Z”,
“path”: “callQueue”,
“recording_id”: “00000000000000000000000000000000”,
“recording_type”: “Automatic”,
“forward_to”: {
“type”: “callQueue”,
“name”: “Test Intake Queue”,
“id”: “0000000000000000000000”,
“extension_number”: “980”
},
“caller_country_code”: “1”,
“caller_country_iso_code”: “US”,
“answer_start_time”: “2026-01-01T00:00:00Z”,
“department”: “Test Department”,
“cost_center”: “TEST - Intake”
},
{
“id”: “d4e5f6a7-b8c9-0123-defa-234567890123”,
“call_type”: “voip”,
“caller_number_source”: “external”,
“caller_location”: “United States”,
“duration”: 0,
“result”: “Answered by Other Member”,
“date_time”: “2026-01-01T00:00:37Z”,
“path”: “extension”,
“forward_to”: {
“type”: “user”,
“name”: “Test User A”,
“id”: “0000000000000000000001”,
“extension_number”: “1015”
},
“caller_country_code”: “1”,
“caller_country_iso_code”: “US”,
“call_end_time”: “2026-01-01T00:01:08Z”,
“department”: “Test Department”,
“cost_center”: “”
},
{
“id”: “e5f6a7b8-c9d0-1234-efab-345678901234”,
“call_type”: “voip”,
“caller_number_source”: “external”,
“caller_location”: “United States”,
“duration”: 0,
“result”: “No Answer”,
“date_time”: “2026-01-01T00:00:37Z”,
“path”: “extension”,
“forward_to”: {
“type”: “user”,
“name”: “Test User B”,
“id”: “0000000000000000000002”,
“extension_number”: “1054”
},
“caller_country_code”: “1”,
“caller_country_iso_code”: “US”,
“call_end_time”: “2026-01-01T00:01:08Z”,
“department”: “”,
“cost_center”: “”
},
{
“id”: “f6a7b8c9-d0e1-2345-fabc-456789012345”,
“call_type”: “voip”,
“caller_number_source”: “external”,
“caller_location”: “United States”,
“duration”: 0,
“result”: “Answered by Other Member”,
“date_time”: “2026-01-01T00:00:37Z”,
“path”: “extension”,
“forward_to”: {
“type”: “user”,
“name”: “Test User C”,
“id”: “0000000000000000000003”,
“extension_number”: “1088”
},
“caller_country_code”: “1”,
“caller_country_iso_code”: “US”,
“call_end_time”: “2026-01-01T00:00:38Z”,
“department”: “Test Department”,
“cost_center”: “”
},
{
“id”: “a7b8c9d0-e1f2-3456-abcd-567890123456”,
“call_type”: “voip”,
“caller_number_source”: “external”,
“caller_location”: “United States”,
“duration”: 0,
“result”: “Answered by Other Member”,
“date_time”: “2026-01-01T00:00:37Z”,
“path”: “extension”,
“forward_to”: {
“type”: “user”,
“name”: “Test User D”,
“id”: “0000000000000000000004”,
“extension_number”: “1056”
},
“caller_country_code”: “1”,
“caller_country_iso_code”: “US”,
“call_end_time”: “2026-01-01T00:00:37Z”,
“department”: “”,
“cost_center”: “”
},
{
“id”: “b8c9d0e1-f2a3-4567-bcde-678901234567”,
“call_type”: “voip”,
“caller_number_source”: “external”,
“caller_location”: “United States”,
“duration”: 0,
“result”: “Answered by Other Member”,
“date_time”: “2026-01-01T00:00:37Z”,
“path”: “extension”,
“forward_to”: {
“type”: “user”,
“name”: “Test User E”,
“id”: “0000000000000000000005”,
“extension_number”: “1017”
},
“caller_country_code”: “1”,
“caller_country_iso_code”: “US”,
“call_end_time”: “2026-01-01T00:00:38Z”,
“department”: “Test Department”,
“cost_center”: “”
},
{
“id”: “c9d0e1f2-a3b4-5678-cdef-789012345678”,
“call_type”: “voip”,
“caller_number_source”: “external”,
“caller_location”: “United States”,
“duration”: 0,
“result”: “Answered by Other Member”,
“date_time”: “2026-01-01T00:00:37Z”,
“path”: “extension”,
“forward_to”: {
“type”: “user”,
“name”: “Test User F”,
“id”: “0000000000000000000006”,
“extension_number”: “857”
},
“caller_country_code”: “1”,
“caller_country_iso_code”: “US”,
“call_end_time”: “2026-01-01T00:00:38Z”,
“department”: “Test Department”,
“cost_center”: “”
},
{
“id”: “d0e1f2a3-b4c5-6789-defa-890123456789”,
“call_type”: “voip”,
“caller_number_source”: “external”,
“caller_location”: “United States”,
“duration”: 0,
“result”: “Answered by Other Member”,
“date_time”: “2026-01-01T00:00:37Z”,
“path”: “extension”,
“forward_to”: {
“type”: “user”,
“name”: “Test User G”,
“id”: “0000000000000000000007”,
“extension_number”: “985”
},
“caller_country_code”: “1”,
“caller_country_iso_code”: “US”,
“call_end_time”: “2026-01-01T00:00:37Z”,
“department”: “Test Department”,
“cost_center”: “”
},
{
“id”: “e1f2a3b4-c5d6-7890-efab-901234567890”,
“call_type”: “voip”,
“caller_number_source”: “external”,
“caller_location”: “United States”,
“duration”: 0,
“result”: “Answered by Other Member”,
“date_time”: “2026-01-01T00:01:13Z”,
“path”: “extension”,
“forward_to”: {
“type”: “user”,
“name”: “Test User H”,
“id”: “0000000000000000000008”,
“extension_number”: “1081”
},
“caller_country_code”: “1”,
“caller_country_iso_code”: “US”,
“call_end_time”: “2026-01-01T00:01:25Z”,
“department”: “Test Department”,
“cost_center”: “”
},
{
“id”: “f2a3b4c5-d6e7-8901-abcd-012345678901”,
“call_type”: “voip”,
“caller_number_source”: “external”,
“caller_location”: “United States”,
“duration”: 0,
“result”: “Answered by Other Member”,
“date_time”: “2026-01-01T00:01:13Z”,
“path”: “extension”,
“forward_to”: {
“type”: “user”,
“name”: “Test User A”,
“id”: “0000000000000000000001”,
“extension_number”: “1015”
},
“caller_country_code”: “1”,
“caller_country_iso_code”: “US”,
“call_end_time”: “2026-01-01T00:01:25Z”,
“department”: “Test Department”,
“cost_center”: “”
},
{
“id”: “a3b4c5d6-e7f8-9012-bcde-123456789012”,
“call_type”: “voip”,
“caller_number_source”: “external”,
“caller_location”: “United States”,
“duration”: 5,
“result”: “Call connected”,
“date_time”: “2026-01-01T00:01:13Z”,
“path”: “extension”,
“forward_to”: {
“type”: “user”,
“name”: “Test User B”,
“id”: “0000000000000000000002”,
“extension_number”: “1054”
},
“caller_country_code”: “1”,
“caller_country_iso_code”: “US”,
“answer_start_time”: “2026-01-01T00:01:25Z”,
“call_end_time”: “2026-01-01T00:01:30Z”,
“department”: “”,
“cost_center”: “”
}
],
“call_id”: “000000000000000000”,
“caller_country_code”: “1”,
“caller_country_iso_code”: “US”,
“callee_did_number”: “+10000000000”,
“callee_country_code”: “1”,
“callee_country_iso_code”: “US”,
“answer_start_time”: “2026-01-01T00:00:00Z”,
“department”: “Test Department AR”,
“cost_center”: “”
}
Questions
-
Under what conditions are AI call summaries generated?
- Are they limited to specific account types, regions, or features (e.g., Zoom AI Companion enabled)?
-
When should we expect a recording ID to be present?
-
Is it only when cloud recording is explicitly enabled for the call?
-
Are there cases where a call is recorded but the recording ID is delayed or not included in the initial payload?
-
-
Is there a recommended way to reliably retrieve:
-
AI summaries
-
Recording metadata
(e.g., separate API endpoints instead of relying on webhook payloads?)
-
-
Are there known differences between:
result = "call connected"vsresult = "completed"
in terms of recording or AI summary availability?
Goal
I want to build a reliable workflow that:
-
Detects successful calls
-
Retrieves recordings and AI summaries when available
-
Handles cases where data is delayed or missing
At the moment, the inconsistency makes it difficult to determine whether:
-
The data is unavailable
-
Delayed
-
Or requires a different API to retrieve
Any clarification or guidance would be greatly appreciated.
Thanks in advance!