Project Management migration guide

The Definitive Guide to Migrating to monday.com

monday.com Work Management is a board-based project platform whose import model rewards teams that pre-build the workspace, choose the right column types up front, and respect the platform's bulk-load limits on every job.

22 min read 9 sections Updated May 27, 2026
monday Work Management
Projects
Tasks
Subtasks
Comments
Attachments
Dependencies

Inside this guide

What you'll learn, section by section

  1. 01

    Why teams migrate to monday.com

    The four shapes a monday.com work-management migration takes, and what makes the platform easier — or harder — than the category average.

  2. 02

    The monday.com data model you need to map into

    Workspaces, boards, groups, items, subitems and the column types that carry your project schema — the destination decoded.

  3. 03

    Pre-migration prep — the work before you touch monday.com

    What must be true on the source, the destination, and across the team before the first row hits the importer.

  4. 04

    Import mechanisms: UI wizard, CSV/Excel, and bulk ingest jobs

    Three paths in, each with different limits and shapes. Picking the wrong one is how mid-migrations stall at scale.

  5. 05

    Mapping your data into monday.com

    The longest section — because column mapping, dependencies, time tracking and Updates threading are where almost every monday migration that fails actually breaks.

  6. 06

    The pitfalls that derail monday.com migrations

    Nine specific failure modes — ranked by impact, each tied to the exact monday mechanism that breaks.

  7. 07

    Validation and cutover

    What to verify after the import job, in what order — and how to fail safely when something is wrong.

  8. 08

    Migration partners and tools

    Certified monday Partners, iPaaS vendors, specialist migration shops — what each is good for and how to choose.

  9. 09

    Frequently asked questions

    The eight questions every monday.com migration team works through before they sign the scope.

Section 01

Why teams migrate to monday.com

The four shapes a monday.com work-management migration takes, and what makes the platform easier — or harder — than the category average.

monday.com Ltd. (styled in lowercase as monday.com) was founded by Roy Mann, Eran Zinman and Eran Kampf in 2012, launched its platform in 2014, and is headquartered in Tel Aviv, Israel 1. The company went public on Nasdaq in June 2021. monday Work Management is the general project-and-process product inside a broader Work OS that also includes monday dev, monday CRM, monday service and monday campaigns, all built on the same underlying mondayDB engine and board model.

The typical monday Work Management customer is a delivery team — 20 to 500 people — that runs cross-functional projects, sprints or repeatable processes and wants Gantt views, dependencies, time tracking and recurring tasks in the same workspace as the documents and Updates that go with them.

Compared with Asana or ClickUp, monday positions on the elasticity of a board model where every project artefact is a customisable board rather than a fixed task list; compared with Jira or Microsoft Project, it positions on a flatter learning curve and a visual Kanban-first delivery view that delivery leads can adopt without an admin function.

The shapes of migration that actually land on monday Work Management tend to fall into four patterns. First, Asana, Trello and ClickUp exits, driven by teams that grew out of a single-list tool and want multi-board structure with dependencies and time tracking baked in. Second, Jira moves, usually a non-engineering function (marketing, operations, PMO) that wants the same workflow rigor without the Jira admin surface area.

Third, spreadsheet and legacy replacements — teams running projects on Excel, Google Sheets, Smartsheet or a homegrown database where the schema is loose and the project is really a re-architecture. Fourth, Microsoft Project and Wrike consolidations, where the parent organisation standardises on monday and pulls smaller-team tooling onto it. Each shape has a different profile: an Asana move has clean object parity but no dependency-column equivalent; a Jira move has rich workflow that does not transfer across at all.

What makes migrating *to* monday Work Management easier than the category average is the board model itself — every project artefact is a board you can shape exactly to your process, and the native CSV/Excel importer ships under the Add → Import items button on any board with up to 8,000 rows per file 10.

What makes it harder than the average is column-type discipline: monday boards do not enforce a schema at the platform level, so the same field on two boards can drift into different types and break Connect Boards and Mirror columns silently 46. Pricing is also per-seat across the entire account, billed in tier-stepped seat blocks, so teams that bring in stale users to preserve historical task ownership inflate the seat count and the annual bill.

Automations (recipes), dashboard widgets, time-tracking session history and the Updates thread on each item do not import — they are rebuilt or recreated from documentation. Teams that scope for that work up front finish on time; teams that assume parity do not.

