CRM migration

Migrate from Wetroo to Odoo CRM

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

Wetroo logo

Wetroo

Source

Odoo CRM

Destination

Odoo CRM logo

Compatibility

64%

9 of 14

objects map 1:1 between Wetroo and Odoo CRM.

Complexity

BStandard

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Wetroo to Odoo CRM is a migration from a messaging-first, WhatsApp-embedded CRM to a modular open-source ERP with an integrated CRM layer. Wetroo stores Leads and Deals as separate objects tied to WhatsApp conversation threads, while Odoo CRM uses a single crm.lead model where stages drive the lifecycle from unqualified prospect to closed-won opportunity. We resolve that structural difference during scoping, splitting Wetroo Lead and Deal records into Odoo crm.lead entries with appropriate stage assignments. Owner records from Wetroo map to Odoo Users, with team membership preserved as custom fields or Odoo Teams. WhatsApp conversation history is not extractable from Wetroo and must be retained separately in WhatsApp. Automation playbooks, WhatsApp sequences, and workflow triggers do not migrate 1:1; we deliver a written inventory of every playbook for the customer's admin to rebuild in Odoo Server Actions or Studio automations. Odoo CRM is available as a SaaS subscription or self-hosted deployment, with the CRM module priced per user on Odoo Online and Odoo.sh.

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

Wetroo logo

Wetroo

What's pushing teams away

  • Multiple reviews report the software contains persistent glitches that degrade reliability and disrupt daily sales workflows.
  • Support response times averaging 2–3 days create friction when production issues arise, with users describing slow ticket resolution.
  • Missing or inadequate MIS and reporting features prevent teams from getting a clear pipeline overview, driving users toward platforms with stronger analytics.
  • WhatsApp automation can get stuck without resolution, and users report inability to get working fixes from the support team.
  • Limited notification options and missing workflow controls force teams to build manual workarounds that reduce the value of the automation claim.

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

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

Wetroo

Contact

maps to

Odoo CRM

res.partner

1:1
Fully supported

Wetroo Contact records map directly to Odoo res.partner with partner_type set to 'contact'. The Wetroo name, phone (stored as mobile or phone), and email map to the corresponding Odoo partner fields. Custom fields on Wetroo Contact are created as ir.model.fields on res.partner before migration. We extract contacts via the Wetroo contact list API endpoints and insert via Odoo's XML-RPC or csv import, using email as the dedupe key where available.

Wetroo

Lead

maps to

Odoo CRM

crm.lead

1:1
Fully supported

Wetroo Lead records map to Odoo crm.lead with type='lead'. The Wetroo lead_status, lead_source, and qualification_score migrate to crm_lead custom fields or Odoo's built-in priority and tag fields. We preserve the original Wetroo lead identifier in a custom field wetroo_lead_id__c for audit traceability. Leads without an email are stored with phone as the primary identifier in Odoo's phone index.

Wetroo

Deal

maps to

Odoo CRM

crm.lead

1:many
Fully supported

Wetroo Deals map to Odoo crm.lead with type='opportunity'. The deal_value maps to Odoo's planned_revenue. The Wetroo deal stage maps to the corresponding Odoo crm.lead.stage_id entry by sequence order, not name match, because stage names are customer-defined. We compute the mapping during scoping by querying the stage sequence in Wetroo and matching by position to Odoo's stage list. The Wetroo deal owner maps to Odoo user_id on the crm.lead.

Wetroo

Pipeline

maps to

Odoo CRM

crm.lead.stage (per pipeline)

lossy
Fully supported

Wetroo pipelines map to separate stage sequences in Odoo crm.lead.stage. If Wetroo has multiple pipelines, we create multiple stage sequences by setting the pipeline_id on the stage records. Wetroo stage names and their WhatsApp workflow trigger associations are preserved as custom fields on the stage records in Odoo for the customer's admin to reference when rebuilding automations.

Wetroo

Pipeline Stages

maps to

Odoo CRM

crm.lead.stage

lossy
Mapping required

Wetroo stage sequence and names are customer-defined and tied to WhatsApp workflow triggers. We map stage order by sequence number, not by name, and set the probability percentage on each Odoo stage to match the original Wetroo stage probability where recorded. Any stages with no clear Odoo equivalent are flagged during scoping and mapped to a catch-all stage with a custom note.

