CRM migration

Migrate from Ziggu to Odoo CRM

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

Ziggu logo

Ziggu

Source

Odoo CRM

Destination

Odoo CRM logo

Compatibility

83%

10 of 12

objects map 1:1 between Ziggu and Odoo CRM.

Complexity

BStandard

Timeline

3–5 days

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Ziggu and Odoo CRM solve different problems: Ziggu is a project-centric client portal built for property developers, where the primary object is the Project and the client relationship is mediated through a shared portal. Odoo CRM is an opportunity-centric CRM where crm.lead and res.partner form the core object graph, with stages and teams driving the sales process. When migrating from Ziggu to Odoo CRM, the fundamental challenge is converting Ziggu's project-tree structure into Odoo's lead-and-partner model — projects become either crm.lead opportunities (for the sales pipeline) or project.project records (for ongoing delivery), while Ziggu clients and contacts map to res.partner records with the original portal association preserved as a custom field. We migrate the full contact and company dataset, all project-linked units and tasks, document attachments re-uploaded to Odoo ir.attachment storage, and conversation history stored as mail.message records linked to the partner. Ziggu workflows (approval chains, selection stages, milestone triggers) have no Odoo equivalent and must be rebuilt using Odoo's Studio automation or the OCA/connector ecosystem — we export every Ziggu workflow definition as a JSON spec your admin can use as a rebuild reference. Migration runs via Odoo's XML-RPC API with batched writes respecting Odoo's 1-request-per-second rate limit on standard plans.

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

Ziggu logo

Ziggu

What's pushing teams away

  • Teams outgrow the platform when project volumes exceed tier minimums — the per-active-project pricing model becomes expensive at scale and forces difficult decisions about which legacy projects to deactivate.
  • The lack of a public REST API means Zapier/Make integrations must be built around screen scraping or webhook triggers, creating fragile automations that break on UI updates.
  • Property developers with complex multi-entity corporate structures find Ziggu's flat account model insufficient — there is no parent-company hierarchy or multi-subsidiary consolidation view.
  • When a project is deactivated it becomes read-only and cannot accept new tasks, conversations, or file uploads, which creates friction in post-handover support scenarios where the development team still needs to communicate with buyers.

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

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

Ziggu

Project

maps to

Odoo CRM

crm.lead (or project.project)

1:many
Fully supported

Ziggu projects map to two Odoo objects depending on use case: active development projects with milestone tracking become project.project records with a custom Development_Phase__c stage field, while projects in the sales funnel (reservations, pre-seles) map to crm.lead opportunities so they flow through Odoo's pipeline stages. FlitStack AI applies a configurable rule — typically: if Ziggu project stage is 'Sales' or 'Reservation', route to crm.lead; if stage is 'Under Construction' or 'Handover', route to project.project — before migration runs.

Ziggu

Client / Contact

maps to

Odoo CRM

res.partner

1:1
Fully supported

Ziggu client records (name, email, phone, company, address) map directly to Odoo res.partner. Ziggu's portal-access flag becomes a custom field x_portal_access__c boolean. Ziggu's client rating or NPS score migrates as x_client_nps_score__c on the partner record. The res.partner record type (contact vs. company) is inferred from whether Ziggu stores a company name — if company name is present, the partner is created as type 'company'; otherwise as type 'contact' with a blank company partner link.

Ziggu

Unit

maps to

Odoo CRM

product.template + project.task

many:1
Fully supported

Ziggu units (apartment, lot, floor) are a hybrid: they carry a product identity (unit number, floor, area, price) and a project-task identity (selection milestones, approval status). We map the product identity to product.template with a x_unit_reference__c field storing the Ziggu unit ID, and we map the task identity to project.task records under the corresponding project.project. The Odoo product.product variant model handles unit-level pricing if Ziggu stores unit-specific prices.

Ziggu

Task

maps to

Odoo CRM

project.task

1:1
Fully supported