Teams that scope for the rebuild work up front finish on time; teams that assume parity do not.

Section 02

The monday.com data model you need to map into

Workspaces, boards, groups, items, subitems and the column types that carry your project schema — the destination decoded.

monday platform Contacts Companies Deals Tickets Tasks Notes
Standard objects orbit the platform; every association can be many-to-many with optional labels.

monday Work Management is built around a simple primitive — the board — and everything else composes from it. A workspace contains folders and boards; a board contains groups (which you typically map to a sprint, phase or stage); a group contains items (which map to tasks); items can have subitems (which map to subtasks); and items carry column values plus an Updates thread and a Files column for attachments 80.

Before you can map a field on the source side, you need to know exactly which destination board the row belongs on, which column type each value will store into, and what will serve as the upsert key. The table below summarises the objects you will touch in a monday Work Management migration.

Object Stores Required on import Tier
Workspace Top-level container for a department, product line or client Name; admins or board owners can provision All tiers; per-tier workspace count varies
Folder Optional grouping of boards within a workspace Name; nestable one level deep All tiers
Board (project / process) A single project, process or list — the schema lives here Name; column schema defined per board All tiers; per-board item caps scale with plan [80]
Group (sprint / phase / stage) A section of items inside a board Name; default groups created on import if absent All tiers
Item (task) A single task, ticket, request or work record Item name; column values mapped per column type All tiers; 10,000 items per board on most plans, 100,000 on Enterprise [80]
Subitem (subtask) Child rows under a parent item Parent item ID, subitem name; separate column schema All tiers; subitem boards inherit their own columns
Updates thread Threaded comments, mentions and rich-text discussion on each item Logged via UI All tiers; no native bulk-import path for historical comments [137]
Files column / Files gallery Attachments associated with an item or an Update Files column on the destination board All tiers; 500 MB per item, storage cap scales per plan [88]
Workdoc Standalone document linked to a board or item Created in the workspace; referenced via link column All tiers; per-tier Workdoc limits

There is no platform-enforced unique identifier on a monday board — item names are not unique, and the system always assigns an internal numeric Item ID on create. To upsert deterministically you create a Text or Number column on the destination board, fill it from the source export with a stable external ID (UUID or source platform PK), and use that column as your match key in the ingest job 15.

Connect Boards columns link items across boards — a Task item links to one or more Project items, and a Mirror column then pulls through specific Project fields onto the Task view without duplicating storage. This is how cross-project dependencies are modelled. Mirror columns are read-only by default and recompute when the source column changes.

Column types are where the schema actually lives. The catalogue below covers the column types that carry the load on a Work Management migration and the limits you need to plan around.

Field type Limits Notes
Text / Long Text No documented hard char cap; UI handles up to ~64k Long Text supports line breaks; Text does not 46
Status Up to 40 labels per column Workflow stage; each label has an internal index value 46
Dropdown Up to 1,000 labels per column; 20,000 labels per board Multi-select; semicolon-delimited on import 39
Numbers Standard 64-bit float Story points, estimates, effort; strip currency symbols
Date / Date & Time ISO-8601 with explicit JSON wrapper for programmatic loads Programmatic loads require the documented {"date":...} shape; UI accepts looser formats 69
Timeline Start + end date pair Drives the Gantt view; pair with Dependency column
Dependency One Dependency column per board Pro+ tier only; modes are Flexible, Strict, or No-action 34
Time Tracking Multiple sessions per cell, manually editable Stores start/stop intervals; bulk-load via JSON history payload 138
People One or more users per cell Assignee column; resolves by monday user ID — pre-provision first 52
Connect Boards Up to ~10,000 linked items per column on a single item Cross-project links; required for Mirror columns
Mirror Depends on source column type Read-only pull-through; cannot be written via import
Formula Spreadsheet-style expression Pro+ tier; recomputed on platform — does not import 40
Files 500 MB per item; no per-cell file count cap Inline upload or link from Drive/Dropbox/Box/OneDrive 88
Required columns Up to 100 per board Pro+ tier; turn on after the initial import or rows are rejected 71

Relationships in monday Work Management are modelled through Connect Boards for cross-board references and through the Dependency column for in-board task dependencies. There is no master-detail or cascade-delete construct — deleting a parent item does not delete its subitems or its connected items, so any cascade behaviour from the source has to be replicated via automation recipes.

