Version, User & System Webhook Events Reference
This reference provides the full payload structure and a JSON example for every webhook event published for the Version entity, the User entity, product catalog uploads, and asynchronous request failures.
For the list of events and what triggers them, see Webhooks Overview.
Optional FieldsFields with no value in DealHub are omitted from the event payload entirely. This applies to every event described below.
Version (version)
version)Published on different activities around the Version entity — for example, when an administrator creates a new version, activates a version, or reactivates a version.
The created action fires both when a version is created from scratch and when it's created by duplicating an existing version.
{
"event": "version",
"action": "created",
"status": "draft",
"version_id": "786865656565",
"version_name": "some name",
"execution_date": "2021-10-22 16:39:08",
"executed_by": "[email protected]",
"impersonated_by": ""
}The table below describes each field in the payload:
| Field | Description | Can be omitted | Valid Values / Format |
|---|---|---|---|
event | Business event type | No | "version" |
action | Action performed on the version | No | "created", "activated", "reactivated" |
status | Version status | No | "draft", "active", "deactivated" |
version_id | ID of the version | No | 16 chars |
version_name | Name of the version | No | |
execution_date | GMT date/time of the action | No | yyyy-mm-dd hh:mm:ss, e.g. 2021-10-22 09:34:44 |
executed_by | Login of the administrator who performed the action | No | |
impersonated_by | Login of the admin, if they performed the action on behalf of another user | Yes |
Products Upload (productsUpload)
productsUpload)Published once an SFTP product file upload or Open API upload completes. An SFTP upload loads data into every draft Version available for the account at upload time, so this event is published once per affected draft Version.
This event always carries a request_id in the event_info structure (see Webhooks Overview), letting the consuming system tell apart different asynchronous upload requests. For SFTP uploads, files dropped into the SFTP folder should use a naming convention like triggerImport_{TimeInMilliseconds}.txt so each upload attempt gets a unique identifier, which becomes the request_id.
The payload differs slightly depending on whether the upload succeeded or failed:
{
"event": "productsUpload",
"upload_status": "success",
"version_id": "786865656565",
"version_name": "some name",
"imported_skus": "34"
}{
"event": "productsUpload",
"upload_status": "error",
"version_id": "786865656568",
"version_name": "master_version_2503",
"imported_skus": "29",
"errors": "4"
}The table below describes each field in the payload:
| Field | Description | Can be omitted | Valid Values / Format |
|---|---|---|---|
event | Business event type | No | "productsUpload" |
upload_status | Status of the products data upload | No | "success", "error" |
version_id | ID of the version | No | 16 chars |
version_name | Name of the version | No | |
imported_skus | Number of lines (SKUs) loaded into the version | No | |
errors | Number of lines (SKUs) that could not be loaded into the version. Zero on success. | No |
User (user)
user)Published when an action is performed on the User entity. User types include sales reps, administrators, DealRoom users (selling-org users invited to a DealRoom), and partner users.
The payload is the same shape for every action — only the values change:
{
"event": "user",
"action": "created",
"user_external_id": "",
"user_id": "786865656908",
"user_login": "James_Parker",
"execution_date": "2021-10-22 16:39:08",
"executed_by": "SYSTEM"
}{
"event": "user",
"action": "modified",
"user_external_id": "kjnk43nk443",
"user_id": "786865656565",
"user_login": "James_Parker",
"execution_date": "2021-10-22 16:39:08",
"executed_by": "[email protected]"
}The table below describes each field in the payload:
| Field | Description | Can be omitted | Valid Values / Format |
|---|---|---|---|
event | Business event type | No | "user" |
action | Action performed on the user | No | "created", "modified", "deleted" |
user_external_id | External (CRM) ID of the user, persisted when the user is created via authentication or another relevant API. Empty when the user is created by an internal DealHub process (e.g. an admin created the user via the UI, or a non-existing selling-org user was invited to a DealRoom). | Yes | |
user_id | DealHub user ID | No | 16 chars |
user_login | Login of the user in DealHub | No | |
execution_date | GMT date/time of the action | No | yyyy-mm-dd hh:mm:ss, e.g. 2021-10-22 09:34:44 |
executed_by | Login of the administrator, if they performed the action explicitly; otherwise "SYSTEM" (e.g. the system creates a new sales rep user upon first authentication) | No | "SYSTEM" or an administrator login |
impersonated_by | Login of the admin, if they performed the action on behalf of another user | Yes |
Failure WebHook v1
Published if the system fails to execute an asynchronous API request — for example, a request to duplicate or activate a version.
{
"error_description": "",
"error_code": ""
}The table below describes each field in the payload:
| Field | Description | Can be omitted | Valid Values / Format |
|---|---|---|---|
error_description | Description of the error when the request status is "failed" | Yes | |
error_code | Code of the error when the request status is "failed" | Yes |
Updated 23 days ago
