Phase 0
Decide & Plan
Lock scope, success criteria, and the cutover window before any export starts.
-
Risk if skipped: Discovering at cutover that Leads or Accounts were assumed but never planned forces re-scoping mid-migration.
-
Risk if skipped: Pulling all history by default can multiply the dataset and force you into a higher plan tier than you budgeted.
-
Risk if skipped: Buying Basic then discovering you need formula columns, private boards, or HIPAA coverage blocks the migration until billing is escalated.
-
Risk if skipped: Provisioning on the US region for an EU-resident customer forces a second migration to the Frankfurt region to satisfy GDPR.
-
Risk if skipped: Unwritten out-of-scope items resurface as urgent during cutover and derail the schedule.
-
Risk if skipped: Without falsifiable criteria, the migration is never formally complete and tail issues drag on for months.
Phase 1
Pre-Migration Prep
Cleanse the source, build the destination schema, and align the team.
1a. Source-system audit and cleansing
-
Risk if skipped: Importing duplicates means rebuilding deal-to-contact linkages against the wrong item after a manual merge pass.
-
Risk if skipped: Merging Accounts inside monday CRM leaves duplicate Contacts orphaned to one side of the merge.
-
Risk if skipped: Required-column violations block item creation through forms, automations, and integrations after cutover.
1b. Destination-system setup
-
Risk if skipped: Switching regions after data is loaded requires a full re-migration via the board-template path with manual rebuild of automations and Connect Boards links.
-
Risk if skipped: Hand-rolling boards without the template means rebuilding the Email & Activities item-card layout and the mobile CRM view manually.
-
Risk if skipped: Importing items with Person column values that reference non-existent users assigns them to nobody and forces a re-link pass.
-
Risk if skipped: monday's importer silently ignores CSV columns that have no matching board column, with no skip-file or error.
-
Risk if skipped: Loading Deals before the Deal-to-Account Connect Boards column exists strands every deal without its account link.
-
Risk if skipped: Required columns active during the load reject every row that has the slightest gap and produce no skip file.
-
Risk if skipped: Default Automations active during import send hundreds of nudge emails to customers within minutes of cutover.
-
Risk if skipped: Hitting the complexity ceiling mid-load stalls the import and forces a wait-and-retry loop that extends the cutover window.
1c. People prep
-
Risk if skipped: Without first-responders, day-one issues escalate to the migration owner and starve actual validation work.
Phase 2
Source Export
Pull a complete snapshot of every in-scope object from the source system.
-
Risk if skipped: Omitting the source ID column means relationship reconstruction has to fall back to fragile email or name matching.
-
Risk if skipped: Losing the source pipeline name forces a manual stage-by-stage reclassification.
-
Risk if skipped: Without the manifest, files re-upload to the wrong item or end up unlinked.
-
Risk if skipped: Without timestamps, the delta-load step risks duplicating rows that crossed the boundary or losing rows that came in just after.
Phase 3
Transform & Map
Convert exports into monday-shaped files with explicit column-type, relationship, and CRM-specific handling.
3a. Mapping spreadsheet
-
Risk if skipped: Without a single source-of-truth mapping document, column decisions get made twice and the second decision overwrites the first silently.
-
Risk if skipped: Importing an unknown Status value creates a new label automatically and pollutes the column with near-duplicates.
-
Risk if skipped: Re-running an import without a stable upsert key creates duplicate items on every retry.
3b. Data transformation
-
Risk if skipped: Ambiguous DD/MM vs MM/DD strings get parsed by the importer's locale and silently shift dates by months.
-
Risk if skipped: Non-UTF-8 encoding causes entire ingest_items batches to fail rather than single rows.
-
Risk if skipped: Unescaped commas split rows into wrong column counts and the row lands in the skip file.
-
Risk if skipped: A trailing space on a Status value creates a duplicate label ('Won' and 'Won ') that pollutes reporting.
3c. Relationship and audit-trail decisions
-
Risk if skipped: Reporting that filters on item CreatedAt will treat every migrated item as created at cutover, distorting historical trend analysis.
-
Risk if skipped: Loading Deals before Accounts strands every deal without its Account link and forces a re-link pass after.
3d. monday CRM-specific transforms
-
Risk if skipped: Importing into a board that lacks the right Column types silently drops the value with no skip-file warning.
-
Risk if skipped: Loading Deals before this Connect Boards column exists leaves the link unset and the Mirror columns empty.
-
Risk if skipped: Importing activity rows before the templates exist drops the typed metadata and leaves a generic log entry.
-
Risk if skipped: Activating automations before validation triggers notification cascades to customers on incorrect data.
-
Risk if skipped: Merging Accounts in the UI does not automatically reassociate the linked Contacts and Deals — those stay attached to the deleted record.
Phase 4
Sandbox Test Migration
Prove every transform and load path against the sandbox workspace before touching production.
-
Risk if skipped: Skipping a sample run means production becomes the first place errors surface.
-
Risk if skipped: Skipping the async-job pattern in test means cutover is the first time you see timeout, retry, or partial-completion behavior.
-
Risk if skipped: Connect Boards links written before the target item exists silently fail to associate.
-
Risk if skipped: If only small samples are tested, production hits ceilings the sample never approached.
-
Risk if skipped: No formal sign-off means a cutover failure has no clear escalation owner.
Phase 5
Production Cutover
Execute the migration in tight sequence with idempotent loads and continuous reconciliation.
-
Risk if skipped: Late writes after the delta cut produce silent data loss at cutover.
-
Risk if skipped: Default 'Notify owner when item created' active during import sends hundreds of notification emails within minutes.
-
Risk if skipped: Person column values that reference non-existent users assign to nobody and require a re-link pass.
-
Risk if skipped: Loading Deals before Contacts and Accounts strands their Connect Boards values empty.
-
Risk if skipped: File uploads consume complexity points fast; budget headroom or files mid-batch start failing.
-
Risk if skipped: Pushing dependent loads on top of an incomplete parent load doubles the cleanup cost.
Phase 6
Validate
Prove the migration was correct before any end-user is granted access.
6a. Reconciliation
-
Risk if skipped: A missing object surfaces as 'where did our deals go' from end users two weeks later.
-
Risk if skipped: Pipeline value drift breaks executive forecasts on day one of cutover.
6b. Relationship validation
-
Risk if skipped: An unlinked deal looks healthy in isolation but breaks the Mirror columns and the Account rollup math.
6c. Audit and compliance
-
Risk if skipped: A region mismatch discovered post-cutover triggers a contractual breach notification.
6d. User-acceptance check
-
Risk if skipped: Without rep UAT, business-logic errors only surface after go-live when trust is already shaken.
6e. Sign-off
-
Risk if skipped: No sign-off means an issue discovered in Phase 7 has no clear escalation owner and the rollback path becomes ambiguous.
Phase 7
Post-Migration Cleanup
Close out the project: cut over users, rebuild what does not migrate, decommission the source.
-
Risk if skipped: Skipping role-segmented training means adoption stalls and 'where do I do X' tickets dominate the first month.
-
Risk if skipped: Activating an untested recipe on a full board triggers a notification cascade and may corrupt Status values.
-
Risk if skipped: Without an archive, a later dispute over what the source held cannot be resolved.
Watch list
Risks to track throughout
These risks live across multiple phases — keep an eye on them from kickoff through cutover.
-
Complexity-points budget under heavy load
monday meters every read and write against a per-minute complexity budget that is plan-tier-gated. Bulk loads, test runs, validation queries, and re-loads compound across the window. Test runs against the sandbox and the full cutover pass both draw from the same budget. Track cumulative complexity from Phase 4 onward and reserve at least 30% headroom for re-runs in the cutover window.
-
Silent column-drop and silent Status-label creation behavior
monday's importer silently ignores CSV columns that have no matching board column and silently creates new Status labels for unknown values. Neither failure surfaces in a skip file. Pre-validate every column header and every Status value against the destination schema before each load, and run the Phase 6 reconciliation against label counts as well as row counts.
-
Data residency lock-in to the chosen region
monday.com pins each account to one data region (US default, Frankfurt EU for residency-sensitive customers) at provisioning, and that choice cannot be flipped in place on an existing tenant. A region mismatch discovered after cutover forces a second full migration via the board-template path with manual rebuild of Automations and Connect Boards links. Lock the region decision in Phase 0 with legal sign-off.
-
Automations and integrations rebuild rather than migrate
Automations recipes, Email & Activities templates, Sales Pipeline forecast formulas, Gmail/Outlook two-way sync, calendar sync, and Apps Framework Marketplace apps do not migrate from any source system. They rebuild manually inside monday after the data load. Capture each one as a spec during Phase 2, rebuild in Phase 7, and leave them inactive until validation passes in Phase 6.
Pair this with the long-form guide
The complete monday CRM migration guide
Same research, written as prose: data model, import mechanisms, mapping strategy, pitfalls, and partner landscape.