CRM migration
Field-level mapping, validation, and rollback between Attio and Nutshell. We move data and schema; workflows are rebuilt natively in Nutshell.
Attio
Source
Nutshell
Destination
Compatibility
6 of 8
objects map 1:1 between Attio and Nutshell.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from Attio to Nutshell is a schema simplification, not a straight record copy. Attio's flexible object-relational model lets teams define any business entity as a custom object; Nutshell uses a fixed schema built around Contacts, Accounts, and Deals with optional custom fields. We audit every Attio object during scoping, map custom objects to custom fields on Nutshell's standard records, and resolve relationship chains (which Attio's CSV export flattens) using the API to prevent Deals from arriving orphaned from their Companies. Attio Lists do not migrate directly; we extract list membership criteria and document the equivalent Nutshell Smart List filter logic for the admin to rebuild. Workflows and credit-consuming automations are inventoried but not migrated, since Nutshell's automation model differs fundamentally from Attio's action-block credit structure. Activity history (calls, emails, meetings, notes) transfers as timeline entries on the matching Contact, Account, or Deal record.
Every standard and custom field arrives verified.
AI proposes the map; you confirm before any record moves.
Parent–child, lookups, and ownership stay linked.
Calls, emails, meetings — with original timestamps.
Documents, uploads, and inline notes move with the record.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a Attio object lands in Nutshell, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Attio
People
Nutshell
Contact
1:1Attio People records map directly to Nutshell Contacts. Standard Attio fields (name, email, phone, job title, website) map to their Nutshell equivalents. Custom attribute fields on the Attio People object map to Nutshell custom fields on Contact, subject to the destination plan's custom field limit (20 on Standard, 50 on Pro, 100 on Power). Email addresses serve as the dedupe key during import to prevent duplicate Contacts. Relationship links to Companies are resolved against the Accounts created in the preceding import phase.
Attio
Companies
Nutshell
Account
1:1Attio Company records map to Nutshell Accounts. The Attio company domain populates the Account website field, and the company name becomes Account.name. Nutshell Accounts support a many-to-many relationship with Contacts through the Account's linked Contact records. We resolve this relationship after both objects are created so that the Contact-to-Account link is satisfied at import time rather than requiring a second pass.
Attio
Deals
Nutshell
Deal
1:1Attio Deals map to Nutshell Deals. Attio's pipeline stages map to Nutshell Deal status values, and Attio's deal amount maps to Nutshell's value field. We validate that the destination Nutshell plan supports Deal objects (available on Standard and above). Relationship attributes linking Deals to their parent Company (Account) and associated People (Contacts) are resolved using the Account ID and Contact IDs created in earlier import phases, preventing Deals from arriving without an Account association.
Attio
Custom Objects
Nutshell
Custom Fields on standard objects
lossyAttio custom objects (Gated 3 on Free, 5 on Plus, 12 on Pro, unlimited on Enterprise) have no direct Nutshell equivalent because Nutshell does not support custom objects on any tier. We audit each custom object during scoping, map its attributes to custom fields on the closest Nutshell standard object (Contact, Account, or Deal), and consolidate related attributes into field groups. If the total custom field count exceeds the destination plan's limit, we recommend upgrading Nutshell or reducing the field set before migration.
Attio
Notes
Nutshell
Note
1:1Attio Notes are first-class API objects attached to any record. They migrate as Nutshell Notes linked via ContentDocumentLink to the parent Contact, Account, or Deal. Note timestamps and author attribution are preserved. Rich text formatting in Attio Notes is converted to plain text for Nutshell compatibility, with a flag in the migration report for any notes with unsupported formatting that require manual review.
Attio
Activities (Emails, Calls, Meetings, Tasks)
Nutshell
Activities on Contact, Account, or Deal
1:1Attio engagement records (email, call, meeting, task) map to Nutshell Activity records attached to the appropriate Contact, Account, or Deal. We resolve the parent record ID (Contact or Account) at migration time by querying the email address or company domain to match against the already-migrated Contact and Account records. Activity timestamps are preserved to maintain the timeline order that sales reps rely on for deal context.
Attio
Lists
Nutshell
Smart Lists (documented for manual rebuild)
lossyAttio Lists are dynamic filtered collections of records defined by attribute conditions, not standalone records. Nutshell does not have a native equivalent to Attio's dynamic Lists. We extract each List's filter criteria (attribute conditions, relationship filters, sort order) and document them as a step-by-step Smart List rebuild guide for the Nutshell admin. List membership counts are preserved in a migration report so the admin can validate the rebuilt Smart Lists against the original counts.
Attio
Owner
Nutshell
Owner
1:1Attio User records and Owner assignments on records map to Nutshell Owner references. We match by email address. Any Attio Owner without a matching Nutshell user is held in a reconciliation queue for the customer to provision before record import resumes, since OwnerId is a required reference on Deals and optional on Contacts and Accounts.
| Attio | Nutshell | Compatibility | |
|---|---|---|---|
| People | Contact1:1 | Fully supported | |
| Companies | Account1:1 | Fully supported | |
| Deals | Deal1:1 | Fully supported | |
| Custom Objects | Custom Fields on standard objectslossy | Mapping required | |
| Notes | Note1:1 | Fully supported | |
| Activities (Emails, Calls, Meetings, Tasks) | Activities on Contact, Account, or Deal1:1 | Fully supported | |
| Lists | Smart Lists (documented for manual rebuild)lossy | Mapping required | |
| Owner | Owner1:1 | Fully supported |
Gotchas + challenges
Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.
Attio gotchas
CSV exports flatten relationship chains
Credit consumption burns budget faster than seat price suggests
Custom objects gated by plan tier during migration
Email sync only for People and Company records
Nutshell gotchas
Contact tier limits enforced on import
No bulk API endpoint requires paginated extraction
Email sequences not exportable via API
Foundation plan disables key sales features
Pair-specific challenges
Migration approach
Discovery and scoping audit
We audit the source Attio workspace across plan tier, object count, custom object definitions, attribute types, relationship attributes, active Lists, active Workflows, and engagement volume. We compare the Attio object and field inventory against the destination Nutshell plan's custom field limits and standard object availability. The discovery output is a written migration scope with a complete Attio-to-Nutshell object and field map, a flag list for any custom objects requiring consolidation, a relationship graph extract from the Attio API, and a Nutshell plan upgrade recommendation if the destination plan cannot accommodate the migrated field count.
Relationship graph extraction and schema design
We query the Attio API to extract the full relationship graph for every object: which Contacts belong to which Accounts, which Deals are linked to which Accounts and Contacts, and which Notes and Activities attach to which records. We then design the Nutshell schema, creating the custom fields on Contact, Account, and Deal that correspond to Attio's custom object attributes. We configure the Nutshell Deal pipeline with stage values mapped from Attio's deal stages. The schema is deployed into a Nutshell trial or sandbox org for validation before any data is migrated.
Sandbox migration and reconciliation
We run a full migration into the Nutshell validation environment using production-like data volume. The customer reconciles record counts (Contacts in, Accounts in, Deals in, Activities in), spot-checks 20-30 random records against the Attio source, and reviews the relationship chain completeness report. Any field mapping corrections, custom field additions, or relationship resolution gaps are resolved here. The customer signs off the sandbox migration before the production cutover date is confirmed.
Owner and user reconciliation
We extract every distinct Attio Owner referenced on People, Companies, Deals, Notes, and Activities and match by email against the Nutshell destination's user list. Owners without a matching Nutshell user go to a reconciliation queue for the customer to provision before migration resumes. Owner assignments are required on Deals and optional on Contacts and Accounts, so this step gates the Deal import phase.
Production migration in dependency order
We run production migration in record-dependency order: Accounts (from Attio Companies), Contacts (with AccountId resolved and relationship links restored), Deals (with AccountId and associated ContactIds resolved from the relationship graph), Activities (Tasks, Emails, Calls, Meetings attached to the correct Contact or Account by email-domain match), Notes (linked via ContentDocumentLink to the parent record). Custom object attributes are written as custom fields during the Contact and Deal import phases. Each phase emits a row-count reconciliation report. Attio writes are frozen during the cutover window.
Cutover, final delta, and Workflow handoff
We run a final delta migration of any Attio records modified during the cutover window, then enable Nutshell as the system of record. We deliver the List rebuild guide, the Workflow and Sequence inventory document, and the Attio relationship chain report for the customer's admin to review. We support a five-business-day hypercare window for reconciliation issues. Workflow and Sequence rebuild in Nutshell, List recreation, and admin training are outside the migration scope and are handled as separate engagements.
Platform deep dives
Attio
Source
Strengths
Weaknesses
Nutshell
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 2 of 8 objects need a mapping; the rest are 1:1.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Attio and Nutshell.
Object compatibility
2 of 8 objects need a mapping; the rest are 1:1.
Field mapping clarity
Field mapping is derived from defaults — final spec confirmed during the sample migration.
Timeline complexity
8-object category — typical timelines run 2–7 days end-to-end.
API constraints
Attio: 100 requests/sec for reads, 25 requests/sec for writes; sliding window algorithm with 10-second window. 429 responses include a Retry-After header.
Data volume sensitivity
Attio exposes a bulk API — large-volume migrations stream efficiently.
Estimator
Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.
Step 1
Pick a category, then your source and destination platforms.
Category
FAQ
Answers to the questions buyers ask most during Attio to Nutshell migration scoping. Not seeing yours? Book a call.
Walk through your Attio to Nutshell migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Attio
Other ways to arrive at Nutshell
Ready when you are
Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.