Data Mapping Checklist (Leads/Contacts/Opportunities) | Bles Software

Published by Bles Software, a custom software and AI company based in Yehud-Monoson, Israel, building web apps, AI agents and API integrations for clients in Israel, the US, the UK and the EU.

Your HubSpot ↔ Salesforce integration is only as strong as its data mapping. If you’re a RevOps leader or admin planning a hubspot integration salesforce project, this playbook gives you an outcome-first, ops-ready mapping checklist for Leads, Contacts, and Opportunities—plus the sync rules, guardrails, and effort drivers you’ll need to deliver at scale with confidence.

This guide assumes you’re using the native HubSpot-Salesforce connector or a comparable middleware with similar capabilities. If you’re evaluating tools or architecture, see our deep dives at HubSpot, Salesforce, and the combined HubSpot ↔ Salesforce integration.

Who this checklist is for, and the outcomes it enables

This mapping checklist is built for RevOps leaders, CRM/marketing automation admins, and GTM stakeholders who want to:

We focus on the most contentious areas—identity resolution, field-level authority, lifecycle and stage mapping, and opportunity attribution—so you can avoid rework and hidden technical debt.

Architecture patterns: choose your source of truth and conversion path

Before mapping fields, define how people and companies flow across systems. HubSpot is contact-centric; Salesforce can be lead-centric or contact-centric. Your architecture choice drives the mapping strategy, workflows, and sync rules.

If you’re unsure, default to lead-centric. It aligns with most sales processes, preserves marketing to prospect workflows, and is best supported by native connector defaults.

[screenshot: integration architecture diagram—lead-centric vs contact-centric, sanitized]

Cost and timeline drivers (so you can forecast with confidence)

Expect 3–8 weeks from discovery to go-live for a clean hubspot integration salesforce mapping project. Budget increases with record volumes, custom objects, and the number of exceptions in your process. Under typical assumptions (≤500k total records, standard objects, 1–2 pipelines), implementation ranges from $12k–$45k; add 10–20% for complex routing, multi-currency, or heavy picklist normalization.

Major cost and timeline drivers include:

A lightweight “Phase 1” that limits scope to Leads/Contacts/Opportunities, one pipeline, and essential activities is the fastest path to value. You can expand to Campaigns, Products/Line Items, and custom objects in Phase 2.

The mapping checklist: core field categories per object

This is the backbone of a reliable integration. Document each field’s definition, owning system, sync direction, and transformation. Map business rules (e.g., “when Lifecycle Stage changes to MQL, create a Salesforce Lead”) alongside the fields to prevent drift.

[screenshot: sanitized field mapping example — Lifecycle Stage ↔ Lead Status, Deal Stage ↔ Opportunity Stage, Owner ↔ Owner]

Identity and keys: prevent duplicates before they happen

Identity strategy is the most consequential mapping decision. HubSpot uses Email as the primary dedupe key for Contacts, plus an internal Contact ID. Salesforce can dedupe on Email, an External ID, or matching rules across Name + Company + Email. Choose one canonical identity model:

For net-new creation, define matching rules that link to existing Salesforce Contacts when an email matches—even if the record originated as a Lead and has since converted.

[screenshot: dedupe rule example—Email exact match, secondary match on Email + Company, sanitized]

Lead mapping: lifecycle, status, and creation triggers

In a lead-centric model, HubSpot Contacts can create Salesforce Leads when they reach a defined lifecycle threshold (e.g., Lifecycle Stage becomes MQL; Lead Score crosses threshold; form submission on high-intent page). Map the following carefully:

For contact-centric models, skip Lead creation and map lifecycle events directly to Contact fields in Salesforce (e.g., MQL Date, Lifecycle Stage) using custom fields.

Contact mapping: consent, enrichment, and sales readiness

Contact is the shared object both systems care about most. Clarify:

Account/Company mapping: keep domain-based automation honest

Companies in HubSpot map to Accounts in Salesforce. Align these areas:

Opportunity/Deal mapping: stages, attribution, and revenue accuracy

Deals in HubSpot map to Opportunities in Salesforce. Decisions here impact forecasting and attribution:

Activity and campaign mapping: context without noise

Activities are essential for context but can overwhelm storage and logs if synced indiscriminately.

[screenshot: sanitized sync settings—activities inclusion, task mapping, campaign member statuses]

Sync rules and conflict resolution: codify who wins where

Your connector supports one-way, bi-directional, or conditional sync. Set explicit rules to prevent flip-flopping and silent data loss.

[screenshot: conflict resolution policy—authoritative fields list, last-update vs source-of-truth, sanitized]

Ownership and routing: stop the ping-pong

Define the system that assigns owners and the moment ownership becomes sticky. If Salesforce assignment rules are active at Lead creation, let Salesforce assign; HubSpot should not overwrite. If you route in HubSpot, ensure Leads are created with the right owner and disable Salesforce re-assignment on update. Always include defaults for unmatched territories and after-hours routing.

If you use round-robin in HubSpot, ensure the same user exists in Salesforce and the integration user has permission to set ownership.

Picklists and validation rules: normalize or pay the penalty

Collect all picklist fields in scope and inventory values in both systems. Align the allowed values before go-live. Where alignment isn’t feasible, add translation rules in the connector or workflows. Keep Salesforce validation rules lenient during initial backfill; tighten them once the sync has stabilized. Document every transformation so analytics teams know what data they’re reading.

[screenshot: picklist alignment and value translation rules, sanitized]

Operational guardrails: keep production stable

An integration succeeds when governance is explicit. Establish:

Testing plan and go-live checklist

Use a Salesforce sandbox and a HubSpot sandbox or developer account. Keep configuration symmetrical where possible, and test end-to-end with realistic data.

[screenshot: UAT checklist view with pass/fail columns, sanitized]

What’s in scope vs. out of scope (Phase 1 framing)

Phase 1 should keep you focused on the pipeline and routing outcomes that matter most. In-scope commonly includes Leads/Contacts/Companies/Opportunities, Owners, Lifecycle, Lead Status, Stage mapping, Campaign Members, and selective Activities. Out of scope often includes full bi-directional Products/Line Items, complex custom objects, full email body syncing, or historical Campaign reparenting. Defer those to Phase 2 after stability.

Pricing scenarios and timeframes (transparency by design)

Indicative, not a quote—final pricing depends on discovery.

Managed services for ongoing governance and enhancements typically range from $2k–$7k/month depending on scope (support SLAs, roadmap builds, analytics, and admin coverage).

Assumptions: standard connector, no net-new custom dev; single global Salesforce org; ≤100 integration errors/day after stabilization; stakeholders available for weekly decisions.

Example mapping snippets (practical, opinionated defaults)

Leads: Map HubSpot Lifecycle Stage to Salesforce Lead Status with explicit definitions. For example, Subscriber/Lead = Open – Not Contacted; MQL = Working – Contacted; SQL = Qualified; Disqualified = Unqualified; Recycle = Nurture. Keep HubSpot Original Source as the authority for Lead Source; translate values to Salesforce picklist labels. MQL Date is one-way from HubSpot.

Contacts: Email as primary key; sync HubSpot Contact ID to Salesforce (custom field) and Salesforce Contact ID back to HubSpot. Contact Owner is Salesforce-authoritative if you use Salesforce queues and assignment rules. Subscription preferences are HubSpot-authoritative; map to Salesforce Email Opt Out and custom subscription fields.

Companies/Accounts: HubSpot Company Domain to Salesforce Website; Company Owner follows Account Owner (Salesforce authority). Type and Industry are normalized; if enrichment fills these, allow “fill blank only” from HubSpot to Salesforce.

