CRM migration

Migrate from Act-On to Freshsales

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

Act-On logo

Act-On

Source

Freshsales

Destination

Freshsales logo

Compatibility

80%

8 of 10

objects map 1:1 between Act-On and Freshsales.

Complexity

BStandard

Timeline

3-4 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Act-On to Freshsales is a migration from a marketing automation platform to a full sales CRM. Act-On organises around Contacts and Companies with engagement scoring and Program-based nurture; Freshsales uses Leads, Contacts, Accounts, and Deals with Freddy AI scoring and built-in phone, email, and chat. The structural shift requires decisions about how Act-On's Contacts split into Freshsales Leads versus Contacts, how Companies map to Accounts, and how engagement scores and Program history are preserved as reference data. We extract all contact and company records via Act-On's API, transform the data model, import into a Freshsales Sandbox for validation, then migrate to production. Act-On Program builder logic and engagement score formulas do not transfer; we deliver a written blueprint of existing Programs and preserve the raw engagement score as a static custom field for Freddy AI to use as a training signal post-migration.

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

Act-On logo

Act-On

What's pushing teams away

  • Feature gaps in email composer quality and CRM integration force teams to layer on additional tools, increasing stack complexity and cost.
  • Performance and reporting depth lag behind competitors at similar price points, making it harder to justify ROI to leadership.
  • Pricing is perceived as high relative to the value delivered, especially as teams scale contact volumes and hit tier limitations.
  • Users report that Act-On feels less suitable as companies grow beyond mid-market requirements and need more sophisticated pipeline management.

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

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

Act-On

Contact

maps to

Freshsales

Lead and Contact (split required)

1:many
Fully supported

Act-On Contacts do not map to a single Freshsales object. We split by lifecycle stage: Contacts with a qualified lifecycle stage (such as Sales Qualified Lead or Customer) map to Freshsales Contact tied to an Account. Contacts with an unqualified stage (such as Subscriber or Prospect) map to Freshsales Lead. The split rule is defined during scoping and applied as a transform during migration. The original Act-On lifecycle stage is preserved in a custom field for reference.

Act-On

Company

maps to

Freshsales

Account

1:1
Fully supported

Act-On Companies map to Freshsales Accounts. Company name maps to Account Name, domain to Website, and address fields to the Billing Address composite. We import Accounts before Contacts so that the Contact-to-Account Lookup relationship is satisfied at insert time. Company tags from Act-On migrate as Freshsales Account tags.

Act-On

Deal

maps to

Freshsales

Deal

1:1
Fully supported

Act-On Deals map to Freshsales Deals with a 1:1 correspondence. Deal name, amount, stage, close date, and owner transfer directly. The Act-On pipeline assignment maps to the Freshsales Deal pipeline and stage values. Closed-Lost and Closed-Won reasons from Act-On custom fields become Freshsales Loss Reason and Won Reason fields.

Act-On

Program (Automated Workflow)

maps to

Freshsales

Reference Blueprint (no automation transfer)

1:1
Fully supported

Act-On Program builder defines multi-step nurture sequences stored server-side and not accessible via API. We do not migrate Programs as automation logic. We extract the sequence of steps, contact membership, branch conditions, and timing as a written reference blueprint that the customer uses to rebuild in Freshsales Workflows. This document is part of the standard migration deliverable.

Act-On

Engagement (Email, Call, Meeting, Task, Note)

maps to

Freshsales

Activity (Call, Email, Meeting, Task, Note)

1:1
Fully supported

Act-On engagement history maps to Freshsales Activity records. Email engagements become Freshsales Email records; call engagements become Task records with a Call disposition; meetings become Event records; notes become Note records. All activities link to the parent Contact or Deal via the Who ID and Deal ID fields. We chunk large activity sets by date range and apply backoff logic for API throttling.

Act-On

List

maps to

Freshsales

Tag and Segment

1:1
Fully supported

Act-On Lists are audience segments used for campaign targeting. We migrate List membership as Freshsales Tags on the Contact or Lead record. Static List membership transfers as a tag array; dynamic List logic does not transfer because it is a server-side definition. Customers recreate dynamic segments in Freshsales using the Filter builder or workflow conditions.

Act-On

Form

maps to

Freshsales

Form (reference only)

1:1
Fully supported

