CRM migration

Migrate from Insightly CRM to Salesforce Sales Cloud

Field-level mapping, validation, and rollback between Insightly CRM and Salesforce Sales Cloud. We move data and schema; workflows are rebuilt natively in Salesforce Sales Cloud.

Insightly CRM logo

Insightly CRM

Source

Salesforce Sales Cloud

Destination

Salesforce Sales Cloud logo

Compatibility

83%

10 of 12

objects map 1:1 between Insightly CRM and Salesforce Sales Cloud.

Complexity

CModerate

Timeline

3-6 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Insightly CRM to Salesforce is a schema translation project as much as a data move. Insightly ties Contacts to Organizations through explicit link records, not embedded relationships; we reconstruct those as Account-Contact lookups by sequencing Organizations first and resolving AccountId during Contact insert. Insightly's Opportunities map to Salesforce Opportunities with pipeline stages migrated as Record Types and Sales Processes. Custom fields require FIELD_NAME discovery via the /CustomFields/{objectName} endpoint before any write, or they are silently dropped. We do not migrate Workflow Automations, Projects (except as Tasks against Opportunities), or attachment binaries; we deliver written inventories of these for the customer's admin to rebuild in Salesforce Flow, a custom Project object, or a file management system respectively.

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

Insightly CRM logo

Insightly CRM

What's pushing teams away

  • Workflow automation and AI Copilot are locked behind the Professional tier, pushing teams with automation needs to higher-cost plans quickly as headcount grows.
  • Custom field handling requires referencing FIELD_NAME in API calls, and the UI documentation is described as incomplete and overwhelming by power users.
  • Setup is time-consuming, particularly for automation configuration, with users reporting frequent timeouts during the process.
  • Limited customization compared to enterprise CRMs — some users find field-level tailoring insufficient for complex sales processes.

Choosing

Salesforce Sales Cloud logo

Salesforce Sales Cloud

What's pulling them in

  • The AppExchange marketplace with 5,000+ prebuilt apps gives enterprises integrations for nearly every business workflow without custom development.
  • Native Einstein AI for lead scoring, opportunity insights, and predictive forecasting adds intelligence without a separate platform purchase.
  • Territory management, multi-currency support, and advanced forecasting satisfy the needs of complex B2B sales organizations with structured revenue teams.
  • Slack, Tableau, and CPQ are deeply integrated into the core platform, keeping the sales stack unified for teams already in the Salesforce ecosystem.
  • Organizations with a large, established Salesforce implementation choose it because switching costs — integrations, custom code, trained admins — are prohibitive.

Object mapping

How Insightly CRM objects map to Salesforce Sales Cloud

Each row shows how a Insightly CRM object lands in Salesforce Sales Cloud, including any object-level transformations, lookup resolution, or schema-design dependencies.

Typical mapping — final map is confirmed during the sample migration step.

Insightly CRM

Lead

maps to

Salesforce Sales Cloud

Lead

1:1
Fully supported

Insightly Leads map directly to Salesforce Lead with all standard fields preserved (FIRST_NAME, LAST_NAME, EMAIL_ADDRESS, PHONE_NUMBER, ADDRESS_STREET, CITY, STATE, POSTAL_CODE, COUNTRY). We use the FIELD_NAME lookup via /CustomFields/Leads to discover any custom fields on the Lead object before writing. Lead status values from Insightly's STATUS field map to the customer's chosen Salesforce Lead Status picklist values, which we configure during Sales Process setup.

Insightly CRM

Contact

maps to

Salesforce Sales Cloud

Contact

1:1
Fully supported

Insightly Contacts map to Salesforce Contact. Standard fields (FIRST_NAME, LAST_NAME, EMAIL_ADDRESS, PHONE_NUMBER, ADDRESS_* fields) migrate directly. We handle the Account-Contact relationship by importing Organizations first as Accounts, then resolving AccountId during Contact insert using the pre-exported link records. Any custom fields use the FIELD_NAME reference table built during discovery. Insightly's CONTACT_FIELD_RULE_LINK records are not a Salesforce object; the relationship is embedded as Contact.AccountId at write time.

