CRM migration

Migrate from GoCanvas to Odoo CRM

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

GoCanvas logo

GoCanvas

Source

Odoo CRM

Destination

Odoo CRM logo

Compatibility

93%

14 of 15

objects map 1:1 between GoCanvas and Odoo CRM.

Complexity

BStandard

Timeline

3–7 days

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

GoCanvas is a mobile-first field data collection platform — not a CRM — where the primary record is a Submission tied to a Form definition. Submissions carry submitter details (name, email, phone, address), device-captured metadata (GPS, timestamps), custom form field values, and file attachments. Odoo CRM stores everything in the crm.lead model (which serves both Lead and Opportunity records) and res.partner for contacts, with stage progression managed via crm.stage pipeline IDs. The migration maps each GoCanvas submission with identifiable contact data into an Odoo crm.lead record; form metadata (form name, submission ID, device type) persists in custom fields on the lead. Custom form fields that have no Odoo CRM native equivalent require x_studio or custom field creation in Odoo before migration — we deliver a field creation plan upfront so schema is ready when data lands. GoCanvas automations (form-triggered notifications) have no Odoo CRM equivalent and must be rebuilt as Odoo CRM server actions or automated actions. GoCanvas API v3 uses REST JSON with Bearer authentication; Odoo uses XML-RPC with execute_kw — FlitStack handles the protocol bridge during extraction and load. A delta-pickup window captures any new submissions created during the cutover window so Odoo reflects GoCanvas's final state at go-live.

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

GoCanvas logo

GoCanvas

What's pushing teams away

  • IT and administrative use cases expose gaps: no native support for specialized field formats like IP addressing, limited barcode scanner handling, and no per-record change audit trail with timestamps.
  • PDF output limitations frustrate users who need structured documents — nested tables in PDFs are not supported natively, forcing workarounds that degrade report quality.
  • Form builder complexity lags behind competitors like TrueContext and Forms On Fire, with users reporting a steeper learning curve for conditional logic and advanced field configurations.
  • Support responsiveness is inconsistent; multiple review sources cite difficulty reaching a live support representative for non-urgent but blocking issues.

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 GoCanvas objects map to Odoo CRM

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

GoCanvas

Submission

maps to

Odoo CRM

crm.lead

1:1
Fully supported

GoCanvas submissions are the primary data record. Each submission containing identifiable contact fields (name, email, phone) maps to one Odoo crm.lead. The Form name becomes preserved in a custom char field (x_gocanvas_form_name) on the lead for reporting continuity. Submissions without contact data map to lead records with x_gocanvas_form_name only — your team decides whether to merge these into existing leads by submitter.

GoCanvas

Submitter (name/email/phone on submission)

maps to

Odoo CRM

res.partner

many:1
Fully supported

GoCanvas stores submitter name, email, and phone per submission — not as a standalone contact object. When the same submitter appears across multiple submissions, FlitStack de-duplicates into a single res.partner record and links all corresponding crm.lead records to that partner_id. If a submitter email maps to an existing Odoo partner, the lead links to the existing record. This prevents duplicate contacts in Odoo.

GoCanvas

Submission Status

maps to

Odoo CRM

crm.stage

1:1
Fully supported

GoCanvas submission status values (Pending, Submitted, Approved, Rejected) map to Odoo crm.stage records via a value-by-value mapping: Pending → New, Submitted → Qualified, Approved → Won, Rejected → Lost. Your Odoo admin creates these stages in the pipeline before migration. Custom GoCanvas statuses get mapped to a configurable stage or preserved as a custom selection field on the lead.

GoCanvas

Form Definition (metadata)

maps to

Odoo CRM

x_gocanvas_form_name (custom char field on crm.lead)

1:1
Fully supported

GoCanvas Form definitions have a name and version. Since Odoo CRM has no Form concept, the form name is stored as a custom char field x_gocanvas_form_name on crm.lead. This allows Odoo reports and filters to group leads by the originating GoCanvas form without requiring a separate Form object.

GoCanvas

Custom Form Field (per form)

maps to

Odoo CRM

x_studio custom field on crm.lead

1:1
Fully supported

GoCanvas form builder supports text, number, dropdown, photo, signature, barcode, and calculation fields. Odoo CRM custom fields (x_studio fields) handle char, float, selection, binary, and datetime types natively. We deliver a custom field creation plan per form before migration — fields like photo and signature map to Odoo ir.attachment records linked to the lead rather than stored as field values.

GoCanvas

Submission Device Metadata

maps to

Odoo CRM

x_gocanvas_device_type / x_gocanvas_latitude / x_gocanvas_longitude (custom fields on crm.lead)

