← Centric Software
CRM Project

Centric Software · Phase 2

Full build and deployment of the bidirectional HubSpot↔Salesforce integration designed in Phase 1, covering both acquired companies (Contentserv and ShoppingFeed) and the bulk migration of historical data.

Duration 13 months
Tasks 162
Meetings 60

What was built

Full build and deployment of the bidirectional HubSpot↔Salesforce integration designed in Phase 1, covering both acquired companies (Contentserv and ShoppingFeed) and the bulk migration of historical data.

Integration Architecture

Two HubSpot instances (Contentserv = HS(CS), ShoppingFeed = HS(SF)) syncing into one Salesforce org (Centric = SF(Centric)). All sync scenarios built in Make.com with JavaScript-based mapping logic.

Sync directions per entity:

  • HS(CS) → SF(Centric): Contacts, Companies, Leads, Notes (as ContentNotes)
  • HS(SF) → SF(Centric): Contacts, Companies
  • SF(Centric) → HS(CS): Contact/Account updates, Lead conversions
  • SF(Centric) → HS(SF): Contact/Company updates

Make.com Scenarios

Scenarios evolved through four major versions (v1→v4) as edge cases were resolved and the data volume requirements grew. Key scenario types:

Scenario Purpose
HS(CS/SF) Contact+Company → SF Create/update Salesforce contacts and accounts from HubSpot
SF Contact+Account → HS(CS/SF) Push Salesforce changes back into HubSpot instances
SF Lead → HS(CS) Lead conversion and contact creation in Contentserv HubSpot
Importer Queue Queue-based bulk import handler for 20k+ record migrations
ContentNote Creator Creates Salesforce ContentNotes from HubSpot activity notes

Bulk Migration

Contentserv had 20k+ contacts and accounts to migrate. A queue-based importer was built specifically for this: accounts synced first to get Salesforce Account IDs back into HubSpot before contacts, preventing orphaned contact records. Post-upload error handling addressed duplicate detection, missing property errors, and account association failures.

ShoppingFeed migration (~8k contacts) followed the same pattern with a cloned and adapted scenario set. In progress as of early 2026.

Field & Logic Additions

  • Pardot campaign attribution fields (pi__campaign__c) mapped to HubSpot contact properties for marketing reporting
  • Lifecycle stage and source detail fields applied on create-only (no overwrite on update)
  • Centric Owner custom field to track originating CRM ownership
  • Conflict resolution text: when both systems have competing values, a formatted conflict message is written as a note
  • Company name and English name mapping fixes for multi-language account records

Ongoing Maintenance

Weekly check-ins with the stakeholder group across all three business units: ShoppingFeed product, Contentserv marketing, deals and sales ops, and the sales overview owner. Break fixes for Salesforce API errors (duplicate contacts, missing properties), scenario restarts after rate-limit breaks, and incremental field additions per stakeholder requests.

Recently touched

  • 2026-04-17 HubSpot / Contentserv Early Renewal Done
  • 2026-03-27 WG: HubSpot / Contentserv Early Renewal Done
  • 2026-02-28 Content Serv to Salesforce - Updating ids + enable sync Done
  • 2026-02-24 Enable sync for Contentserv customers Done
  • 2026-02-24 Update Salesforce IDs from sheet Done

Other projects in this case study

  • Salesforce + HubSpot Marriage

    The discovery and design phase — stakeholder interviews, system architecture mapping, and full data/logic specification before any build work began.

    Read case study

Ready to give your company a brain?

Book a free evaluation. We look at your stack and tell you straight whether we are a fit.

Free evaluation