Ziggu tasks linked to a project map directly to Odoo project.task under the corresponding project.project record. Task status (Not Started, In Progress, Blocked, Done) maps to Odoo's stage_id. Task priority maps to Odoo's priority field (0–3). The Ziggu task description, which may contain conversation history, is stored in project.task description as plain text. Owner resolution runs against Ziggu owner email matching Odoo res.users email.

Ziggu

Document / File

maps to

Odoo CRM

ir.attachment

1:1
Fully supported

All Ziggu file attachments (floor plans, selection catalogs, contracts, invoices) are downloaded from Ziggu's storage and re-uploaded to Odoo as ir.attachment records. Each ir.attachment is linked to the correct Odoo model and res_id — project documents link to project.project, unit documents link to product.template, client documents link to res.partner. Odoo's default file size limit is 25MB per attachment; files exceeding this are flagged for chunked upload or alternative storage.

Ziggu

Conversation / Message

maps to

Odoo CRM

mail.message

1:1
Fully supported

Ziggu conversation threads are stored as mail.message records linked to the res.partner (client) record. Each message stores the original sender, timestamp, body text, and an x_ziggu_thread_id__c custom field for traceability. Attachment references within conversation messages are updated to point to the re-hosted ir.attachment records. Mail aliases (if configured) are mapped to Odoo's incoming mail server configuration.

Ziggu

Selection / Approval

maps to

Odoo CRM

project.task.stage + custom field

1:1
Fully supported

Ziggu's approval chain (client selections — flooring type, fixture brand, color scheme — with stage gates and approver sign-offs) maps to a combination of project.task stages and a x_selection_status__c custom field on the task. The approver identity (which Ziggu records as a contact) is stored as a many2one to res.partner on the Odoo task. Approval timestamps are preserved in x_approval_timestamp__c. Odoo does not have a native approval workflow engine in its free CRM — this must be rebuilt in Odoo Studio or via the approval module on Odoo Apps.

Ziggu

Custom Property (Project-level)

maps to

Odoo CRM

ir.model.data (custom fields on project.project)

1:1
Fully supported

Ziggu project-level custom properties (development type, zoning classification, target handover date, etc.) are migrated as Odoo custom fields on the project.project model. Odoo Community requires manual field creation via ir.model.fields; Odoo Enterprise supports Studio. We create fields with the x_ prefix, matching Ziggu's data type (char, selection, date, float) and preserving the pick-list values as Odoo selection options. Each custom field creation is logged in the migration plan for admin verification.

Ziggu

Custom Property (Client-level)

maps to

Odoo CRM

ir.model.data (custom fields on res.partner)

1:1
Fully supported