1:1
Fully supported

GoCanvas captures device type, OS version, and GPS coordinates per submission. These map to custom char and float fields on crm.lead. Latitude and longitude are useful for Odoo geo-filtering and map integrations if your team installs a geo-mapping module. Device type data helps identify which form versions are in use and whether submissions originate from mobile or desktop clients.

GoCanvas

Submission Attachments (photos, PDFs, signatures)

maps to

Odoo CRM

ir.attachment

1:1
Fully supported

Files attached to GoCanvas submissions are re-uploaded as ir.attachment records linked to the corresponding crm.lead. Photos and signatures become binary attachments; PDF exports of submissions become ir.attachment with mimetype application/pdf. The original filename and submission date are preserved in the attachment's name and create_date fields.

GoCanvas

Submission Timestamp

maps to

Odoo CRM

x_gocanvas_submission_date (custom datetime field on crm.lead)

1:1
Fully supported

GoCanvas records a submission date (UTC) per submission. Odoo's create_date on crm.lead reflects the migration run date, not the original submission date. We preserve the original GoCanvas submission timestamp in a custom datetime field x_gocanvas_submission_date so Odoo reports show the true field completion date.

GoCanvas

GoCanvas User / Owner

maps to

Odoo CRM

res.users

1:1
Fully supported

GoCanvas users are tied to submissions as the submitter. In Odoo CRM, the user_id field on crm.lead assigns a sales rep. We match GoCanvas user email addresses to res.users records by email lookup. Unmatched users are flagged before migration — your Odoo admin either creates the user or assigns records to a fallback user.

GoCanvas

GoCanvas Reference Data (CSV-powered lookup fields)

maps to

Odoo CRM

Plain text in custom char field

1:1
Fully supported

GoCanvas Reference Data allows form fields to pull values from an uploaded CSV (e.g., product catalog, asset registry). Odoo CRM has no native Reference Data equivalent. We map these fields as plain text char fields on crm.lead — your Odoo admin can rebuild the lookup as a many2one relation to an Odoo product or asset model if needed.

GoCanvas

Submission Notes / Description

maps to

Odoo CRM

mail.message on crm.lead

1:1
Fully supported

GoCanvas text fields flagged as 'description' or 'notes' within a form map to a mail.message record on the crm.lead with body=note text, message_type=notification, and subtype=mt_note. This keeps notes visible in Odoo's activity timeline on the lead form view. The mail.message approach ensures notes appear chronologically alongside other lead interactions and email communications in the Odoo chatter.

GoCanvas

GoCanvas Groups / Teams

maps to

Odoo CRM

crm.team

1:1
Fully supported

GoCanvas Groups organize users and form access. Odoo crm.team organizes sales reps and pipeline assignments. We map GoCanvas groups to Odoo crm.team records by name, then assign crm.lead.user_id based on the submitter's group membership in GoCanvas. Teams with no direct Odoo equivalent are created as new crm.team records during the migration setup phase.

GoCanvas

GoCanvas Workflow Handoff History

maps to

Odoo CRM

mail.message thread on crm.lead

1:1
Fully supported

GoCanvas Workflow enables multi-user handoffs (submit → review → approve) within a single submission. Odoo CRM has no native handoff chain equivalent. Handoff history is preserved as a series of mail.message notes on the crm.lead, but the approval chain structure is not transferred — Odoo approval flows (server actions, automated actions) must be rebuilt separately.

GoCanvas

GoCanvas Automations (form-triggered notifications)

maps to

Odoo CRM

No equivalent — rebuild required

1:1
Fully supported

GoCanvas automations trigger email or webhook actions based on form events. Odoo CRM automated actions, server actions, and base.automation rules provide equivalent functionality but must be rebuilt from scratch. We export your GoCanvas automation definitions as a reference document for your Odoo admin to reconstruct them in Odoo's automation studio.

GoCanvas

Submission Completion Duration

maps to

Odoo CRM

x_gocanvas_completion_minutes (custom float field on crm.lead)

1:1
Fully supported

GoCanvas captures how long a submitter takes to complete a form (from first field interaction to submission). This maps to a custom float field x_gocanvas_completion_minutes on crm.lead. Useful for Odoo reporting on form efficiency and identifying bottlenecks in field data collection workflows.

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.

GoCanvas logo

GoCanvas gotchas

High

API v2 deprecation forces re-authentication by May 2027

Medium

Minimum three-user billing floor regardless of actual usage

Medium

No nested table support in GoCanvas PDF Designer

Low

