CRM migration

Migrate from Unanet CRM by Cosential to Freshsales

Field-level mapping, validation, and rollback between Unanet CRM by Cosential and Freshsales. We move data and schema; workflows are rebuilt natively in Freshsales.

Unanet CRM by Cosential logo

Unanet CRM by Cosential

Source

Freshsales

Destination

Freshsales logo

Compatibility

100%

11 of 11

objects map 1:1 between Unanet CRM by Cosential and Freshsales.

Complexity

BStandard

Timeline

3–7 days

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Unanet CRM by Cosential is built for architecture, engineering, and construction firms, storing AEC-specific objects like proposal records, project associations, and personnel modules alongside standard CRM data. Freshsales is a general-purpose SMB CRM with Leads, Contacts, Accounts, Deals, and Activities. The data models diverge significantly: Unanet models opportunities linked to project hierarchies, while Freshsales uses flat deal records. FlitStack migrates everything that lives in Unanet's standard CRM objects (contacts, companies, opportunities, activities) directly, preserving original create/update timestamps, owner assignments, and record IDs for traceability. Unanet lifecycle stage equivalents and any custom fields map to Freshsales custom fields. Constructs with no Freshsales equivalent — proposal automation, project tracking, AEC personnel modules — are preserved as file attachments and custom field references for manual rebuilding. The migration runs through Unanet's Compass API (v1 and v2) into Freshsales' REST API, with FlitStack maintaining cross-reference IDs between systems so no record duplicates during delta-pickup runs.

Field-level fidelity

Every standard and custom field arrives verified.

Schema-aware mapping

AI proposes the map; you confirm before any record moves.

Relationships preserved

Parent–child, lookups, and ownership stay linked.

Full activity history

Calls, emails, meetings — with original timestamps.

Attachments & notes

Documents, uploads, and inline notes move with the record.

Why teams make this switch

Two sides of the same decision

Leaving

Unanet CRM by Cosential logo

Unanet CRM by Cosential

What's pushing teams away

  • Account Planning feature remains weak despite repeated user requests, leaving Business Development teams unsupported in long-term account strategy.
  • Navigation is widely criticized — convoluted search, hard-to-find dashboards, and a steep learning curve frustrate new users.
  • Double data entry is required in some workflows, particularly when integrating with financial systems or proposal tools outside the core CRM.
  • The interface is described as dated and clunky compared to modern CRM alternatives, affecting daily user experience.
  • Users report that the platform can be slow to load dashboards and reports, especially with large datasets accumulated over years.

Choosing

Freshsales logo

Freshsales

What's pulling them in

  • Lowest barrier to entry among major CRMs — the free tier supports up to 3 users and includes core CRM functionality before committing to per-seat pricing.
  • Built-in chat, email, and phone reduce reliance on third-party integrations for basic sales communication and contact management.
  • Freddy AI contact scoring and deal insights are included on Pro plans at a lower price than comparable HubSpot tiers.
  • Kanban pipeline views across Contacts, Accounts, and Deals provide visual deal management without requiring custom configuration.
  • Integration with the broader Freshworks ecosystem (Freshdesk, Freshchat, Freshservice) reduces tool sprawl for teams already using Freshworks.

Object mapping

How Unanet CRM by Cosential objects map to Freshsales

Each row shows how a Unanet CRM by Cosential object lands in Freshsales, 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

Contact

maps to

Freshsales

Contact

1:1
Fully supported

Unanet contacts map 1:1 to Freshsales contacts. The contact's associated company resolves to a Freshsales Account via domain match or name match. Unmapped contacts land with no account association and are flagged for manual resolution before the migration commits. During the migration, each contact's original Unanet ID is stored in a custom field (source_system_id__c) for traceability and future delta runs.

Unanet CRM by Cosential

Company

maps to

Freshsales

Account

1:1
Fully supported

Unanet companies map to Freshsales accounts. Company hierarchies (parent/child) collapse to a single primary parent-account reference since Freshsales accounts support only one ParentId. Multi-subsidiary structures require post-migration account hierarchy setup in Freshsales. We also preserve the original Unanet company ID in a custom field (source_system_id__c) on the Freshsales Account record to enable cross-reference during delta imports.

Unanet CRM by Cosential

Opportunity

maps to

Freshsales

Deal

1:1
Fully supported

