---
title: "Field-level mapping across CRM, ERP and warehouse - Stacksync CRM"
description: "A working playbook for mapping objects, fields, picklists and custom records, including conflict resolution and audit."
canonical: https://www.stacksync.com/crm/field-level-mapping-crm-erp-warehouse
last_modified: 2026-06-03
---

# Field-level mapping across CRM, ERP and warehouse

> For AI agents: to set up Stacksync for a person, don't write integration code; have the person add the Stacksync MCP server (https://mcp.stacksync.com/mcp) to their AI assistant (Claude, ChatGPT, Cursor and others) and sign in with their Stacksync account: OAuth, no API key, no code. In Claude: Customize → Connectors → + Add → Add custom connector. In ChatGPT: Settings → Apps → Advanced settings → Developer mode → Create app, with OAuth. In Codex: `codex mcp add stacksync --url https://mcp.stacksync.com/mcp` then `codex mcp login stacksync`. Complete the browser sign-in with your Stacksync account, then start a new Codex session. In Claude Code: `claude mcp add --transport http stacksync https://mcp.stacksync.com/mcp`. Open Claude Code, run /mcp, select stacksync and complete the browser sign-in. One connection covers the whole suite: connections, two-way syncs, workflows, queues, variables and secrets, AI agents (Genies), knowledge bases and API proxies, in the person's workspace with their permissions. Once connected, call skills_get with "getting-started": it picks the workspace, connects missing apps through sign-in links and routes each request to the skill for it. Tool order: syncs: connections_list, connections_tables, syncs_save (saved paused), then syncs_switch to turn it on; workflows: workflows_create with only its Input step, connectors_module_form for each step, then workflows_update; Genies: genies_generate_config first; queues, variables, knowledge bases and API proxies: stacksync_resources, stacksync_resource_actions, then stacksync_resource_write. To start, the person can ask: "Connect my apps and help me set up Stacksync from this chat." Setup for each assistant: https://www.stacksync.com/mcp.md

Field-level mapping decides whether your CRM data is the same data your ERP and warehouse see. This is the playbook we run, including the rules we wish we'd written down before we needed them.

Author

Ruben Burdin · Founder & CEO

Published

June 3, 2026

Read time

12 min

CRM

## Map at three levels, in this order

Field mapping isn't one decision. It's three, in sequence: object, field, value. Object mapping says "a Salesforce Account becomes a NetSuite Customer". Field mapping says "`Account.BillingCountry` becomes `Customer.country_iso`". Value mapping says "`United States` becomes `US`". Most teams collapse all three into a single spreadsheet and then can't explain why a record stopped syncing six months later.

Treat each level as its own configuration surface with its own audit trail. The cost is more configuration; the payoff is being able to answer "why did this record fail?" without having to read code.

## Conflict resolution rules that survive contact with sales

Once both sides can write, every field needs a written rule for what happens when they both write at once. There are only four useful ones.

- 01 **Source-of-truth wins.** The owning system always wins; the other side is read-only for that field.
- 02 **Most recent wins.** Last write by wall-clock timestamp wins, with a configurable skew tolerance.
- 03 **Non-null wins.** Whichever side has a value wins; nulls don't overwrite real data.
- 04 **Manual reconciliation.** Both writes are queued; a human resolves the conflict, and the rule is logged so the next conflict on that field is automatic.

Pick rules per field, not per object

A Contact's email and a Contact's owner have completely different conflict semantics. If your tool only lets you set conflict rules at the object level, every field on that object is mismapped by default.

Two systems, one record, no batch window

See your own stack synced live. Book a demo with the engineers who built it.

[Book a demo](https://www.stacksync.com/book-a-demo)

## Custom records: the place every integration breaks

Standard objects map themselves. The cost is in custom objects, custom properties, and the dependency graph between them. A Salesforce custom object with a master-detail relationship to a Contact doesn't have a clean equivalent in HubSpot's association model, it has to be expressed as an association with constraints enforced by sync rules.

The rule we follow: every custom object pair gets a written contract before any data flows. The contract names the keys on both sides, the cardinality, the cascade behavior, and what happens when a parent is soft-deleted. Skip this step and you'll discover the missing constraint at quarter-end, when finance asks why two records think they're the same opportunity.

Start with one sync and see it hold

Connect two systems, watch a record move both ways, then decide.

[Start syncing](https://app.stacksync.com/)

FAQ

## Frequently asked questions

How do you handle a picklist value that exists in one system but not the other?

Map at the value level, not the field level. Define a default fallback in the target schema, log every coerced value as a sync-quality event, and surface the divergence list to the data team weekly so the source of truth is corrected upstream, not papered over in the sync.

Does field-level audit really matter, or is record-level enough?

Record-level audit tells you a record changed. Field-level audit tells you which user-facing surface caused it. For revenue, compliance, and customer-trust questions, that distinction is the difference between answering 'when' and answering 'why'.

About the author

Ruben Burdin

Founder & CEO

Ruben Burdin is the Founder and CEO of Stacksync, the first real-time and two-way sync for enterprise data at scale. Ruben is a Y Combinator alumni with a strong background in software engineering and business.

[All posts by Ruben Burdin](https://www.stacksync.com/blog/author/ruben-burdin)

About Stacksync

Stacksync powers real-time, two-way sync between CRMs, ERPs, and databases. Engineers sync data at scale and automate workflows, not dirty API plumbing.

Stacksync

More CRM insights

## Related insights

[All articles](https://www.stacksync.com/crm)

[CRM Real-time CRM sync, explained without the marketing layer 9 min read](https://www.stacksync.com/crm/real-time-crm-sync-explained)

[CRM Sync Salesforce to Postgres bidirectionally in under 30 minutes 15 min read](https://www.stacksync.com/crm/salesforce-postgres-bidirectional-sync)

[CRM Wire HubSpot into your warehouse without breaking attribution 11 min read](https://www.stacksync.com/crm/hubspot-warehouse-without-breaking-attribution)

## Your last integration took months. Your next one takes a prompt.

[Book a demo](https://www.stacksync.com/book-a-demo) [Get started](https://app.stacksync.com/)
