CRM migration

Migrate from Field2Base to Odoo CRM

Field-level mapping, validation, and rollback between Field2Base and Odoo CRM. We move data and schema; workflows are rebuilt natively in Odoo CRM.

Field2Base logo

Field2Base

Source

Odoo CRM

Destination

Odoo CRM logo

Compatibility

100%

13 of 13

objects map 1:1 between Field2Base and Odoo CRM.

Complexity

BStandard

Timeline

2–5 days

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Field2Base is a field service automation platform built around form templates, submitted records, and mobile workers. Its data model has no native CRM concept — form submissions store raw field data with no inherent distinction between a prospect inquiry and a completed service record. Odoo CRM structures everything around res.partner (contacts/companies), crm.lead (prospect pipeline), and crm.stage (pipeline stages), with a relational model where every record belongs to a partner and moves through stages. The migration maps Field2Base submitted forms to Odoo crm.lead records, Field2Base users to res.partner records, and Field2Base form-region fields to Odoo custom fields on crm.lead. GPS coordinates, timestamps, approval status, and file attachments are all preserved as custom fields and re-uploaded to Odoo attachments. Workflows, integration connectors (DIM/EDM), and form template logic must be rebuilt in Odoo using FlitStack's exported definitions as a reference. We run a delta-pickup window during cutover to capture any new submissions made during the transition window.

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

Field2Base logo

Field2Base

What's pushing teams away

  • Small teams find the pricing model expensive at scale — Essentials starts at $20 per license per month and higher tiers require custom quotes, making per-seat costs unpredictable as the field workforce grows.
  • The platform lacks a robust self-service review ecosystem — Capterra and G2 show fewer than 15 verified reviews, which makes independent evaluation difficult and signals a narrow customer base.
  • Annual manual app update requirements were a documented pain point before Field2Base moved to app-store distribution, reflecting a historical gap in automated delivery infrastructure.
  • Companies requiring modern analytics dashboards or real-time field reporting find Field2Base's reporting layer less mature compared to newer field service platforms like UpKeep or MaintainX that embed BI tooling natively.

Choosing

Odoo CRM logo

Odoo CRM

What's pulling them in

  • Teams choose Odoo CRM for its modular architecture — one base install with one-click app additions means they can adopt CRM alone and add accounting, inventory, or sales later as the business grows.
  • Small businesses pick Odoo because the Community edition is free and open-source, with no per-user or contact limits, allowing full evaluation before committing to a paid Enterprise tier.
  • The drag-and-drop Kanban pipeline and AI lead scoring are highlighted across G2 reviews as concrete features that make lead management faster and more visual than spreadsheet-based workflows.
  • Odoo's native integration with email, live chat, SMS, VoIP, and WhatsApp means inbound leads from multiple channels feed into a single pipeline without third-party middleware.
  • Companies in retail, supply chain, and construction value that Odoo's CRM module shares the same PostgreSQL database and UI as its ERP modules, eliminating data silos between sales and operations.

Object mapping

How Field2Base objects map to Odoo CRM

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

Field2Base

User (Field2Base Admin/Mobile Worker)

maps to

Odoo CRM

res.partner

1:1
Fully supported

Field2Base users (admin portal users and mobile workers) map directly to Odoo res.partner records. Email addresses serve as the unique identifier for matching. Mobile worker role flags (is_mobile_worker__c) are stored as a boolean custom field on res.partner. Field2Base does not have a separate contact/company split, so every user lands as a partner record.

Field2Base

Form Template

maps to

Odoo CRM

crm.stage + ir.model.data

1:1
Fully supported

Field2Base form templates have no direct Odoo equivalent. We map each distinct form template to an Odoo crm.stage (pipeline stage) and store the original template name as Form_Template_Name__c on crm.lead. If there are more than 15 templates, we recommend grouping by category and creating one stage per category rather than one per template to avoid Odoo pipeline clutter.

Field2Base

Form Submission

maps to

Odoo CRM

