CRM migration

Migrate from AgileCase to Freshsales

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

AgileCase logo

AgileCase

Source

Freshsales

Destination

Freshsales logo

Compatibility

100%

12 of 12

objects map 1:1 between AgileCase and Freshsales.

Complexity

BStandard

Timeline

24–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

AgileCase is a case-management platform built around Cases, Contacts, Companies, Tasks, Notes, and Workflow automations. FreshSales is a sales CRM organized around Leads, Contacts, Accounts, Deals, Products, and Sales Activities. The two data models share enough structure to map Cases → Deals, Contacts → Contacts, and Companies → Accounts, but FreshSales enforces a mandatory AccountId on every Contact — contacts without a primary company in AgileCase require a default Account record or your specified rule before migration validates. We extract AgileCase data via REST API, resolving owners by email match against FreshSales users. Custom AgileCase properties become FreshSales custom fields; relationship logic that has no CRM equivalent is preserved as reference text. Pipeline stages are mapped value-by-value to FreshSales pick-list stages per pipeline. Workflows, automations, and email templates are not migratable — they must be rebuilt in FreshSales Workflows after go-live. Files, notes, custom field values, and audit history do migrate. A 24–48 hour delta window captures any records modified during cutover. FlitStack AI provides an audit log and one-click rollback if reconciliation fails.

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

AgileCase logo

AgileCase

What's pushing teams away

  • User limits of 15 on Professional and 30 on Business force growing firms to migrate when they exceed these thresholds, often mid-workflow.
  • Limited automation and report counts on Professional tier become restrictive as case volume increases, pushing teams toward platforms with fewer structural caps.
  • Enterprise pricing requires custom quotes with no public range, making budget planning difficult and prompting firms to evaluate alternatives with transparent pricing.
  • Workflow automation logic and custom reports do not transfer between platforms, creating significant rebuild effort that makes switching costly and slow.

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 AgileCase objects map to Freshsales

Each row shows how a AgileCase 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.

AgileCase

Case

maps to

Freshsales

Deal

1:1
Fully supported

Cases map 1:1 to FreshSales Deals. Case name becomes Deal name, case value/amount maps to FreshSales Amount, and Case status is mapped value-by-value to FreshSales Deal stage per pipeline. Owner resolves by email match. FreshSales Deal Amount field accepts decimal values; case amounts with currency symbols are stripped of non-numeric characters before insert.

AgileCase

Contact

maps to

Freshsales

Contact

1:1
Fully supported

Contacts map to FreshSales Contacts, but FreshSales requires an AccountId on every Contact record. AgileCase contacts without a primary company are linked to a default 'Unassigned Accounts' record or your specified default Account. Email is the unique identifier for deduplication.

AgileCase

Company

maps to

Freshsales

Account

1:1
Fully supported

Companies map 1:1 to FreshSales Accounts. Company name becomes Account Name; domain/website maps to Account Website. AgileCase parent-child company hierarchies map to FreshSales Parent Account field. Parent records are migrated before child records to resolve the ParentId foreign key correctly.

AgileCase

Task

maps to

Freshsales

Task

1:1
Fully supported

AgileCase Tasks map directly to FreshSales Tasks. Subject, description, due date, priority, and status all map field-by-field. Owner resolution by email match. Completed tasks carry their completion timestamp; open tasks carry their original due date. FreshSales task status values (Open, Completed) are mapped from AgileCase task status values.

AgileCase

Note

maps to

Freshsales

Note

1:1
Fully supported

AgileCase Notes map to FreshSales Notes. Note title becomes the Note subject; note body becomes the Note body. Original create date is preserved as a custom Created_Date__c field. Rich-text formatting in AgileCase notes is flattened to plain text for FreshSales Note compatibility.

AgileCase

Attachment / File

maps to

Freshsales

File / Attachment

1:1
Fully supported

AgileCase file attachments are downloaded and re-uploaded to FreshSales as Files. File name and description are preserved. FreshSales file size limits (25MB per file by default) apply; files exceeding the limit are flagged for manual handling. Inline images in notes are extracted and rehosted as separate files.

AgileCase

User

maps to

Freshsales

User

1:1
Fully supported

