CRM migration
Field-level mapping, validation, and rollback between Altcraft and Freshsales. We move data and schema; workflows are rebuilt natively in Freshsales.
Altcraft
Source
Freshsales
Destination
Compatibility
3 of 10
objects map 1:1 between Altcraft and Freshsales.
Complexity
BStandard
Timeline
2-4 weeks
Overview
Moving from Altcraft to Freshsales is a cross-category migration from a customer data platform with omnichannel marketing automation to a sales-focused CRM. Altcraft organizes data around Profiles that unify behavioral, transactional, and channel data; Freshsales uses the standard CRM triad of Contacts, Accounts, and Deals. We map Altcraft Profiles to Freshsales Contacts, preserving behavioral event history as custom fields and linked notes, and we restructure Altcraft Segments as Freshsales Lists or Contact tags depending on whether the segment is static or dynamic. Automation Scenarios from Altcraft do not export as portable logic; we deliver a written inventory of every active Scenario with its trigger, conditions, and recommended Freshsales Workflow equivalent for the customer's admin to rebuild. Products and order histories from Altcraft's e-commerce module transfer as Freshsales Products and Deal records tied to the migrated Contact and Account.
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 Altcraft 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.
Altcraft
Profile (Customer Profile)
Freshsales
Contact + Account
1:manyAltcraft Profiles map to Freshsales Contacts with the Account resolved from the Profile's company association. If the Profile includes company data, we create the corresponding Account first, then link the Contact. Behavioral event history (channel opens, clicks, purchases) is preserved as a structured note attached to the Contact and as custom fields for key metrics like total_order_count and last_purchase_date. Altcraft custom profile fields map to Freshsales custom contact fields, with type conversion (date fields, number fields, picklist fields) handled during the transform phase.
Altcraft
Segment (Static)
Freshsales
List
1:1Static segments in Altcraft (fixed lists of Profile IDs) map directly to Freshsales Lists. We export the segment as a list of Profile IDs, resolve each to the migrated Freshsales Contact, and import the Contact IDs into the corresponding Freshsales List. Segment membership dates are preserved as custom fields on the List membership.
Altcraft
Segment (Dynamic)
Freshsales
Contact Tags or Custom Field filter
lossyDynamic segments in Altcraft use real-time behavioral criteria (last_action_date, channel_consent, purchase_value range) that do not have a direct Freshsales equivalent without Freshmarketer. We export the segment definition as structured criteria documentation and recommend either rebuilding the logic as Freshsales Contact filters or licensing Freshmarketer for dynamic journey-based segmentation. The customer chooses the approach during scoping.
Altcraft
Message Template
Freshsales
Email Templates
1:1Altcraft message templates export in standard formats (HTML with merge tags). We import them into Freshsales as Email Templates with the appropriate merge field syntax converted from Altcraft's format to Freshsales' {{contact.field_name}} syntax. A/B test variants transfer as separate template records with a naming convention noting the variant label.
Altcraft
Campaign
Freshsales
Deal + Activity (Task/Event)
1:manyAltcraft campaigns (send history, open/click analytics, channel assignment) have no single Freshsales equivalent because Freshsales does not have a native Campaign object in the core CRM tier. We map campaign metadata to a Freshsales Deal record for financial tracking and to Tasks or Events for engagement analytics. Channel attribution data is preserved as custom fields on the Deal. Marketing attribution reporting requires Freshmarketer.
Altcraft
Control Group
Freshsales
Custom Field on Contact
lossyAltcraft Control Groups are holdout groups for comparative campaign analytics tied to Profile IDs. Freshsales does not have a native Control Group object. We preserve Control Group membership as an explicit custom field (e.g., control_group_id__c) on the migrated Contact record and document the Control Group structure (name, size, assignment logic) so the customer's admin can recreate comparative analysis using Freshsales Reports or Freshmarketer.
Altcraft
Product
Freshsales
Product2
1:1Altcraft Products transfer as Freshsales Product2 records. ProductCode, name, description, and pricing (standard price) migrate directly. Product images do not transfer automatically; we recommend re-uploading product imagery post-migration or using a CDN-linked image URL in the product description field.
Altcraft
Order
Freshsales
Deal + Line Items
1:manyAltcraft order records link to the Profile and Product at migration time. We create a Freshsales Deal for each order with the Contact (from the Profile mapping) as the primary relationship and the Product as a line item. Order total, order date, and order status transfer as Deal fields. If Altcraft order data includes loyalty points or promo codes, those transfer as custom fields on the Deal.
Altcraft
Loyalty Program Tier
Freshsales
Custom Field on Contact
lossyAltcraft loyalty tiers (Bronze, Silver, Gold, etc.) tied to customer Profiles have no native Freshsales equivalent. We preserve the loyalty tier as a custom picklist field on the migrated Contact record. The tier history (promotions, redemptions) transfers as a structured note attached to the Contact.
Altcraft
Promo Code Pool
Freshsales
Custom Field on Deal
lossyAltcraft promo code pools with rules (discount type, minimum order value, validity period) export as structured data tied to the order or Profile. We map active promo codes to a custom field on the Freshsales Deal and document the full promo rule set for the customer's admin to re-implement using Freshsales' deal customization or a third-party CPQ tool if complex pricing logic is required.
| Altcraft | Freshsales | Compatibility | |
|---|---|---|---|
| Profile (Customer Profile) | Contact + Account1:many | Fully supported | |
| Segment (Static) | List1:1 | Fully supported | |
| Segment (Dynamic) | Contact Tags or Custom Field filterlossy | Fully supported | |
| Message Template | Email Templates1:1 | Fully supported | |
| Campaign | Deal + Activity (Task/Event)1:many | Fully supported | |
| Control Group | Custom Field on Contactlossy | Fully supported | |
| Product | Product21:1 | Fully supported | |
| Order | Deal + Line Items1:many | Fully supported | |
| Loyalty Program Tier | Custom Field on Contactlossy | Fully supported | |
| Promo Code Pool | Custom Field on Deallossy | 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.
Altcraft gotchas
Profile-count pricing means database size drives the bill
Automation Scenarios do not export as portable logic
API developer guide returns HTTP 301, blocking programmatic discovery
Private Cloud and on-premise use separate support contracts
Control Group assignment is Profile-ID dependent
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
Discovery and export path selection
We audit the Altcraft portal or installation for Profile volume, custom field definitions, segment types (static vs dynamic), active Scenarios, campaign history, Control Group assignments, loyalty program structure, and product catalog. We determine the export path: UI-based CSV for Profiles, Albato integration if available, or direct database access for private cloud and on-premise. The discovery output is a written migration scope with object inventory and export path recommendation.
Freshsales schema provisioning and custom field creation
We provision the Freshsales account structure: custom fields on Contact and Account matching the Altcraft Profile field definitions, custom fields for Control Group membership and loyalty tier, Products matching the Altcraft product catalog, and Lists matching static Altcraft segments. Custom field types are mapped (string, date, number, picklist) and validated against Freshsales field type constraints before import begins.
Profile export and Contact mapping
We export Altcraft Profiles as CSV including all custom fields, behavioral summary fields, channel subscription status, and Control Group assignment. We run the Profile-to-Contact transform, resolving the Account relationship from each Profile's company data. Static segment membership is resolved to Freshsales Contact IDs and queued for List import. Dynamic segment criteria are exported as structured documentation for Freshmarketer or filter rebuild.
Test migration and reconciliation
We run a test migration into a Freshsales sandbox or the customer's staging environment using a representative sample (500-1000 records). We reconcile record counts, spot-check field values, verify Control Group assignments, and validate that custom field types (dates, numbers, picklists) landed correctly. The customer reviews the test output and approves corrections before production migration begins.
Production migration in dependency order
We run production migration in record-dependency order: Products first (for Deal line item resolution), then Accounts (from Profile company data), then Contacts (with AccountId resolved and Control Group flags preserved), then Deals (from Altcraft orders), then Lists (from static segments), then Tasks and Events (from campaign engagement history), then Notes (from loyalty history and segment descriptions). Each phase emits a row-count reconciliation report before the next phase begins.
Scenario inventory and cutover handoff
We deliver the Scenario inventory document: for each active Altcraft Scenario, we document the trigger, conditions, actions, and referenced Profiles, and we provide a recommended Freshsales Workflow equivalent. We do not rebuild Scenarios as Freshsales Workflows; that is a separate engagement for the customer's admin or a Freshsales partner. We freeze Altcraft writes during cutover, run a final delta migration of records modified during the migration window, then enable Freshsales as the system of record. We support a one-week hypercare window for reconciliation issues.
Platform deep dives
Altcraft
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 Altcraft 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
Altcraft: Configurable via API_MAX_REQUESTS_COUNT — exceeding returns HTTP 429. Specific numeric limits are not published in the developer guide and must be confirmed per deployment..
Data volume sensitivity
Altcraft exposes a bulk API — large-volume migrations stream efficiently.
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 Altcraft to Freshsales migration scoping. Not seeing yours? Book a call.
Walk through your Altcraft 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 Altcraft
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.