Deals/Opportunities: HubSpot Deal Stage maps one-to-one to Salesforce Stage Name within pipelines. Amount/currency and Close Date are Salesforce-authoritative. Use Salesforce Opportunity ID as the external ID in HubSpot to prevent duplicates. Primary Campaign Source is Salesforce-owned; HubSpot Campaign membership sync informs Campaign influence reporting.

Activities: Sync HubSpot marketing-originated tasks selectively; avoid duplicating tasks created by sales engagement tools in Salesforce. For emails, subject + metadata only unless legal approves body content.

[screenshot: sanitized field mapping example — example field pairs and sync directions, with authorities noted]

How we work (and how to get a precise estimate)

We start with a two-hour working session to confirm architecture, field inventory, and outcomes. You’ll leave with a draft mapping spec, a prioritized risk list, and a phased timeline. From there, we execute in weekly sprints with visible progress: sandbox configuration, UAT, cutover, and 30–90 days of hypercare.

If you’re planning a hubspot integration salesforce rollout or a remediation, let’s discuss scope so you can get a precise estimate tied to your data shape and GTM motion. Reach out to start your mapping workshop and get a timeline and cost you can trust.

FAQ

Do we have to use Salesforce Leads, or can we go Contact-only?

You can go Contact-only, but you should be confident in your routing and account model. Lead-centric is more forgiving for early funnel processes and widely supported by Salesforce features like assignment rules and standard reports. Contact-only works best in account-based motions with strong Account ownership and rigorous Contact Role usage on Opportunities.

What’s the safest deduplication strategy across HubSpot and Salesforce?

Use Email as the primary key for Contacts, augmented by an External ID stored in both systems. Mirror HubSpot Contact ID into Salesforce and the Salesforce Contact ID into HubSpot to preserve links through merges and conversions. Run merges in Salesforce when possible and let the connector propagate. For Companies/Accounts, use Website/Domain carefully and supplement with manual review for multi-brand or parent/child scenarios.

How do we keep picklists aligned without disrupting users?

Start by inventorying actual values in production for both systems. Normalize the target set in Salesforce, then translate HubSpot values during sync. Freeze new values during the cutover window and communicate a change log to end users. After stabilization, enforce restricted picklists in Salesforce and use HubSpot’s value mapping to prevent reintroduction of rogue values.

Should HubSpot or Salesforce own lifecycle and lead status?

Separate ownership by purpose. HubSpot is the source of truth for marketing lifecycle fields (Lifecycle Stage, MQL Date, Lead Score). Salesforce is the authority for sales process fields (Lead Status, Contact Status, Opportunity stages). Map them thoughtfully and avoid making the same concept authoritative in both systems.

How do we handle historical backfills without hitting API or storage limits?

Backfill in batches by object and time window, starting with Accounts/Companies, then Contacts/Leads, then Opportunities/Deals, and finally Activities. Temporarily relax validation rules that block updates. Monitor API usage and schedule runs during off-peak hours. If you’re moving 500k+ records, plan a phased approach with checkpoints and error remediation in each phase before continuing.

Can we sync email bodies and attachments for full context?

You can, but most teams shouldn’t. Email bodies and attachments raise privacy, storage, and search performance concerns. A practical compromise is syncing subject lines, timestamps, and engagement metadata. If legal requires body content, restrict to specific record types and add retention policies.

What breaks most often after go-live?

Three common issues: picklist misalignment causing validation errors, ownership ping-pong between systems, and duplicates from inconsistent matching rules. All three are preventable with a mapping spec that defines authoritative systems per field, locked-down picklists, and a single, explicit identity model. Add monitoring and error runbooks to catch drift early.

How do we maintain the integration as the business evolves?

Create a lightweight governance process: a single mapping document as the source of truth, an integration change request template for new fields or rules, and monthly reviews of error logs and data quality metrics. Treat the connector like a product with versioning, release notes, and owners in RevOps. This discipline avoids fire drills and protects your analytics.

Ready to translate this checklist into a working integration? Let’s discuss scope for a precise estimate and implementation plan tailored to your team.

More RevOps Playbooks from Bles Software