crm.lead

1:1
Fully supported

Each Field2Base submitted form becomes one Odoo crm.lead record. The submission's JSON payload is parsed, and every region (form field) becomes a mapped field on crm.lead. Submissions are deduplicated by Field2Base submission ID stored as Source_Submission_ID__c on crm.lead. Submissions submitted by the same user that have identical region values within a 24-hour window are flagged as potential duplicates for manual review.

Field2Base

Region — Text (single-line)

maps to

Odoo CRM

crm.lead — custom char field

1:1
Fully supported

Single-line text regions from Field2Base map to Odoo custom char fields on crm.lead. Field naming follows Odoo's snake_case convention: a Field2Base region named 'Customer Notes' becomes customer_notes__c. Character limits are preserved from the Field2Base region definition — Odoo char fields have a configurable size limit that must match or exceed the source.

Field2Base

Region — Numeric

maps to

Odoo CRM

crm.lead — custom float/integer field

1:1
Fully supported

Numeric regions in Field2Base (integer or decimal) map to Odoo float or integer fields on crm.lead depending on the source region type. Units of measurement from the Field2Base region definition (e.g., 'gallons', ' PSI') are stored as a separate custom char field for display context.

Field2Base

Region — Dropdown / Multi-Select

maps to

Odoo CRM

crm.lead — custom selection field

1:1
Fully supported

Field2Base dropdown regions map to Odoo selection fields on crm.lead with value-by-value mapping of each pick-list option. The selection list in Odoo is defined as a static selection list; the source values from Field2Base are enumerated exactly as they appear in the form template. If values in Field2Base were changed after some submissions were made, the migration records the original value and flags mismatches.

Field2Base

Region — Camera (Photo)

maps to

Odoo CRM

ir.attachment + crm.lead custom field

1:1
Fully supported

Photos captured in Field2Base camera regions are downloaded from Field2Base blob storage and re-uploaded as Odoo ir.attachment records linked to the corresponding crm.lead via res_model='crm.lead' and res_id=<lead_id>. A custom char field Photo_Count__c on crm.lead tracks how many photos were attached for quick reference without loading attachments.

Field2Base

Region — Signature

maps to

Odoo CRM

ir.attachment + crm.lead custom field

1:1
Fully supported

Signature fields captured in Field2Base are stored as PNG images. These are re-uploaded as Odoo ir.attachment records with the same parent linking to crm.lead. A boolean custom field Signature_Captured__c on crm.lead indicates whether a signature was present in the original submission.

Field2Base

Region — GPS Coordinates

maps to

Odoo CRM

crm.lead — custom float fields

1:1
Fully supported

GPS data captured by Field2Base (latitude and longitude) maps to two custom float fields on crm.lead: Submission_Latitude__c and Submission_Longitude__c. Odoo does not have a native geolocation field type, so this is handled as paired float fields. The original GPS capture timestamp from Field2Base is stored as Submission_GPS_Timestamp__c for audit continuity.

Field2Base

Form Workflow Approval

maps to

Odoo CRM

crm.stage + custom fields

1:1
Fully supported

Field2Base Workflow approval status (pending, approved, rejected) maps to a combination of crm.stage and custom status fields on crm.lead. If the workflow has multi-step approvals, each approval step becomes a custom char field (Approval_Step_1__c, Approval_Step_2__c) storing the approver's name and timestamp. Odoo's native stage model does not support multi-step approvals natively without Odoo Studio, so the migration surfaces the full approval history as custom fields.

Field2Base

Form Submission Timestamp

maps to

Odoo CRM

crm.lead — create_date + Submission_Datetime__c

1:1
Fully supported

The Field2Base submission timestamp (when the form was originally submitted, not when it synced) maps to a custom datetime field Submission_Datetime__c on crm.lead. Odoo's native create_date is set at migration time; the original submission datetime is preserved separately for reporting continuity. If the submission was captured offline, the local device timestamp is preserved in Offline_Capture_Timestamp__c.