AgileCase users are matched to FreshSales users by email address. Unmatched AgileCase users are flagged before migration; you can either invite them to FreshSales first or assign their records to a fallback user. System-level or admin users without email equivalents are mapped to a designated FreshSales admin.

AgileCase

Pipeline / Case Status

maps to

Freshsales

Pipeline + Deal Stage

1:1
Fully supported

AgileCase pipeline and case-status names are mapped value-by-value to FreshSales Deal pipeline stages. Each AgileCase pipeline becomes a FreshSales pipeline with its own stage pick-list. Stage probability and forecast category are re-applied from FreshSales defaults or your specified values during mapping setup.

AgileCase

Tag

maps to

Freshsales

Tag

1:1
Fully supported

AgileCase tags migrate to FreshSales tags as string arrays. Tags on Cases become tags on Deals; tags on Contacts become tags on Contacts. FreshSales tag API accepts arrays of strings and creates tags on the target record. Duplicate tag names across objects are handled via namespaced prefixes if needed.

AgileCase

Custom Field / Custom Property

maps to

Freshsales

Custom Field / Custom Module

1:1
Fully supported

AgileCase custom fields on Cases, Contacts, and Companies require pre-created FreshSales custom fields or custom modules before migration. We deliver a custom-field setup plan listing each AgileCase property, its data type, and the FreshSales field type to create. Complex AgileCase custom objects with many-to-many relationships become FreshSales custom modules with lookup fields.

AgileCase

Workflow / Automation

maps to

Freshsales

Not migratable

1:1
Fully supported

AgileCase automations (task assignments, email triggers, field updates, case-plan rules) cannot be migrated to FreshSales Workflows. The two platforms use different rule engines with different trigger-action models. We export AgileCase workflow definitions as a structured document to serve as a rebuild reference for your FreshSales admin.

AgileCase

Email Template

maps to

Freshsales

Email Template

1:1
Fully supported

AgileCase email templates are not migratable. FreshSales has its own email template system tied to Sales Sequences and Workflows. We export AgileCase template content (subject, body, merge fields) as a reference document for your team to recreate in FreshSales Templates post-migration.

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.

AgileCase logo

AgileCase gotchas

Medium

Audit trail retention is tier-dependent

High

Post-termination 30-day export window in DPA

Medium

Blob storage document extraction requires flattening

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

  • Workflows and automations do not migrate and must be rebuilt

    AgileCase automations — including task assignments, email triggers, field-update rules, and case-plan schedules — use a rule-engine model fundamentally different from FreshSales Workflows, which operate on trigger-action pairs scoped per object. No automated translation exists between these two platforms. We export your AgileCase workflow definitions as a structured rebuild reference document, but every automation must be manually recreated in FreshSales Workflows after go-live. This manual rebuilding effort is the most common post-migration gap that teams discover if not planned for upfront during migration scoping.

  • FreshSales requires AccountId on every Contact; AgileCase does not

    FreshSales enforces that every Contact record has an AccountId lookup to an Account — this is a hard schema constraint. AgileCase allows contacts to exist without a primary company, and the contact-company association is loosely typed. During migration, AgileCase contacts without a company are linked to a default 'Unassigned Accounts' record — you specify the account name and ID to use during planning. This AccountId resolution must be completed before validation runs to avoid FreshSales API errors on insert. Contacts landing without a valid AccountId will fail validation and block the migration run.

  • FreshSales pipeline stages are pick-list values that must be pre-created

    FreshSales Deal stages are pick-list values scoped per pipeline — you cannot insert a deal with a stage value that does not exist in the target pipeline's stage pick-list. AgileCase case stages can be any custom string value with no enforced pick-list. We map each AgileCase stage name to a FreshSales stage value during planning, and your FreshSales admin must create the pipelines and stage pick-list values before migration. If a required pipeline does not exist in FreshSales, all deals for that pipeline are held and flagged for manual pipeline creation before the migration can complete.

  • Custom fields require FreshSales-side creation before migration runs

    FreshSales custom fields must be created in the FreshSales UI (Settings → Fields) before data lands. There is no bulk API field-creation endpoint — each field requires manual setup through the UI. We deliver a comprehensive custom-field setup plan listing every AgileCase custom property, its data type, and the recommended FreshSales field type. If custom fields are not pre-created, migration inserts records without those values and they must be backfilled afterward, which risks data staleness in those fields and requires additional reconciliation effort.

  • FreshSales API rate limits cap migration throughput by plan tier

    FreshSales enforces hourly API rate limits that vary by subscription plan: Growth at 1,000 requests/hour, Pro at 2,000 requests/hour, and Enterprise at 5,000 requests/hour. Exceeding the limit triggers HTTP 429 responses and exponential backoff. High-volume AgileCase migrations on Growth-tier FreshSales accounts may need to spread insert batches over multiple hours, extending clock time significantly. We monitor rate-limit headers and throttle accordingly during migration runs; you can purchase a FreshSales API rate-limit add-on to increase throughput if needed for time-sensitive cutover windows.