Insightly CRM

Organization

maps to

Salesforce Sales Cloud

Account

1:1
Fully supported

Insightly Organizations map to Salesforce Account. ORGANIZATION_NAME becomes Account Name. ADDRESS_* fields map to BillingAddress fields (Street, City, State, PostalCode, Country). We preserve the Insightly ORGANIZATION_ID in a custom field insightly_org_id__c for cross-system reference. WEBTEAM becomes Account Website. Organizations are imported before Contacts to satisfy the AccountId foreign key.

Insightly CRM

Opportunity

maps to

Salesforce Sales Cloud

Opportunity

1:1
Fully supported

Insightly Opportunities map to Salesforce Opportunity. OPPORTUNITY_NAME becomes Opportunity Name. PIPELINE_STAGE_NAME maps to StageName using the stage mapping table built during discovery. PROBABILITY migrates to Opportunity.Probability. CUSTOM_AMOUNT becomes Amount. We configure the Salesforce Record Type and Sales Process before migration so that StageName values are valid against the whitelisted stages for the matching process.

Insightly CRM

Pipeline Stage

maps to

Salesforce Sales Cloud

Sales Process + Opportunity Stage

lossy
Fully supported

Each Insightly pipeline becomes a Salesforce Record Type on Opportunity with a corresponding Sales Process that whitelists the relevant stage values. Stage probability percentages migrate from Insightly's probability values to Salesforce StageProbability, rounded to the nearest integer allowed by the platform. The customer approves the stage name mapping table during discovery before migration begins.

Insightly CRM

Link Record (Contact-to-Organization)

maps to

Salesforce Sales Cloud

Contact.AccountId

1:1
Fully supported

Insightly uses explicit link records to associate Contacts with Organizations. These are not embedded in the primary record objects. We export all link records separately, import Accounts first, then Contacts with AccountId resolved from the Organization mapping. This eliminates orphaned Contact records with no Account. We validate link completeness by querying Salesforce for Contacts where AccountId is null and cross-referencing against the original link set.

Insightly CRM

Project

maps to

Salesforce Sales Cloud

Task (conditional) or custom object

1:1
Fully supported

Insightly Projects can be created from closed Opportunities. Projects that originated from closed Opportunities migrate as Tasks under the related Salesforce Opportunity (WhatId = OpportunityId). Standalone Projects or those with complex task hierarchies require a custom Project__c object that we pre-create in Salesforce during schema design. Project custom fields migrate via the FIELD_NAME approach. This is scoped during discovery and priced as a separate line item if the customer chooses the custom object path.

Insightly CRM

Task

maps to

Salesforce Sales Cloud

Task

1:1
Fully supported

Insightly Tasks map to Salesforce Task. TASK_SEQUENCE or TITLE becomes Subject. STATUS maps to Salesforce TaskStatus (Not Started, In Progress, Completed, Waiting on someone else, Deferred). PRIORITY maps to Priority (High, Normal, Low). Due date maps to ActivityDate. Owner maps via email-to-User lookup against the Salesforce User table. Any LINK_RECORD_ID associations are noted for recreation as Task WhatId or WhoId lookups.

Insightly CRM

Note (Comment)

maps to

Salesforce Sales Cloud

Note + ContentDocumentLink

1:1
Fully supported

Insightly Notes map to Salesforce Note records linked via ContentDocumentLink to the parent Contact, Account, or Opportunity. The NOTE_BODY becomes the Note body (Body field). CREATED_DATE becomes ActivityDate for timeline ordering. Author information is preserved in a custom field. Note-to-record link relationships (which Insightly stores as separate LINK_RECORD entries) are reconstructed as ContentDocumentLink entries in Salesforce.

Insightly CRM

Custom Object

maps to