Ziggu client-level custom properties (client type, preferred contact method, referral source, investment profile) map to Odoo custom fields on res.partner. We create fields matching the Ziggu property type and selection options. Partner tags (Ziggu's grouping mechanism) map to Odoo res.partner.category records — existing tags are matched by name; new ones are created. Tag assignment is applied via res.partner.category_rel.

Ziggu

Workflow / Automation

maps to

Odoo CRM

No equivalent (must rebuild)

1:1
Fully supported

Ziggu automations — stage-change triggers, email notifications on approval completion, SLA timers on task escalation, and client-portal access provisioning rules — have no native Odoo CRM equivalent. We export the full workflow definitions (trigger conditions, actions, recipients) as a structured JSON spec that Odoo admins can use to rebuild in Odoo Studio (freeform automations), Odoo's base_action_rule module, or the OCA/server-tools module. This export is delivered as part of the migration plan, not as a runnable migration artifact.

Ziggu

Report / Dashboard

maps to

Odoo CRM

No equivalent (must rebuild)

1:1
Fully supported

Ziggu reports (project status reports, client NPS over time, unit selection completion rates) do not migrate. Odoo's reporting layer uses a different data model (crm.lead instead of project records). We migrate the underlying data so reports can be rebuilt in Odoo — project.task records are accessible via Odoo's project reporting views — but the report layouts and scheduled delivery configurations require manual rebuild in Odoo Studio or via custom SQL views connected to Odoo's spreadsheet reporting module.

Ziggu

Invoice / Payment Record

maps to

Odoo CRM

account.move

1:1
Fully supported

If Ziggu's Financials add-on is in use, invoice and payment records migrate to Odoo account.move (invoices) and account.payment records. Ziggu invoice line items (unit, description, amount) map to Odoo invoice lines with the product.template reference preserved in the account.move.line. Payment records link to the invoice via reconcile fields. Odoo's chart of accounts structure is applied — accounts are created or mapped per Odoo's default chart-of-accounts template if no existing Odoo accounting setup exists.

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.

Ziggu logo

Ziggu gotchas

High

Deactivated projects lock tasks and files but keep conversations open

High

Per-active-project pricing creates a minimum portfolio cost

Medium

Add-ons scale per active unit, not per project

Medium

No public API means migration runs through manual export workflows

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

  • Odoo has no native client portal — portal access must be reconfigured

    Ziggu's defining feature is its client-facing portal where buyers log in to view project progress, approve selections, and download documents. Odoo CRM has no built-in client portal in its base CRM module — portal access requires the Odoo Documents module, a third-party portal addon from the Odoo Apps store, or custom development using Odoo's portal controller. We preserve the portal-access flag on each res.partner record so your admin can provision portal access post-migration, but the portal interface itself must be set up in Odoo from scratch. Client-facing document links will need to be updated after the Odoo portal is live.

  • Project-to-lead routing requires pre-migration schema decision

    Ziggu projects contain both sales pipeline records (reservations, pre-sales) and delivery records (under construction, handover). Odoo splits these across crm.lead and project.project, which have different data models and different user interfaces. FlitStack AI applies a configurable routing rule based on Ziggu project stage — but if your team has been using Ziggu inconsistently (some 'sales' projects that are physically under construction), the routing rule needs to be validated before migration runs. We surface a data quality report listing every Ziggu project and its suggested Odoo target so your admin can override routing for edge cases before any data moves.

  • Odoo API rate limit of 1 request/second extends migration timelines for large datasets

    Odoo's external API enforces a rate limit of approximately 1 request per second on standard Odoo Online and Odoo.sh plans (the Custom plan removes this limit for API access). For a migration with 50,000 records across projects, tasks, partners, and attachments, this rate limit extends the raw data-write phase significantly — a 50,000-record migration could take 14+ hours of API write time alone. FlitStack AI mitigates this by using Odoo's batch_write RPC method (which can accept up to 1,000 records per call) and by running write operations in parallel streams where the destination API allows. For large migrations, we recommend an Odoo Custom plan or an on-premise Odoo instance with no rate limit to compress the migration window.

  • Ziggu custom properties on Units become two separate Odoo records

    A Ziggu Unit record carries both product information (unit number, floor, area, price) and task information (selection approval status, milestone dates). Odoo separates these concerns: product data lives on product.template (and product.product for variants), while task data lives on project.task. There is no Odoo object that combines both. We split the Ziggu Unit into a product.template record and a linked project.task record, but this means unit-level data appears in two places in Odoo — any Odoo report or dashboard that needs to show both product details and approval status must join across product.template and project.task via the x_ziggu_unit_id__c field we create on both sides.

  • Odoo Community requires manual custom field creation via developer mode

    In Odoo Community (the free open-source edition), custom fields must be created via the Technical Settings menu in developer mode — there is no Studio or no-code field builder. Every Ziggu custom property on projects, clients, and units requires a manually created ir.model.fields record in Odoo before migration data can populate it. FlitStack AI generates a custom-field creation plan listing each field name, type, and selection options so your Odoo admin can create the fields before the migration run. Odoo Enterprise users can use Studio to create fields visually, which is faster. We flag the Enterprise vs Community distinction in the pre-migration schema plan.

Migration approach

Six steps for a successful Ziggu to Odoo CRM data migration

  1. Audit Ziggu data and produce the schema plan

    FlitStack AI connects to Ziggu's API and exports the full object inventory: all projects with stage and owner, all clients with custom properties and NPS scores, all units with selection statuses, all tasks with assignees and due dates, all conversation threads, all attachments with file sizes, and all financial records (if the Financials add-on is active). We produce a schema plan that specifies which Ziggu objects map to which Odoo models, which custom fields need creation in Odoo Community (or Studio setup in Enterprise), what the routing rule is for project-to-lead splitting, and which Ziggu records fall into each Odoo target. Your admin reviews and approves the schema plan before any data moves.

  2. Create Odoo custom fields and resolve users

    Based on the approved schema plan, your Odoo admin creates the custom fields on project.project, res.partner, product.template, and project.task. In Odoo Community, this requires enabling developer mode and adding fields via Technical Settings. We provide the exact field name, type, and selection options for each field. Simultaneously, we resolve Ziggu owner and assignee email addresses against Odoo res.users records — unmatched owners are flagged with their Ziggu email and the suggested Odoo user to invite, so your team can close the gap before migration runs.

  3. Run sample migration with field-level diff

    A representative slice of Ziggu records — typically 50–200 records covering a few projects, their clients, units, tasks, and a sample of conversation threads and documents — migrates to Odoo first. We generate a field-level diff comparing each source field value against the destination field value, with field names named for both Ziggu and Odoo so your admin can verify the mapping is correct. Attachment files are re-hosted in Odoo's filestore and the attachment URLs are validated. Your team signs off on the sample diff before the full migration runs.

  4. Execute full migration with document re-hosting and conversation import

    The full Ziggu dataset migrates to Odoo in dependency order: res.partner records first (since project.project and project.task link to them), then project.project and product.template records, then project.task records linked to the correct project, then mail.message conversation threads linked to partners, then ir.attachment document records linked to their respective Odoo models. Document files are downloaded from Ziggu's storage and uploaded to Odoo's ir_attachment filestore. Write operations use Odoo's batch_write RPC with rate-limit throttling. The Ziggu workflow definition JSON is exported and delivered alongside the migrated data.

  5. Delta-pickup and cutover validation

    After the full migration run completes, FlitStack AI monitors Ziggu for any records created or modified during the migration window. A delta-pickup run (typically 24–48 hours) captures in-flight changes so Odoo reflects Ziggu's final state at go-live. We validate record counts per object, spot-check field values against source, and verify attachment file integrity. An audit log records every migration operation. If reconciliation fails — record counts don't match, a critical field is missing — one-click rollback reverts the Odoo environment to its pre-migration state so your team can investigate and re-run.

Platform deep dives

Context on both ends of the pair

Ziggu logo

Ziggu

Source

Strengths

  • Per-project billing aligns cost to active workload — completed projects can be deactivated without losing history.
  • Built-in client portal with 24/7 transparency reduces the back-and-forth email volume between development teams and buyers.
  • Conversations remain writable on deactivated projects, keeping post-handover support communication open.
  • Structured approval workflows with deadline tracking help property developers collect client decisions without chasing.
  • Survey module integrates NPS and custom question collection at defined project milestones.

Weaknesses

  • No public REST API documented — integrations must rely on webhook triggers or manual export workflows.
  • Per-active-project pricing with tier minimums (10/15/25) makes the platform expensive to maintain for large legacy project portfolios.
  • Deactivated projects become read-only across tasks and files, limiting post-handover activity.
  • Partner Portal, Multi-unit Projects, Financials, Sales, and Surveys are all paid add-ons priced per active unit, layering costs quickly.
  • Flat account structure with no parent-company or multi-subsidiary hierarchy for larger property groups.
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 Ziggu and Odoo CRM.

B

Overall complexity

Standard migration

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

  • Object compatibility

    A

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

    Ziggu: Not publicly published — Ziggu states limits are tuned to integration use cases and confirmed during onboarding.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Most Ziggu-to-Odoo CRM migrations complete in 3–5 days for under 10,000 records. Larger setups with 50,000+ records or complex project-to-lead routing rules extend to 7–14 days. The longest single step is Odoo custom field creation in Community edition (your admin may need 1–3 days to create 20–50 custom fields via developer mode), followed by the API write phase which is throttled by Odoo's 1-request-per-second rate limit on standard plans. Migrations on Odoo Custom plans with no rate limit run significantly faster.

Adjacent paths

Related migrations to explore

Ready when you are

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