PATCH /school/v1/users not working for email address

Hi all,

This PATCH request to /school/v1/users seems to have no effect:

{ "id": 12345, "email": “ida.honeycrisp@example.com” }

(Values are examples.)

Before the request, user 12345's email was blank. After the request, it's still blank. I checked it here:

  • /school/v1/users/12345
  • /school/v1/users/extended/12345
  • The web portal

The email address is still blank in all those places.

However, the API returns status code 200 (OK) and the user's ID in the response body. From the docs for that endpoint (below), it sounds like that should mean all went well.

What am I missing?

Comments

  • Stephen Boyle
    Stephen Boyle Blackbaud Employee
    Tenth Anniversary Kudos 5 First Reply Name Dropper

    @Eric Eskildsen
    I just tried it for our demo environment and it worked as expected. So, my guess would be permissions, even down to the specific field, maybe. The checks for a lot of that happens outside of the control of the API code (we call the same routes used by the UI), so a 200 would likely result in that case.

    My call jfyi:

    PATCH https://api.sky.blackbaud.com/school/v1/users HTTP/1.1


    Content-Type: application/json

    Cache-Control: no-cache

    Bb-Api-Subscription-Key: •••••etc.
    Authorization: ••••••etc.

    {

    "email": "jojo@example.com",

    "id": 7901666

    }

  • @Stephen Boyle

    Thanks for the quick reply. The authenticated user has the SKY API Data Sync role….Are there others it needs for the email field?

  • Stephen Boyle
    Stephen Boyle Blackbaud Employee
    Tenth Anniversary Kudos 5 First Reply Name Dropper

    @Eric Eskildsen
    I've looked into this. It looks like the SKY API Data Sync role (though it can call the endpoint) doesn't have rights for the edit actions. You will need Platform manager or Contact card manager.

    We'll update the docs to reflect this as well. Thanks for bringing that to our attention.