Browser support gaps on Edge and Safari cause data loss

Low

Android 13 and iOS 17 minimum version enforcement

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

  • GoCanvas submissions are not CRM leads — mapping logic determines what becomes a crm.lead

    GoCanvas has no native lead or contact model — the primary record is a Submission. Teams expecting a direct 1:1 migration from GoCanvas submissions to Odoo crm.lead records must decide what counts as a 'lead.' Submissions with no submitter name or email produce orphan lead records. FlitStack maps every submission to a lead, but your team defines the merge rule: should multiple submissions from the same email become one lead with activity history, or separate leads per submission? We surface this decision before migration runs. The mapping logic also affects Odoo reporting — leads created from submissions without contact data show up as anonymous records in your pipeline unless a de-duplication rule is applied.

  • Odoo Community Edition external API requires a paid plan — free Community has XML-RPC only

    Odoo Community Edition (free, open-source) provides XML-RPC access to all models including crm.lead, but the External API (JSON-RPC) is gated to paid Odoo Online or Odoo Enterprise plans. If your Odoo instance is self-hosted Community with no paid plan, the migration must use Odoo's CSV import via the web interface or direct PostgreSQL writes to the crm_lead table — both require direct database access and carry schema drift risk. FlitStack's Odoo connector uses XML-RPC for Community instances and switches to JSON-RPC for Online/Enterprise. Your Odoo hosting choice must be confirmed before we design the load strategy. Reddit threads on Odoo Community migration confirm that API access limitations are a common blocker for automated data loads.

  • GoCanvas API v2 deprecation forces a migration timeline before May 2027

    GoCanvas deprecated Web Services API v2 and API Keys as of April 15, 2025, with removal scheduled for May 1, 2027. Any GoCanvas integration using API v2 or API Key authentication will break at removal. Teams with automated submission exports tied to API v2 must migrate to API v3 (REST JSON, Bearer token) before the cutoff. FlitStack uses GoCanvas API v3 exclusively. If your team has existing API integrations, they must be updated to Bearer token authentication before FlitStack can extract data. This creates a hard deadline for migration planning — integrations built on API v2 will fail silently if not updated before May 2027.

  • Odoo CRM has no native Reference Data equivalent — CSV lookups become plain text fields

    GoCanvas Reference Data allows form fields to pull values from an uploaded CSV, enabling dynamic dropdowns, product lookups, and asset registries within a form. Odoo CRM has no native Reference Data construct. Fields using Reference Data in GoCanvas transfer to Odoo as plain text char fields — the lookup relationship to the CSV source is lost. Teams relying on Reference Data for product codes, asset IDs, or compliance checklists need to rebuild the lookup as a many2one relation to an Odoo product, stock.lot, or custom model after migration. We flag every Reference Data field in the mapping plan so your Odoo admin can design the replacement relation before the migration runs.

  • Submission PDFs are GoCanvas-hosted — re-upload to Odoo filestore is required

    GoCanvas PDF exports of submissions are stored in GoCanvas cloud storage and accessible via API download URLs. These are not automatically available in Odoo. FlitStack downloads submission PDFs from GoCanvas and re-uploads them as ir.attachment records linked to the corresponding crm.lead in Odoo. The re-upload is subject to Odoo's attachment storage backend (filestore or PostgreSQL binary) configured by your Odoo admin. Large PDF files (over Odoo's default 25MB limit per attachment) may require filestore configuration adjustments. We include a pre-flight check of attachment sizes against your Odoo storage configuration before the migration runs.

Migration approach