Wetroo

Custom Fields

maps to

Odoo CRM

ir.model.fields

1:1
Mapping required

Wetroo custom fields on Contact, Lead, and Deal are discovered via the API before migration. We create matching field definitions in Odoo using Studio (for no-code) or direct ir.model.fields XML-RPC creation, matching field types (char, selection, relational, text) to Odoo's field type system. Selection fields in Wetroo become selection fields in Odoo with the same option values. Relational fields (e.g., linking a Deal to a custom object) require the target custom object to be created first.

Wetroo

Users and Owners

maps to

Odoo CRM

res.users

1:1
Mapping required

Wetroo owners (assigned to Deal and Lead) are extracted with name and email. We match by email against Odoo's res.users table. Any Wetroo owner without a matching Odoo User is placed in a reconciliation queue; the customer's Odoo admin provisions missing users before record migration resumes. Inactive Wetroo owners (departed team members) are mapped to inactive Odoo users with a flag field for admin review.

Wetroo

Teams

maps to

Odoo CRM

crm.team

1:1
Mapping required

Wetroo team membership records are extracted as a relational export (owner + team name + member list). Odoo CRM Teams (crm.team) are created with the same team names. Member assignment maps to the crm.team member relation; individual members are linked via res.users membership. If Wetroo's per-owner model included sub-team hierarchies, we flatten them to a single team level in Odoo and flag the hierarchy for manual reorganization if needed.

Wetroo

Automation Sequences

maps to

Odoo CRM

Server Actions (reference document)

1:1
Mapping required

Wetroo automation playbooks and WhatsApp-triggered sequences are JSON-configured workflows stored in Wetroo's system. We export playbook names, trigger conditions, action steps, and delay configurations as a structured reference document delivered alongside the migration. Odoo Server Actions and Automated Actions provide equivalent functionality, but the logic must be rebuilt by the customer's Odoo admin or an Odoo partner because trigger-event architectures differ between platforms.

Wetroo

WhatsApp Conversations

maps to

Odoo CRM

Not migratable

lossy
Not supported

Wetroo stores WhatsApp conversation metadata and chat transcripts in WhatsApp's infrastructure, not in Wetroo's own database. No export mechanism exists for conversation history via the Wetroo API or any data dump. We extract and migrate all structured Contact, Lead, and Deal records that originated from conversations, but the conversation threads themselves remain in WhatsApp. We advise customers to export critical chat history directly from WhatsApp before the migration cutover date.

Wetroo

Deal Attachments

maps to

Odoo CRM

ir.attachment

1:1
Fully supported

Wetroo supports file attachments on Deal records. We extract attachments by referencing the deal ID, download the files, and upload them to Odoo ir.attachment records linked to the corresponding crm.lead via res_model='crm.lead' and res_id set to the migrated opportunity ID. File names and MIME types are preserved. Attachments exceeding 10 MB are flagged for manual review if Odoo file storage limits apply.

Wetroo

Lead Status

maps to

Odoo CRM

crm.lead.tag or custom stage field

lossy
Fully supported

Wetroo's lead_status values (e.g., New, Contacted, Qualified, Lost) map to Odoo crm.lead.tag records as a tag set. If the customer uses a specific lead status taxonomy that exceeds what tags represent, we create a selection field lead_status__c on crm.lead and populate it during migration. The mapping is confirmed during scoping with the customer before any data transforms run.

Wetroo

Lead Qualification Score

maps to

Odoo CRM

crm.lead custom field

1:1
Fully supported

Wetroo records a qualification_score on Lead records. We preserve this as a float field qualification_score__c on crm.lead, created as an ir.model.field before migration. If Odoo's CRM module has a built-in scoring model (available in Enterprise), the score migrates to the native scoring field; otherwise it remains as a custom field for reporting.

Wetroo

Deal Closed-Won / Closed-Lost Reason

maps to

Odoo CRM

crm.lead lost_reason_id

1:1
Fully supported

