← Centric Software
CRM Project

Centric Software · Phase 2

How Metawork consolidated two acquired companies' HubSpot stacks into Centric Software's Salesforce CRM — unified pipeline, lead routing, and reporting across three entities. ~1,168 hours delivered.

Duration 12 months
Tasks 162
Meetings 60
Looms 40

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 Mathieu (ShoppingFeed), Christian (Contentserv marketing), Lisa (deals/sales ops), and José (sales overview). 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-05-13 Trigger sync to SF Done
  • 2026-05-06 Start sync companies from Shoppingfeed to Salesforce on lifecycle change In Progress
  • 2026-04-27 strategy for handling deals/contracts during cutover In Progress
  • 2026-04-22 Wrong lead linking in HubSpot Done
  • 2026-04-22 Nikolai <> Doug, check in Done

Other projects in this case study