Field2Base

DIM / EDM Integration Connector

maps to

Odoo CRM

External API integration (to be rebuilt)

1:1
Fully supported

Field2Base Data Integration Module (DIM) and Enterprise Dispatch Module (EDM) connections — whether ODBC, OLEDB, CSV, XML, API, or Web Services — do not have an Odoo equivalent. FlitStack exports the DIM/EDM connection definitions and mapping configurations as a JSON reference document. Rebuilt Odoo integrations must use Odoo's External API (XML-RPC or jsonrpc) or a middleware connector; FlitStack does not migrate the live connection credentials.

Field2Base

Submission — No Linked Email Address

maps to

Odoo CRM

crm.lead — anonymous lead

1:1
Fully supported

Some Field2Base form submissions may not include an email address for the submitter — particularly for field inspection forms filled out by third parties. These submissions become Odoo crm.lead records with partner_id set to False (anonymous lead). A custom boolean field No_Email_Flag__c is set to True for these records, and a note is added to the lead description recommending manual partner linking if the contact's email becomes known.

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.

Field2Base logo

Field2Base gotchas

High

Offline draft data loss risk at migration cutover

High

Integration capabilities are tier-gated

Medium

API rate limits not publicly documented

Medium

Custom Regions require manual field mapping

Low

Submitted form versioning not tracked in exports

Odoo CRM logo

Odoo CRM gotchas

High

Odoo.sh version gating blocks assisted migrations from trial

High

Enterprise modules fail to install on Community after database restore

Medium

Custom module view inheritance breaks between Odoo major versions

Medium

Custom fields risk losing their application context on Community

Low

API access for Community is gated behind the Custom Plan

Pair-specific challenges

  • Form submissions without linked contacts create orphaned anonymous leads

    Field2Base form submissions can be submitted by third parties (e.g., customer-completed inspection forms) who never have a Field2Base user account and therefore have no email address stored. Odoo CRM requires a res.partner record for email-based deduplication, but submissions without an email cannot be matched or linked. These records land as anonymous crm.lead records with No_Email_Flag__c set to True. FlitStack surfaces all anonymous leads after migration and provides a manual-link workflow: your team reviews each record and enters or searches for the correct partner email to complete the relationship. Failing to do this leaves your Odoo CRM with contacts that cannot be merged into accounts or associated with opportunities.

  • Custom form regions require Odoo custom field creation before data can land

    Field2Base Forms Designer lets form builders create unlimited custom regions (text, numeric, dropdown, camera, GPS, signature) per template with no code required. Odoo CRM has no equivalent runtime field system — every custom region from Field2Base must be pre-created as a named custom field on the crm.lead model via Settings > Technical > Custom Fields before any data can map into it. For teams with 20+ form templates each containing 10+ custom regions, the pre-migration schema setup phase can extend to 2–3 days. FlitStack generates a complete custom field creation manifest from your Field2Base form templates, listing field names, Odoo field types, pick-list values, and character limits, so your Odoo admin can create them before the migration runs.

  • GPS coordinates need paired custom float fields — Odoo has no native geolocation

    Field2Base captures GPS latitude and longitude natively within the Mobile Forms app and stores these as structured fields on the submission record. Odoo CRM does not include a native geolocation or map widget for crm.lead — there is no latitude/longitude field type in the standard crm.lead model. The only clean migration path is two custom Float fields (Submission_Latitude__c and Submission_Longitude__c) plus a custom datetime field for the GPS capture timestamp. If your team needs to plot submissions on a map in Odoo, you must install a third-party geo-mapping module from the Odoo Apps store or build a custom QWeb map view — this is not included in the standard migration.

  • DIM and EDM integration connectors do not migrate and require Odoo-native rebuild

    Field2Base's Data Integration Module (DIM) and Enterprise Dispatch Module (EDM) maintain live connections to back-end systems using ODBC, OLEDB, CSV imports, XML feeds, API polling, or Web Services plugins. These integration configurations use Field2Base's own connection management layer and do not expose Odoo-compatible credentials or endpoint references. FlitStack does not migrate DIM/EDM credentials or live connections — exporting connection strings from Field2Base and importing them into Odoo would require Odoo's External API (XML-RPC or jsonrpc) to be configured from scratch. Any pre-fill logic that automatically populated Field2Base form fields from a back-end database must be rebuilt as an Odoo server action or external data source. FlitStack delivers the DIM/EDM mapping document as a reference so your Odoo developer can recreate the connections.

  • Multi-step workflow approvals map imperfectly to Odoo's single-stage model

    Field2Base Workflow supports multi-step sequential approvals (Step 1: Field Tech → Step 2: Supervisor → Step 3: Manager) with individual approver names and timestamps preserved per step. Odoo CRM's pipeline stages are Kanban columns that represent a single state, not a sequence of approval gates. When a Field2Base submission has a 3-step approval chain, all three approver names and timestamps must be stored as separate custom char/datetime fields on crm.lead — there is no native Odoo model for multi-step approval chains within the CRM module alone. If your approval chain drives business outcomes (e.g., triggering a purchase order), you will need to rebuild that logic in Odoo Studio or a server action rather than relying on pipeline stage progression alone.

