CRM migration
Field-level mapping, validation, and rollback between Perfect Portal and Freshsales. We move data and schema; workflows are rebuilt natively in Freshsales.
Perfect Portal
Source
Freshsales
Destination
Compatibility
12 of 12
objects map 1:1 between Perfect Portal and Freshsales.
Complexity
BStandard
Timeline
48–72 hours
Overview
Perfect Portal organizes client-facing matter tracking — contacts, matter records, stage progressions, third-party referrers, and attached documents. Freshsales models the same entities using Lead, Contact, Account, Deal, and Sales Activity objects with its own lifecycle stage and pipeline conventions. The migration carries all contact records, matter records, stage history, third-party data, and file attachments into Freshsales, creating accounts for each matter's primary client and deals keyed to the matter's business type. Freshsales does not have a native matter-stage equivalent — we translate each Perfect Portal stage into a Freshsales deal custom field so stage-progress history survives in the destination. Any Perfect Portal workflow logic, stage-update automations, or client-portal notification rules cannot be transferred because Freshsales Workflows operate on different triggers and conditions. These must be rebuilt in Freshsales using its own automation builder. The migration runs via API read access on Perfect Portal and bulk upsert into Freshsales, with a 24–48 hour delta window capturing any changes made during the cutover window.
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 Perfect Portal 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.
Perfect Portal
Client
Freshsales
Contact
1:1Perfect Portal clients map directly to Freshsales Contacts. The primary matter association becomes the AccountId lookup after the Account is created. Clients without an assigned matter default to a standalone Contact record in Freshsales. During the migration, each matter's client creates an Account record in Freshsales, and the Contact's AccountId field points to that Account. If a client is linked to multiple matters, first matter processed determines the Account linkage.
Perfect Portal
Client (referrer type)
Freshsales
Contact
1:1Referrers (agents, lenders, third parties) stored as separate client records in Perfect Portal map to Freshsales Contacts. A custom field Referral_Source__c identifies the referral relationship in Freshsales, since Freshsales has no native referrer object. This field stores the referrer type (Agent, Lender, Other) and can be used to filter deals by referral source. If referrers are linked to a matter, each appears as a separate Contact with same Referral_Source__c value.
Perfect Portal
Matter
Freshsales
Deal
1:1Each Perfect Portal matter becomes a Freshsales Deal. The matter name becomes the Deal name; the matter type determines which Freshsales pipeline the deal is assigned to. Matter stage progression is stored as a custom field (Matter_Stage_History__c) since Freshsales does not natively track multi-stage history beyond deal stage.
Perfect Portal
Matter Stage
Freshsales
Deal Stage + Custom Field
1:1Perfect Portal stage values (Inquiry, Engaged, Document Review, Settlement, Closed) map to Freshsales Deal Stage names per pipeline. Stage-entered timestamps are stored as a custom field (Stage_Entered_Date__c) on the deal record for audit continuity. Each pipeline has its own stage names; the mapping aligns Perfect Portal stage labels to the corresponding Freshsales stage. Stage_Entered_Date__c records the date and time the matter entered its current stage for reporting.
Perfect Portal
Matter Type
Freshsales
Deal Pipeline
1:1When Perfect Portal uses multiple matter types (e.g., Purchase, Refinance, Litigation), each type maps to a separate Freshsales Deal Pipeline. Freshsales Pro and Enterprise plans allow multiple pipelines; Growth plan has one pipeline by default. If you are on the Growth plan and require multiple pipelines, you must upgrade to Pro or Enterprise before migration, otherwise matter types are consolidated into a single pipeline using a custom field filter.
Perfect Portal
Third-Party Referrer
Freshsales
Contact + Custom Field
1:1Referrers associated with a matter are stored as Contact records with a custom referrer-type field and linked to the deal via a custom deal field (Referrer_Contact_Id__c). This preserves the referral relationship without a native equivalent in Freshsales. The referrer-type field stores the role (Agent, Lender, Other) for segmentation, and the deal field holds the contact ID for referral reporting. Multiple referrers on a matter appear as separate Contacts with role.
Perfect Portal
Attachment / Document
Freshsales
File
1:1Matter documents are downloaded and re-uploaded as Freshsales Files attached to the corresponding Deal, Contact, or Account record. File naming preserves the original matter document title for traceability. During upload, we keep the original file extension and set ownership to the Freshsales user who owned the matter, preserving attribution. If the file exceeds storage limits, we alert your admin to consider archiving or upgrading.
Perfect Portal
Matter Note / Communication Log
Freshsales
Sales Activity / Note
1:1Communication logs and notes in Perfect Portal migrate as Freshsales Sales Activities (type: Note) or Notes objects. Original timestamps and author information are preserved on the activity record. Each activity is linked to the parent Deal, Contact, or Account based on matter context, so communication history appears in the relevant record. If the author email does not match a Freshsales user, the activity is assigned to a migration user.
Perfect Portal
Custom Field (matter-level)
Freshsales
Custom Field on Deal
1:1Perfect Portal custom fields at the matter level are created as custom fields on the Freshsales Deal object. Field type is mapped (text, number, date, picklist) to the nearest Freshsales field type. Picklist custom fields require value-by-value mapping. Before migration, we verify each custom field's data type and create the Freshsales field, applying validation rules. During import, data is transformed to match the format, ensuring loss of information is avoided.
Perfect Portal
Owner / Assigned User
Freshsales
User (resolved by email)
1:1Perfect Portal user assignments resolve by email match against Freshsales users. Unmatched owners are flagged before migration — your team either invites them to Freshsales or assigns records to a fallback user. No record lands without a valid Freshsales owner.
Perfect Portal
Workflow / Automation
Freshsales
Not Migrated
1:1Perfect Portal stage-update triggers and client notification workflows do not have an equivalent in Freshsales. These must be rebuilt in Freshsales Workflows after migration. FlitStack exports the workflow definitions as a reference document for your admin. During discovery, we capture trigger events, conditions, and actions for each workflow, so your Freshsales admin can rebuild them using Freshsales Workflow's trigger‑action model. This documentation includes sample configurations for common stage‑change notifications.
Perfect Portal
Portal Access Permission
Freshsales
Not Migrated
1:1Perfect Portal grants referrers and clients portal access to view matter status. Freshsales has no native client/referrer portal equivalent. External sharing links or Freshsales customer portal setup (Freshsales Suite) must be configured post-migration. If you require real‑time visibility, consider enabling Freshsales Suite's customer portal, which provides a branded portal for clients and referrers to track deal status. Alternatively, you can generate secure sharing links per record for on‑demand access.
| Perfect Portal | Freshsales | Compatibility | |
|---|---|---|---|
| Client | Contact1:1 | Fully supported | |
| Client (referrer type) | Contact1:1 | Fully supported | |
| Matter | Deal1:1 | Fully supported | |
| Matter Stage | Deal Stage + Custom Field1:1 | Fully supported | |
| Matter Type | Deal Pipeline1:1 | Fully supported | |
| Third-Party Referrer | Contact + Custom Field1:1 | Fully supported | |
| Attachment / Document | File1:1 | Fully supported | |
| Matter Note / Communication Log | Sales Activity / Note1:1 | Fully supported | |
| Custom Field (matter-level) | Custom Field on Deal1:1 | Fully supported | |
| Owner / Assigned User | User (resolved by email)1:1 | Fully supported | |
| Workflow / Automation | Not Migrated1:1 | Fully supported | |
| Portal Access Permission | 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.
Perfect Portal gotchas
No public API or documented export endpoint
Third-party access complicates data residency and privilege
Matter stages are defined per-firm and non-standardised
SMS notification logs are not independent records
Freshsales gotchas
Freddy AI is Pro-tier only despite heavy marketing
Post-migration emails and sequences are disabled
Bot session credits are a one-time 500-session allocation
Phone credits charged per minute with no cap
File storage limits scale with plan tier
Pair-specific challenges
Migration approach
Discover Perfect Portal data model and matter types
FlitStack connects via API read access to your Perfect Portal account and inventories all matter types, client records, referrer records, attachments, stage configurations, and custom fields. We build a schema inventory document that identifies every object and field to migrate, flagging any matter type that requires a separate Freshsales pipeline or custom field. This discovery output is shared with your team before any data movement begins.
Configure Freshsales pipelines and custom fields
Before data moves, your Freshsales admin (or our team) creates the deal pipelines, custom fields, and contact type pick-lists needed for the migration. We deliver a Freshsales setup plan based on the Perfect Portal matter-type inventory — if you have three matter types, we specify three Freshsales pipelines with stage names aligned to each. Custom fields (Matter_Stage_History__c, Referrer_Type__c, Stage_Entered_Date__c, Source_System_ID__c) are created at this stage.
Resolve referrers and matter owners by email
Perfect Portal referrer contacts and matter-assigned users are matched against Freshsales contacts and users by email address. Unmatched referrers are created as Freshsales contacts with the custom referrer type field. Unmatched matter owners are flagged for your team to either invite to Freshsales or assign to a fallback user. No deal lands without a valid Freshsales owner. Fallback assignments default to a designated migration admin user until a permanent owner is assigned. All email mismatches are logged for review before the final migration run.
Migrate contacts and referrers before deals
Freshsales requires Contacts to exist before Deals can reference them (via deal contact associations). We sequence the migration so client contacts and referrer contacts land first, then matter records are created as Deals with the matter-to-contact and matter-to-account links resolved. Attachments and communication logs are migrated after the parent records are in place. We also verify referrer links on each deal to ensure commission tracking fields are populated before attachments are uploaded. This prevents orphaned files and ensures data integrity across the entire Freshsales instance.
Run sample migration with field-level diff
A representative slice — typically 100–500 records spanning client contacts, referrer contacts, deals across matter types, and attachments — migrates first. We generate a field-level diff showing source values against destination values so you can verify stage mapping, referrer field population, owner resolution, and custom field accuracy before the full run commits. Approval of the sample is required before the full migration proceeds.
Cut over with delta-pickup and audit log
The full migration runs against Freshsales. A delta-pickup window (typically 24–48 hours) captures any matter updates or new client records created in Perfect Portal during the cutover. Every operation is recorded in an audit log. One-click rollback is available if reconciliation identifies data gaps. After go-live, your team configures Freshsales Workflows for any notification or commission-trigger logic that was identified during discovery.
Platform deep dives
Perfect Portal
Source
Strengths
Weaknesses
Freshsales
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 Perfect Portal and Freshsales.
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
Perfect Portal: Not publicly documented.
Data volume sensitivity
Perfect Portal 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 Perfect Portal to Freshsales migration scoping. Not seeing yours? Book a call.
Walk through your Perfect Portal to Freshsales migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Perfect Portal
Other ways to arrive at Freshsales
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.