CRM migration
Field-level mapping, validation, and rollback between Aidoo Mobile and Freshsales. We move data and schema; workflows are rebuilt natively in Freshsales.
Aidoo Mobile
Source
Freshsales
Destination
Compatibility
8 of 11
objects map 1:1 between Aidoo Mobile and Freshsales.
Complexity
BStandard
Timeline
48–72 hours
Overview
Aidoo Mobile is a field-service management platform built around Jobs, Customers, Sites, and Field Workers — entities that track scheduling, dispatch, on-site completion, and equipment status. Freshsales is a Freshworks CRM built around Leads, Contacts, Accounts, Deals, and Sales Activities. The two platforms share almost no object-level vocabulary, so the migration is less a data transfer and more a schema translation: Aidoo Mobile's Customers become Freshsales Accounts with nested Contact records, Aidoo Mobile Sites become Address records attached to Accounts, and Aidoo Mobile Jobs become Freshsales Deals with a custom job-type field capturing the original service category. We preserve all original create and completion timestamps, map field workers to Freshsales OwnerId by email match, and surface the job-status values that must be value-mapped to Freshsales deal stages. What does not migrate: Aidoo Mobile scheduling rules, dispatch automations, route-optimization logic, and equipment-maintenance workflows — those must be rebuilt in Freshsales Workflows or in a scheduling tool that Freshsales integrates with. We use scoped read access against Aidoo Mobile's API to extract the full record set, then write to Freshsales via the Freshsales REST API, respecting per-plan rate limits (1,000 requests/hour on Growth, 2,000 on Pro, 5,000 on Enterprise). A 24–48 hour delta-pickup window captures any jobs completed or updated 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 Aidoo Mobile 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.
Aidoo Mobile
Customer
Freshsales
Account
1:1Aidoo Mobile Customers map directly to Freshsales Accounts. The Account's billing address fields absorb the Aidoo Mobile customer address. If the Aidoo Mobile Customer has multiple Site records, only the primary site address goes to Account.BillingAddress; secondary sites become custom address fields or Notes attachments.
Aidoo Mobile
Customer
Freshsales
Contact
many:1Aidoo Mobile stores a primary contact name on the Customer record alongside separate Site Contact records. We create one Freshsales Contact per unique person, deduplicating by email. If the same contact appears across multiple Aidoo Mobile Sites, the Contact is linked to the primary Account and related to additional Account records via Account Contact Relationships.
Aidoo Mobile
Site
Freshsales
Account (address extension)
many:1Aidoo Mobile Sites hold service-location addresses distinct from the Customer's billing address. Freshsales Accounts store one billing address and one shipping address natively. For multi-site customers, we attach additional addresses as a custom multi-line text field (Site_Addresses__c) or as Notes with a site-name tag.
Aidoo Mobile
Job
Freshsales
Deal
1:1Aidoo Mobile Jobs are the core transactional record and map to Freshsales Deals. The job's service type maps to a custom field (Job_Service_Type__c) on the Deal so you can report by service category. Job status values (Scheduled, In Progress, Completed) are value-mapped to Freshsales deal stage names you configure in the Freshsales pipeline.
Aidoo Mobile
Job
Freshsales
Sales Activity
many:1Each Aidoo Mobile Job completion generates a Sales Activity record in Freshsales (Type = 'Custom Activity') to preserve the service record with original completion date, technician assigned, and job-type metadata. This keeps the service history intact without inflating your deal count.
Aidoo Mobile
Field Worker
Freshsales
Freshsales User (Owner)
1:1Aidoo Mobile Field Workers are matched to Freshsales Users by email address. Unmatched Field Workers are flagged pre-migration so you can invite them to Freshsales or assign their records to a fallback owner. The Field Worker's Aidoo Mobile role (e.g., Technician, Dispatcher) is preserved in a custom field (Field_Worker_Role__c) on the linked User record.
Aidoo Mobile
Job Attachment / File
Freshsales
Freshsales Files
1:1Aidoo Mobile job attachments (photos, signatures, work orders) are downloaded and re-uploaded to Freshsales Files linked to the corresponding Deal. File size limits (Freshsales caps at 25MB per file on most plans) are respected during the re-upload. If an attachment exceeds the limit, we split the file or store a link to your cloud storage, preserving the original file name and upload timestamp.
Aidoo Mobile
Custom Field (Customer)
Freshsales
Custom Field (Account)
1:1Any custom properties on Aidoo Mobile Customers that have no direct Freshsales Account equivalent are created as custom fields on the Account object. Field type is matched as closely as possible: Aidoo Mobile text fields become Freshsales Text fields; pick-list values become Picklist fields with the original values re-created.
Aidoo Mobile
Custom Field (Job)
Freshsales
Custom Field (Deal)
1:1Aidoo Mobile job-level custom fields (e.g., equipment serial number, parts used, service-notes) map to custom Deal fields in Freshsales. On Growth plans the custom field limit is 10; Pro and Enterprise allow 100 and 300 respectively — we flag any excess before migration runs.
Aidoo Mobile
Job SLA / Priority
Freshsales
Custom field (Deal) or Freshsales Priority
1:1Aidoo Mobile job priority levels (Critical, High, Normal, Low) are preserved as a custom pick-list field (Job_Priority__c) on the Freshsales Deal. If you are on Freshsales Pro or Enterprise you can alternatively use the native Priority field on Tasks linked to the Deal.
Aidoo Mobile
Scheduling rules / Dispatch logic
Freshsales
Not migratable
1:1Aidoo Mobile's shift-scheduling rules, technician availability windows, and route-assignment logic are FSM-specific automations with no Freshsales equivalent. We export the rule definitions as a JSON reference file your admin can use when rebuilding dispatch workflows in a scheduling tool integrated with Freshsales.
| Aidoo Mobile | Freshsales | Compatibility | |
|---|---|---|---|
| Customer | Account1:1 | Fully supported | |
| Customer | Contactmany:1 | Fully supported | |
| Site | Account (address extension)many:1 | Fully supported | |
| Job | Deal1:1 | Fully supported | |
| Job | Sales Activitymany:1 | Fully supported | |
| Field Worker | Freshsales User (Owner)1:1 | Fully supported | |
| Job Attachment / File | Freshsales Files1:1 | Fully supported | |
| Custom Field (Customer) | Custom Field (Account)1:1 | Fully supported | |
| Custom Field (Job) | Custom Field (Deal)1:1 | Fully supported | |
| Job SLA / Priority | Custom field (Deal) or Freshsales Priority1:1 | Fully supported | |
| Scheduling rules / Dispatch logic | Not migratable1: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.
Aidoo Mobile gotchas
Aidoo Mobile has no publicly documented API
Pricing is not publicly published
Limited review corpus for data quality signals
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
Extract Aidoo Mobile data via scoped API read access
FlitStack AI authenticates against Aidoo Mobile's API using scoped read credentials (no write access to your Aidoo Mobile account). We extract all Customers, Sites, Jobs, Field Workers, custom field definitions, and attachment metadata in a single export pass. If Aidoo Mobile exposes only CSV exports, we use the same scoped read approach and normalize the flat-file structure into our migration staging schema before mapping begins.
Resolve Field Worker emails to Freshsales User IDs
Before any data is written to Freshsales, we match every Aidoo Mobile Field Worker email against your Freshsales user list. Matched users are mapped directly; unmatched users are flagged in a pre-flight report so you can invite them to Freshsales or assign their records to a fallback owner before the migration run starts. No Deal or Contact lands without a valid Freshsales OwnerId.
Create Freshsales custom fields for non-direct mappings
For every Aidoo Mobile custom field that has no Freshsales native equivalent (Job_Service_Type__c, Job_Priority__c, Job_Completed_Date__c, Field_Worker_Role__c, Site_Register__c), we create the custom field in Freshsales via the API before any records are written. If your Freshsales plan limits custom field count, we surface the constraint in the pre-flight report with a ranked list of fields to prioritize. We match field types (text, picklist, number) to the closest Freshsales type, set appropriate length limits, and include picklist values when applicable. The pre-flight report also shows any picklist entries that will need manual mapping after the fields are created.
Run a sample migration with field-level diff
A representative slice — typically 100–500 records spanning Customers, Contacts, Sites, Jobs, and Field Workers — migrates to Freshsales in test mode. We generate a field-level diff comparing source values against the Freshsales destination fields so you can verify job-to-deal value mapping, site-address translation, and owner resolution before the full run commits. Approval of the sample diff is the gate for the production migration.
Execute full migration with delta-pickup window
The full dataset loads into Freshsales via the REST API, respecting per-plan rate limits (Growth: 1,000 req/hr, Pro: 2,000 req/hr, Enterprise: 5,000 req/hr). A 24–48 hour delta-pickup window then captures any Aidoo Mobile records created or completed during the cutover. Audit logs capture every API write operation, and one-click rollback reverts all migrated records if reconciliation fails. You can request a detailed migration log that records every record ID mapping, timestamp, and any API errors encountered, which aids post-migration reconciliation.
Platform deep dives
Aidoo Mobile
Source
Strengths
Weaknesses
Freshsales
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 1 of 8 objects need a manual workaround.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Aidoo Mobile and Freshsales.
Object compatibility
1 of 8 objects need a manual workaround.
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
Aidoo Mobile: Not publicly documented — typical SaaS limits assumed and confirmed during scoping.
Data volume sensitivity
Aidoo Mobile 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 Aidoo Mobile to Freshsales migration scoping. Not seeing yours? Book a call.
Walk through your Aidoo Mobile 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 Aidoo Mobile
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.