Unanet opportunities map to Freshsales deals. Pipeline stages map value-by-value to Freshsales deal stages per pipeline. Deal amount, close date, owner, and probability all transfer directly. Unanet opportunity IDs are stored in a custom field for traceability. The mapping also ensures that any custom fields on the opportunity, such as regional segmentation or product lines, are transferred to Freshsales custom fields on the deal record.

Unanet CRM by Cosential

Activity (Call/Email/Meeting/Note)

maps to

Freshsales

Task / Event / Note

1:1
Fully supported

Unanet call logs become Freshsales tasks with Type=Call. Emails become tasks with Type=Email. Meetings become Freshsales events with original start/end times and location preserved. Notes migrate as Freshsales notes. Original activity timestamps and owner IDs transfer with each record. Each migrated activity retains a reference to its source Unanet ID in a custom field (source_system_id__c) for reconciliation during delta runs.

Unanet CRM by Cosential

Lifecycle Stage

maps to

Freshsales

Custom Field: lifecycle_stage__c

1:1
Fully supported

Unanet lifecycle stage values have no direct Freshsales equivalent. We create a custom pick-list field (lifecycle_stage__c) on Freshsales contacts and map Unanet's stage values one-by-one. Unmapped stage values default to a catch-all value and are flagged for review. The mapping table is exported as a CSV so your team can validate the stage assignments before the final data load.

Unanet CRM by Cosential

Custom Object

maps to

Freshsales

Custom Object / Custom Field

1:1
Fully supported

Unanet custom objects map to Freshsales custom objects created via the developer platform. N:N relationships in Unanet require junction objects or custom multi-select fields in Freshsales. We deliver a relationship mapping plan showing which custom objects need junction setup before migration.

Unanet CRM by Cosential

Proposal Record

maps to

Freshsales

File Attachment (on Deal)

1:1
Fully supported

Unanet proposal documents have no Freshsales equivalent. We download all proposal files and re-upload them as file attachments linked to the corresponding migrated deal record. Teams needing proposal automation should evaluate Freshsales CPQ add-on post-migration. The original proposal filenames and IDs are stored in a custom text field on the deal for future reference.

Unanet CRM by Cosential

Project Record

maps to

Freshsales

Custom Field on Deal

1:1
Fully supported

Unanet project records tracking pursuit-to-project transitions have no Freshsales deal counterpart. Project names and identifiers migrate as custom text fields on deal records for reference. Active project tracking requires a separate project management tool post-migration. Each migrated project identifier is stored in a custom field (source_project_id__c) on the deal to maintain a link to the original Unanet record.

Unanet CRM by Cosential

Personnel Record

maps to

Freshsales

Contact

1:1
Fully supported

Unanet's personnel module (staff experience, certifications, areas of expertise) maps to Freshsales contacts with custom fields. Professional credentials and certification data migrate as custom text fields. Original timestamps and department associations are preserved in corresponding custom fields. The staff ID from Unanet is recorded in a custom field (source_personnel_id__c) on the Freshsales contact for future reference.

Unanet CRM by Cosential

Attachment / File

maps to

Freshsales

Freshsales Files

1:1
Fully supported

Unanet file attachments on any record re-upload to Freshsales Files attached to the corresponding record. File size limits of Freshsales apply (typically 25MB per file). Inline images in notes are downloaded and re-hosted as file attachments. Each re-uploaded file retains its original filename and a reference to the source Unanet attachment ID in a custom field for auditability.

Unanet CRM by Cosential

Owner / User

maps to

Freshsales

Freshsales User

1:1
Fully supported

Unanet owners and users resolve to Freshsales users by email address match. Unmatched owners are flagged before migration — teams either invite them to Freshsales first or assign records to a fallback owner. No record lands without a valid Freshsales owner.

Gotchas + challenges

What specifically takes care here

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 logo

Unanet CRM by Cosential gotchas

High

Non-standard object names block naive field mapping

High

API requires Enterprise License agreement

Medium

Duplicate contact risk on bulk imports

Medium

Custom fields require manual schema enumeration

Low

Proposal templates carry template logic, not just data

Freshsales logo

Freshsales gotchas

Medium

Freddy AI is Pro-tier only despite heavy marketing

High

Post-migration emails and sequences are disabled

Medium

Bot session credits are a one-time 500-session allocation

Medium

Phone credits charged per minute with no cap

Low

File storage limits scale with plan tier

