CRM migration

Migrate from Referrizer to Odoo CRM

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

Referrizer logo

Referrizer

Source

Odoo CRM

Destination

Odoo CRM logo

Compatibility

83%

10 of 12

objects map 1:1 between Referrizer and Odoo CRM.

Complexity

BStandard

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Referrizer and Odoo CRM serve different business sizes and functional scopes, which is the core driver of this migration. Referrizer bundles referral marketing, SMS, loyalty, and reputation automation into a single subscription for small multi-location service businesses. Odoo CRM is the CRM module of a modular open-source ERP that scales from free Community to Enterprise, making it the destination of choice when Referrizer customers outgrow marketing automation and need integrated inventory, accounting, or project management. The structural difference is that Referrizer stores loyalty points as contact properties while Odoo has no native loyalty object, so we remap these as custom number fields on the Partner record during transformation. We also handle the multi-location scoping that Referrizer requires to prevent cross-contamination, the Smart Inbox gap that cannot be migrated via API, and the Campaign-to-CRM-Lead mapping that preserves referral and offer associations. Workflows, review request automations, and loyalty program rules do not migrate as code; we deliver a written inventory for the customer's admin to rebuild in Odoo Studio or via the Odoo Apps store.

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

Referrizer logo

Referrizer

What's pushing teams away

  • Referrizer lacks a mobile app for sending or receiving text messages, forcing users to log into the web dashboard for all SMS activity — a friction point for mobile-heavy businesses.
  • The platform does not automatically sync new clients from spa or fitness management software; staff must manually enter new contact records into Referrizer, creating double-work.
  • The learning curve is steep at first because the platform combines marketing automation, CRM, loyalty, and reputation tools in a single interface with no guided onboarding.
  • Several users report that pricing increases significantly from the starter tier to professional, and custom feature gating makes it difficult to predict what is included at each level.

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

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

Referrizer

Contact

maps to

Odoo CRM

Partner (res.partner)

1:1
Fully supported

Referrizer Contacts map directly to Odoo res.partner records. The contact name, phone, email, and address fields translate to Odoo's name, phone, email, and street/city/country fields. Custom field properties on the Referrizer contact enumerate during GET /contacts and get created as custom fields on res.partner before migration. Labels from Referrizer become Odoo Tags attached via partner_category. We scope extraction by location_id to prevent cross-location contamination and validate contact counts per location against the Referrizer dashboard before transformation.

Referrizer

Pipeline

maps to

Odoo CRM

CRM Pipeline with Stages

lossy
Fully supported

Referrizer Pipeline stages map to Odoo crm.lead stages within a single Sales Team. Each Referrizer stage name becomes an Odoo stage with a sequence number and probability percentage matching the Referrizer stage order. Odoo stages are managed via Settings > CRM > Stages and can include lost/won flags. If Referrizer has multiple pipelines (multi-stage configurations), we create separate CRM Teams in Odoo and assign stages per team.

Referrizer

Lead

maps to

Odoo CRM

Lead (crm.lead)

1:1
Fully supported

Referrizer leads in the pipeline map to Odoo crm.lead records with type='lead'. The lead status, source, and assigned owner transfer to Odoo's crm_lead fields. Odoo's crm.lead model supports a stage_id pointing to a stage in the pipeline. We resolve Referrizer's hubspot_owner_id or owner email to an Odoo res.users record by email match before inserting the lead.

Referrizer

Campaign

maps to

Odoo CRM

CRM Lead or Tag

1:1
Fully supported

Referrizer Campaigns (Regular and Automated modes) map to Odoo crm.lead records tagged with the campaign name, or to a custom campaign model if the customer has installed the Odoo CRM Campaigns module. Campaign type and status migrate as custom fields. Contact associations within the campaign transfer as tag assignments on the Partner record. Automated campaign reentry rules and trigger intervals do not migrate; we document the campaign configuration in the automation inventory for the admin to rebuild in Odoo.