Migration approach

Six steps for a successful Field2Base to Odoo CRM data migration

  1. Extract and profile Field2Base data and form template schema

    FlitStack connects to Field2Base via API using scoped read access to extract all submitted form records, user accounts, form template definitions (including all custom region names, types, pick-list values, and validation rules), attachment metadata, and workflow configurations. We produce a data profiling report showing record counts per template, attachment volume, submission datetime range, and the count of submissions without email addresses. This report drives the custom field creation manifest for Odoo and surfaces the anonymous-lead volume before migration day.

  2. Create Odoo CRM custom fields and pipeline stages

    FlitStack generates a custom field creation manifest for Odoo based on the Field2Base form template audit. Your Odoo admin creates the custom fields on crm.lead (char, float, integer, selection, datetime) and any required custom fields on res.partner using the manifest. We also map each distinct Field2Base form template to an Odoo crm.stage entry in the pipeline — if there are more templates than practical stages, we group by template category. The Odoo schema must be fully set up before step 3 because Odoo rejects data writes to non-existent custom fields.

  3. Deduplicate submitters and pre-create partner records

    Field2Base users and submission submitters are processed for deduplication by email address. Where the same email appears across multiple submissions, one res.partner record is created and linked to all corresponding crm.lead records. Submissions where no email address exists are flagged with No_Email_Flag__c and queued for manual review post-migration. Submitter-to-Odoo-user resolution is handled by email match against Odoo res.users for the user_id field on crm.lead; unmatched users default to the admin user and are flagged for reassignment.

  4. Run a sample migration with field-level verification

    A representative sample of 100–300 submissions spanning multiple form templates migrates first. FlitStack generates a field-level diff comparing source Field2Base values against the resulting Odoo crm.lead field values and ir.attachment records. You verify GPS coordinates, custom field population, workflow status mapping, photo re-upload, and anonymous-lead flagging. Any field mapping errors are corrected and the manifest updated before the full migration run. Approval chain mapping is spot-checked for multi-step workflows.

  5. Execute full migration with delta-pickup cutover window

    The full migration runs against Odoo CRM using the verified mapping. A delta-pickup window (typically 24–48 hours) is opened at the point of cutover: any new Field2Base submissions created during the migration run are captured and applied as updates or new crm.lead records. FlitStack maintains an audit log of every record created, updated, or skipped with reason codes. One-click rollback reverts all Odoo changes if reconciliation fails. After the migration window closes, the Field2Base integration credentials are revoked.

  6. Post-migration validation and anonymous-lead cleanup

    FlitStack delivers a reconciliation report: total submissions migrated vs. total Field2Base records, crm.lead count by stage, attachment count re-uploaded, and count of anonymous leads (No_Email_Flag__c = True). Your team reviews and links anonymous leads to res.partner records using the provided manual-link worksheet. DIM/EDM integration definitions are handed off as a JSON reference document. FlitStack provides 30 days of post-migration support to address any data discrepancies discovered during normal Odoo CRM usage.

