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 insteadThis 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
Authorizationheader 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
loginfield 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:
- Build the request body as a JSON array containing one object per user you want to update.
- Send the request to
PUT /api/v1/usersfrom your backend. - 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.
loginidentifies the user and cannot be updatedThe
loginfield 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:
| Parameter | Description | Notes |
|---|---|---|
login | Login identifier of the user. Used as the immutable key to locate the record in DealHub. | Max length: 100 chars |
email | Primary email address of the user. | Max length: 100 chars |
name | Full name of the user. | Max length: 300 chars |
is_active | Sets the user's active status. Inactive users cannot access CPQ. | "true", "false" |
Optional parameters:
| Parameter | Description | Notes |
|---|---|---|
position | The 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 |
phone | User phone number. | Max length: 50 chars |
mobile | User mobile phone number. | Max length: 100 chars |
fax | User fax number. | Max length: 100 chars |
company | User company name. | Max length: 100 chars |
street | Street name. | Max length: 128 chars |
city | City name. | Max length: 32 chars |
state | State name. | Max length: 32 chars |
country | Country name. | Max length: 32 chars |
postal_code | Postal code. | Max length: 16 chars |
user_manager_login | Login identifier of the user's manager. | Max length: 100 chars |
Retrieve the user record before updatingBefore 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.
A200response does not guarantee all users were updatedIf one or more users in the batch could not be updated, DealHub returns HTTP
200but includes anerrorsarray in the response body. Each object in the array identifies the affected user byloginand provides a specific error message. Users not listed in theerrorsarray were updated successfully.Always check the response body for an
errorsarray 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:
- Retrieve a User: Get a single user record by login identifier or DealHub user ID.
- Get a List of Users: Retrieve all users or filter by active or inactive status.
- Create or Update Users (v2): Create new users or update existing ones in a single call.
Related API ReferenceThe Update Users (v1) API Reference page documents the endpoint used in this guide.
Updated 18 days ago