Section 03

Pre-migration prep — the work before you touch monday.com

What must be true on the source, the destination, and across the team before the first row hits the importer.

The single best predictor of a clean monday Work Management migration is how much work you do on the source side before the first import button is pressed. monday does not deduplicate items on import — it will create two separate Task items for the same task name if you let it — so cleansing has to happen in the export file, not in the destination.

monday does not deduplicate items on import. Two rows with the same task name become two separate items — clean the file, not the board.

Treat the source export as raw material that needs to be shaped to monday's expected formats — task names trimmed, dates rewritten to ISO-8601 with the JSON wrapper required for programmatic loads, Status and Dropdown values matched character-for-character to destination labels, assignees resolved to monday user IDs or emails of users that already exist on the account, and time-tracking durations converted from any source unit (hours, minutes, decimal hours) to monday's session-interval shape.

Source-side prep

  • Audit and dedup the source database before export. Excel's *Data → Remove Duplicates*, Google Sheets' *Data → Data cleanup → Remove duplicates*, or a third-party dedup tool keyed on task ID and parent-project ID — monday will not catch case-only or whitespace duplicates.
  • Match picklist values exactly to monday Status and Dropdown labels — including casing and punctuation. The importer creates a new Status label on the fly for any unmatched value, which silently bloats the column past its 40-label ceiling on Status 46.
  • Decide the project hierarchy before export. Will each source project become one board, one group, or a row on a portfolio board? The cleanest pattern is: portfolio board (one row per project) connecting via Connect Boards to one delivery board per project, with groups representing sprint or phase.
  • Stamp a stable external ID on every record in the source export — a UUID or the source platform's primary key — so re-runs and Connect Boards linking are deterministic 15.
  • Decide what is in scope for historical activities. Comments/Updates do not have a documented bulk-import path, so historical discussion is either logged manually, attached as a Long Text *Legacy comments* column on the parent item, or imported into a parallel comments board you build 137.

Destination-side prep

  • Provision users first, ideally via Okta, Microsoft Entra ID or Google Workspace single sign-on, and assign seats and roles before importing — the People column resolves by monday user ID, and rows whose assignee cannot be matched land with no person set 52.
  • Build the workspace, folders and boards from the right monday template — Project Management, Single Project, Agile Sprints, or a custom blueprint — so the column schema is sensible before you load. Rebuilding column-by-column later is slow 80.
  • Pre-create every custom column on the right board with the right column type. Type-conversion in place is limited; once a Numbers column exists, you cannot retroactively change it to Status without recreating it and losing the data.
  • Add the Dependency column and configure its mode (Flexible, Strict, or No-action) before importing tasks — only one Dependency column is allowed per board, and the mode determines what happens when a parent moves 34.
  • Set Required columns (Pro+ tier) only *after* the initial import — required columns block item creation when the value is missing and fail the import outright 71.

People prep

Cutover only works if humans cooperate. Lock down a source-system freeze window — typically 24 to 72 hours — and communicate it to every department. Train delivery leads on the item card, the Updates thread, the Timeline (Gantt) view, the Workload view and the Dependency column before go-live.

A clean Asana-to-monday move of under 5,000 tasks runs one to two business days; a complex Jira-to-monday migration with rebuilt automations, multi-board structure and historical comments runs two to twelve weeks. Build the human runway accordingly.

Section 04

Import mechanisms: UI wizard, CSV/Excel, and bulk ingest jobs

Three paths in, each with different limits and shapes. Picking the wrong one is how mid-migrations stall at scale.

monday Work Management exposes three load paths and the right one depends on dataset size, board count, and whether the load needs to be repeatable. The UI importer covers most one-shot migrations under 8,000 items per board. The bulk ingest job pattern handles programmatic, repeatable, and very large loads. Third-party staging tools sit on top of both and add transformation and dedup layers.

UI importer (CSV / Excel)

The native importer lives on every board under Add → Import items → From Excel or From CSV 13. It accepts CSV, XLS and XLSX. The wizard auto-detects columns, lets you map each source column to an existing board column or create a new one of an inferred type, and runs the load synchronously for files under a few thousand rows. Items land in the group you select.

