---
title: How can I sync Acctivate database changes with HubSpot custom fields using SQL Server Service Broker?
description: Use SQL Server Service Broker and custom scripts to sync Acctivate database updates (like customer changes) with HubSpot custom fields.
---

[Skip to content](https://hub.acctivate.com/articles/sync-acctivate-database-changes-with-hubspot-custom-fields#main-content)

[Go to Customer Portal](https://hub.acctivate.com/tickets?hsLang=en)

![Acctivate - A CAI Solution](https://hub.acctivate.com/hubfs/Images/Logos/acctivate-cai-logo-svg.svg)

- [Knowledge Base](https://hub.acctivate.com/articles)

Open main navigation

Close main navigation

- [Knowledge Base](https://hub.acctivate.com/articles)
- [Go to Customer Portal](https://hub.acctivate.com/tickets)
- [Support Resources / Create Ticket](https://acctivate.com/support)

[Support Resources / Create Ticket](https://acctivate.com/support)

 Hello. How can we help you?

- There are no suggestions because the search field is empty.

1. [Knowledge Base](https://hub.acctivate.com/articles?hsLang=en)
2. [Customers](https://hub.acctivate.com/articles/customers?hsLang=en)

October 21, 2025

# How can I sync Acctivate database changes with HubSpot custom fields using SQL Server Service Broker?

## Learn how to use SQL Server Service Broker and triggers to automatically update HubSpot custom fields when data changes in Acctivate.

Acctivate stores company and customer data in a Microsoft SQL Server database.  While there isn't a direct integration with Hubspot offered at this time, Organizations can use some programming to update Hubspot records when a change has been made to a related record in Acctivate. 

If you want to automatically update related HubSpot custom fields when Acctivate data changes — such as a customer’s address or a contract date — you can use SQL Server **Service Broker** for real-time data messaging and integration.

The steps below outline a recommended approach and key setup details for developers.

---

#### **Overview**

SQL Server **Service Broker** allows developers to build asynchronous, message-based workflows. By setting up database triggers and a message queue, Acctivate data changes can be automatically sent to HubSpot through a custom integration service.

For more information about Service Broker, see Microsoft’s documentation:  
🔗 [What Does Service Broker Do? (Microsoft Docs)](https://learn.microsoft.com/en-us/sql/database-engine/service-broker/what-does-service-broker-do?view=sql-server-ver17)

---

### **Steps to Set Up Acctivate-to-HubSpot Sync**

#### **1. Identify the Acctivate tables and fields to monitor**

Common examples include:

- `tbCustomer` table – customer address or phone number changes
- `tbIssue` table (Business Activities)– Hubspot Deal or Ticket updates
- `tbOrders` table – order status changes

Define which fields in HubSpot correspond to these Acctivate fields.

---

#### **2. Enable Service Broker for your Acctivate database**

If not already enabled, run the following SQL command (replace `ACCTIVATE` with your database name):

 

`ALTER DATABASE [ACCTIVATE] SET ENABLE_BROKER WITH ROLLBACK IMMEDIATE;`

---

#### **3. Create message types and queues**

Define a message type for each kind of change you want to track. For example:

 

`CREATE MESSAGE TYPE [ContractDateChanged] VALIDATION = WELL_FORMED_XML; CREATE MESSAGE TYPE [CustomerAddressChanged] VALIDATION = WELL_FORMED_XML; CREATE QUEUE AcctivateChangeQueue; CREATE SERVICE AcctivateChangeService ON QUEUE AcctivateChangeQueue;`

Each message type will correspond to a different update process in HubSpot.

---

#### **4. Add triggers on monitored tables**

Use SQL triggers to detect when a record changes and send a message to the Service Broker queue. Example:

 

`CREATE TRIGGER trg_ContractDateChanged ON dbo.Customer AFTER UPDATE AS BEGIN IF UPDATE(_ContractDate) BEGIN DECLARE @MessageBody XML; SET @MessageBody = (SELECT CustomerID, _ContractDate, _HubspotID FROM inserted FOR XML AUTO); DECLARE @DialogHandle UNIQUEIDENTIFIER; BEGIN DIALOG CONVERSATION @DialogHandle FROM SERVICE AcctivateChangeService TO SERVICE 'AcctivateChangeService' ON CONTRACT [AcctivateChangeContract] WITH ENCRYPTION = OFF; SEND ON CONVERSATION @DialogHandle MESSAGE TYPE [ContractDateChanged] (@MessageBody); END CONVERSATION @DialogHandle; END END;`

This trigger sends an XML message with the updated data to the Service Broker queue whenever the Contract date changes.

---

#### **5. Create a custom service to process messages**

Develop a lightweight background service or script (e.g., in C#, Python, or PowerShell) that:

- Listens to the **AcctivateChangeQueue**
- Reads new messages from the queue
- Identifies the message type (e.g., `ContractDateChanged`, `CustomerAddressChanged`)
- Uses the **HubSpot API** to update the corresponding custom field in HubSpot

Refer to HubSpot’s developer documentation for API details:  
🔗 HubSpot CRM API Overview

---

#### **6. Test and monitor**

- Use SQL Server Management Studio (SSMS) to verify that messages are appearing in the queue.
- Confirm that the custom service correctly processes and removes messages.
- Check HubSpot to confirm that the appropriate fields are being updated automatically.

---

### **Example Use Case**

When the **Contract date** changes in Acctivate:

1. A trigger adds a `ContractDateChanged` message to the Service Broker queue.
2. The custom service reads the message, identifies the change type, and extracts the customer record ID.
3. Using the HubSpot API, it updates the related custom field for that customer in HubSpot.
4. The queue is cleared, and the data stays in sync automatically.

**\* Note **- In this example use case, you may also need to create a Customer custom field in Acctivate where you can store the Hubspot ID, which is assigned to each customer in Hubspot.  You can export your list of customers from Hubspot to excel. Then, you can import in the list of customers and Hubspot IDs into the custom field.

---

### **Expected Result**

Acctivate and HubSpot remain synchronized. When data changes in Acctivate, related custom fields in HubSpot update automatically with no manual data entry.

### **Actual Result (if not configured)**

Without Service Broker and a listener service, HubSpot data does not update when Acctivate records change. Manual updates would be required.

---

### **Link Acctivate-sent emails to Hubspot**

Emails sent from Acctivate can also be copied and logged to Hubspot as well.  Follow this [kb article for setting a blind carbon copy email address in Acctivate](https://hub.acctivate.com/articles/how-do-i-add-a-bcc-to-emails?hsLang=en). 

### **Additional Resources**

- [SQL Server Service Broker Overview (Microsoft Docs)](https://learn.microsoft.com/en-us/sql/database-engine/service-broker/what-does-service-broker-do?view=sql-server-ver17)
- HubSpot CRM API Documentation
- Acctivate Database Reference (Acctivate Docs)

- [Getting Started](https://hub.acctivate.com/articles/getting-started?hsLang=en#main-content)

    - [Basics](https://hub.acctivate.com/articles/getting-started?hsLang=en#basics)
    - [User Interface](https://hub.acctivate.com/articles/getting-started?hsLang=en#user-interface)
    - [Manager windows](https://hub.acctivate.com/articles/getting-started?hsLang=en#manager-windows)
    - [List windows](https://hub.acctivate.com/articles/getting-started?hsLang=en#list-windows)
    - [Transaction windows](https://hub.acctivate.com/articles/getting-started?hsLang=en#transaction-windows)
    - [License and Users](https://hub.acctivate.com/articles/getting-started?hsLang=en#license-and-users)
    - [Email](https://hub.acctivate.com/articles/getting-started?hsLang=en#email)
    - [Getting Help](https://hub.acctivate.com/articles/getting-started?hsLang=en#getting-help)
- [Installation](https://hub.acctivate.com/articles/installation?hsLang=en#main-content)

    - [Acctivate](https://hub.acctivate.com/articles/installation?hsLang=en#acctivate)
    - [Database Server](https://hub.acctivate.com/articles/installation?hsLang=en#database-server)
    - [Mobile WMS Setup](https://hub.acctivate.com/articles/installation?hsLang=en#mobile-wms-setup)
    - [Software Updates](https://hub.acctivate.com/articles/installation?hsLang=en#software-updates)
    - [Email Setup](https://hub.acctivate.com/articles/installation?hsLang=en#email-setup)
    - [Remote Access](https://hub.acctivate.com/articles/installation?hsLang=en#remote-access)
- [Configuration](https://hub.acctivate.com/articles/configuration?hsLang=en#main-content)

    - [Basics](https://hub.acctivate.com/articles/configuration?hsLang=en#basics)
    - [Users](https://hub.acctivate.com/articles/configuration?hsLang=en#users)
    - [Company Info](https://hub.acctivate.com/articles/configuration?hsLang=en#company-info)
    - [Customers](https://hub.acctivate.com/articles/configuration?hsLang=en#customers)
    - [Sales Orders](https://hub.acctivate.com/articles/configuration?hsLang=en#sales-orders)
    - [Inventory](https://hub.acctivate.com/articles/configuration?hsLang=en#inventory)
    - [Custom Fields](https://hub.acctivate.com/articles/configuration?hsLang=en#custom-fields)
    - [Email Message Templates](https://hub.acctivate.com/articles/configuration?hsLang=en#email-message-templates)
    - [Services](https://hub.acctivate.com/articles/configuration?hsLang=en#services)
- [Inventory](https://hub.acctivate.com/articles/inventory?hsLang=en#main-content)

    - [Products](https://hub.acctivate.com/articles/inventory?hsLang=en#products)
    - [Costing](https://hub.acctivate.com/articles/inventory?hsLang=en#costing)
    - [Prices and Units](https://hub.acctivate.com/articles/inventory?hsLang=en#prices-and-units)
    - [Warehouses and Locations](https://hub.acctivate.com/articles/inventory?hsLang=en#warehouses-and-locations)
    - [Lot Numbers](https://hub.acctivate.com/articles/inventory?hsLang=en#lot-numbers)
    - [Inventory Manager](https://hub.acctivate.com/articles/inventory?hsLang=en#inventory-manager)
    - [Receipts](https://hub.acctivate.com/articles/inventory?hsLang=en#receipts)
    - [Assemblies](https://hub.acctivate.com/articles/inventory?hsLang=en#assemblies)
    - [Kits and Assortments](https://hub.acctivate.com/articles/inventory?hsLang=en#kits-and-assortments)
    - [Landed Cost](https://hub.acctivate.com/articles/inventory?hsLang=en#landed-cost)
    - [Transfers](https://hub.acctivate.com/articles/inventory?hsLang=en#transfers)
    - [Adjustments](https://hub.acctivate.com/articles/inventory?hsLang=en#adjustments)
    - [Counts](https://hub.acctivate.com/articles/inventory?hsLang=en#counts)
    - [Reports](https://hub.acctivate.com/articles/inventory?hsLang=en#reports)
- [Purchasing](https://hub.acctivate.com/articles/purchasing?hsLang=en#main-content)

    - [Purchase Orders](https://hub.acctivate.com/articles/purchasing?hsLang=en#purchase-orders)
    - [Purchase Order Manager](https://hub.acctivate.com/articles/purchasing?hsLang=en#purchase-order-manager)
    - [Purchase Invoices](https://hub.acctivate.com/articles/purchasing?hsLang=en#purchase-invoices)
    - [Vendors](https://hub.acctivate.com/articles/purchasing?hsLang=en#vendors)
- [Customers](https://hub.acctivate.com/articles/customers?hsLang=en#main-content)

    - [Customers](https://hub.acctivate.com/articles/customers?hsLang=en#customers)
    - [Locations](https://hub.acctivate.com/articles/customers?hsLang=en#locations)
    - [Credit & Terms](https://hub.acctivate.com/articles/customers?hsLang=en#credit-terms)
    - [Pricing](https://hub.acctivate.com/articles/customers?hsLang=en#pricing)
    - [Broadcast Email](https://hub.acctivate.com/articles/customers?hsLang=en#broadcast-email)
- [Sales](https://hub.acctivate.com/articles/sales?hsLang=en#main-content)

    - [Orders](https://hub.acctivate.com/articles/sales?hsLang=en#orders)
    - [Sales Order Manager](https://hub.acctivate.com/articles/sales?hsLang=en#sales-order-manager)
    - [Picking](https://hub.acctivate.com/articles/sales?hsLang=en#picking)
    - [Drop Shipments](https://hub.acctivate.com/articles/sales?hsLang=en#drop-shipments)
    - [Sales Tax](https://hub.acctivate.com/articles/sales?hsLang=en#sales-tax)
    - [Packaging](https://hub.acctivate.com/articles/sales?hsLang=en#packaging)
    - [Shipping](https://hub.acctivate.com/articles/sales?hsLang=en#shipping)
    - [Invoices](https://hub.acctivate.com/articles/sales?hsLang=en#invoices)
    - [Payments](https://hub.acctivate.com/articles/sales?hsLang=en#payments)
    - [Credits](https://hub.acctivate.com/articles/sales?hsLang=en#credits)
- [Business Activities](https://hub.acctivate.com/articles/business-activities?hsLang=en#main-content)

    - [Business Activities](https://hub.acctivate.com/articles/business-activities?hsLang=en#business-activities)
    - [Business Alerts](https://hub.acctivate.com/articles/business-activities?hsLang=en#business-alerts)
- [QuickBooks](https://hub.acctivate.com/articles/quickbooks?hsLang=en#main-content)

    - [Basics](https://hub.acctivate.com/articles/quickbooks?hsLang=en#basics)
    - [QuickBooks Online](https://hub.acctivate.com/articles/quickbooks?hsLang=en#quickbooks-online)
    - [QuickBooks Desktop](https://hub.acctivate.com/articles/quickbooks?hsLang=en#quickbooks-desktop)
- [Mobile WMS](https://hub.acctivate.com/articles/mobile-wms?hsLang=en#main-content)

    - [Basics](https://hub.acctivate.com/articles/mobile-wms?hsLang=en#basics)
    - [Picking](https://hub.acctivate.com/articles/mobile-wms?hsLang=en#picking)
    - [Receiving](https://hub.acctivate.com/articles/mobile-wms?hsLang=en#receiving)
    - [Counts](https://hub.acctivate.com/articles/mobile-wms?hsLang=en#counts)
    - [Assemblies](https://hub.acctivate.com/articles/mobile-wms?hsLang=en#assemblies)
- [Web Store Integrations](https://hub.acctivate.com/articles/web-store-integrations?hsLang=en#main-content)

    - [Basics](https://hub.acctivate.com/articles/web-store-integrations?hsLang=en#basics)
    - [Templates and Options](https://hub.acctivate.com/articles/web-store-integrations?hsLang=en#templates-and-options)
- [EDI](https://hub.acctivate.com/articles/edi?hsLang=en#main-content)

    - [Basics](https://hub.acctivate.com/articles/edi?hsLang=en#basics)
    - [Orders - 850](https://hub.acctivate.com/articles/edi?hsLang=en#orders-850)
    - [Shipments - 856](https://hub.acctivate.com/articles/edi?hsLang=en#shipments-856)
    - [Invoices - 810](https://hub.acctivate.com/articles/edi?hsLang=en#invoices-810)
    - [Warehouse - 940/945](https://hub.acctivate.com/articles/edi?hsLang=en#warehouse-940-945)
- [Reports](https://hub.acctivate.com/articles/reports?hsLang=en#main-content)

    - [Basics](https://hub.acctivate.com/articles/reports?hsLang=en#basics)
    - [Standard Reports](https://hub.acctivate.com/articles/reports?hsLang=en#standard-reports)
    - [Crystal Reports](https://hub.acctivate.com/articles/reports?hsLang=en#crystal-reports)
    - [Excel](https://hub.acctivate.com/articles/reports?hsLang=en#excel)
- [Database](https://hub.acctivate.com/articles/database?hsLang=en#main-content)

    - [Basics](https://hub.acctivate.com/articles/database?hsLang=en#basics)
    - [Backup & Restore](https://hub.acctivate.com/articles/database?hsLang=en#backup-restore)
    - [Microsoft SQL Server](https://hub.acctivate.com/articles/database?hsLang=en#microsoft-sql-server)
    - [Imports](https://hub.acctivate.com/articles/database?hsLang=en#imports)
- [Troubleshoot](https://hub.acctivate.com/articles/troubleshoot?hsLang=en#main-content)

    - [General](https://hub.acctivate.com/articles/troubleshoot?hsLang=en#general)
    - [Installation](https://hub.acctivate.com/articles/troubleshoot?hsLang=en#installation)
    - [Inventory](https://hub.acctivate.com/articles/troubleshoot?hsLang=en#inventory)
    - [Purchasing](https://hub.acctivate.com/articles/troubleshoot?hsLang=en#purchasing)
    - [Sales](https://hub.acctivate.com/articles/troubleshoot?hsLang=en#sales)
    - [Shipping](https://hub.acctivate.com/articles/troubleshoot?hsLang=en#shipping)
    - [QuickBooks Desktop](https://hub.acctivate.com/articles/troubleshoot?hsLang=en#quickbooks-desktop)
    - [QuickBooks Online](https://hub.acctivate.com/articles/troubleshoot?hsLang=en#quickbooks-online)
    - [Mobile WMS](https://hub.acctivate.com/articles/troubleshoot?hsLang=en#mobile-wms)
    - [Web Store Integration](https://hub.acctivate.com/articles/troubleshoot?hsLang=en#web-store-integration)
    - [EDI](https://hub.acctivate.com/articles/troubleshoot?hsLang=en#edi)
    - [Reports](https://hub.acctivate.com/articles/troubleshoot?hsLang=en#reports)
    - [Database](https://hub.acctivate.com/articles/troubleshoot?hsLang=en#database)
    - [Imports](https://hub.acctivate.com/articles/troubleshoot?hsLang=en#imports)
    - [Email](https://hub.acctivate.com/articles/troubleshoot?hsLang=en#email)
    - [Integrations](https://hub.acctivate.com/articles/troubleshoot?hsLang=en#integrations)

[![Acctivate Inventory Software](https://hub.acctivate.com/hubfs/Images/Logos/acctivate-cai-logo-svg.svg "Acctivate Inventory Software")](https://acctivate.com)

Acctivate Knowledge Base

<https://www.twitter.com/acctivate> <https://www.linkedin.com/company/alterity-inc-/> [mailto:support@acctivate.com](mailto:support@acctivate.com)

Copyright © 2025, Alterity, LLC