Data Mapping Process: Map Customer Data Across Tools

Data Mapping Process: Map Customer Data Across Tools

The data mapping process for SaaS tools, step by step. Audit fields, match source to destination, handle type mismatches, and sync automatically.

No credit card required

Free 100k syncs every month

Every data mapping guide on the internet follows the same script: define your sources, map fields in a diagram, transform with SQL, load into a warehouse. Talend walks through a six-step enterprise process. Fivetran compares five mapping tools, all warehouse-centric. Estuary lists seven techniques, from manual coding to cloud-based ETL. None of them answer the question a 20-person SaaS team actually has: how do I get the customer fields in Stripe to match the contact properties in HubSpot, right now, without writing SQL or provisioning a warehouse? This guide covers the data mapping process for teams that need their SaaS tools sharing customer data, not a textbook on enterprise data architecture. For background on why customer data fragments across tools in the first place, see What Is Customer Data Management?.

Plan your data mapping process: identify source and destination fields

Start by knowing what fields exist in each tool and which ones need to move. Skip the data modeling phase. You are not building a warehouse schema. You are matching fields between two tools that already store customer data.

Open your source tool (Stripe, Intercom, Postgres, or whatever holds the data you want to share). List the customer fields it exposes through its API. Then open your destination tool (HubSpot, Salesforce, Attio) and list the contact or company properties it accepts.

Here is a real-world audit for Stripe as source and HubSpot as destination:

Stripe field

Field type

HubSpot property

HubSpot type

Match?

customer.email

string

email

string

Direct

subscription.status

enum

subscription_status

dropdown

Needs custom property

plan.nickname

string

plan_name

single-line text

Needs custom property

subscription.current_period_end

Unix timestamp

renewal_date

date

Type mismatch

Sum of charges.amount

integer (cents)

lifetime_revenue

number (dollars)

Type mismatch + transform

customer.created

Unix timestamp

subscription_start_date

date

Type mismatch

Three patterns emerge from every SaaS-to-SaaS data mapping audit. Direct matches are rare. Most fields need custom properties created in the destination. And at least a third have type mismatches that require conversion.

The data mapping process step by step: audit, match, transform, and validate

After the field audit, the mapping workflow follows four concrete steps.

Step 1: Audit both systems. List every field in the source that another tool needs. Ignore internal fields (Stripe webhook IDs, internal HubSpot record IDs). Focus on fields your team looks up manually today. If your sales rep opens Stripe to check subscription status before a call, that field belongs in the CRM.

Step 2: Match source to destination. For each source field, identify the corresponding destination field. Three outcomes are possible:

  • Field exists with the same name and type. Map directly. This is rare across SaaS tools.

  • Field exists with a different name or type. Map with a rename or type conversion. subscription.current_period_end (Unix timestamp) maps to renewal_date (ISO date) with a date conversion.

  • Field does not exist. Create a custom property in the destination. HubSpot, Salesforce, and Attio all support custom contact properties. Name it clearly: subscription_status, not ss or stripe_sub_status.

Step 3: Plan transformations. For each type mismatch, define the conversion. Common ones for SaaS data mapping and transformation:

Mismatch

Transform

Example

Unix timestamp to ISO date

Multiply by 1000 if in seconds, then format

17092512002024-02-29

Cents to dollars

Divide by 100

990099.00

Enum values differ

Map source values to destination labels

activeActive, past_duePast Due

Nested object to flat field

Extract the nested property

plan.nicknameplan_name

Array to single value

Pick first, last, or aggregate

Multiple subscriptions → most recent active

Step 4: Validate. After configuring the mapping, run a test sync on a small batch. Spot-check 10-20 records. Verify that every mapped field arrived with the correct value and type. Check edge cases: what happens when the source field is null? When the customer has no subscription?

Data mapping across common SaaS tools: CRM, billing, support, and marketing

The mapping approach varies by tool pair because each tool stores customer data in its own schema conventions. Here are the field mappings that matter most for the four tool categories growing teams use daily.

Billing to CRM (Stripe → HubSpot). This is the highest-impact mapping for most SaaS teams. The pillar fields: subscription.status, plan.nickname, subscription.current_period_end, and sum of charges.amount. With these four fields in your CRM, every sales and support interaction starts with current billing context. See the audit table above for the specific data mapping strategy.

Support to CRM (Intercom or Zendesk → HubSpot). Map conversations.count (or open ticket count) to a custom CRM property. Map last_conversation.created_at to last_support_ticket_date. Map CSAT score if available. The goal: your sales team sees support health on every contact record without opening the support tool.

Product database to CRM (Postgres → HubSpot). Map last_login_at to a custom date property. Map onboarding_completed (boolean) to a checkbox. Map feature adoption flags. This is where schema mapping gets tool-specific: your database columns have exact types, and the CRM needs matching property types.

