How to Synchronize Contact Groups Using BoldDesk Webhooks
Contact Group webhooks enable BoldDesk to automatically notify external applications whenever a contact group is created, updated, or deleted. This allows you to keep company, organization, or customer group information synchronized across external systems such as CRMs, directory services, provisioning platforms, and custom business applications.
This article focuses on configuring and using Contact Group webhooks for data synchronization. For information about creating webhooks, configuring authentication, validating signatures, activating webhook events, and handling delivery failures, refer to the related webhook articles listed at the end of this guide.
Supported Contact Group Webhook Events
The Contact Group module supports the following webhook events:
| Event | When the Webhook Runs |
|---|---|
| Created | A new Contact Group is created. |
| Updated | A field is changed in an existing Contact Group. |
| Deleted | A Contact Group is deleted. |
The Contact Group deletion event is named Deleted. Do not configure or document it as Permanently Deleted.
The Permanently Deleted event applies to other supported modules, such as Ticket and Contact.
Use Cases
Use Contact Group webhooks to:
- Create a corresponding company or organization record in an external CRM.
- Synchronize Contact Group updates with an external directory.
- Start an account-provisioning workflow when a Contact Group is created.
- Update external records when Contact Group information changes.
- Archive, deactivate, or remove an external record when a Contact Group is deleted.
- Send Contact Group data to an internal reporting or data-processing system.
Prerequisites
Before configuring the webhook, ensure that:
- The receiving system provides a secure (HTTPS) endpoint that can accept webhook requests.
- The endpoint supports the required authentication method and can process the configured payload format.
- The receiving system can handle Contact Group create, update, and delete events.
- You have permission to Manage webhooks in BoldDesk.
- Any Contact Group fields required by the receiving system are available as webhook placeholders.
Create the Contact Group Webhook
- Go to Admin → Webhooks.
- Select Add Webhook.
- Enter a descriptive webhook name.
- Enter a description that explains the webhook’s purpose.
- Select Contact Group as the module.
- Select one or more of the following events:
- Created
- Updated
- Deleted
- Enter the destination endpoint under Webhook Endpoint.
- Select the HTTP request method expected by the endpoint:
- POST
- PUT
- PATCH
- DELETE
- Configure authentication, signing, custom headers, or conditions when required.
- Configure the webhook payload.
- Select Add to save the webhook.
The selected HTTP request method must match the method accepted by the destination endpoint. For example, if the endpoint accepts only POST requests but the webhook is configured to use PUT, the request will fail.
Choose the Payload Type
BoldDesk supports the following webhook payload options:
| Payload Type | Description | Recommended Use |
|---|---|---|
| Default Payload | Uses an event-based payload template and allows the applicable fields to be selected. | Use when the receiving system can process the standard BoldDesk event structure. |
| Advanced Payload | Allows a custom payload structure to be defined for the destination endpoint. | Use when the endpoint requires specific property names, fixed values, or a custom JSON contract. |
Configure a Default Payload
Use Default Payload when the receiving system can process the standard Contact Group payload.
To configure it:
- Open the webhook’s Payload section.
- Select Default Payload.
- Select the Contact Group fields that must be included.
- Enable the option to include all fields only when the endpoint requires the complete Contact Group record.
- Review the selected fields.
- Save the webhook.
Include only the fields required by the destination system. Sending unnecessary fields increases the payload size and may expose information that the endpoint does not need.
Configure an Advanced JSON Payload
Use Advanced Payload when the receiving endpoint requires a custom JSON structure.
To configure it:
- Open the webhook’s Payload section.
- Select Advanced Payload.
- Select JSON as the content type.
- Configure the custom body.
- Use Insert Placeholders to add the required Contact Group fields.
- Confirm that the body contains valid JSON.
- Save the webhook.
Insert placeholders through the BoldDesk webhook configuration interface. Do not type placeholder names from memory. The available placeholders depend on the selected module and current webhook configuration. An incorrect placeholder may be sent as literal text or produce an invalid payload.
Create the Advanced Payload Structure
Use the following as a structural example only. Replace each sample value with the exact placeholder shown under Insert Placeholders:
{
"contactGroupName": "{{CONTACT_GROUP_NAME_PLACEHOLDER}}",
"description": "{{CONTACT_GROUP_DESCRIPTION_PLACEHOLDER}}",
"notes": "{{CONTACT_GROUP_NOTES_PLACEHOLDER}}"
}
If the Contact Group domain is available under Insert Placeholders, add it using the exact placeholder supplied by BoldDesk:
{
"contactGroupName": "{{CONTACT_GROUP_NAME_PLACEHOLDER}}",
"description": "{{CONTACT_GROUP_DESCRIPTION_PLACEHOLDER}}",
"notes": "{{CONTACT_GROUP_NOTES_PLACEHOLDER}}",
"domain": "{{CONTACT_GROUP_DOMAIN_PLACEHOLDER}}"
}
If the endpoint requires custom fields, insert the applicable custom-field placeholders through the BoldDesk interface.
Do not enter a fixed domain, such as yahoo.com, unless every webhook request must intentionally send that same value.
To send the domain stored in each Contact Group, use the exact domain placeholder available under Insert Placeholders. If a domain placeholder is unavailable, omit the property or obtain the value through another supported field.
Understand the Webhook Headers
BoldDesk sends system headers with the webhook request. Depending on the webhook configuration, the request may also include authentication, signing, and custom headers.
Common system headers include:
| Header | Purpose |
|---|---|
| Content-Type | Identifies the request payload format, such as application/json; charset=utf-8. |
| Event-Type | Identifies the event that caused the webhook to run. |
| Event-Time | Indicates when the event occurred. |
| User-Agent | Identifies BoldDesk as the request source. |
| x-signature | Supports request-integrity verification when webhook signing is configured. |
If one endpoint processes multiple Contact Group events, use the Event-Type header or another event value included in the payload to determine whether the receiving system should create, update, or delete a record.
Do not rely on an example Authorization header value copied from documentation. Configure authentication according to the credentials and method required by the destination endpoint.
Process Contact Group Events in the Receiving System
The receiving system should perform the appropriate action for each event.
| Contact Group Event | Example External Action |
|---|---|
| Created | Create a corresponding organization, company, or account record. |
| Updated | Update the matching external record with the latest Contact Group values. |
| Deleted | Delete, archive, deactivate, or mark the matching external record as inactive. |
The receiving system should store or map a stable identifier, such as the BoldDesk Contact Group ID, so that future update and delete events affect the correct external record.
Do not rely only on the Contact Group name as the external matching key. Contact Group names can change and may not be unique across all systems.
Use the applicable Contact Group identifier when it is available in the webhook payload.
Secure the Webhook
Configure security according to the destination endpoint’s requirements.
BoldDesk webhook configuration supports options such as:
- Authentication
- Request signing
- Custom headers
- Endpoint-specific credentials
Apply the following practices:
- Use an HTTPS endpoint.
- Validate signed requests according to BoldDesk webhook security guidance.
- Store API keys and secrets securely.
- Do not include passwords or private API keys directly in the JSON payload.
- Reject requests that fail authentication or signature verification.
- Limit the endpoint to the operations required for Contact Group synchronization.
- Record request identifiers, event types, and processing results for auditing.
For complete signature-verification instructions, learn more on How to Secure Webhooks in BoldDesk.
Use test data and a non-production endpoint when validating delete behavior. Confirm that the receiving system does not remove production records during testing.
Troubleshoot Failed Webhook Requests
If the destination does not receive or process the webhook:
- Go to Admin → Audit Logs → Webhook Failure Logs.
- Locate the failed request.
- Review:
- Destination endpoint
- HTTP request method
- Status code
- Error response
- Event type
- Failure time
- Confirm that the endpoint is reachable.
- Confirm that the endpoint accepts the configured HTTP method.
- Validate the JSON payload.
- Verify the authentication, signing, and custom headers.
- Confirm that the destination system accepts the included fields.
- Correct the issue and test the webhook again.
Common webhook failures include:
| Issue | Possible Cause | Resolution |
|---|---|---|
| Endpoint does not receive the request | The endpoint is unavailable, incorrect, or blocked. | Verify the endpoint URL, availability, firewall, and network rules. |
401 Unauthorized |
Authentication is missing or invalid. | Review the configured authentication and credentials. |
403 Forbidden |
The endpoint rejected the authenticated request. | Review endpoint permissions, allowlists, and authorization rules. |
404 Not Found |
The configured endpoint path does not exist. | Correct the destination URL. |
405 Method Not Allowed |
The webhook uses an unsupported HTTP method. | Select the method accepted by the destination endpoint. |
400 Bad Request |
The payload is invalid or missing required data. | Validate the JSON and required properties. |
| Signature verification fails | The receiving system is validating the wrong content or secret. | Review the BoldDesk webhook security instructions and endpoint implementation. |
| Placeholder appears as text | The placeholder name is invalid or was entered manually. | Insert the field again using Insert Placeholders. |
| Wrong external record is updated | The receiving system uses an unreliable matching value. | Map records using a stable Contact Group identifier. |
Frequently Asked Questions
-
Which Events Are Available for Contact Group Webhooks?
The Contact Group module supports the following webhook events:- Created
- Updated
- Deleted
-
Does Contact Group Support a Permanently Deleted Event?
No. The documented Contact Group deletion event is Deleted.
The Permanently Deleted event applies to other supported modules, including Ticket and Contact. -
What Is the Difference Between Default Payload and Advanced Payload?
Default Payload uses the event-based BoldDesk payload structure and lets you select the required fields.
Advanced Payload lets you define a custom payload structure for the destination endpoint. -
Can One Webhook Handle All Contact Group Events?
Yes. Select Created, Updated, and Deleted in one webhook when the same endpoint processes all three events.
The receiving system should inspect the Event-Type header or an event value in the payload to determine which action to perform. -
Can I Configure Separate Endpoints for Each Event?
Yes. Create separate webhooks when different endpoints or HTTP methods must process the Created, Updated, and Deleted events. -
Can I Add Authentication Headers?
Yes. Configure authentication or custom headers according to the destination endpoint’s requirements.
Do not copy example authorization values from the documentation into a production webhook. -
How Can the Receiving System Verify the Request?
Configure webhook signing and validate the request according to How to Secure Webhooks in BoldDesk.
Avoid implementing signature validation based only on an examplex-signaturevalue. -
What Happens When a Contact Group Is Updated?
The Updated event runs when a field is changed in an existing Contact Group.
The receiving system should process only the fields required by its synchronization logic. -
Should the Receiving System Delete an External Record Immediately?
The appropriate action depends on the external system’s retention requirements.
For systems that require audit history, archive or deactivate the external record instead of permanently deleting it.