Skip to content
Capra Digitals

HubSpot Integration Best Practices: Sync Direction, Keys and Failure Handling

Integrations don't usually fail loudly. They drift — a field stops syncing in March and nobody notices until a forecast is built on it in June.

Published 31 August 2026 · Updated 31 August 2026 · 9 min read · Capra Digitals

The short answer

A reliable HubSpot integration needs four decisions made before any connector is switched on: which system is the record of truth for each field, what unique key joins the records, whether each field syncs one-way or two-way, and who is alerted when a sync fails. One-way sync from the system of record is the safe default; two-way sync should be the exception you can justify field by field. Duplicate records almost always mean the unique key was matched on name or email instead of a stable ID.

Decide the system of record per field, not per system

It is rarely true that one system owns everything. Billing owns invoice status. HubSpot owns lifecycle stage. Your product database owns usage. Write it down as a field-level table before building anything.

DataTypical ownerSync direction into HubSpot
Invoice and payment statusBilling / ERPOne-way in, read-only in HubSpot
Product usage and entitlementsProduct databaseOne-way in
Lifecycle stage and ownerHubSpotOne-way out, if anything
Support ticket statusHelpdesk (or HubSpot if it is the helpdesk)One-way from whichever owns it
Company firmographicsEnrichment providerOne-way in, with manual override flagged

The unique key is the whole game

  • Match companies on a stable external ID, or failing that on root domain — never on company name.
  • Match contacts on email, and decide in advance what happens when email changes.
  • Store the external system's record ID in a dedicated HubSpot property, and never let a human edit it.
  • Set the property to a type that won't be reformatted — long numeric IDs turned into scientific notation is a real and common failure.
  • Test the key against a sample containing your messiest records, not your cleanest.

Two-way sync is a promise you have to keep

Two-way sync means you have accepted that either side can overwrite the other, and you need conflict rules: last write wins, or one side is authoritative on conflict. If you can't state the rule, you don't want two-way sync on that field.

The recurring damage from unstated conflict rules is silent overwrite loops — two systems flipping a value back and forth, each triggering the other's automation, burning API calls and firing workflows.

Rate limits, batching and volume

API call limits are edition-dependent and easy to exhaust with per-record updates. Batch where the API supports it, sync on change rather than on schedule where you can, and exclude fields nobody reads.

A useful discipline: for every field you are about to sync, name the report or workflow that consumes it. Fields with no consumer should not be synced at all.

Failure handling is the part everyone skips

  1. 01Decide who receives sync failure alerts, by name, not 'the ops inbox'.
  2. 02Log failures somewhere reviewable — an error property, a list, or the integration's own log with a weekly check in someone's calendar.
  3. 03Add a data-quality dashboard tile for records that failed to sync in the last seven days.
  4. 04Document the manual replay procedure before you need it at 6pm on a Friday.
  5. 05Re-test the integration after any HubSpot property change; renaming or changing a field type is the most common cause of a break.

Native, iPaaS or custom

Use the native or marketplace connector when it covers your fields — it is maintained by someone else, which is worth a great deal. Move to an iPaaS platform when you need transformation logic or several systems in a chain. Build custom only when volume, timing or logic genuinely exceed both, and accept that you now own maintenance forever.

Custom integrations built by a departed contractor with no documentation are among the most expensive things we find in audits.

Common mistakes

  • Matching companies on name and creating thousands of duplicates.
  • Enabling two-way sync everywhere because it sounded safer.
  • Syncing dozens of fields no report or workflow consumes.
  • No alerting, so a broken sync surfaces in a board meeting.
  • Renaming a HubSpot property without checking what integrates with it.

Questions

People also ask

Should HubSpot integrations be one-way or two-way?

One-way from the system of record by default. Enable two-way only per field, and only when you can state the conflict rule out loud.

Why is our integration creating duplicate companies?

Almost always the matching key. Name matching fails on punctuation, legal suffixes and subsidiaries; switch to a stable external ID or root domain and de-duplicate before re-enabling.

How do we avoid hitting HubSpot API limits?

Batch operations, sync on change rather than polling everything on a schedule, and prune the field list. Limits vary by edition, so check yours before designing a high-volume sync.

Do integrations break when HubSpot changes properties?

Yes — property renames and type changes are the most common cause of a silent break. Add an integration check to your change process for any property with an external consumer.

Can you audit an integration we inherited?

Yes. An integration review maps fields, keys, directions and failure handling, and usually finds several fields syncing that nobody uses. Book a consultation to start.

Keep reading

Next step

Want this done in your portal, not just explained?

Bring us the portal as it is. We will tell you what is worth fixing, what it costs and in what order.