Salesforce Sales Cloud

Custom Object (__c)

1:1
Fully supported

Insightly Custom Objects migrate to Salesforce Custom Objects with the __c API name suffix appended to match Salesforce naming conventions. We pre-create the destination schema including all custom fields, lookup relationships to standard and other custom objects, and picklist controlled-vocabulary values before importing any data. Lookup references are resolved at migration time against the imported standard object records.

Insightly CRM

Custom Field (per object)

maps to

Salesforce Sales Cloud

Custom Field (__c)

1:1
Fully supported

Custom fields require FIELD_NAME discovery via the /CustomFields/{objectName} endpoint before any writes that reference them. We build a FIELD_NAME-to-Salesforce-API-name reference table at the start of every migration and use it consistently across all record writes. Picklist values in Insightly custom fields are mapped to Salesforce controlled-vocabulary picklist values during schema design. Without the FIELD_NAME discovery step, writes that reference custom fields silently drop those field values.

Insightly CRM

Tag

maps to

Salesforce Sales Cloud

Multi-Select Picklist

lossy
Fully supported

Insightly Tags are flat string labels applied to Contacts, Organizations, Opportunities, and Projects. We import them as Salesforce multi-select picklist fields on the relevant object. Tag arrays are flattened to pipe-delimited strings compatible with Salesforce's multi-select format. The customer selects which objects carry tags during scoping.

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.

Insightly CRM logo

Insightly CRM gotchas

High

Free plan record cap applies to all Insightly objects

High

API rate limits vary by plan and reset daily

Medium

Custom fields require FIELD_NAME lookup before writes

Medium

XML export only captures default fields for migrations out

Medium

Link relationships must be rebuilt via dedicated endpoints

Salesforce Sales Cloud logo

Salesforce Sales Cloud gotchas

High

Workflow Rules and Process Builder are retired

High

Bulk API batch quota exhaustion during large imports

Medium

Storage overage billing is non-obvious

Medium

Account-Contact many-to-many relationship mapping

Low

Territory and team member import ordering dependencies

Pair-specific challenges

  • FIELD_NAME discovery required before custom field writes

    Insightly does not expose custom field IDs in record objects. Updating a Contact's custom field requires looking up the FIELD_NAME via /CustomFields/Contacts first. If FIELD_NAME is not known, writes silently ignore the custom field and the data is dropped. We retrieve all custom field metadata per object type at the start of every migration, build a FIELD_NAME reference table, and use it across all writes. We flag this as a high-severity risk for customers who have many custom fields per object, particularly on Plus and Professional plans where custom field limits are 50-100 per object.

  • Salesforce validation rules and required fields block import

    Salesforce orgs commonly enforce validation rules on Opportunity (StageName required, Amount required on certain stages), Lead (Email format, required fields), and Contact (AccountId required if the page layout mandates it). These rules can reject 10-30 percent of records on first import if the migration user does not have the right bypass permissions. We coordinate with the customer's Salesforce admin to grant the migration user Modify All Data, relax validation rules during load with a migration-context check, and re-enable them post-migration. We also pre-validate that Opportunity.Amount is populated before writes since null Amount can block Opportunity insert in orgs with required-field enforcement.

  • Insightly's explicit link records require dedicated reconciliation

    Insightly uses separate link records to associate Contacts with Organizations, or to attach Notes to Opportunities. These links are not embedded in the primary record. We export link records separately, import parent and child records first, then reconstruct relationships in Salesforce as embedded lookups (Contact.AccountId) or ContentDocumentLink entries. Without this sequencing, Contacts end up orphaned with no Account, and Notes end up unlinked. We validate link completeness post-import by querying Salesforce for Contacts where AccountId is null and cross-referencing against the original link set.

  • XML export omits custom fields; API export required

    Insightly's native export-to-ZIP function produces XML files that include only default (standard) fields. Custom fields are not included in these exports. Customers who attempt to migrate using the XML export path will lose all custom field data in Salesforce. We bypass the XML export entirely and pull all records including custom fields directly from the Insightly REST API. We inform customers of this limitation during scoping and use the API path exclusively for outbound migrations from Insightly.

  • Workflow Automations, Projects, and attachments do not migrate

    Insightly Workflow Automations live in the configuration layer and are not accessible via API. They do not migrate to Salesforce Flow because the two automation models are structurally incompatible. We deliver a written inventory of every active Insightly Workflow with its trigger, conditions, actions, and a recommended Salesforce Flow equivalent. Insightly Projects without an Opportunity parent require a custom Project__c object that is scoped and priced separately. File attachments are stored as blob URLs in Insightly; we export attachment metadata (filename, URL, associated record) but do not migrate binary data. The customer rebuilds workflows in Salesforce Flow and manages attachment files in Salesforce Files or a linked DMS.