Three limits matter. Files can carry up to 8,000 rows and 100 columns per import (only the first 50 columns are mapped on a new-board import) 10. Status column labels are capped at 40 unique values 46; if the source has more, collapse them in the file before import.

The importer also does not deduplicate — rows with the same item name create new items every time. The UI importer is the right call for one-shot loads under 5,000 items per board, or any time you want a visual column-mapping review before commit.

Bulk ingest jobs

For larger loads, monday exposes two bulk-load job patterns. The ingest_items job accepts up to 10,000 rows per job and is available to any caller; the backfill_items job is admin-only and raises the cap to 20,000 rows for the one-time seed before users go live 15. Both jobs accept a CSV uploaded to a pre-signed URL and return a job_id polled with fetch_job_status.

Use ingest_items for ongoing sync work and backfill_items exactly once — at the start, before users touch the board. Both jobs accept the same column-mapping payload as the UI importer. Choose the bulk-job path when the load is over 5,000 items per board, when you need to populate Connect Boards and Dependency relationships at scale, or when the migration needs to be repeatable and audit-logged from your side.

Third-party staging tools

Tools like Fivetran, Airbyte, Stitch, Workato, Make and n8n sit between the source and monday. They are used in two ways: (a) reverse-ETL, where the source loads into a warehouse, gets transformed in SQL, then syncs into monday; and (b) staging-and-validate, where the tool handles file generation, type coercion and dedup before feeding the bulk-ingest job. Getint and Unito add a packaged Jira/Asana/Trello-to-monday flow that preserves comments and attachments as a paid add-on.

For one-time migrations, the value of an iPaaS layer is repeatability under failure; for ongoing syncs (the post-migration phase), they become the system of integration.

Rule

Under 5,000 items per board → UI importer. 5,000–50,000 → ingest_items jobs. Over 50,000 items, deep Connect Boards relationships, dependency graphs, or any re-runnable load → bulk-ingest jobs plus a staging warehouse.

Section 05

Mapping your data into monday.com

The longest section — because column mapping, dependencies, time tracking and Updates threading are where almost every monday migration that fails actually breaks.

SOURCE MONDAY WORK MANAGEMENT FirstName, LastName firstname, lastname AccountName company AnnualRevenue annualrevenue Owner.Email hubspot_owner_id CreatedDate createdate
Field-mapping flow — every source field resolves to a destination property or an explicit drop.

Mapping is where every migration earns its scars. The decisions you make in your mapping spreadsheet — which board, which column type, which Dependency mode, which Connect Boards link — determine whether the Gantt view works on day two, whether automations fire correctly on day five, and whether your delivery leads trust the data on day thirty.

Work board by board, top to bottom of the import order: a Portfolio board first (so each project board can link back to a portfolio row), then per-project Task boards, then subitems for subtasks, then Connect Boards links, then dependencies, then time-tracking history, then Updates and attachments where in scope.

Project hierarchy and task structure

Most source PM tools nest a hierarchy — Asana has Workspace → Project → Section → Task → Subtask; Jira has Project → Epic → Story → Subtask; Trello has Board → List → Card → Checklist. monday's native hierarchy is Workspace → Folder → Board → Group → Item → Subitem 80.

The clean mapping is: source-project → monday board (one board per project), source-section/sprint → monday group, source-task → monday item, source-subtask → monday subitem. Epics, themes and other higher-level constructs map best to a separate Portfolio board, with each Epic linked to the per-project board via Connect Boards.

Excel imports treat subitems as flat items by default — the importer brings them in as top-level items, and you then convert them to subitems either manually one at a time or by running a second-pass load that creates subitems against the parent's Item ID 37. Plan for the second pass; do not assume a single CSV will produce the hierarchy.

Common source → monday Item mapping

Source Destination
  • task_name / summary
    Item name

    Required; trim and de-quote on export

  • assignee / owner
    People column (Assignee)

    Map by monday user ID or email; pre-provision users first 52

  • status / workflow_state
    Status column

    Match labels exactly; up to 40 labels per column 46

  • priority / severity
    Status or Dropdown column

    Status if 4–5 fixed values; Dropdown if more or multi-select

  • due_date
    Date column or Timeline column

    ISO-8601 with {"date":...} JSON for programmatic loads; UI accepts looser formats 69

  • start_date / planned_start
    Timeline column (start)

    Pair with end_date to drive the Gantt view

  • estimate / story_points
    Numbers column

    Strip units; store points or hours per a column-level convention

  • parent_task_id
    Subitem-of via second-pass conversion

    Flat CSV import does not nest; convert in a follow-up pass 37

  • epic_id / project_id
    Connect Boards → Portfolio board

    Set in a second pass once the Portfolio board exists