Act-On web form definitions and submission records migrate. The form embed code does not transfer and must be re-implemented in Freshsales Web Forms or a third-party form tool. Form field definitions migrate as a reference document so that the customer can recreate fields in Freshsales with matching schema. Form submission data migrates as Contact or Lead records with a Form Source custom field.

Act-On

Custom Data Schema

maps to

Freshsales

Custom Field or Custom Object

1:1
Fully supported

Act-On Custom Data schemas define user-extended fields on Contacts and Companies. We read the schema definition via Act-On's Custom Objects API, export the existing records, and translate the schema to Freshsales custom fields on Contact/Lead/Account/Deal or as Freshsales Custom Objects depending on the relationship structure. All custom field types are mapped to their nearest Freshsales equivalent before import.

Act-On

Engagement Score

maps to

Freshsales

Custom Field (hs_engagement_score__c)

lossy
Fully supported

Act-On engagement score is a numeric property per Contact calculated using proprietary weighting. This score migrates as a static integer value in a custom field. The scoring formula itself does not export. We flag for the customer that Freddy AI scoring should be configured post-migration, optionally using the historical Act-On score as a calibration baseline.

Act-On

Tag

maps to

Freshsales

Tag

1:1
Fully supported

Contact and company tags from Act-On export cleanly as label arrays. We map them to Freshsales Tags on the equivalent record type. Tags used for classification purposes carry over without transformation; tags used for campaign targeting are reviewed against the List migration to avoid duplication.

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.

Act-On logo

Act-On gotchas

High

ACT! desktop CRM and Act-On marketing automation are different products

Medium

Automated Program logic does not export

Medium

Engagement score formulas are not transferable

Low

Bulk API is not publicly documented

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

  • Contact-to-Lead/Contact split requires an explicit mapping rule

    Act-On has one Contact object. Freshsales has separate Lead and Contact objects. There is no automated rule that maps all Act-On Contacts to a single Freshsales equivalent. We define the split logic during scoping using Act-On lifecycle stage and any custom qualification flags: Contacts with lifecycle stages indicating a sales-qualified or customer state route to Freshsales Contact; all others route to Lead. The original Act-On lifecycle stage is preserved in a custom field on both record types. Skipping this design step produces orphaned Contacts without an Account or Leads that should have been Contacts from day one.

  • Act-On Program logic does not migrate to Freshsales Workflows

    Act-On Programs are multi-step nurture sequences defined in the Program builder. These workflow definitions are stored server-side and are not accessible via the API. Freshsales Workflow automations use a different trigger-and-action model. We do not migrate Programs as automation code. We deliver a written reference blueprint of every active Program showing the sequence steps, entry conditions, branch logic, and timing so the customer's team can rebuild them in Freshsales Workflows. This includes contact membership records that show which contacts entered which Program and at what stage they exited.

  • Engagement score formulas are not transferable

    Act-On calculates engagement scores using proprietary weighting across email opens, clicks, page visits, and form submissions. These calculation rules do not export. We migrate the current numeric engagement score as a static integer in a custom field on each Contact. The customer must configure Freddy AI scoring post-migration, optionally using the historical Act-On score as a baseline for calibration. Score recalculation does not happen automatically.

  • Act-On Lists and dynamic segment logic do not transfer

    Act-On Lists represent audience segments including dynamic Lists with server-side filter definitions. List membership migrates as Freshsales Tags, preserving which contacts were members of which List at migration time. Dynamic List filter logic does not export and must be recreated in Freshsales using the Filter builder or Workflow conditions. Teams relying heavily on dynamic segmentation should plan for a manual rebuild of those segments in Freshsales.

  • Act-On API lacks a documented Bulk endpoint

    Act-On's API documentation does not describe a dedicated bulk or batch endpoint. Large contact sets, company records, and engagement histories require chunked API calls with backoff handling. This adds time to large migrations but does not block completion. We handle this by splitting large record sets into batches of 100-200 records, applying exponential backoff on 429 responses, and resuming from the last confirmed offset on interruption.

Migration approach

