Voicemail settings in Update Phone User (PATCH /phone/users/{userId}) requests are ignored

I’m trying to modify personal voicemail & video settings found on the Policy tab of the Phone User accounts using the Update User Profile method.

I’m able to modify other policy settings but anything under the voicemail property is ignored.

I’m able to replicate the problem in my application and in Postman through the following steps:

  1. Create a new phone user without selecting a template

  2. On the Policy tab, disable ‘Personal Voicemail & Videomail’ and ‘Ad Hoc Call Recording’

  3. Do a GET /phone/users/{userId} to verify the policy values:

// truncated GET phone user response before update
{
    "policy": {
        "sms": {
            "enable": false
        },
        "voicemail": {
            "enable": false,
            "allow_transcription": true,
            "allow_download": false,
            "allow_delete": false,
            "allow_videomail": false
        },
        "voicemail_access_members": [],
        "ad_hoc_call_recording": {
            "enable": false,
            "recording_start_prompt": false,
            "recording_transcription": false,
            "play_recording_beep_tone": {
                "enable": false
            }
        }
    }
}
  1. Do a PATCH /phone/users/{userId} with the following body:
{
  "policy": {
      "voicemail": {
        "enable": true,
        "allow_transcription": true,
        "allow_download": true,
        "allow_delete": true,
        "allow_videomail": true
    },
    "ad_hoc_call_recording": {
      "enable": true,
      "recording_start_prompt": true,
      "recording_transcription": true
    }
  }
}

Response is a 204

  1. Do another GET /phone/users/{userId} to verify the updated policy values:
// truncated GET phone user response after update
{

    "policy": {
        "sms": {
            "enable": false
        },
        "voicemail": {
            "enable": false,
            "allow_transcription": true,
            "allow_download": false,
            "allow_delete": false,
            "allow_videomail": false
        },
        "voicemail_access_members": [],
        "ad_hoc_call_recording": {
            "enable": true,
            "recording_start_prompt": true,
            "recording_transcription": true,
            "play_recording_beep_tone": {
                "enable": false
            }
        }
    }
}

Note the ad_hoc_call_recording values were updated but the voicemail values were not.

Please let me know if you need any other information.

Thanks

Hi @kris.seraphine
Thanks for reaching out to the Zoom Developer forum, I am happy to help here!
I was able to replicate this issue on my end with the steps that you provided.
I believe this is happening because you are disabling both the Personal Voicemail and Videmail and the Ad Hoc Call Recording in the UI. Once I enabled them back, I was able to update those values via API

Thanks for the reply.

I do still have the problem if I only include voicemail in the update body.

I included the ad_hoc_call_recording change in my example to illustrate that the problem was specific to voicemail and not all updates but I get the same result with only the voicemail object in the body. Also the same result with only the enable key.

If it would help, I can replicate again and provide the tracking ID from the response header (or any other additional information).

// Only include voicemail object enable key. Result: 204 response but changes not made to user
{
    "policy": {
        "voicemail": {
            "enable": true,
            "allow_transcription": true,
            "allow_download": true,
            "allow_delete": true,
            "allow_videomail": true
        }
    }
}
// Only include voicemail object enable key. Result: 204 response but change not made to user
{
    "policy": {
        "voicemail": {
            "enable": true,
        }
    }
}

Hi @kris.seraphine
I understand what you are saying, but can you please make sure that these features are enabled at account level?
Admin tab > Account management > Account settings > Zoom Phone

Yes, the voicemail feature is enabled and unlocked at the account level

On the site, the voicemail feature is enabled, unlocked and says “Using account settings”

I can toggle the voicemail setting on or off on the user in the portal.

Let me know if you need additional detail. I tried to upload screenshots but get an error when clicking reply

Thanks.

Hello,

I’m facing the same problem, is there any news from Zoom?

No, unfortunately, I did not get a solution or workaround.

@elisa.zoom Could you please help us to continue to look into the issue? Enabling and disabling the voicemail for a phone user is requested by almost every one of our clients. Thanks a lot for your help :pray:

Hi @quang.le
Sorry for the late reply here.
I was on leave for some time so I did not follow up with you.
Are you still having this issue?

Hi @elisa.zoom it yes it’s still the problem and we are running into the same issue across other object such as Zoom Rooms. The whole section digital_signage in the Zoom rooms settings is not modifiable till a manual change is made to the Zoom Admin Portal.

Hi @quang.le
Thanks for getting back to me! Could you please create a new topic under the right category, in this case Zoom Rooms and include all the issues you are having so I can take a closer look.
Feel free to tag me so I get a notification

Has this been fixed, I’m have issue trying to update with.

{
“policy”: {
“voicemail”: {
“allow_transcription”: True,
},
}
}

Hey @Jurgz
Thanks for reaching out to us.
Could you please share the entire request body you are sending so I can try and replicate this on my end.

The full request body is:

{"delegation": {"privileges": [1, 2, 3, 5]}}

Below I’ve included the captured request/response for a failed request and a successful request. The only difference is the failed request includes privilege: 5 in the body. “5” corresponds to the Opt in/out privilege.

Successful