Task dependencies

monday models task dependencies through a single Dependency column per board, configured at column-creation time with one of three modes: Flexible (date shifts are suggested), Strict (date shifts are enforced), or No-action (the link is informational only) 34. The Dependency column is gated to the Pro and Enterprise plans.

Only one Dependency column is allowed per board — if your source models multiple dependency types (finish-to-start, start-to-start, finish-to-finish), monday will collapse them into a single "depends on" link unless you replicate the type as a separate Text or Dropdown column.

Dependencies are loaded in a second pass after items exist, because the Dependency column references Item IDs and those IDs are assigned by monday on create. The pattern is: (1) export source dependencies as a (predecessor, successor) edge list; (2) import items and capture each row's monday Item ID in a lookup keyed on your external-ID column; (3) iterate edges and write the Dependency column value.

Time tracking history

The Time Tracking column logs work intervals on each item as a sequence of start/stop sessions, and clicking into a cell opens the history and log where each session can be manually edited 138. The column carries the total automatically.

To preserve historical session data from a source like Toggl, Harvest or Jira Tempo, export each row as (item-id, start-timestamp, end-timestamp, user-email) tuples and load them into the Time Tracking column as a JSON history payload — the column accepts a session list, with the running total derived from the sessions.

If the source only stores aggregate durations per task rather than individual sessions, the simplest preserving pattern is to load a single backdated session per task covering the aggregate duration, with the source assignee as the session owner. A parallel *Legacy Hours* Numbers column on the same item gives reporting an unambiguous total that does not depend on session resolution.

Comments and Updates threading

monday's per-item Updates thread carries threaded comments, mentions, rich-text formatting, file attachments and replies. The catch: there is no documented native path for bulk-importing historical Updates with original authors and timestamps preserved as the original posting metadata — community threads from monday users trying to backfill years of comment history are unresolved 137. Updates can be created programmatically, but each call posts as the loader at the current timestamp, not as the original author at the original time.

The patterns most teams adopt: (a) post each historical comment as a new Update with the original author and timestamp prepended in the body text as [2024-03-12, Jane Smith]: …, accepting that the metadata is in the body rather than the structured field; (b) attach a Long Text *Legacy comments* column on the parent item with the most recent N comments inline, formatted for readability; or (c) keep the source platform in read-only archive for 12 to 24 months and link out via URL.

Custom workflow status and recurring tasks

Custom workflow statuses live in the Status column, color-coded with up to 40 labels per column 46. For each board with a non-default workflow, configure the Status column labels before importing — order them left-to-right to match the workflow progression so the Kanban view groups make sense.

If the source has more than 40 statuses, either collapse adjacent values during transform or split the status into a *Status* column (a coarse 4–6 label workflow stage) and a *Sub-status* Dropdown column (the fine-grained value).

Recurring tasks are not a column — they are built as an automation recipe. The pattern is Every time period, create item in group, configured under the Automate button on the board; periods can be daily, weekly, monthly or a custom interval 139.

Migration implication: a recurring task in the source platform should be migrated as a single template item plus an automation that recreates it on schedule, not as 52 backdated weekly rows. Build the recipe inventory from the source first, prioritise the top recurring patterns, and rebuild those before go-live.

Custom-column mapping strategy

Resist the urge to map every source custom field one-to-one. Migrate only the columns used by an active process, report or dashboard in the last 12 months. Excess columns weaken governance, slow board loads, and make Connect Boards and Mirror columns harder to audit. monday boards have no documented hard cap on columns per board, but past ~50 columns the item card becomes unwieldy and delivery leads stop trusting the view.

For picklist fields whose source values do not match the destination, either: (1) extend the destination Status/Dropdown column with the missing labels, (2) collapse adjacent values during transform, or (3) introduce a parallel Text column that holds the legacy value verbatim. Formula columns (Pro+ tier) do not import — monday recomputes them on-platform — so any source formula must be rebuilt as a monday Formula column expression 40.