Migration approach

Six steps for a successful AgileCase to Freshsales data migration

  1. Set up FreshSales schema before migration

    Before any data moves, your FreshSales admin creates the required custom fields, pipelines, and stage pick-list values. We deliver a schema setup plan based on your AgileCase custom property count, pipeline count, and case-stage configuration. Pipelines must exist in FreshSales before deals can be inserted with valid stage values. Custom fields must be created so migration can write to them on insert rather than backfilling afterward.

  2. Extract AgileCase data and resolve owners

    FlitStack AI connects to the AgileCase REST API using scoped read credentials to extract Cases, Contacts, Accounts, Tasks, Notes, and Files. AgileCase users are matched against FreshSales users by email — unmatched users are flagged so you can invite them to FreshSales or assign their records to a fallback owner. No record lands in FreshSales without a valid OwnerId lookup.

  3. Run a sample migration with field-level diff

    A representative slice of 50–100 records migrates first, spanning cases, contacts, accounts, and tasks. We generate a field-level diff between the AgileCase source values and the FreshSales destination values so you can verify stage mapping, AccountId resolution for contacts without companies, owner matching, and tag formatting before the full run commits. This validation step ensures data integrity and catches mapping errors early.

  4. Execute full migration with delta-pickup window

    The full migration runs against FreshSales, inserting records in dependency order (Accounts first, then Contacts with AccountId, then Deals with stage mapping). A 24–48 hour delta-pickup window captures any AgileCase records created or modified during the cutover period. All operations are logged to an audit trail. If reconciliation finds discrepancies, one-click rollback reverts the FreshSales instance to its pre-migration state.

Platform deep dives

Context on both ends of the pair

AgileCase logo

AgileCase

Source

Strengths

  • Tiered storage: 50GB on Professional, unlimited on Business with fair-use policy.
  • Audit trail tracking with 180-day minimum retention on Professional tier.
  • REST API, CSV, and Excel import options for data onboarding.
  • Workflow management with task sequences, case plans, and custom scripts.
  • Client-facing portal for status sharing and secure document exchange.

Weaknesses

  • User caps (15 Professional, 30 Business) limit scalability for larger legal departments.
  • Automation and report limits on lower tiers require upgrades as usage grows.
  • No public pricing for Enterprise tier, complicating cost comparisons during vendor evaluation.
  • Workflow definitions and automation rules are not portable between platforms, requiring manual rebuild.
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 AgileCase 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

    AgileCase: Not publicly documented.

  • Data volume sensitivity

    A

    AgileCase exposes a bulk API — large-volume migrations stream efficiently.

Estimator

Estimate your AgileCase 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 AgileCase to Freshsales data migrations

Answers to the questions buyers ask most during AgileCase to Freshsales migration scoping. Not seeing yours? Book a call.

Can't find your answer?

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

Book a free 30 minute consultation

Most AgileCase-to-FreshSales migrations complete in 24–72 hours for under 10,000 total records, assuming standard custom field configurations and single-pipeline setups. Larger datasets (10,000–50,000 records) or setups with multiple pipelines, complex stage value mapping, and custom module configurations extend to 3–5 business days. FreshSales API rate limits (1,000 requests/hour on Growth plan, 2,000 on Pro, 5,000 on Enterprise) cap insert throughput on lower-tier accounts, which can extend clock time for high-volume runs. We batch records and throttle to stay within limits, and you can purchase a rate-limit add-on to accelerate time-sensitive migrations.

Adjacent paths

Related migrations to explore

Ready when you are

Move from AgileCase.
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