Platform deep dives

Context on both ends of the pair

Field2Base logo

Field2Base

Source

Strengths

  • Offline-first architecture ensures field data capture continues without internet connectivity.
  • HIPAA and SOC 2 compliance positions the platform for regulated healthcare and government deployments.
  • No-code Forms Designer allows operations teams to build and publish custom form templates without developer involvement.
  • Multi-format integration layer (CSV, ODBC, OLEDB, API, Web Services) connects submitted forms to back-end databases and ERPs.
  • Pre-filled work order delivery with GPS navigation reduces field worker error and improves dispatch efficiency.

Weaknesses

  • Fewer than 15 verified third-party reviews limits independent evaluation of real-world performance.
  • Enterprise pricing is opaque — no public quote available without contacting sales directly.
  • Historical reliance on annual manual app updates signals infrastructure maturity gaps compared to newer competitors.
  • Analytics and reporting features are basic relative to modern field service platforms with embedded BI tooling.
  • Small company scale ($12M revenue, ~19 employees) raises long-term vendor stability questions for large enterprise buyers.
Odoo CRM logo

Odoo CRM

Destination

Strengths

  • Modular open-source architecture lets teams start with CRM and add ERP apps as needs grow, all sharing one PostgreSQL database.
  • Free Community edition with no contact limits and full source code access means zero licensing cost for evaluation and small deployments.
  • Drag-and-drop Kanban pipeline with AI lead scoring gives a visual, prioritized view of the sales funnel without requiring custom configuration.
  • Native integrations with email, live chat, SMS, VoIP, WhatsApp, and social media feed all inbound leads into a single unified inbox.
  • Active Odoo Community Association (OCA) maintains dozens of community-maintained modules on GitHub for extended functionality.

Weaknesses

  • Gmail and email integration reliability is a recurring complaint — threads drop and conversations scatter across inboxes, disrupting sales team workflows.
  • Enterprise edition pricing stacks quickly: multiple apps at per-user rates ($25–$50/user/month) plus Odoo.sh hosting costs more than many SMBs anticipate.
  • Setup and configuration complexity increases significantly once custom fields, automation rules, and multiple installed modules are in play.
  • Odoo.sh trial databases run on a version (e.g., 18.3) that is not directly migratable to Odoo.sh, blocking the assisted migration path Odoo advertises.
  • Version upgrades between major Odoo releases (e.g., 17→18) frequently break custom module view definitions and XPath expressions, requiring manual remediation.

Complexity grading

How hard is this migration?

Standard CRM migration. All 8 core objects map 1:1 between Field2Base and Odoo CRM.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Field2Base and Odoo CRM.

  • Object compatibility

    A

    All 8 core objects map 1:1 between Field2Base and Odoo CRM.

  • 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

    C

    Field2Base: Not publicly documented — we default to 10 req/s and throttle based on 429 responses.

  • Data volume sensitivity

    B

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

Estimator

Estimate your Field2Base to Odoo CRM 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 Field2Base to Odoo CRM data migrations

Answers to the questions buyers ask most during Field2Base to Odoo CRM migration scoping. Not seeing yours? Book a call.

Can't find your answer?

Walk through your Field2Base to Odoo CRM migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Most Field2Base to Odoo CRM migrations complete in 2–5 days of clock time for under 5,000 submitted form records. The longest phase is typically the Odoo custom field creation step — every distinct form region from Field2Base requires a named custom field on Odoo's crm.lead model before data can land. Setups with more than 10 form templates or complex multi-region templates extend to 5–10 days. GPS, photo, and signature attachment re-uploads add per-file processing time that scales with attachment volume.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Field2Base.
Land in Odoo CRM, 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