Files and attachments

Files attach to items via the Files column or inline in Updates. The cap is 500 MB per item 88; if files exceed that, the supported path is to zip them or upload from Google Drive, Dropbox, Box or OneDrive via the cloud-storage integration. Large attachment estates (hundreds of GB) typically use the cloud-storage link pattern, with a deep link stored in a URL column on the item.

Storage allowance is tier-dependent — Free gets 500 MB, Basic gets 5 GB, Standard gets 20 GB, Pro gets 100 GB, and Enterprise is effectively unlimited. Plan for storage tier consumption before you bulk-upload — the account-wide cap aggregates across every board, not just the project boards in scope.

Audit trail, ownership and original timestamps

monday's per-item Activity Log captures column-value changes for a retention period that scales per plan — 1 week on Basic, 6 months on Standard, 1 year on Pro and 5 years on Enterprise. The system-managed Created timestamp is stamped to import day and cannot be overwritten through the standard create or ingest paths. To preserve the original audit trail, create *Legacy Created Date* and *Legacy Created By* columns on every board and populate them from the source export.

Ownership via the People column works only if the monday user ID or email exists at the moment of import; rows whose assignee cannot be resolved land with no person set, which silently breaks downstream owner-based automations. Account-level activity audit logging is Enterprise-only; lower tiers see per-item history in the Activity Log panel but not account-wide events.

Section 06

The pitfalls that derail monday.com migrations

Nine specific failure modes — ranked by impact, each tied to the exact monday mechanism that breaks.

High impact

No deduplication on import — duplicate items by default

monday does not deduplicate on import. Upload a Tasks CSV with two rows for the same task and you get two separate Item entries with no warning, no merge prompt, and no native bulk-merge tool to fix it afterwards. The mitigation is upstream: dedup in Excel, Google Sheets or a third-party tool keyed on a stable external-ID column populated from the source platform's primary key. For subitems, dedup by parent Item ID plus subitem name before the second-pass conversion.

High impact

Status column silently bloats past its 40-label ceiling

Status columns cap at 40 labels — sufficient for most workflow-state fields, but the UI importer creates new labels on the fly for any unmatched source value 46. A Jira export with 53 distinct workflow states lands as 53 new Status labels, blowing past the cap, breaking the Kanban grouping view, and turning automations keyed on that column into a maintenance burden. Match labels exactly in the source file, collapse adjacent values during transform, or use a Dropdown column (1,000 labels) for the long tail. 46

High impact

Comments and Updates have no bulk-import path

Years of comment history sitting in Asana, Jira or ClickUp cannot be bulk-loaded into monday's Updates thread with the original author and timestamp preserved as structured metadata — there is no documented native path for it, and community threads from practitioners trying to backfill remain unresolved 137. Workarounds: post each Update with the original author and date prefixed in the body, build a parallel Comments board, or attach a Long Text *Legacy comments* column on the parent item. Scope this before signing the migration contract. 137

High impact

Subitems do not nest on CSV import

A flat CSV that lists subtasks alongside their parent tasks does not produce a parent/subitem hierarchy on monday — the importer creates every row as a top-level item, and a second pass is needed to convert each subtask row into a subitem of the right parent and delete the original 37. Build the parent-Item-ID lookup table during the import and run the conversion in batches; do not assume one CSV produces the tree. 37

Medium impact

Dependency column is one-per-board and Pro+ only

Only one Dependency column is allowed per board, and the column type is gated to the Pro and Enterprise plans 34. If your source models multiple dependency relationship types (finish-to-start, start-to-start, finish-to-finish), monday will collapse them into a single "depends on" link unless you create parallel Text or Dropdown columns to carry the relationship type. Configure the Dependency mode (Flexible, Strict, No-action) at column-creation time — changing modes later does not retroactively rewrite existing links. 34

Medium impact

Date column rejects bare YYYY-MM-DD on programmatic loads

The UI importer accepts loose date formats — 21/02/26, Feb 21 2026, 2026-02-21 — but the programmatic load path rejects bare YYYY-MM-DD strings against a Date column unless the value is wrapped in the documented JSON shape {"date":"2026-02-21"} 69. The error message is generic. Normalise dates to the JSON wrapper before the load, and validate the column-value payload against the monday schema before scaling the job. 69

Medium impact