Referrizer

Offer / Referral Code

maps to

Odoo CRM

Product or Custom Field on Partner

1:1
Fully supported

Referrizer offer codes and referral link associations map to Odoo as custom Char fields on res.partner (referral_code, offer_code) or as a Product record with a promotional price if the offer drives a product discount. Referral reward structures (point value per referral) migrate as custom fields documenting the reward logic. We do not migrate referral relationship graphs as relational data unless the destination supports a custom referral object, which most Odoo CRM configurations do not.

Referrizer

Loyalty Points

maps to

Odoo CRM

Custom Number Field on Partner

1:1
Fully supported

Referrizer loyalty point balances are stored as numeric contact properties, not a distinct object. We extract these during contact enumeration, separate them from standard contact fields, and create a custom float or integer field loyalty_points on res.partner before migration. The field name is configurable during scoping. Point balance history (transactions) does not migrate as a separate table unless the customer has a custom loyalty module installed in Odoo.

Referrizer

Review Request

maps to

Odoo CRM

CRM Lead Note or Custom Activity

1:1
Fully supported

Referrizer review request history (which contacts received requests, when, and to which platform) is stored as activity on the contact record. We export this as a formatted note on the Odoo res.partner with review_request_date and review_platform fields. Automated review request triggers (the automation behind the campaign) do not migrate; we document the review request campaign in the automation inventory for the admin to rebuild using Odoo Email Marketing or a third-party review integration app.

Referrizer

Label / Segment

maps to

Odoo CRM

Partner Category (Tag)

1:1
Fully supported

Referrizer contact labels map to Odoo partner_category records attached to res.partner via the category_id many2many field. Label names become category names. Multi-label contacts receive multiple Odoo tags. If the label count is large (over 200 distinct labels), we discuss with the customer whether to consolidate into a smaller tag set or maintain the full label taxonomy as Odoo tags.

Referrizer

Activity / Engagement Feed

maps to

Odoo CRM

CRM Activity (mail.message, crm.activity)

1:1
Fully supported

Referrizer contact activity feed events (UTM tracking, campaign opens, link clicks) export as Odoo mail.message records linked to the res.partner via model=res.partner and res_id pointing to the partner ID. Call, meeting, and task engagements map to Odoo crm.activity records. Email engagements map to mail.message with email=True. The activity timeline ordering is preserved using the original Referrizer timestamp as the message date. We do not migrate Smart Inbox conversational threads because Referrizer exposes no API endpoint for them.

Referrizer

User / Team Member

maps to

Odoo CRM

User (res.users)

1:1
Fully supported

Referrizer team members export by email and name. We match by email against Odoo res.users. Owners assigned to Contacts, Leads, and Deals resolve to the matched Odoo user ID during import. Any Referrizer owner without a matching Odoo user goes to a reconciliation queue for the admin to provision before record import resumes. Role-based permission structures in Referrizer do not map directly to Odoo's access rights model and are documented separately.

Referrizer

Location

maps to

Odoo CRM

Company (res.company) or Partner Division

1:1
Fully supported

Referrizer multi-location accounts map to Odoo res.company records (if the customer uses Odoo multi-company) or to a custom division field on res.partner if they prefer a single-company structure. We scope extraction by Referrizer location_id during the extract phase and validate that contact counts per location match the Referrizer dashboard totals before loading. Cross-location contact assignment during migration is prevented by enforcing the location filter during all extraction queries.

Referrizer

Custom Field Schema

maps to

Odoo CRM

Custom Field on res.partner or crm.lead

lossy
Fully supported

Referrizer custom fields are contact-level key-value properties enumerated via GET /contacts before migration. We inspect all custom field names and types (string, number, date, checkbox) and pre-create matching Odoo custom fields on res.partner using Odoo Studio or direct XML definition. Odoo requires developer mode to create fields via the UI; we handle the XML-based field creation in the migration schema phase. Fields that have no Odoo equivalent (e.g., complex JSON properties) are stored as Char fields with the JSON stringified.

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.

