CRM migration
Field-level mapping, validation, and rollback between Follow Up Boss and Odoo CRM. We move data and schema; workflows are rebuilt natively in Odoo CRM.
Follow Up Boss
Source
Odoo CRM
Destination
Compatibility
15 of 15
objects map 1:1 between Follow Up Boss and Odoo CRM.
Complexity
BStandard
Timeline
48–72 hours
Overview
Follow Up Boss organizes real estate lead data around a Person model that carries stage, tags, custom fields, and an assigned agent. Deals are attached to People with a pipeline and stage. Odoo CRM uses crm.lead for both Leads and Opportunities (distinguished by a type field) and res.partner for contacts and companies—these are separate tables with a partner_id lookup on the lead record. We extract Follow Up Boss data via the API using scoped read access, then translate every Person into an Odoo crm.lead (type='lead'), every Company into a res.partner (company_type='company'), and every Deal into a crm.lead (type='opportunity'). Action Plans, Smart Lists, and sequence logic are exported as reference definitions for manual rebuild in Odoo's automation tools. Owner resolution maps Follow Up Boss agent emails to Odoo user accounts. Call logs and notes migrate as Odoo mail.activity records and description fields respectively. Custom fields (text, date, number, dropdown) map to Odoo custom fields, with dropdown values handled value-by-value. A 24–48 hour delta pickup window captures any records modified in Follow Up Boss during the cutover window before the go-live flag is set.
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 Follow Up Boss object lands in Odoo CRM, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Follow Up Boss
Person
Odoo CRM
crm.lead (type='lead')
1:1Follow Up Boss Person records map 1:1 to Odoo crm.lead records with type='lead'. Stage, tags, assigned agent, custom fields, and original create date all migrate. The lead's name is split into contact_name; emails go to email_from. Unmatched agent emails default to the migration admin account.
Follow Up Boss
Company
Odoo CRM
res.partner (company_type='company')
1:1Follow Up Boss Company records map to Odoo res.partner with company_type='company'. The company's name, website, address fields, phone, and industry (as a custom field) transfer directly. FUB primary-company association on a Person creates a partner_id link on the corresponding crm.lead.
Follow Up Boss
Deal
Odoo CRM
crm.lead (type='opportunity')
1:1Follow Up Boss Deal records map to Odoo crm.lead with type='opportunity'. Deal name becomes the opportunity name, amount maps to planned_revenue, and close date maps to date_deadline. The assigned agent resolves by email to an Odoo user_id. Pipeline and stage require explicit mapping to Odoo stage_id per crm_team.
Follow Up Boss
Agent / Owner
Odoo CRM
res.users (via email match)
1:1Follow Up Boss agents assigned to People and Deals resolve to Odoo res.users records by email address lookup. Unmatched agents are flagged before migration; their records assign to a designated fallback user so no lead lands without an owner. Agents who do not yet have Odoo accounts must be invited first.
Follow Up Boss
Action Plan
Odoo CRM
No equivalent — export-for-rebuild
1:1Follow Up Boss Action Plans are drip sequences, task triggers, and auto-responses tied to lead stage transitions. Odoo has no native Action Plan equivalent; its automation tools (Studio automations, ir.actions.server) work differently. We export Action Plan definitions as a structured reference document so your Odoo admin can rebuild each plan in Odoo's automation framework.
Follow Up Boss
Smart List
Odoo CRM
ir.filters (saved filters) — export-for-rebuild
1:1Follow Up Boss Smart Lists store filter-and-sort logic by lead source, stage, date range, or custom field values. Odoo's ir.filters handle saved filters but the query logic is platform-specific. We export Smart List definitions (field names, operators, values) as a rebuild reference for Odoo groups and saved filters.
Follow Up Boss
Tag
Odoo CRM
crm.tag / res.partner.category
1:1Follow Up Boss tags migrate to crm.tag records and attach to crm.lead via tag_ids. Tags on Companies attach to res.partner via category_id. Each FUB tag name creates a matching crm.tag record; duplicate tag names across People and Companies merge into a single Odoo tag where the context allows.
Follow Up Boss
Custom Field (text, date, number)
Odoo CRM
ir.model.fields (custom)
1:1Follow Up Boss custom fields of type text, date, or number map to Odoo custom fields (ir.model.fields) on crm.lead or res.partner as appropriate. The field name normalizes to snake_case. Odoo creates these as custom fields on the target model before migration loads the data.
Follow Up Boss
Custom Field (dropdown)
Odoo CRM
ir.model.fields (selection field)
1:1Follow Up Boss dropdown custom fields map to Odoo selection fields on crm.lead or res.partner. Each FUB dropdown choice value maps to a corresponding Odoo selection option label. If Odoo selection options do not exist yet, we create them during the schema setup phase. Mismatched or orphaned values default to the first Odoo option.
Follow Up Boss
Call Log / Email / Note
Odoo CRM
mail.activity / description
1:1Follow Up Boss call logs and emails migrate as Odoo mail.activity records linked to the parent crm.lead, preserving the original timestamp, activity type (call, email), and agent who logged it. Notes and Background text on a Person merge into the crm.lead description field. Plain text migration keeps formatting simple; rich-text notes are stored as-is.
Follow Up Boss
Stage
Odoo CRM
crm.stage (per crm_team)
1:1Follow Up Boss stages map to Odoo crm.stage records scoped to each crm_team (sales team). Stage names and probabilities map value-by-value; the FUB pipeline name becomes the Odoo team name. Each stage's sequence order is preserved. If your Follow Up Boss account has multiple pipelines, each creates a separate Odoo crm_team with its own stage set.
Follow Up Boss
Lead Source
Odoo CRM
utm.source
1:1Follow Up Boss lead source values migrate to Odoo utm.source records, linked to crm.lead via source_id. If a source value in Follow Up Boss has no matching Odoo utm.source record, we create one during migration. The source name is preserved exactly so existing attribution reports remain meaningful.
Follow Up Boss
System IDs / audit trail
Odoo CRM
Custom traceability fields
1:1Follow Up Boss internal record IDs and original create dates are stored as custom fields on Odoo records (e.g., FUB_Person_ID__c, Original_Create_Date__c) for traceability, deduplication on delta runs, and reporting continuity. These fields are readable but not editable in Odoo's standard UI.
Follow Up Boss
Attachment / File
Odoo CRM
ir.attachment
1:1Follow Up Boss file attachments on People or Deals re-upload to Odoo ir.attachment records linked to the parent crm.lead or res.partner. Original filenames and content types are preserved. Large files are subject to Odoo's attachment size configuration; we flag any files exceeding the target system's limits before migration.
Follow Up Boss
FUB Phone Number routing data
Odoo CRM
No equivalent
1:1Follow Up Boss stores FUB number identifiers used for SMS routing and inbound call attribution. Odoo does not have a native FUB number field. We preserve FUB number values in a custom text field on the lead record so the data is visible but not used by Odoo's telephony module, which must be configured separately if SMS routing is needed.
| Follow Up Boss | Odoo CRM | Compatibility | |
|---|---|---|---|
| Person | crm.lead (type='lead')1:1 | Fully supported | |
| Company | res.partner (company_type='company')1:1 | Fully supported | |
| Deal | crm.lead (type='opportunity')1:1 | Fully supported | |
| Agent / Owner | res.users (via email match)1:1 | Fully supported | |
| Action Plan | No equivalent — export-for-rebuild1:1 | Fully supported | |
| Smart List | ir.filters (saved filters) — export-for-rebuild1:1 | Fully supported | |
| Tag | crm.tag / res.partner.category1:1 | Fully supported | |
| Custom Field (text, date, number) | ir.model.fields (custom)1:1 | Fully supported | |
| Custom Field (dropdown) | ir.model.fields (selection field)1:1 | Fully supported | |
| Call Log / Email / Note | mail.activity / description1:1 | Fully supported | |
| Stage | crm.stage (per crm_team)1:1 | Fully supported | |
| Lead Source | utm.source1:1 | Fully supported | |
| System IDs / audit trail | Custom traceability fields1:1 | Fully supported | |
| Attachment / File | ir.attachment1:1 | Fully supported | |
| FUB Phone Number routing data | No equivalent1: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.
Follow Up Boss gotchas
API rate limits restrict bulk migration throughput
Action Plans are not a standalone exportable object
CSV export from the UI excludes unexposed columns unless explicitly requested
Dropdown custom field choices are locked once data exists in them
Odoo CRM gotchas
Odoo.sh version gating blocks assisted migrations from trial
Enterprise modules fail to install on Community after database restore
Custom module view inheritance breaks between Odoo major versions
Custom fields risk losing their application context on Community
API access for Community is gated behind the Custom Plan
Pair-specific challenges
Migration approach
Audit Follow Up Boss data and map to Odoo object model
We connect to Follow Up Boss via scoped read-access API and enumerate every Person, Company, Deal, stage, tag, custom field, and call log in your account. We identify pipeline and stage configurations, dropdown custom field option sets, assigned agents, and any Action Plan or Smart List definitions. This inventory produces the field-level mapping document that your Odoo admin reviews before schema setup begins. API rate limiting (1,000 requests per 10-second window in Follow Up Boss) is respected to avoid throttling.
Set up Odoo schema: stages, custom fields, tags, and user mapping
Your Odoo admin (or our team) creates the crm_team records, crm_stage records per team, ir_model_fields custom fields, crm_tag records, and utm_source records needed for the migration. We deliver a schema setup checklist that maps each Follow Up Boss pipeline to an Odoo sales team and each stage name to an Odoo stage with the correct probability and sequence. Custom fields (including dropdown options) are created before any data load runs.
Resolve owners and export Action Plan / Smart List definitions
Follow Up Boss agent emails are matched against existing Odoo res_users records. Agents without Odoo accounts are flagged so your team can invite them before migration or assign their records to a fallback owner. Simultaneously, Action Plan definitions and Smart List criteria are exported as structured reference documents for manual rebuild. These exports are delivered alongside the field-mapping document so rebuilding work can start in parallel with migration planning.
Run sample migration with field-level diff
A representative slice of records (typically 100–500 across People, Companies, Deals, and activities) migrates into your Odoo instance as a validation step before committing to the full dataset. We generate a field-level diff comparing source values against destination values so you can verify stage mapping, owner resolution, dropdown value handling, and custom field population. This sample run surfaces any mapping errors or data anomalies early, allowing corrections to be made before the production migration commits any records.
Execute full migration with delta pickup and post-migration audit
The full dataset migrates in dependency order: Companies → res_partner, then People → crm_lead (type='lead'), then Deals → crm_lead (type='opportunity') with pipeline-to-team and stage mapping applied. A 24–48 hour delta pickup window captures any records created or modified in Follow Up Boss during the cutover. All operations are logged; one-click rollback is available if reconciliation finds unexpected discrepancies. The final audit report shows record counts per object, any unresolvable owners, and any dropdown values that defaulted.
Platform deep dives
Follow Up Boss
Source
Strengths
Weaknesses
Odoo CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. All 8 core objects map 1:1 between Follow Up Boss and Odoo CRM.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Follow Up Boss and Odoo CRM.
Object compatibility
All 8 core objects map 1:1 between Follow Up Boss and Odoo CRM.
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
Follow Up Boss: 250 requests per 10-second sliding window (125 on limited accounts). Enforced server-side with HTTP 429 responses..
Data volume sensitivity
Follow Up Boss 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 Follow Up Boss to Odoo CRM migration scoping. Not seeing yours? Book a call.
Walk through your Follow Up Boss to Odoo CRM migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Follow Up Boss
Other ways to arrive at Odoo CRM
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.