Per-tier activity-log retention drops history at the cap

monday's per-item Activity Log retains for 1 week on Basic, 6 months on Standard, 1 year on Pro and 5 years on Enterprise. If your migration target is Basic or Standard and you imported historical column changes by replaying source values one at a time to seed the log, those changes age out of the Activity Log inside the retention window. Land on Pro+ if historical column-change audit matters, or capture audit history in *Legacy Updated* Date/Text columns on the item.

Medium impact

Per-seat pricing punishes stale-user retention

monday Work Management is priced per-seat across the whole account, with seat counts billed in tier-stepped blocks (3, 5, 10, 15, 20, 25, 30, 40, 50+). Importing inactive users from the source so historical People-column ownership is preserved silently inflates the seat block and the annual bill at the next renewal. Resolve former-owner records to a single "Legacy Owner" archive user or a Text column with the legacy email instead of bringing the user into monday.

Low impact

EU data residency requires a separate account migration

monday hosts customer data in AWS US by default and offers an EU data region in Frankfurt for accounts that need GDPR data residency. Existing US accounts cannot flip region in place — migration is a separate, vendor-coordinated process where monday provisions a new EU account and the project data is copied over via export/import or via partner tooling. If your migration target is an existing US account but you need EU residency, plan the region migration *before* the data migration, not after.

Section 07

Validation and cutover

What to verify after the import job, in what order — and how to fail safely when something is wrong.

1 Read-only Source goes write-frozen 2 Final delta Export incremental changes 3 Import Load into monday 4 Validate Reconcile + spot-check 5 Cut over Users on new system
Cutover sequencing — five gated phases between source read-only and full user access.

Validation is the bridge between the import finishing and users being allowed in. Field-engineering practice on monday Work Management migrations follows a three-stage validation: a test load of 10 percent of items with stakeholder spot-checks, the full load with real-time monitoring of item counts and Dependency-column integrity, and a 30-day post-migration data-quality audit. The most reliable signal is having delivery leads verify their own boards — they know what right looks like better than any reconciliation script.

Build a reconciliation queries spreadsheet that compares source and destination on each of these counts. Anything outside a 0.5 percent variance gets investigated before users get login access.

  • Total items per board vs source — minus deliberately excluded rows (archived projects, closed-won deals, completed-and-purged tasks).
  • Total subitems per parent item vs source — confirming the second-pass subitem conversion did not orphan rows or duplicate the parent.
  • Total dependencies per board — count edges in the source dependency graph and confirm the Dependency column in monday carries the same edge count, with edge direction (predecessor → successor) intact.
  • Sum of time-tracked hours per board per assignee vs source — a non-trivial variance usually signals a session-history payload error or a unit mismatch (decimal hours vs HH:MM).
  • Status label distribution per board — group items by Status label and confirm no rogue labels were created on the fly by mismatched source values 46.
  • Connect Boards link counts — for cross-project links, count Task→Portfolio links and compare against source-derived expected counts; missing links cause silent Mirror column blanks.
  • People column distribution — group items by assignee and confirm no item landed unowned that should not have, and no row landed on a Legacy Owner placeholder when an active assignee existed.
  • Unique-identifier integrity — count distinct external-ID values across all imported boards; any duplicates indicate the dedup transform missed cases (monday will not catch them).

On top of reconciliation, run a manual spot-check protocol: pick 30 random items across boards and verify each column value, dependency link and time-tracking total against the source UI. Pick five high-complexity projects and trace the full Connect Boards graph — Portfolio link, dependency chain, subitems and Mirror columns. If a non-trivial discrepancy shows up in three or more of the 30, halt the load, fix the root cause, and re-import the affected items by external-ID column.

Rollback on monday is per-item, not per-import. The Activity Log on each item supports undo of recent column-value changes, but there is no native bulk-undo for an entire import batch. The community-built LogBack app provides per-board undo for bulk-edit accidents, and the Rewind backup product offers granular per-board restore for items and columns. Neither is a one-click rollback of a 50,000-row ingest job.

The real rollback strategy remains: export everything before the import starts, stamp every imported item with an *Import Batch ID* Text column, and if catastrophe strikes, bulk-delete by that batch ID, then re-import from the cleaned source.