Wetroo records closed_won and closed_lost flags and optionally a closed_reason text on Deal. In Odoo, type='opportunity' crm.lead records set probability=0 for Lost and probability=100 for Won, with lost_reason_id populated from a predefined selection list. We create a custom lost_reason selection field if Wetroo's reason vocabulary does not map to Odoo's default options.

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.

Wetroo logo

Wetroo gotchas

High

No documented public API rate limits or quota structure

High

WhatsApp conversation history is not exportable from Wetroo

Medium

Automation sequences do not transfer 1:1 to destination CRMs

Medium

Support SLA and escalation paths are undocumented

Low

Pricing page uses INR; annual discounts are tiered inconsistently

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

  • WhatsApp conversation history is not stored in Wetroo

    Wetroo embeds CRM functionality inside WhatsApp, but the actual chat transcripts and conversation metadata live in WhatsApp's own infrastructure, not in Wetroo's database. There is no API endpoint, CSV export, or data dump mechanism that retrieves conversation history. We extract all structured records (Contacts, Leads, Deals) that originated from those conversations, but the conversation threads themselves cannot migrate. We advise customers to export critical WhatsApp chat history directly from WhatsApp or WhatsApp Business before the migration cutover date. If conversation context is required for deal history, the customer should use WhatsApp's native chat export feature separately.

  • Wetroo API has no published rate limits

    Wetroo's API reference (api.wetroo.com) does not publish rate limits, quota thresholds, or throttling headers. When we run migration exports against Wetroo's API, we cannot preemptively throttle requests to stay within safe limits, risking undocumented throttling that stalls or fails an in-progress extraction. We monitor HTTP 429 responses dynamically and apply exponential backoff, but we recommend scheduling the Wetroo data extraction during off-peak hours (weekends or evenings) to reduce the probability of hitting undocumented throttling mid-project.

  • Wetroo stage names do not map by name to Odoo stages

    Wetroo pipelines use customer-defined stage names tied to WhatsApp workflow triggers (e.g., 'WhatsApp Sent', 'Reply Received', 'Deal Confirmed'). These names are arbitrary and vary per customer, so a direct name-to-name map is not valid. We map by stage sequence number instead, matching Wetroo stage position N to Odoo crm.lead.stage sequence N, and we preserve the original Wetroo stage name as a custom field on each stage record in Odoo. Any stages with non-standard positioning (skipped sequences, renamed mid-pipeline) are flagged for manual confirmation before migration.

  • Automation playbooks require complete rebuild in Odoo

    Wetroo's automation sequences are JSON-configured workflow triggers bound to WhatsApp events. These do not export in a format compatible with Odoo Server Actions, Automated Actions, or Studio workflows. We export the playbook structure (trigger type, conditions, steps, delays) as a structured reference document delivered with the migration package. The customer's Odoo admin or an Odoo partner must rebuild each playbook from scratch in Odoo Studio or as server actions. We do not include workflow rebuild in the standard migration scope.

  • Per-owner vs per-user pricing creates a team reconciliation gap

    Wetroo charges per owner (one flat fee per sales owner, with up to 20 teams included). Odoo CRM charges per user (each team member who accesses Odoo is a licensed user). If a Wetroo customer with one owner and 15 team members migrates, the Odoo cost increases because all 15 team members require Odoo user accounts. We identify this cost delta during scoping so the customer understands the Odoo licensing commitment before migration begins. Odoo Online CRM starts at approximately €25 per user per month; self-hosted Odoo Community eliminates per-user licensing but introduces infrastructure overhead.

Migration approach

