Update Users (v1)

Use this endpoint to update one or more existing user records in DealHub CPQ. The endpoint accepts a batch of users in a single request, so you can update multiple profiles in one call.

🚧

Consider using Create or Update Users v2 instead

This endpoint only updates users that already exist in DealHub. If your integration also needs to create users, or if you are not certain whether a user exists, use Create or Update Users (v2) instead. V2 handles both cases in a single call and introduces additional fields not available here.

Prerequisites

Before making any requests on this page, ensure the following are in place.

  • DealHub Authentication Token: Include the token in the Authorization header of every request. For instructions on generating a token, see Authentication.
  • Existing user records: This endpoint updates users that are already registered in DealHub CPQ. If a user does not exist, the request will return an error for that user. To create users, use Create or Update Users (v2).
  • The login identifier for each user: The login field is required for every user object in the request. It is the immutable key DealHub uses to identify which record to update.

The Update Workflow

Each time your integration needs to update one or more users, complete the following steps:

  1. Build the request body as a JSON array containing one object per user you want to update.
  2. Send the request to PUT /api/v1/users from your backend.
  3. Handle the response and check for per-user errors if any records could not be updated.

Step 1: Build the Request Body

Construct a users array where each object represents one user to update. Every object must include the required fields. Include any optional fields you want to update -- fields omitted from the request are left unchanged.

🚧

login identifies the user and cannot be updated

The login field is immutable. DealHub uses it to locate the existing record -- it is not a field you can change. If you need to associate a different login with a user, you must deactivate the existing record and provision a new one.

Request body:

{
  "users": [
    {
      "login": "daniel@my_domain.com",
      "email": "daniel_a@my_domain.com",
      "name": "Daniel Smith",
      "is_active": true,
      "position": "CCS",
      "phone": "09-445556",
      "mobile": "054-1010101",
      "fax": "09-4545456",
      "company": "My Domain",
      "street": "Harokmin 26",
      "city": "Holon",
      "state": "Center",
      "country": "Israel",
      "postal_code": "563733",
      "user_manager_login": "roy11"
    }
  ]
}

Required parameters:

ParameterDescriptionNotes
loginLogin identifier of the user. Used as the immutable key to locate the record in DealHub.Max length: 100 chars
emailPrimary email address of the user.Max length: 100 chars
nameFull name of the user.Max length: 300 chars
is_activeSets the user's active status. Inactive users cannot access CPQ."true", "false"

Optional parameters:

ParameterDescriptionNotes
positionThe user's role in the organization (job title). Displayed in the CPQ UI as Position. Referenced as USER_TITLE in document template parameters.Max length: 300 chars
phoneUser phone number.Max length: 50 chars
mobileUser mobile phone number.Max length: 100 chars
faxUser fax number.Max length: 100 chars
companyUser company name.Max length: 100 chars
streetStreet name.Max length: 128 chars
cityCity name.Max length: 32 chars
stateState name.Max length: 32 chars
countryCountry name.Max length: 32 chars
postal_codePostal code.Max length: 16 chars
user_manager_loginLogin identifier of the user's manager.Max length: 100 chars
❗️

Retrieve the user record before updating

Before sending an update, use Retrieve a User to inspect which optional fields are already populated. Omitting a field from the update request leaves it unchanged, but if your system sends an empty string for an optional field, it may overwrite an existing value.

Step 2: Send the Request

Method: PUT

URL: /api/v1/users

Step 3: Handle the Response

A successful request returns HTTP 200. When all users in the batch were updated without issue, the response body is empty.

🚧

A 200 response does not guarantee all users were updated

If one or more users in the batch could not be updated, DealHub returns HTTP 200 but includes an errors array in the response body. Each object in the array identifies the affected user by login and provides a specific error message. Users not listed in the errors array were updated successfully.

Always check the response body for an errors array before treating the request as fully successful.

Partial error response example:

{
  "errors": [
    {
      "login": "daniel@my_domain.com",
      "message": "<SPECIFIC_ERROR_DETAILS>"
    },
    {
      "login": "john@my_domain.com",
      "message": "<SPECIFIC_ERROR_DETAILS>"
    }
  ]
}

Next Steps

Now that you understand the core concepts, proceed to the practical guides:

📘

Related API Reference

The Update Users (v1) API Reference page documents the endpoint used in this guide.