CRM to email (HubSpot → Mailchimp). Map lifecycle_stage and deal_stage so your email tool can segment by customer status. Map plan_name so upgrade campaigns exclude paying customers. This direction matters because email tools send based on properties they have locally.

For each pair, start with 5-8 fields. Validate the team uses them before expanding. Most teams reach full coverage with 10-15 mapped fields across 3-4 tool pairs.

Data mapping process troubleshooting: type mismatches, missing fields, and many-to-one

Three problems show up in every SaaS data mapping project. Knowing how to do data mapping means knowing how to handle these edge cases before they corrupt your destination data.

Type mismatches. The most common: Stripe stores amounts in cents as integers, but your CRM expects dollars as a decimal. Dates are another frequent mismatch: Unix timestamps vs. ISO 8601 vs. human-readable strings. A good mapping tool handles these conversions at the field level. If yours doesn't, you will spend hours debugging why "99.00" appeared as "9900" in a CRM report.

Missing fields in the destination. When a source field has no counterpart in the destination, create a custom property before running the sync. HubSpot supports single-line text, number, date, dropdown, and checkbox property types. Match the property type to the source field type. A subscription.status enum maps to a dropdown, not a text field. Getting the type wrong means you cannot filter or report on the field later.

Many-to-one relationships. A single Stripe customer can have multiple subscriptions. A single Intercom contact can have dozens of conversations. When mapping many records to one CRM contact, decide your aggregation strategy upfront:

Scenario

Strategy

Example

Multiple subscriptions

Sync the most recent active

Latest subscription.status → CRM

Multiple conversations

Count or sync latest

open_ticket_count or last_ticket_date → CRM

Multiple charges

Aggregate

Sum of charges.amountlifetime_revenue

Multiple email addresses

Pick primary

customer.email (not alias) → CRM

Null and empty values. Define behavior upfront. When a source field is null, should the sync skip the field (preserve the destination value), write null (clear the destination), or write a default? For most operational fields, "skip if null" is the safest default. Overwriting a known value with null because Stripe doesn't have it yet is worse than keeping stale data.

Automate your data mapping process with Oneprofile

Manual mapping works once. Automated mapping works forever. Oneprofile handles the entire workflow described in this guide.

1. Connect your tools. Authenticate with API keys or OAuth. Oneprofile validates each connection against the live API.

2. Select record types. Choose which records to map: contacts, companies, deals. Use email as the matching key.

3. Map fields visually. Drag source fields to destination fields. Oneprofile shows field types side by side and flags mismatches. Custom properties get created automatically in the destination with the correct type.

4. Choose sync mode. Update or Create for enriching existing records and adding new ones. Mirror for keeping the destination an exact copy of the source. Update for enriching without creating.

5. Set a schedule and run. Every 15 minutes for operational data. The first sync backfills all historical records. Subsequent syncs are incremental: only changed fields propagate, tracked at the property level. When a record fails (type mismatch, rate limit, API error), it lands in the dead letter queue for investigation, not silent data loss.

What enterprise guides describe as a six-month project takes an afternoon when you are mapping between SaaS tools you already use. No warehouse, no SQL, no data engineering team required. Start syncing free.

Ready to get started?

No credit card required

Free 100k syncs every month

Ready to get started?

No credit card required

Free 100k syncs every month

Ready to get started?

No credit card required

Free 100k syncs every month

How long does the data mapping process take for SaaS tools?

Under two hours for your first tool pair. Auditing fields takes 20 minutes, matching source to destination takes 15, configuring sync takes 15, and validating takes 10. Each additional tool pair adds about 30 minutes.

Do I need SQL or code to map customer data across tools?

No. Visual field mapping tools let you drag source fields to destination fields without code. Type conversions and format handling happen automatically. SQL is only needed if you route data through a warehouse.

What is the best matching key for data mapping across SaaS tools?

Email address. Most SaaS tools store customer email, making it the natural key for linking records across CRM, billing, support, and marketing tools. Use a secondary key like customer ID for tools that don't store email.

What happens when source and destination field types don't match?

Type-aware mapping tools convert automatically. Dates get reformatted, currencies get normalized, and enums get translated. When a conversion fails, the record lands in a dead letter queue for investigation instead of syncing bad data.

Can I map fields between more than two tools at once?

Yes. Set up one sync config per tool pair. Most teams start with billing-to-CRM, then add support-to-CRM and database-to-CRM. Each config maps its own fields independently.

© 2026 Oneprofile Software

455 Market Street, San Francisco, CA 94105

© 2026 Oneprofile Software

455 Market Street, San Francisco, CA 94105

© 2026 Oneprofile Software

455 Market Street, San Francisco, CA 94105