Six steps for a successful Wetroo to Odoo CRM data migration

  1. Discovery and scoping

    We audit the Wetroo portal via API extraction and manual data sampling across Contacts, Leads, Deals, pipeline stages, custom fields, owner records, team memberships, and automation playbooks. We identify the full extent of custom field definitions, duplicate record prevalence, and any pipeline configurations that will require stage sequence mapping. The discovery output is a written migration scope document with object counts, custom field inventory, and a stage-mapping table. We also confirm the customer's Odoo edition and deployment method (Online,.sh, or self-hosted) during this phase.

  2. Schema design in Odoo

    We design the destination Odoo CRM schema before any data moves. This includes creating custom fields on res.partner and crm.lead via Odoo Studio or XML-RPC API calls, configuring crm.lead.stage records to match Wetroo's pipeline stage sequence (by position, not name), setting stage probability percentages, and creating crm.team records for each Wetroo team. Custom field types are matched to Odoo's field system: selection fields for enumerated values, many2one for relational lookups, char/text for free text. Schema is validated in an Odoo sandbox or test database before production migration begins.

  3. Sandbox migration and reconciliation

    We run a full migration into the customer's Odoo test environment using production-like data volumes. The customer's CRM admin reviews record counts (Partners in, Leads in, Opportunities in), spot-checks 20-30 records against the Wetroo source for field accuracy, and validates that stage mappings are correct. Any field mapping corrections, missing custom field definitions, or stage sequence adjustments are documented and applied before production migration begins. No production data is migrated until the sandbox sign-off is received.

  4. Owner and team reconciliation

    We extract every distinct Wetroo Owner (deal owner and lead owner) and match by email against Odoo's res.users table. Owners without a matching Odoo User are placed in a reconciliation queue. The customer's Odoo admin provisions any missing users as active or inactive depending on whether the person is still with the organization. Team membership is reconciled against crm.team records created in the schema design phase. Migration cannot proceed past record insertion until all OwnerId references are resolvable.

  5. Production migration in dependency order

    We migrate production data in the following dependency order: res.partner records first (no dependencies), then crm.team (team structure ready for crm.lead assignment), then crm.lead records as type='lead' (Wetroo Leads), then crm.lead records as type='opportunity' (Wetroo Deals) with OwnerId and team_id resolved. Custom field values are populated during each phase. Ir.attachment records are inserted after their parent crm.lead records are confirmed in Odoo. Each phase emits a row-count reconciliation report before the next phase begins. We use Odoo's XML-RPC API with batch chunking and error logging; large imports exceeding API timeout thresholds are retried with smaller batch sizes.

  6. Cutover, validation, and automation handoff

    We freeze Wetroo write access during the cutover window, run a final delta migration of any records created or modified during the migration period, then set Odoo CRM as the system of record. We deliver the automation playbook reference document (exported from Wetroo) to the customer's Odoo admin with step-by-step descriptions for rebuilding each sequence in Odoo Studio. We support a one-week hypercare window for reconciliation issues reported by the sales team. We do not rebuild Wetroo automations as Odoo Server Actions inside the migration scope; that is a separate engagement handled by the customer's admin or an Odoo partner.

Platform deep dives

Context on both ends of the pair

Wetroo logo

Wetroo

Source

Strengths

  • WhatsApp-native CRM positions chat as the primary sales channel, not an add-on integration.
  • Per-owner pricing is predictable and scales without per-seat cost increases.
  • Mobile apps on iOS and Android extend full pipeline access to field teams.
  • Built-in automation templates reduce configuration time for non-technical users.
  • 24/7 support is included on all plans with published CSAT metrics.

Weaknesses

  • Software stability concerns cited across multiple reviews — glitches and reliability issues affect daily workflows.
  • Support responsiveness averaging 2–3 days lags behind competing CRM platforms.
  • Reporting and MIS features are insufficient for teams requiring detailed pipeline analytics.
  • API documentation is minimal and publicly undocumented, limiting custom integration options.
  • WhatsApp-specific automation can fail silently without adequate alerting or recovery mechanisms.
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. 1 of 8 objects need a mapping; the rest are 1:1.

B

Overall complexity

Standard migration

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

  • Object compatibility

    B

    1 of 8 objects need a mapping; the rest are 1:1.

  • 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

    Wetroo: Not publicly documented.

  • Data volume sensitivity

    A

    Wetroo exposes a bulk API — large-volume migrations stream efficiently.

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Most migrations land between three and five weeks for accounts under 10,000 Contacts and 2,000 Deals with a straightforward pipeline structure and no custom objects. Migrations with custom field schemas, multiple pipeline configurations, large team rosters (over 30 users), or Wetroo instances with non-standard stage sequences require additional schema design and reconciliation time, extending to seven to twelve weeks. Odoo deployment type (Online SaaS vs self-hosted) also affects timeline if infrastructure provisioning is required.

Adjacent paths

Related migrations to explore

Ready when you are

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