Referrizer logo

Referrizer gotchas

High

No bulk export API — migration relies on Zapier or CSV

High

Smart Inbox conversations are not accessible via API

Medium

Loyalty points stored as contact properties, not a distinct object

Medium

Rate limits not publicly documented

Medium

Multi-location scoping required to avoid cross-contamination

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

  • Referrizer has no bulk export API

    Referrizer does not publish a bulk export or batch API endpoint. Data egress is limited to Zapier integrations with external platforms and manual CSV exports from the UI. For contact databases over 1,000 records, we automate CSV generation by iterating the paginated API (100 records per page) and stitching pages together before transformation. This adds an extraction step not present in platform migrations with a dedicated export API. We flag this during scoping, budget additional time for the extract phase, and provide the customer with the expected extraction timeline before extraction begins.

  • Smart Inbox conversations are inaccessible via API

    Referrizer's Smart Inbox stores 2-way SMS conversational threads between contacts and businesses, but no documented public API endpoint exposes this data. Only campaign-level sent/delivered/open metrics are available via the Reports API. When migrating from Referrizer, inbox message history is silently lost unless it has been manually exported by the customer before engagement begins. We explicitly confirm with the customer during scoping whether inbox data is business-critical and document that it cannot be migrated programmatically. If the customer has manually exported Smart Inbox data to CSV, we can import it as notes on the Partner record.

  • Multi-location scoping must be explicit or contacts cross-contaminate

    Referrizer's multi-location model allows a single account to manage multiple business locations. Contacts are associated with specific locations, but the API does not enforce location-level filtering by default. An extraction without explicit location scoping pulls contacts from all locations into a single export. We query and scope by location_id during extraction and validate that contact counts match the expected location totals before transformation. Multi-location migrations require the customer to confirm the location list and confirm that each contact belongs to exactly one location during scoping.

  • Odoo Lead converts to Partner but custom fields do not auto-propagate

    When an Odoo crm.lead is converted to an Opportunity or directly to a Partner via the Convert action, custom fields on the lead do not automatically populate the corresponding Partner fields unless a custom conversion method is defined in Python. Referrizer custom contact properties mapped to crm.lead custom fields may not survive the lead-to-partner conversion automatically. We document this behavior during migration handoff and recommend that the customer uses Odoo Studio to configure a conversion mapping or works with an Odoo developer to extend the _convert_opportunity method if lead-to-partner conversion is a daily workflow.

  • Loyalty points, SMS, and review management require separate Odoo apps

    Referrizer bundles loyalty points, 2-way SMS, and automated review requests as native features. Odoo CRM does not include these in the core CRM module. After migration, the customer must install Odoo apps from the Odoo Apps Store for loyalty (e.g., Loyalty Management app), SMS (SMS Marketing module), and review management (third-party integration or custom). We do not migrate the referral reward rules or loyalty program configuration as logic; we migrate the point balance as a data field on the Partner. The program's rule engine requires rebuilding in the selected Odoo loyalty app.

Migration approach