Six steps for a successful GoCanvas to Odoo CRM data migration

  1. Discover GoCanvas forms and submission inventory

    FlitStack connects to your GoCanvas account via API v3 using Bearer token authentication and enumerates all active Form definitions. We capture form name, field schema (field types, labels, Reference Data dependencies), and workflow configuration. We then query all submitted submissions across forms, capturing submission ID, form name, status, submitter details, device metadata, timestamps, and attachment URLs. A discovery report lists each form, its field count, submission volume, and an assessment of which submissions contain identifiable contact data (name, email, phone) — these are the candidates for crm.lead creation. The report also flags submissions with no contact data so your team can decide whether to create anonymous leads or exclude them.

  2. Design Odoo CRM schema and custom field creation plan

    Before data moves into Odoo, FlitStack delivers a schema setup plan based on the GoCanvas form inventory. For each GoCanvas form, we identify custom field mappings: fields with direct Odoo equivalents (text→char, number→float, phone→phone) use native crm.lead fields where possible; fields with no native equivalent require x_studio field creation. The plan specifies the field name, Odoo ttype, and whether the field should appear on the lead form view or only in Odoo Studio. Reference Data fields are flagged separately for manual many2one reconstruction. Your Odoo admin creates the custom fields (or FlitStack creates them via XML-RPC if given admin credentials). The crm.team and crm.stage records are also pre-created per the mapping plan — stage names mapped from GoCanvas submission statuses.

  3. Resolve GoCanvas users to Odoo res.users by email

    GoCanvas users (submitters, reviewers) map to Odoo res.users by email address match. FlitStack queries your Odoo instance via XML-RPC to retrieve existing res.users records, then builds a resolution map: GoCanvas user email → Odoo user ID. Unmatched users — those with GoCanvas accounts but no corresponding Odoo login — are flagged in a pre-migration report. Your Odoo admin either creates the user in Odoo before migration or assigns their submissions to a fallback user (configurable by your team). No crm.lead is created without a resolved user_id unless your team specifies that anonymous leads are acceptable.

  4. Run sample migration with field-level diff

    A representative slice migrates first — typically 50–200 submissions spanning your most-used forms, including submissions with full contact data, partial contact data, attachments, and custom field values. FlitStack writes to a test Odoo database (or a sandbox environment) and generates a field-level diff comparing the source GoCanvas submission data against the destination crm.lead fields in Odoo. The diff covers: lead name, stage_id mapping, submitter → partner resolution, custom field values, attachment presence, and x_gocanvas_* metadata fields. You review the diff, confirm the mapping logic, and flag any field corrections before the full migration runs. This step typically takes 1–2 days depending on form complexity.

  5. Execute full migration with delta-pickup window

    The full migration runs against your production Odoo instance using the validated mapping from the sample step. Submissions are processed in dependency order: res.partner records created or matched first (for de-duplication), then crm.lead records written with all field mappings and custom field values, then ir.attachment records re-uploaded from GoCanvas download URLs. A delta-pickup window (24–48 hours) runs concurrently with the cutover: any new submissions created in GoCanvas during the migration window are captured and written to Odoo at the end of the run. The audit log records every write operation. If reconciliation fails (record count mismatch, attachment missing), FlitStack provides a one-click rollback that reverts the crm.lead and ir.attachment writes to the pre-migration state.

  6. Deliver migration audit log and rebuild reference for Odoo automations

    After migration, FlitStack delivers a complete audit log: record counts by form, crm.lead creation count, partner merge count, attachment upload count, and a list of any submissions that failed to migrate with error reasons. A reconciliation report compares total GoCanvas submission count against total crm.lead records created in Odoo, with a discrepancy breakdown. For GoCanvas automations and workflow handoffs that cannot migrate (no Odoo equivalent), FlitStack exports the automation definitions as a structured JSON reference document so your Odoo admin can rebuild them in Odoo's automated actions or server actions studio. This export does not activate the automations — it serves as a rebuild specification.

Platform deep dives

Context on both ends of the pair

GoCanvas logo

GoCanvas

Source

Strengths

  • Mobile-first architecture with offline submission capability for connectivity-poor field environments.
  • Unlimited form creation with no per-form pricing penalty, encouraging broad adoption across use cases.
  • Built-in GPS tagging, photo capture, and signature fields on every submission without add-ons.
  • Navigation button automation for address fields streamlines dispatch-to-destination routing.
  • White Label and Embedded SDK options for ISVs and enterprises needing branded field data capture.

Weaknesses

  • No native contact, account, or opportunity object — purely a data-collection and workflow engine, not a CRM.
  • API v2 and XML support removed by May 2027; integrations built on deprecated endpoints require immediate migration attention.
  • Rate limits and bulk export mechanisms are not publicly documented, creating uncertainty for large-volume migration scoping.
  • PDF template customization is limited, especially for nested tables and structured report layouts.
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 GoCanvas and Odoo CRM.

B

Overall complexity

Standard migration

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

  • Object compatibility

    A

    All 8 core objects map 1:1 between GoCanvas 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

    B

    GoCanvas: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

A GoCanvas to Odoo CRM migration typically takes 3–7 days for setups with fewer than 10,000 submissions and fewer than 5 form definitions. Complex migrations with 15+ forms, extensive custom fields, and 100,000+ submissions run 2–4 weeks. The longest phase is usually the custom field creation plan and Odoo schema setup — FlitStack delivers this before data moves, so the actual data migration clock time is shorter. The delta-pickup window (24–48 hours) runs concurrently with your final GoCanvas usage before cutover.

Adjacent paths

Related migrations to explore

Ready when you are

Move from GoCanvas.
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