Cutover sequencing: (1) source goes read-only and the team is notified; (2) final delta export captures everything that changed during the test-import window; (3) delta is imported via ingest_items; (4) reconciliation runs; (5) Connect Boards links and Dependency-column edges are populated in a second pass.

Then (6) automation recipes for recurring tasks and notifications are turned on; (7) users get login access and a 48-hour hyper-care window with the migration lead on call; (8) source decommission is scheduled for 30 to 90 days out, never the same day.

Section 08

Migration partners and tools

Certified monday Partners, iPaaS vendors, specialist migration shops — what each is good for and how to choose.

The monday.com Partner Program tiers Diamond, Platinum, Gold, Silver and Bronze partners by certifications, customer count and revenue. For Work Management migrations specifically, partners with explicit Jira-to-monday, Asana-to-monday or Smartsheet-to-monday practices tend to ship cleaner than generalist implementation shops because they understand the dependency-graph, subitem-conversion and time-tracking-history mechanics that derail naive imports.

Partners commonly named in the Work Management corner of the market run fixed-scope migration packages alongside ongoing managed services. Pricing tiers tend to follow board count, item count and historical-data depth: a single-board, under-5,000-item move with no comments runs at the low end; a multi-workspace migration with dependencies, time-tracking history and Updates preservation runs at the high end.

Getint and Unito add a packaged Jira/Asana/Trello-to-monday flow with comment and attachment preservation as a paid integration — Getint is licensed per migration run rather than per seat, which makes it economical for a one-time backfill.

On the ETL and iPaaS side, Fivetran, Airbyte, Stitch, Workato, Make, n8n and Zapier all have monday connectors. Their role in a migration is rarely the migration itself — it is the staging layer that lands source data into a warehouse, the transformation layer that converts picklist values and resolves owner IDs to monday user IDs, and the ongoing-sync layer that takes over once the one-time migration is complete.

Airbyte and Fivetran are common picks for warehouse-first teams; Workato and Make are common where the migration is bundled with workflow automation rebuilds; n8n is used heavily for monday-side automation recipes post-migration where the team wants more control than the native automation builder offers.

Managed-migration cost ranges vary widely. An Asana-to-monday or Trello-to-monday move under 5,000 tasks with no historical comments and a single workspace often lands in the $2,500–$8,000 range. A Jira-to-monday project with dependencies, time-tracking history, subitem conversion and Updates preservation typically runs $15,000–$80,000, with the upper end driven by item count, dependency-graph density, historical-comment depth and the number of integrations that need rebuilding rather than re-pointed.

For teams that want to outsource the migration end-to-end, FlitStack specialises in monday.com Work Management migrations and handles the column-type design, project-hierarchy mapping, dependency-graph load, subitem conversion, time-tracking history preservation and validation work described in Sections 5 and 7 of this guide. Pricing is fixed-fee, based on item count and source platform, with separate line items for Updates-thread depth and Dependency-graph complexity so the scope is transparent before signature. Explore FlitStack →

This is one of several legitimate paths — the right choice for any given team depends on whether they want a Diamond/Platinum monday Partner, a packaged migration product like Getint or Unito, an iPaaS-first approach, or a specialist migration vendor.

Section 09

Frequently asked questions

The eight questions every monday.com migration team works through before they sign the scope.

References

Sources

  1. 1 Monday.com — Wikipedia
  2. 10 Import files from Excel — monday Support
  3. 13 Import from Excel — monday Support
  4. 15 Importing items in bulk — monday Support
  5. 34 Dependencies on monday.com — monday Support
  6. 37 Connecting subitem to parent item using workflow — monday Community Forum
  7. 39 The Dropdown Column — monday Support
  8. 40 Available plan types on monday — monday Support
  9. 46 Column Types — monday Support
  10. 52 How to manage users on your account — monday Support
  11. 69 Issue when import Date column type — monday Community Forum
  12. 71 Required columns — monday Support
  13. 80 Item and subitem limits per board — monday Support
  14. 88 How to manage files in monday.com — monday Support
  15. 137 Import comments and updates to tasks from other sources — monday Community Forum
  16. 138 The Time Tracking Column — monday Support
  17. 139 How to create recurring tasks — monday Support

Need help running this migration?

FlitStack AI runs monday Work Management migrations end-to-end.

Fixed-fee pricing, a hands-on migration engineer, full field mapping and validation. The work described in this guide — done for you.