Pair-specific challenges

  • Freshsales API rate limits vary by plan tier and may throttle large migrations

    Freshsales enforces API rate limits that vary by subscription tier: 1,000 requests per hour on Growth, 2,000 on Pro, and 5,000 on Enterprise. Unanet datasets with 50,000+ records can exceed these thresholds during a migration run, causing API failures and incomplete transfers. FlitStack implements request throttling and pagination logic tuned to the target account's Freshsales plan tier. We also recommend scheduling migrations during off-peak hours to maximize available API quota within the rate-limit window.

  • Freshsales custom field type restrictions may alter Unanet field mappings

    Freshsales supports custom fields on standard objects but restricts field types compared to Unanet. Advanced Unanet field types — multi-select picklists, conditional logic fields, formula fields — may not have a direct Freshsales equivalent. FlitStack flags incompatible field types during the discovery phase and either simplifies the field type (converting multi-select to text) or creates a custom-field mapping plan. Complex field logic from Unanet must be rebuilt as Freshsales automation rules post-migration.

  • Unanet proposal and project records have no Freshsales native equivalent

    Unanet's proposal automation generates PDF proposals and tracks pursuit-to-project transitions. Freshsales has no native proposal object or project record — the CPQ module is a separate paid add-on. We preserve Unanet proposal documents as file attachments on migrated deal records and store project identifiers as custom text fields. Teams that rely on Unanet's proposal generation need to evaluate Freshsales CPQ or a third-party proposal tool post-migration. The proposal PDFs are downloaded via the Compass API, uploaded to Freshsales Files, and linked to the corresponding deal. File size limits (up to 25 MB) are observed; larger files are flagged for manual handling.

  • Unanet N:N contact-company associations collapse to a single primary account in Freshsales

    Unanet supports many-to-many relationships between contacts and companies, allowing a contact to be associated with multiple firms simultaneously. Freshsales uses a primary-account model where each contact has one primary AccountId, with additional company associations requiring manual Account Contact Relationship setup. We migrate the most recently modified company as the primary account and flag other associations for post-migration relationship recreation. During migration, the timestamp of the last modification for each company association is examined to determine the most recent link. Other company links are exported in a separate CSV file for the admin to re-create using Freshsales' Account Contact Relationship feature after cutover.

  • Unanet lifecycle stages and lead scoring require Freshsales custom field setup before migration

    Unanet tracks lifecycle stages and lead scores as contact properties with their own pick-list and numeric values. Freshsales has no native lifecycle_stage field — it uses lead_status on leads and stage_id on deals instead. We create custom fields (lifecycle_stage__c and lead_score__c) on Freshsales contacts before migration runs, then map Unanet values by name. Non-standard Unanet stage names default to a catch-all value and are flagged for manual review. The mapping table for lifecycle_stage__c and the numeric ranges for lead_score__c are exported as CSV files so your team can validate the assignments before the migration completes. Any mismatches are corrected in the mapping sheet and reloaded prior to the data load.

Migration approach

Six steps for a successful Unanet CRM by Cosential to Freshsales data migration

  1. Extract data from Unanet via Compass API

    We connect to Unanet's Compass API (v1 and v2) using your firm access code and API key. The API supports basic access authentication with username/password for session tokens. We export all standard CRM objects — contacts, companies, opportunities, activities, attachments — plus any custom objects and fields defined in your Unanet instance. API pagination handles large record sets, and we capture original timestamps, owner IDs, and cross-object relationship IDs during extraction.

  2. Configure Freshsales target schema with custom fields and pipelines

    Before data lands, we create the custom fields required to receive Unanet data: lifecycle_stage__c, lead_score__c, original_create_date__c, source_system_id__c, and any custom fields mapped from Unanet. We also map Unanet pipelines to Freshsales deal pipelines and configure stage pick-lists to match your Unanet stage names. This schema setup plan is delivered for your Freshsales admin to confirm before validation runs. The mapping also includes setting default values for required Freshsales fields such as owner_id, and defining any required validation rules to prevent data loss during the import.

  3. Run sample migration with field-level diff

    A representative slice migrates first — typically 200–500 records spanning contacts, companies, deals, and activities. We generate a field-level diff showing source values against destination values so you can verify lifecycle stage mapping, owner resolution, and relationship integrity. Any mapping gaps or rejected records are corrected before the full run commits. This step typically takes 4–8 hours. The diff report is delivered as a CSV file, highlighting any fields where source and target values differ, including a column for recommended corrections. Your team can approve the mappings in the report before we proceed with the full data load.

  4. Execute full migration with delta-pickup window

    The full migration runs against Freshsales REST API, respecting rate limits for your plan tier. A delta-pickup window (typically 24–48 hours after initial run completion) captures any Unanet records modified during the cutover period. All operations are logged to an audit trail. If reconciliation identifies gaps, one-click rollback reverts the Freshsales state to pre-migration snapshot for correction and retry. During the migration, we monitor API response codes and retry transient failures automatically, ensuring that transient network issues do not cause data loss.

  5. Validate record counts, relationship integrity, and file attachments

    Post-migration validation compares record counts between Unanan source and Freshsales destination per object type. We verify that account_id lookups resolved correctly, owner assignments match by email, and all file attachments re-uploaded to the correct deal records. A validation report is delivered with any records that require manual review, along with a reference export mapping Unanet IDs to Freshsales IDs. The validation also includes checking for duplicate email addresses and confirming that custom field values, such as lifecycle_stage__c and lead_score__c, populated correctly across all contacts.

