Updating a single user's information

To change, or update, a user's information, a PATCH request needs to be made. In thise scenario, we'll update a user's status programmatically. To do so, we'll need to:

  • Find our user using a query parameter
  • Send the appropiate status ID
  • Send a PATCH request to the update a user's status endpoint.

We'll use a helper function to do the first task:

Find and set user ID on component mount sample

let userId;
const useEffect(() => {
  const userEmail = new URLSearchParams(window.location.search).get('email');
  userId = (JSON.parse(localStorage.getItem("users"))).find(u => u.email === userEmail).id;
}, [])

With our user ID identified, we can update their status based on input:

Function to make PATCH request, with user ID appended to endpoint URL sample

const UpdateStatus = async (e) => {
    e.preventDefault();
    try {
        const data = await fetch(
            `https://api.zoom.us/v2/contact_center/users/${userId}/status`,
            {
                method: "PATCH",
                headers: {
                    "Content-Type": "application/json",
                    Authorization: "Bearer YOUR_SECRET_TOKEN",
                },
                body: JSON.stringify({
                    status_id: statusId,
                }),
            },
        );
    } catch (error) {
        console.log(`Error: ${error.message}`);
    }
};

Demo vs. best practices:

  • Users are presumably stored in local storage here, but it's best to use a connected database in enterprise-level scnenarios
  • Built-in logic is assumed to use a URL parameter to find the user. There are multiple ways to implement user identifcation, and a best-fitting flow should be decided on for each use-case
  • The above code uses a hard-coded status ID. It's best to have status ID's easily accessible, on or offline, for either dynamic or manual input.