Six steps for a successful Act-On to Freshsales data migration

  1. Discovery and scoping

    We audit the Act-On account across records (Contacts, Companies, Deals, Lists, Program memberships, Forms, Custom Data schemas, and engagement history volume). We confirm the product variant and subdomain during discovery to rule out an ACT! desktop or cloud CRM confusion. We document the existing Act-On lifecycle stages, Program list, and engagement score distribution. We pair this with a Freshsales edition review (Growth at $9/user covers most migrations; Pro at $39/user adds workflow automation and territory management; Enterprise at $59/user adds AI forecasting and advanced customisation) and deliver a written migration scope document.

  2. Schema design and picklist mapping

    We design the Freshsales destination schema. This includes creating any missing custom fields for Act-On properties that have no native Freshsales equivalent (such as the original lifecycle stage, source data, and engagement score), configuring the Deal pipeline and stage values to match the Act-On pipeline structure, and creating the Contact-to-Account Lookup relationships. We also define the Lead-versus-Contact split rule and the Activity-to-Contact/Deal linkage map. Schema is validated in a Freshsales Sandbox before production migration begins.

  3. Data extraction and transformation

    We extract all Act-On data via the REST API using Bearer JWT authentication. Records are pulled in dependency order: Companies first (because Contacts reference them), then Contacts with the lifecycle-stage split applied, then Deals, then Lists, then engagement history. Custom Data schema records are extracted with their field definitions so that the destination schema can be built before data insert. We flag any records with hard deletes in Act-On and remove them from the migration set before transformation. The transformation layer applies the picklist normalisation, email formatting, and the Contact-to-Lead/Contact routing decision.

  4. Sandbox migration and reconciliation

    We run a full migration into a Freshsales Sandbox using the extracted production data. The customer's RevOps lead validates record counts (Accounts in, Leads in, Contacts in, Deals in, Activities in), spot-checks 20-30 records field-by-field against Act-On, and reviews the Deal pipeline and stage mapping. Any mapping corrections are made at this stage. The sandbox migration must be signed off before we proceed to production. We also use this phase to confirm that Freshsales field-level security and validation rules do not block the import, and temporarily adjust them if they do.

  5. Owner reconciliation and User provisioning

    We extract every distinct Act-On Owner referenced on Contact, Company, and Deal records and match by email against the Freshsales destination User table. Any Owner without a matching Freshsales User goes to a reconciliation queue for the customer's admin to provision. Owner mapping must be complete before record import because OwnerId is a required reference on Deals and a recommended field on Contacts. Migration cannot proceed past this step without resolved owner mappings.

  6. Production migration and cutover

    We run production migration in dependency order: Accounts (from Companies), Leads, Contacts, Deals, Activity history (emails, calls, meetings, tasks via chunked API), Custom Data records, and Tags. Each phase emits a row-count reconciliation report before the next phase begins. We freeze Act-On write access during the cutover window, run a final delta migration for any records modified during the window, then enable Freshsales as the system of record. The Act-On account is placed in read-only maintenance mode post-migration.

  7. Program blueprint delivery and post-migration support

    We deliver the Program reference blueprint documenting every Act-On Program's trigger, steps, conditions, and contact membership. This is the handoff artifact for rebuilding in Freshsales Workflows. We deliver the engagement score calibration note recommending how to use the migrated historical score with Freddy AI. We provide a one-week hypercare window to resolve any record-level reconciliation issues raised by the team. We do not rebuild Programs as Freshsales Workflows or configure Freddy AI as standard scope; those are separate engagements.

Platform deep dives

Context on both ends of the pair

Act-On logo

Act-On

Source

Strengths

  • Embedded SMS marketing extends reach beyond email without an additional platform subscription.
  • Native engagement scoring gives a behavioural signal out of the box without third-party analytics.
  • Responsive support team with a reputation for hands-on help during setup and troubleshooting.
  • Segmented audience management via Lists allows targeted campaign execution without complex queries.
  • User-friendly interface lowers the learning curve for marketing teams without dedicated ops resources.

Weaknesses

  • CRM integration capabilities lag behind competitors, often requiring workarounds or third-party middleware.
  • Reporting depth is shallower than HubSpot or Salesforce, making multi-touch attribution difficult.
  • Pricing relative to feature set draws criticism as teams scale and hit tier ceilings.
  • Limited custom object flexibility compared to platforms with a full schema designer.
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 Act-On 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

    Act-On: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Most Act-On to Freshsales migrations land between three and four weeks for straightforward accounts under 10,000 Contacts and 2,000 Deals with no Custom Data schemas. Migrations with Act-On Custom Data schemas, multiple Program histories to document, or large engagement activity logs move to six to eight weeks because of the schema design work, picklist mapping, and activity history chunking. The primary time variable is the number of unique record types and the volume of engagement history.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Act-On.
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