← Index

HubSpot → Acumatica Sync

Webhook-driven. HubSpot sends events to POST /webhook; each item is processed asynchronously by the event queue.
contact.propertyChange — PhoneContact
Trigger property
phone
Action
Updates the matching Acumatica contact's phone number (type: Business 1)
Normalisation
Strips non-digit characters; drops leading country code for 11-digit US numbers
Ignore rule
Events with changeSource = INTEGRATION and sourceId = 32433996 are skipped to prevent sync loops (configurable via WEBHOOK_CONTACT_PHONE_IGNORE_*)
Enabled flag
WEBHOOK_CONTACT_PHONE_SYNC_ENABLED
contact.propertyChange — Mobile phoneContact
Trigger property
mobilephone
Action
Updates the matching Acumatica contact's phone number (type: Cell)
Enabled flag
WEBHOOK_CONTACT_PHONE_SYNC_ENABLED
contact.propertyChange — Address fieldsContact
Trigger properties
address city state zip country (any field mapped to an Acumatica address field)
Action
Fetches the full HubSpot contact, then updates the matching Acumatica contact's address block
Enabled flag
WEBHOOK_CONTACT_ADDRESS_SYNC_ENABLED
contact.propertyChange — Mapped profile fieldsContact
Trigger properties
Any HubSpot property listed in fields/contacts_field_map.csv (e.g. email firstname lastname jobtitle)
Action
Fetches the full HubSpot contact, maps changed fields via the reverse contact field map, updates the Acumatica contact record
Enabled flag
WEBHOOK_CONTACT_PROFILE_SYNC_ENABLED
company.propertyChange — Mapped company fieldsCompany
Trigger properties
Any HubSpot property listed in fields/customers_field_map.csv
Action
Fetches the full HubSpot company, maps changed fields via the reverse customer field map, updates the matching Acumatica customer record
contact.associationChange / deletion / restore / mergeContact lifecycle
associationChange
Re-links or unlinks a contact's company relationship in Acumatica
deletion / restore
Marks the corresponding Acumatica contact as inactive / active
merge
Transfers Acumatica contact ID mapping to the surviving HubSpot contact
company.creation / deletion / restoreCompany lifecycle
creation
Attempts to create a matching Acumatica customer for a new HubSpot company
deletion / restore
Marks the corresponding Acumatica customer as inactive / active
Acumatica push webhooksInbound from Acumatica

Acumatica POSTs directly to /webhook with header X-Acumatica: powerline. The payload uses a delta format with Inserted / Deleted arrays.

Query: plrei-hscustomer
Customer delta → upserts matching HubSpot company
Query: cr-contacts2018r1
Contact delta → upserts matching HubSpot contact
Auto-detect
Unknown Acumatica queries are routed by payload shape (customer vs contact fields)
Run logsLogs
Log file
exports/hubspot_to_acumatica_sync_runs.jsonl