Tracking voicemails, even when deleted

Using this template helps us debug your issues more effectively :slight_smile:

Description
I need to be able to find out how many voicemails have been left for a user, even if those voicemails have been deleted. I am attempting to use /phone/users/{userId}/voice_mails API but no matter what date range I use, I can’t seem to find any record of them having been left a voicemail. We need to audit these occurrences so I am wondering where I should look for the whether or not a voicemail was left, even if the recording for it has been deleted.

Error
No error. Just a question

Which App Type (OAuth / Chatbot / JWT / Webhook)?
JWT

Which Endpoint/s?

/phone/users/{userId}/voice_mails

Additional context
The goal is to report on all phone activity for a user: Calls received, calls missed, calls rejected AND voicemail left for that user even if deleted. I have everything but the voicemail list at this point.

Thanks,
Pete

Hey @pete_h,

Thank you for reaching out to the Zoom Developer Forum. Just to make sure that I understand, are you seeing that when a voicemail is deleted you aren’t able to see it in the API anymore or are there issues accessing any voicemail regardless of the state?

Can you share the request URL that you’re using? Specifically, with the from and to dates.

I’ll use that to investigate further.

Thanks,
Max

You are correct. At first I can see it, and then after the voicemail has been listened to and deleted, it no longer shows up in the logs.

I ran the API as described on Monday. The only option when we are closed is to leave a voice mail (Sat-Mon). This is what I saw then (ID’s and numbers obfuscated:

{
“next_page_token”: “”,
“page_size”: 30,
“total_records”: 5,
“from”: “2021-08-06”,
“to”: “2021-09-06”,
“voice_mails”: [
{
“id”: “1234567890abcdefghijklmnopqrsddc”,
“caller_number”: “1234567890”,
“caller_number_type”: 2,
“caller_name”: “123456789”,
“callee_number”: “4100”,
“callee_number_type”: 1,
“callee_name”: “Reception”,
“duration”: 30,
“download_url”: “https://zoom.us/v2/phone/voice_mails/download/1234567890abcdefghijklmnopqrs”,
“date_time”: “2021-09-05T20:43:22Z”,
“status”: “unread”
},
{
“id”: “1234567890abcdefghijklmnopqrs2ce”,
“caller_number”: “1234567890”,
“caller_number_type”: 2,
“caller_name”: “Anonomous A”,
“callee_number”: “4100”,
“callee_number_type”: 1,
“callee_name”: “Reception”,
“duration”: 70,
“download_url”: “https://zoom.us/v2/phone/voice_mails/download/1234567890abcdefghijklmnopqrsCCC”,
“date_time”: “2021-09-04T20:02:21Z”,
“status”: “unread”
},
{
“id”: “1234567890abcdefghijklmnopqrs0a7”,
“caller_number”: “1234567890”,
“caller_number_type”: 2,
“caller_name”: “Jones Bev”,
“callee_number”: “4100”,
“callee_number_type”: 1,
“callee_name”: “Reception”,
“duration”: 22,
“download_url”: “https://zoom.us/v2/phone/voice_mails/download/1234567890abcdefghijklmnopqrsoHw”,
“date_time”: “2021-09-04T14:37:37Z”,
“status”: “unread”
},
{
“id”: “1234567890abcdefghijklmnopqrsa1a”,
“caller_number”: “1234567890”,
“caller_number_type”: 2,
“caller_name”: “Smith Nancy”,
“callee_number”: “4100”,
“callee_number_type”: 1,
“callee_name”: “Reception”,
“duration”: 42,
“download_url”: “https://zoom.us/v2/phone/voice_mails/download/1234567890abcdefghijklmnopqrsprA”,
“date_time”: “2021-09-03T18:30:52Z”,
“status”: “unread”
},
{
“id”: “1234567890abcdefghijklmnopqrsca8”,
“caller_number”: “1234567890”,
“caller_number_type”: 2,
“caller_name”: “Tiaa”,
“callee_number”: “4100”,
“callee_number_type”: 1,
“callee_name”: “Reception”,
“duration”: 36,
“download_url”: “https://zoom.us/v2/phone/voice_mails/download/1234567890abcdefghijklmnopqrsHyC2E7g”,
“date_time”: “2021-09-03T18:05:51Z”,
“status”: “unread”
}
]
}

I just ran the same API call now, since I am using Postman. The URL and results were still there from Monday. I know the voicemails have been listened to by now. This is what I get today:

{
“next_page_token”: “”,
“page_size”: 30,
“total_records”: 0,
“from”: “2021-08-06”,
“to”: “2021-09-06”
}

Same API. Same date range. There were 5 voicemails when I ran the API on Monday. 0 today. Same user, same date range.

{{baseUrl}}/phone/users/FAlS_7ivS3GMNOT_REAL/voice_mails?from=2021-08-02&to=2021-09-06

Pete

Hey @pete_h,

My apologies for the delay here. I was able to confirm this is expected behavior and unfortunately, we don’t have an API that will report on historical voicemails once they have been deleted. If you would like this feature to be considered for a future release, I recommend posting in the #feature-requests category.

In the meantime, if your use case involves checking the voicemails with the API I would attempt to do that before they are likely to be checked and delete. This might involve making the API call after business hours but before users are in to check the voicemail.

Let me know if that helps.

Thanks,
Max

Hmmm…that seems like a dangerous oversight. Being able to delete a voicemail and have no trace of it ever existing seems like a security/auditing failure. There should never be a time where a call or a voicemail cannot be tracked.

So, I’ll add this as a feature request. In the meantime I’ll explore the “Voicemail is received” webhook and see if I can track voicemail transactions that way.

Thanks for getting back to me.

Hey @pete_h,

Thank you for submitting a feature request! I agree this would be valuable to have moving forward.

Thanks,
Max