Platform deep dives

Context on both ends of the pair

Unanet CRM by Cosential logo

Unanet CRM by Cosential

Source

Strengths

  • Deep AEC-native data model purpose-built for project-based relationship tracking and proposal generation
  • Proposal automation directly integrated with CRM data, eliminating manual re-entry for qualification packages
  • Strong company-association model handles multi-role contacts and firm hierarchy within a single object structure
  • Reputation and track record with 1,000+ AEC firms over 20+ years provides industry credibility
  • Comprehensive Microsoft Outlook integration and mobile app support field teams working on projects

Weaknesses

  • Non-standard field names and AEC-specific object names require significant field-level mapping work
  • Account Planning feature is consistently under-developed and a pain point for Business Development teams
  • Navigation and search are widely criticized as convoluted, suggesting a dated UX
  • Custom fields are not fully documented in the public API schema, making discovery a manual process
  • Pricing starts at $50/user/month with significant implementation costs, making it expensive for smaller AEC firms
Freshsales logo

Freshsales

Destination

Strengths

  • Generous free tier for small teams with core CRM functionality without per-seat costs.
  • All-in-one sales CRM with built-in telephony, chat, and email reducing third-party tool dependency.
  • Freddy AI contact scoring and deal predictions available on Pro tier.
  • Multiple pipeline views with Kanban and list options across all plans.

Weaknesses

  • Reports lack depth compared to competitors like HubSpot, with limited customization options.
  • Integration setup is poorly documented with no clear guides for connecting third-party tools.
  • AI features gated behind $39/user/month Pro tier despite marketing emphasis on Freddy AI.
  • Bot sessions limited to 500 one-time allocation with no monthly refresh.

Complexity grading

How hard is this migration?

Standard CRM migration. 2 of 8 objects need a mapping; the rest are 1:1.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Unanet CRM by Cosential and Freshsales.

  • Object compatibility

    B

    2 of 8 objects need a mapping; the rest are 1:1.

  • Field mapping clarity

    C

    Field mapping is derived from defaults — final spec confirmed during the sample migration.

  • Timeline complexity

    B

    8-object category — typical timelines run 2–7 days end-to-end.

  • API constraints

    B

    Unanet CRM by Cosential: Not publicly documented.

  • Data volume sensitivity

    B

    Unanet CRM by Cosential doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your Unanet CRM by Cosential to Freshsales migration cost

Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.

Step 1

What are you migrating?

Pick a category, then your source and destination platforms.

Category

FAQ

Frequently asked questions about Unanet CRM by Cosential to Freshsales data migrations

Answers to the questions buyers ask most during Unanet CRM by Cosential to Freshsales migration scoping. Not seeing yours? Book a call.

Can't find your answer?

Walk through your Unanet CRM by Cosential to Freshsales migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Most Unanet-to-Freshsales migrations complete in 3–7 days of clock time for datasets under 25,000 records with moderate custom field counts. Larger Unanet datasets with 100,000+ records, multiple custom objects, or extensive proposal attachments extend to 10–14 days because each proposal file requires download-and-re-upload and each custom object needs Freshsales schema setup before records can land. API rate-limit tuning on Freshsales (1,000–5,000 requests per hour depending on plan tier) also affects bulk migration speed.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Unanet CRM by Cosential.
Land in Freshsales, intact.

Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.

Accuracy guarantee Rollback included Quote in 1 business day