CRM migration
Field-level mapping, validation, and rollback between Unanet CRM by Cosential and Nutshell. We move data and schema; workflows are rebuilt natively in Nutshell.
Unanet CRM by Cosential
Source
Nutshell
Destination
Compatibility
13 of 14
objects map 1:1 between Unanet CRM by Cosential and Nutshell.
Complexity
BStandard
Timeline
48–72 hours
Overview
Unanet CRM by Cosential is an enterprise CRM purpose-built for architecture, engineering, and construction firms, with deep integration between pursuits, proposals, and project data. Its Compass API exposes a data model centered on Organizations (multi-contact companies), Persons (contacts with role assignments), Pursuits (the Unanet equivalent of a deal/opportunity), Pursuit Stages, and custom fields scoped to each object. Nutshell uses a simpler three-entity model — People, Companies, and Leads — with Deals and a pipeline-stage system that maps most directly to Unanet's Pursuit tracking. The core migration challenge is converting Unanet's pursuit-centric workflow into Nutshell's deal-centric model, preserving pursuit stage history as Nutshell deal stage history, collapsing Unanet's multi-contact organization structure into Nutshell's Company-PrimaryContact pattern, and mapping Unanet's role labels (such as Business Developer, Project Manager, Principal) into Nutshell's custom person fields or tags. We extract source data via the Cosential Compass v1/v2 REST API with basic-auth plus API key headers, then bulk-load into Nutshell via the Nutshell JSON-RPC API using user-impersonation tokens. Activities — calls, emails, meetings, and notes — migrate as Nutshell Activities attached to the relevant Person or Deal record. Unanet custom fields map to Nutshell custom fields on the equivalent object. Workflows, proposal templates, and integration configurations do not migrate; we export Unanet workflow definitions as a JSON reference file for your team to rebuild in Nutshell's automation tools.
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 Unanet CRM by Cosential 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.
Unanet CRM by Cosential
Organization
Nutshell
Company
1:1Unanet Organizations map directly to Nutshell Companies. Both represent a business entity with name, address, industry, and contact associations. We map Organization.name → Company.name and Organization.address fields to Nutshell's address fields. Multi-branch organizations in Unanet collapse to one Nutshell Company record with the primary address; branches can be tracked via custom fields if required.
Unanet CRM by Cosential
Person
Nutshell
Person
1:1Unanet Persons map to Nutshell People — a one-to-one translation for most fields. Person.firstName, Person.lastName, Person.email, Person.phone, Person.title, and Person.address map directly. Person records that represent leads in Unanet (identified by lifecycle status) route to Nutshell's Lead model rather than Person, based on the source lifecycle value we read from the API response.
Unanet CRM by Cosential
Person (lead-status)
Nutshell
Lead
1:manyUnanet Persons without an assigned role on an active Organization — or Persons flagged as prospects in Unanet's internal status — migrate to Nutshell Leads. This split prevents a Person record from existing without a primary company link in Nutshell. The source API's person status field drives the split; we preserve the original status as a Nutshell custom field for audit continuity.
Unanet CRM by Cosential
Pursuit
Nutshell
Deal
1:1Unanet Pursuits are the closest analogue to Nutshell Deals. Pursuit.pursuitName → Deal.name, Pursuit.estimatedValue → Deal.value, Pursuit.probability → Deal.probability (mapped to Nutshell's probability field if present), and Pursuit.closeDate → Deal.closeDate. Pursuit stage names map to Nutshell pipeline stage names via a value-by-value lookup table we build during discovery.
Unanet CRM by Cosential
Pursuit Stage
Nutshell
Pipeline Stage
1:1Unanet's configurable pursuit stages (e.g., Prospect, Qualified, Proposal, Negotiation, Won, Lost) map to Nutshell pipeline stage names. We create a value-mapping table during scoping: each Unanet stage string maps to the closest Nutshell stage name. Probability values associated with each Unanet stage carry forward as custom fields on the Nutshell Deal since Nutshell's built-in probability is per-stage by default on certain tiers.
Unanet CRM by Cosential
Organization.Person (N:N association)
Nutshell
Company → Person primary link + Tags
1:1Unanet allows multiple Persons to be associated with an Organization in an N:N relationship, each with a role label (e.g., Estimator, PM, Principal). Nutshell Person has a single primaryCompany field. We set the primary company to the most recently modified Organization-Person association, and store additional role labels as comma-separated tags on the Nutshell Person record so the full relationship history is searchable.
Unanet CRM by Cosential
Custom Field (Organization)
Nutshell
Custom Field (Company)
1:1Unanet Organization custom fields (e.g., NAICS codes, bonding capacity, contract type preferences) require corresponding custom fields to be created in Nutshell before migration. We create each custom field via Nutshell's Settings → Custom Fields API, matching the field type (text, number, date, picklist) from Unanet's Compass API field definition. Picklist custom fields in Unanet require a full value-mapping list in Nutshell.
Unanet CRM by Cosential
Custom Field (Person)
Nutshell
Custom Field (Person)
1:1Unanet Person custom fields (e.g., professional certifications, licenses, secondary phone numbers) migrate to Nutshell Person custom fields. Field type conversion follows the same logic as Organization custom fields. Cosential stores some person metadata in the Person.FirmName field for organization-less persons; we parse this and route it to the appropriate Nutshell field during transformation.
Unanet CRM by Cosential
Custom Field (Pursuit)
Nutshell
Custom Field (Deal)
1:1Pursuit custom fields (e.g., project type, contract vehicle, incumbent status, past performance ratings) migrate to Nutshell Deal custom fields. These fields are critical for AEC firms tracking pursuit-specific attributes beyond stage and value. We map field types exactly and preserve picklist values as Nutshell picklist options where available.
Unanet CRM by Cosential
Activity (Call / Email / Meeting / Note)
Nutshell
Activity (Call / Email / Meeting / Task)
1:1Unanet activity records attached to a Person or Pursuit map to Nutshell Activities with the matching type. Call activities → Nutshell Call, Email → Nutshell Email, Meeting → Nutshell Meeting, Note → Nutshell Note. Original timestamps, activity owners (resolved by email match to Nutshell users), and parent record links (Person or Deal) are preserved. Nutshell's activity model supports rich text notes.
Unanet CRM by Cosential
Attachment / File
Nutshell
File
1:1Unanet file attachments on Organizations, Persons, and Pursuits are downloaded from the Compass API and re-uploaded to Nutshell's file storage, linked to the corresponding Nutshell record (Company, Person, or Deal). File size limits on Nutshell's storage apply; files exceeding limits are flagged before migration and handled case-by-case.
Unanet CRM by Cosential
Owner (User)
Nutshell
User
1:1Unanet owner assignments on Pursuits and Persons are resolved by email match against Nutshell Users. If a Unanet owner email has no matching Nutshell User, the record is assigned to the Nutshell account admin and the unmatched owner email is stored in a Source_Owner_Email__c custom field for post-migration reassignment.
Unanet CRM by Cosential
Workflow / Automation
Nutshell
Not migrated
1:1Unanet workflows, pursuit gating rules, and automated alerts do not migrate to Nutshell. These are destination-side automation constructs with no structural equivalent in Nutshell. We export the workflow definitions as a JSON reference file from Unanet's Compass API so your Nutshell admin can rebuild equivalent rules in Nutshell's automation tools.
Unanet CRM by Cosential
Proposal Template
Nutshell
Not migrated
1:1Unanet's proposal automation templates and generated proposals are document artifacts, not CRM data. They do not migrate. We export a list of proposal template names and field mappings as a reference document for rebuilding in Nutshell's proposal tools or a third-party proposal platform.
| Unanet CRM by Cosential | Nutshell | Compatibility | |
|---|---|---|---|
| Organization | Company1:1 | Fully supported | |
| Person | Person1:1 | Fully supported | |
| Person (lead-status) | Lead1:many | Fully supported | |
| Pursuit | Deal1:1 | Fully supported | |
| Pursuit Stage | Pipeline Stage1:1 | Fully supported | |
| Organization.Person (N:N association) | Company → Person primary link + Tags1:1 | Fully supported | |
| Custom Field (Organization) | Custom Field (Company)1:1 | Fully supported | |
| Custom Field (Person) | Custom Field (Person)1:1 | Fully supported | |
| Custom Field (Pursuit) | Custom Field (Deal)1:1 | Fully supported | |
| Activity (Call / Email / Meeting / Note) | Activity (Call / Email / Meeting / Task)1:1 | Fully supported | |
| Attachment / File | File1:1 | Fully supported | |
| Owner (User) | User1:1 | Fully supported | |
| Workflow / Automation | Not migrated1:1 | Fully supported | |
| Proposal Template | Not migrated1: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.
Unanet CRM by Cosential gotchas
Non-standard object names block naive field mapping
API requires Enterprise License agreement
Duplicate contact risk on bulk imports
Custom fields require manual schema enumeration
Proposal templates carry template logic, not just data
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
Connect to Cosential Compass API and run a full data audit
We authenticate to the Cosential Compass API using your firm's API credentials (username, password, x-compass-api-key, and x-compass-firm-id headers). We then run a discovery pass that exports all Organizations, Persons, Pursuits, custom field definitions, activity records, and attachment metadata. We generate a record-count report broken down by object type, flag any records with missing required fields (e.g., Persons without an email address), and identify the set of active pursuit stages and their associated probability values. This report forms the basis of the Nutshell plan-sizing and stage-mapping discussion.
Map pursuit stages and create Nutshell custom fields
Using the discovery-stage report, we work with your team to build the pursuit-stage-to-Nutshell-pipeline-stage value-mapping table. We also create all required Nutshell custom fields for each object (Company, Person, Deal) based on the Unanet custom field definitions we read from the Compass API. Custom picklist fields in Unanet are recreated as Nutshell picklist fields with the same option values. This step requires Nutshell admin credentials so we can create fields via the Nutshell API before any data is loaded.
Resolve owner and user mappings by email
Unanet owner assignments on Persons and Pursuits are matched by email address against the Nutshell user list. We generate a pre-migration owner-resolution report that lists every Unanet owner, whether a matching Nutshell user exists, and which records will be assigned to a fallback user (typically the Nutshell admin) if no match is found. Your team has the opportunity to invite missing users to Nutshell or designate a fallback owner before the migration run. No record lands in Nutshell without a resolved owner.
Run a sample migration with field-level diff on a representative record slice
We migrate a sample of 100–300 records spanning Organizations, Persons, Pursuits, and Activities — chosen to include edge cases like records with no primary company, records with custom field values, and pursuits at each stage. The sample runs against your live Nutshell account. We generate a field-level diff report comparing each source field value against the corresponding Nutshell field value, so you can verify stage mapping, owner resolution, and custom field data before the full run commits.
Execute full migration with delta-pickup and rollback window
Once the sample migration is approved, we run the full data migration in sequenced order: Companies first (to resolve foreign keys), then People/Leads, then Deals with stage and owner resolution. Activities and attachments follow in a final pass. A delta-pickup window of 24–48 hours runs concurrently, capturing any records modified in Unanet during the cutover. An audit log records every create, update, and skip operation. One-click rollback reverts all Nutshell changes if reconciliation finds discrepancies that cannot be resolved within the agreed threshold.
Platform deep dives
Unanet CRM by Cosential
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 Unanet CRM by Cosential 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
Unanet CRM by Cosential: Not publicly documented.
Data volume sensitivity
Unanet CRM by Cosential 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 Unanet CRM by Cosential to Nutshell migration scoping. Not seeing yours? Book a call.
Walk through your Unanet CRM by Cosential 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 Unanet CRM by Cosential
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.