CRM migration
Field-level mapping, validation, and rollback between Agillic and Nutshell. We move data and schema; workflows are rebuilt natively in Nutshell.
Agillic
Source
Nutshell
Destination
Compatibility
9 of 10
objects map 1:1 between Agillic and Nutshell.
Complexity
BStandard
Timeline
2-4 weeks
Overview
Migrating from Agillic to Nutshell is a directional shift from omnichannel marketing automation to focused SMB sales CRM. Agillic's core entity is the Recipient — a fully customisable person record with any number of client-defined properties — alongside Flows (campaign automation), Activity Logs tied to Flow Execution IDs, and Global Data Tables. Nutshell tracks Contacts (People in the UI, Contacts in the API) and Accounts (Companies in the UI) with a simpler, fixed schema. We enumerate every active Agillic recipient property during discovery, map standard fields directly to Nutshell equivalents, and store non-standard properties as custom fields. Activity logs migrate as Nutshell Tasks and Events with timestamps preserved. We do not migrate Flows, email template content, SMS or push configurations, or Agillic's native GDPR compliance tooling; these require re-implementation in Nutshell or supplementary tooling post-migration.
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 Agillic 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.
Agillic
Recipient
Nutshell
Contact
1:1Agillic Recipients map to Nutshell Contacts (API noun: Contact; UI noun: Person). Every standard recipient field (email, first name, last name, phone) maps to Nutshell Contact fields. Custom recipient properties defined in the client's Agillic schema are enumerated during discovery and created as Nutshell custom fields before migration. The Agillic Recipient ID is preserved in a custom field agillic_recipient_id__c for reconciliation.
Agillic
Company
Nutshell
Account
1:1Agillic Companies map to Nutshell Accounts (API noun: Account; UI noun: Company). The Company name maps to Account.name, and the postal address maps to Account.address fields. Nutshell Accounts have a simpler address structure than Agillic's; complex multi-line or multi-address records are consolidated to the primary address.
Agillic
Recipient-Company link
Nutshell
Contact-Account link
1:1Agillic Recipients are linked to Companies via a many-to-one relationship. In Nutshell, Contacts are linked to Accounts via the accountId field. We resolve the accountId reference during migration so that every Contact is attached to its parent Account before the Contact import phase completes.
Agillic
Deal
Nutshell
Lead
1:manyAgillic Deals map to Nutshell Leads for unqualified prospect records and to Opportunities for qualified deals. If the Agillic Deal has an associated Company and a clear sales-readiness flag, we assess whether it maps to a Lead or to an Opportunity. For straightforward migrations where all Agillic Deals represent active sales opportunities, we map directly to Nutshell Opportunity records.
Agillic
Deal
Nutshell
Opportunity
1:1Agillic Deals with a defined stage and close date map to Nutshell Opportunity. Deal name maps to Opportunity.name, deal amount to Opportunity.amount, expected close date to Opportunity.promised_date, and deal stage to Opportunity.status. Nutshell's deal pipeline columns map to the Opportunity.status picklist values.
Agillic
Activity Log (Email send/open/click)
Nutshell
Task
1:1Agillic email engagement records (send, open, click, bounce) migrate to Nutshell Task records. Each Task carries the original Agillic activity type in task_type, the timestamp in due_date, and the recipient email in description. Nutshell's API does not store full email content — we migrate activity metadata and the activity description as a structured text note rather than as a full email message body.
Agillic
Activity Log (Call)
Nutshell
Task
1:1Agillic call activity records map to Nutshell Task with task_type set to Call. Call duration from Agillic is stored in a custom Nutshell field call_duration__c. Activity timestamps migrate as due_date to preserve the activity timeline ordering against the parent Contact.
Agillic
Activity Log (Meeting)
Nutshell
Event
1:1Agillic meeting activity records map to Nutshell Event. The event title migrates as name, the meeting start time as starts_at, and the end time as ends_at. Location data migrates to the Event's location field. Attendee lists from Agillic meeting records are stored in a custom notes field if the count is within Nutshell's field limits.
Agillic
Flow Execution History
Nutshell
Task (note)
1:1Agillic Flow Execution IDs and the associated campaign metadata (flow name, execution date, recipient count) are preserved in a structured custom field agillic_flow_executions__c on the Contact record. This maintains the cross-reference for teams that need to tie activity records back to specific Agillic campaign runs, even though Flows themselves do not migrate.
Agillic
Global Data Table
Nutshell
Custom Object
1:1Agillic Global Data Tables (custom relational data structures used within Flows) are exported as schemas and row data, then mapped to Nutshell custom objects. We pre-create the destination custom object and fields in Nutshell via the API before importing data. The table-to-object mapping is documented during scoping, and the customer chooses whether to maintain the relationship structure or flatten it into custom fields on the Contact.
| Agillic | Nutshell | Compatibility | |
|---|---|---|---|
| Recipient | Contact1:1 | Fully supported | |
| Company | Account1:1 | Fully supported | |
| Recipient-Company link | Contact-Account link1:1 | Fully supported | |
| Deal | Lead1:many | Fully supported | |
| Deal | Opportunity1:1 | Fully supported | |
| Activity Log (Email send/open/click) | Task1:1 | Fully supported | |
| Activity Log (Call) | Task1:1 | Fully supported | |
| Activity Log (Meeting) | Event1:1 | Fully supported | |
| Flow Execution History | Task (note)1:1 | Fully supported | |
| Global Data Table | Custom Object1: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.
Agillic gotchas
Undocumented API rate limits complicate bulk migration planning
Fully custom schema requires mandatory field enumeration during discovery
Flows are not exportable as portable workflow definitions
Activity Export requires explicit Flow Execution ID enablement
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 custom field enumeration
We audit the source Agillic instance to enumerate every active recipient property, identify all Companies and Deals, estimate Activity Log volume across email/call/meeting/event channels, and confirm the Flow Execution ID export setting. We also retrieve the Agillic export configuration (date format, delimiter) to match Nutshell's import requirements. This step is longer than typical for Agillic migrations because of the mandatory custom schema enumeration requirement. The discovery output is a written field map with every source property matched to a destination field or custom field creation task.
Destination schema preparation in Nutshell
We create every required custom field in Nutshell before any data import. For each custom Agillic recipient property, we create a Nutshell custom field of the closest matching type (text, number, date, dropdown, checkbox). We configure the Nutshell pipeline structure (pipelines and status columns for Opportunities) to match the Agillic deal pipeline and stage names. All schema changes happen in the customer's Nutshell account before migration begins. We also confirm the Nutshell API key has sufficient permissions for the migration operation.
Sandbox or trial import
We run a sample import with a subset of data — typically 100-200 Recipients, 20-50 Companies, and 50-100 Deals — into the live Nutshell account. This validates field mappings, confirms custom field creation is correct, identifies any character-limit truncations or picklist mismatches, and allows the customer to spot-check records before the full migration. Corrections to the field map happen here. Nutshell's Import2 tool supports sample import validation before a full import is committed.
Owner reconciliation
We extract all distinct owner references from Agillic Recipients, Companies, and Deals and match by email address against Nutshell Users. Owners without a matching Nutshell User are flagged in a reconciliation list. The customer provisions any missing Nutshell Users before the full migration begins, or accepts that those records will be assigned to a default owner during migration.
Full production migration in dependency order
We migrate in this order: Accounts (from Agillic Companies), Contacts (from Agillic Recipients with AccountId resolved), custom field data on Contacts, Opportunities (from Agillic Deals with AccountId and OwnerId resolved), then Activity history (Tasks for email and call events, Events for meetings). Each phase emits a row-count reconciliation report. Activity records are matched to their parent Contact by email address. Flow Execution IDs and campaign metadata are written to a structured custom field on the Contact record.
Cutover, validation, and automation rebuild handoff
We freeze Agillic writes during cutover, run a delta migration of any records modified during the migration window, then confirm the Nutshell account is the system of record. We deliver a written Flow and campaign inventory document listing every Agillic Flow with its trigger, channel, and estimated Nutshell Workflow equivalent. We do not rebuild Agillic Flows as Nutshell Workflows as part of the migration scope. We support a five-business-day post-migration window for reconciliation issues raised by the customer's team.
Platform deep dives
Agillic
Source
Strengths
Weaknesses
Nutshell
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 1 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 Agillic and Nutshell.
Object compatibility
1 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
Agillic: Not publicly documented — limited per production instance per day.
Data volume sensitivity
Agillic doesn't expose a bulk API — REST + parallelization used for high-volume runs.
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 Agillic to Nutshell migration scoping. Not seeing yours? Book a call.
Walk through your Agillic 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 Agillic
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.