Six steps for a successful Referrizer to Odoo CRM data migration

  1. Discovery and scoping

    We audit the Referrizer portal across contacts (total count and per-location breakdown), custom fields, pipeline stages, active campaigns, loyalty point balances, team members, and locations. We extract via the paginated API (100 records per page) and confirm with the customer whether Smart Inbox data has been manually exported. We pair this with a review of the target Odoo edition (Community or Enterprise), existing Odoo setup if any, and the Odoo apps planned for installation. The discovery output is a written migration scope with record counts per object, a list of custom fields to pre-create in Odoo, and a confirmed extraction timeline.

  2. Odoo schema design and custom field pre-creation

    We design the destination schema in Odoo. This includes creating custom fields on res.partner for Referrizer custom contact properties (using Odoo Studio or XML definition), creating CRM pipeline stages matching the Referrizer stage order and probability, creating partner categories (tags) from Referrizer labels, and creating a loyalty_points custom field on Partner. If multi-company structure is selected, we configure res.company records for each Referrizer location. Custom fields are created in a Sandbox or staging database first for validation. The schema design is documented field-by-field and shared with the customer for sign-off before extraction begins.

  3. Multi-location extraction and validation

    We extract Referrizer contacts by iterating location_id filters for each location account. We validate that the per-location contact count matches the Referrizer dashboard totals for that location and that no contacts appear in more than one location export. Loyalty point values are extracted as a separate column during contact enumeration and flagged for the custom Partner field mapping. All extracted records are staged in a migration database with source system ID preserved for reconciliation.

  4. Sandbox migration and reconciliation

    We run a full migration into an Odoo test database (or Sandbox environment if available) using the full production data volume. The customer reconciles record counts (Partners in, Leads in, Activities in), spot-checks 25-50 random Partner records against Referrizer contact data, and validates that loyalty point values, labels, and custom field data appear correctly. The customer signs off the mapping before production migration begins. Any mapping corrections happen here, not in production.

  5. Production migration in dependency order

    We run production migration in record-dependency order: Odoo Users validated (manual provisioning confirmed), Partners loaded (with custom fields, loyalty points, and tags resolved), Leads loaded (with stage and owner resolved), Activities loaded as mail.message and crm.activity records, and Campaigns documented as tag assignments. Each phase emits a row-count reconciliation report before the next phase begins. Owner resolution matches Referrizer owner email to Odoo res.users email; unmatched owners go to a queue for admin provisioning before the next phase.

  6. Cutover, validation, and automation inventory handoff

    We freeze Referrizer writes during cutover, run a final delta migration of any records modified during the migration window, then enable Odoo CRM as the system of record. We deliver a written inventory of all Referrizer Campaigns, automated workflows, review request sequences, and loyalty program rules that require rebuilding in Odoo (or the selected Odoo loyalty/review app). We support a one-week hypercare window for reconciliation issues. We do not rebuild Referrizer automations as Odoo automation rules inside the migration scope; that is a separate engagement or an internal admin task.

Platform deep dives

Context on both ends of the pair

Referrizer logo

Referrizer

Source

Strengths

  • Combines referral marketing, SMS, email, loyalty, and reputation management in one platform for small businesses.
  • Free tier available indefinitely with no credit card required and unlimited contacts.
  • API supports bearer token authentication with paginated contact endpoints up to 100 records per page.
  • Integrates natively with popular fitness and spa software including Mindbody, Booker, Acuity, and Club Ready.
  • Strong customer support ratings (4.8/5) with 24/7 live rep available on paid tiers.

Weaknesses

  • No public bulk export or migration API endpoint — data moves through Zapier integrations or manual CSV exports only.
  • Smart Inbox message history is not accessible via the public API, so conversational data cannot be migrated.
  • No native mobile app for iOS or Android, forcing all SMS activity through the web dashboard.
  • Custom field schema must be enumerated manually before migration since no dedicated schema endpoint is documented.
  • Rate limits are not publicly documented, creating uncertainty during large-volume API reads.
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 Referrizer 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

    Referrizer: Not publicly documented; API returns 429 TOO_MANY_REQUESTS on overages.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Migrations under 10,000 contacts with a single location and no loyalty point remapping land between three and five weeks. Migrations with multi-location scoping, loyalty point mapping to custom Partner fields, active referral program associations, and engagement histories over 200,000 records move to seven to twelve weeks because of the paginated extraction stitching, custom field schema design, and sandbox-to-production validation cycle. Odoo edition selection (Community vs Enterprise) does not significantly affect migration timeline but affects post-migration app installation scope.

Adjacent paths

Related migrations to explore

Ready when you are

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