Migration approach

Six steps for a successful Insightly CRM to Salesforce Sales Cloud data migration

  1. Discovery and scoping

    We audit the Insightly account across plan tier, total record counts per object, active custom fields per object (using the FIELD_NAME discovery endpoint), custom object schemas and their inter-object lookups, pipeline and stage configuration, active workflow count and complexity, project count and Opportunity attachment rate, and owner email list. We pair this with a Salesforce edition decision: Professional ($80/user) covers most migrations without custom objects; Enterprise ($165/user) is required if the customer needs Salesforce Flow at scale, advanced reporting types, or full profile-based sharing rules. The discovery output is a written migration scope with a record-count estimate and Salesforce edition recommendation.

  2. Schema design and FIELD_NAME reference build

    We design the Salesforce destination schema: we provision any required custom objects with __c API names, create custom fields typed to match Insightly field types (text, date, picklist, currency, checkbox, number), and configure Record Types and Sales Processes to match the Insightly pipeline-stage structure. We simultaneously build the FIELD_NAME-to-Salesforce-API-name reference table by querying /CustomFields/{objectName} for every object that has custom fields. This reference table is the critical artifact that prevents silent custom field data loss during writes.

  3. Sandbox migration and reconciliation

    We run a full migration into a Salesforce Sandbox (Full Copy or Partial Copy) using production-equivalent data volume. The customer's Salesforce admin or RevOps lead reconciles record counts (Organizations in, Leads in, Contacts in, Opportunities in, Tasks in, Notes in, Custom Object records in), spot-checks 25-50 random records against the Insightly source for field-level accuracy, and verifies that Contact.AccountId is populated for all Contacts (no orphaned records). Link completeness is validated by comparing the pre-exported Insightly link count against the resolved Salesforce relationship count. Sign-off on the sandbox run authorizes production migration.

  4. Owner reconciliation and User provisioning

    We extract every distinct Insightly owner email referenced on Contacts, Organizations, Opportunities, Tasks, and Notes and match by email against the Salesforce destination org's User table. Any Insightly owner without a matching Salesforce User goes to a reconciliation queue for the customer's admin to provision. OwnerId references are required on Opportunity and Task inserts, so this step gates the production migration. We recommend provisioning inactive Users with the correct email for departed team members so that historical assignment is preserved.

  5. Production migration in dependency order

    We run production migration in record-dependency order: Accounts (from Organizations), Leads, Contacts (with AccountId resolved from the link reconciliation step), Opportunities (with RecordTypeId, StageName, and probability set from the pipeline configuration), Tasks (with WhatId and OwnerId resolved), Notes (with ContentDocumentLink recreated for each linked record), Custom Objects (with all lookup references resolved at migration time). The explicit link reconciliation step is embedded in the Contact import phase. Each phase emits a row-count reconciliation report before the next phase begins.

  6. Cutover, delta sync, and workflow rebuild handoff

    We freeze Insightly writes during cutover, run a final delta migration of records modified during the migration window, then enable Salesforce as the system of record. We validate relationship completeness one final time and deliver the written Workflow Inventory document listing every Insightly Workflow with its trigger, conditions, actions, and a recommended Salesforce Flow equivalent. We deliver a separate Project and Attachment inventory noting what could not migrate and the recommended replacement path. We support a one-week hypercare window for reconciliation issues. We do not rebuild Insightly Workflows as Salesforce Flow inside the migration scope; that is a separate engagement.