interactions:
- request:
    body: '{"delegation": {"privileges": [1, 2, 3]}}'
    headers:
      Accept:
      - application/json
      Accept-Encoding:
      - gzip, deflate
      Authorization:
      - REDACTED
      Connection:
      - keep-alive
      Content-Length:
      - '41'
      Content-Type:
      - application/json
      User-Agent:
      - python-requests/2.32.3
    method: PATCH
    uri: https://api.zoom.us/v2/phone/users/kris.seraphine+cdwlab@cdw.com/settings/delegation
  response:
    body:
      string: ''
    headers:
      CF-RAY:
      - 91498a2558814ca8-MSP
      Connection:
      - keep-alive
      Date:
      - Wed, 19 Feb 2025 22:02:10 GMT
      NEL:
      - '{"success_fraction":0.01,"report_to":"cf-nel","max_age":604800}'
      Report-To:
      - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=jRxKL%2BLp%2BMciiiSzETIh%2BXYJGzMg8boZFUpa%2FGROJqmB%2BTHJm4wwJXpBZosKrmobbmE03lCIXKavYtvoGqL2b%2FAd4X9l2IGwsVAZj2nAz7tMviL6Ekcl1YuR5%2FrZ"}],"group":"cf-nel","max_age":604800}'
      Server:
      - cloudflare
      Set-Cookie:
      - __cf_bm=7o6yr9BKoOFVKOQTSALMFQl0c7B5aUgOWVoqKdcReiY-1740002530-1.0.1.1-h7.rRFct7pCPp1CGg.lW7.bt8fX_y9Fl3uBlu04YL70PfmujihNEhhAes9TpIkbuCvVEckjp1E7ebgSL2Poj3Q;
        path=/; expires=Wed, 19-Feb-25 22:32:10 GMT; domain=.us01pbx.zoom.us; HttpOnly;
        Secure; SameSite=None
      alt-svc:
      - h3=":443"; ma=86400
      cf-cache-status:
      - DYNAMIC
      strict-transport-security:
      - max-age=31536000; includeSubDomains
      vary:
      - Origin
      - Access-Control-Request-Method
      - Access-Control-Request-Headers
      x-content-type-options:
      - nosniff
      x-frame-options:
      - deny
      x-ratelimit-category:
      - Light
      x-zm-region:
      - VA2
      x-zm-trackingid:
      - WEB_84c41cdb82ddebe6abcf18ad78b6725f
    status:
      code: 204
      message: No Content
version: 1

Failed

interactions:
- request:
    body: '{"delegation": {"privileges": [1, 2, 3, 5]}}'
    headers:
      Accept:
      - application/json
      Accept-Encoding:
      - gzip, deflate
      Authorization:
      - REDACTED
      Connection:
      - keep-alive
      Content-Length:
      - '44'
      Content-Type:
      - application/json
      User-Agent:
      - python-requests/2.32.3
    method: PATCH
    uri: https://api.zoom.us/v2/phone/users/kris.seraphine+cdwlab@cdw.com/settings/delegation
  response:
    body:
      string: '{"code":400,"message":"Delegation privileges error."}'
    headers:
      CF-RAY:
      - 91498d8c3bb6acee-MSP
      Connection:
      - keep-alive
      Content-Length:
      - '53'
      Content-Type:
      - application/json
      Date:
      - Wed, 19 Feb 2025 22:04:29 GMT
      NEL:
      - '{"success_fraction":0.01,"report_to":"cf-nel","max_age":604800}'
      Report-To:
      - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=p6O8gB43GkeOATI%2BMkGe4y1IIPGvAxYKH5xc9STNfZ23ZvQI7S0b7tu5wVUjPdGXuoYRjnI%2BueZSpvtpqS5mKwuX9JvdNH74Kx1o5EY%2BC7BP5asgcblIJz8DeqU2"}],"group":"cf-nel","max_age":604800}'
      Server:
      - cloudflare
      Set-Cookie:
      - __cf_bm=lhtYU.sc3La5zD9lTKFtVhZMFQWJxdvDXYHPFC47Fe4-1740002669-1.0.1.1-P3CUHhCm9bhvRcsODwNsipMutb.N5TLID8ywiWCmIu3nHUkTi0yUfKA_jd7DEvDpo.BStN.7gWpkoiM2OvzadQ;
        path=/; expires=Wed, 19-Feb-25 22:34:29 GMT; domain=.us01pbx.zoom.us; HttpOnly;
        Secure; SameSite=None
      - __cf_bm=l7M6zpfFPByzOKC2kNrL3vcByX2EoPP4yV5uDU7_R8s-1740002669-1.0.1.1-QSgKL_3D37Ge7m3GORN4FBvNtZMvKhferOEz17F1xsk8g4lv8oEiFmHxwKiWTRsTOydeOeN8Hn4j.BVG7i9G7A;
        path=/; expires=Wed, 19-Feb-25 22:34:29 GMT; domain=.zoom.us; HttpOnly; Secure;
        SameSite=None
      alt-svc:
      - h3=":443"; ma=86400
      cf-cache-status:
      - DYNAMIC
      strict-transport-security:
      - max-age=31536000; includeSubDomains
      vary:
      - Origin
      - Access-Control-Request-Method
      - Access-Control-Request-Headers
      x-frame-options:
      - deny
      x-ratelimit-category:
      - Light
      x-zm-region:
      - VA2
      x-zm-trackingid:
      - WEB_6b69fda2354ece97c47731b69edb0111
    status:
      code: 400
      message: Bad Request
version: 1

Hi @kris.seraphine
Thanks for your patience here!
This has been identified as an issue on our end. We will fix this in our april release.

Hey @kris.seraphine

Thanks for your patience now. I just confirmed that this issue was fixed and you should be able to update delegation settings via API now