Platform deep dives

Context on both ends of the pair

Insightly CRM logo

Insightly CRM

Source

Strengths

  • CRM, marketing automation, and project management unified in one subscription, reducing tool sprawl for SMBs.
  • Free plan for 2 users and a 2,500-record cap provides a low-risk evaluation environment.
  • AppConnect delivers 500+ no-code integrations with mainstream business tools without requiring developer resources.
  • Modern UI with faster onboarding compared to legacy CRM alternatives, backed by positive ease-of-setup scores on G2.
  • Project creation directly from closed Opportunities keeps post-sale work connected to the originating deal.

Weaknesses

  • Workflow automation and AI Copilot require the Professional tier, making the Plus plan unsuitable for teams with automation needs.
  • Custom field handling requires FIELD_NAME API lookups, which adds complexity to integrations and migrations.
  • Setup time and reported timeouts during automation configuration create friction for new administrators.
  • Documentation is described as incomplete and overwhelming by power users, according to G2 review themes.
Salesforce Sales Cloud logo

Salesforce Sales Cloud

Destination

Strengths

  • Largest enterprise app ecosystem in CRM with 5,000+ AppExchange integrations covering nearly every vertical workflow.
  • Native Einstein AI delivers lead scoring, opportunity insights, and predictive forecasting without a third-party layer.
  • Advanced territory management, multi-currency, and flexible forecasting satisfy complex B2B revenue structures.
  • Deep platform extensibility: Custom Objects, Apex, Flow, and the Metadata API allow full schema customization.
  • Well-documented REST API, Bulk API, and Composite API with published rate limits for programmatic migration.

Weaknesses

  • Pricing model is layered and opaque in practice: per-seat fees plus storage overages, add-on subscriptions, and annual uplifts compound to 30–40% above sticker price.
  • Workflow Rules and Process Builder are deprecated, forcing all orgs onto Salesforce Flow — a migration task that catches many teams by surprise.
  • Steep administrative complexity: meaningful configuration requires a dedicated Salesforce admin or consultant.
  • API rate limits are edition-gated (100k/day base for Enterprise) and easily exhausted by large historical imports without throttling.
  • Data export is exportable via Data Loader but preserving relationship integrity across 30+ objects requires careful ETL sequencing.

Complexity grading

How hard is this migration?

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

C

Overall complexity

Moderate migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Insightly CRM and Salesforce Sales Cloud.

  • 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

    C

    Insightly CRM: 10 requests per second; daily limit varies by plan (starting at 1,000 requests/day for free plan).

  • Data volume sensitivity

    B

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

Estimator

Estimate your Insightly CRM to Salesforce Sales Cloud 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 Insightly CRM to Salesforce Sales Cloud data migrations

Answers to the questions buyers ask most during Insightly CRM to Salesforce Sales Cloud migration scoping. Not seeing yours? Book a call.

Can't find your answer?

Walk through your Insightly CRM to Salesforce Sales Cloud migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

No. Insightly Workflow Automations live in the configuration layer and are not accessible via the API. They do not migrate to Salesforce Flow because the two automation models use different trigger types, action libraries, and delay mechanisms. We deliver a written inventory of every active Insightly Workflow with its trigger conditions, actions, and a recommended Salesforce Flow equivalent for the customer's admin to rebuild. Projects (Insightly's built-in project management) and attachment binaries also do not migrate; we provide a separate written inventory of these for the customer's admin to address in Salesforce through custom objects or Files management.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Insightly CRM.
Land in Salesforce Sales Cloud, 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