CRM migration

Migrate from Ringy (formerly iSales) to Odoo CRM

Field-level mapping, validation, and rollback between Ringy (formerly iSales) and Odoo CRM. We move data and schema; workflows are rebuilt natively in Odoo CRM.

Ringy (formerly iSales) logo

Ringy (formerly iSales)

Source

Odoo CRM

Destination

Odoo CRM logo

Compatibility

75%

9 of 12

objects map 1:1 between Ringy (formerly iSales) and Odoo CRM.

Complexity

CModerate

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Ringy (formerly iSales) to Odoo CRM is a migration from a communications-first sales CRM with a flat-rate pricing model to an open-source ERP suite where CRM is one module among many. Ringy has no documented public API, so all data extraction relies on the UI-based CSV export for Leads, which also surfaces associated Contacts, Companies, and Deals. We preserve pipeline and stage names as metadata during extraction and remap them to Odoo CRM stage sequences. We audit the auto-block keyword list to identify records that may have been silently filtered from exports before migration scoping begins. Drip campaign logic, automation sequences, and built-in VOIP call logs cannot migrate; we deliver a written inventory of these for the customer admin to rebuild in Odoo Studio or via custom Python modules.

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

Ringy (formerly iSales) logo

Ringy (formerly iSales)

What's pushing teams away

  • Pricing opacity and unpredictable usage costs — multiple reviewers report confusion about how charges for minutes and texts accumulate beyond included allowances.
  • Performance slowness and sluggishness — the iSales CRM system can be slow at times according to reviewers, which impacts daily productivity for high-volume users.
  • Auto-blocking behavior silently filters leads from the pipeline based on keywords without clear notification to the user, causing lost prospects.
  • Text message threading is difficult to follow in the interface, creating confusion for teams managing high volumes of inbound and outbound SMS conversations.
  • No documented public API means teams with complex integration needs or large data volumes hit walls that drive them toward platforms with better developer access.

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 Ringy (formerly iSales) objects map to Odoo CRM

Each row shows how a Ringy (formerly iSales) 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.

Ringy (formerly iSales)

Lead

maps to

Odoo CRM

Lead

1:1
Fully supported

Ringy Leads are the primary record object and the only object with a documented CSV export path. The UI Generate CSV function supports filtering and an Include all custom fields checkbox. We extract all Lead fields including name, phone, email, address, status, source, and any custom properties. Ringy Lead status values map to Odoo CRM stage names or a dedicated state field. We preserve the original Lead ID in a custom Char field for audit traceability. Any auto-blocked records identified during scoping are flagged separately and imported into a dedicated Odoo Lead queue for manual review rather than silently discarded.

Ringy (formerly iSales)

Company

maps to

Odoo CRM

Contact (is_company=True)

1:1
Fully supported

Company records in Ringy are not exported via a separate path; they are extracted from Lead CSV rows where a company name field is populated. We normalize these into Odoo CRM Contact records with is_company=True and parent_id left null. The company name becomes the Contact name field, and any company-level address data is mapped to the contact address fields. If Ringy has a separate Companies section with dedicated fields, we request a filtered export of that subset and map it to Odoo Partner records. Ringy custom fields on companies are preserved as Odoo custom Char or selection fields on the Partner model.

Ringy (formerly iSales)

Contact

maps to

Odoo CRM

Contact (is_company=False)

1:1
Fully supported

Ringy Contact records are exported via the same Lead CSV export workflow, since Ringy conflates Leads and Contacts in a single record model. We extract contact-level fields (name, phone, email, custom properties) and map them to Odoo CRM Contact with is_company=False. Email addresses serve as the dedupe key during import. Any associated parent company is resolved by matching the Ringy company name against the previously migrated Contact (is_company=True) records and linked via parent_id. Custom fields on contacts migrate as Odoo custom fields on the res.partner model.

Ringy (formerly iSales)

Deal

maps to

Odoo CRM

CRM Opportunity

1:1
Fully supported

Deals in Ringy are associated with Leads and included in CSV exports via filtering. Pipeline names and stage definitions are preserved as metadata during extraction. We map each Ringy pipeline to an Odoo CRM pipeline with corresponding stage sequences, configuring Odoo stages to match Ringy stage names and ordering before migration begins. Deal amount, close date, owner, and associated Lead reference migrate directly. Closed-won and closed-lost statuses from Ringy map to Odoo CRM Won and Lost stage values. Any Ringy custom fields on Deals migrate as Odoo custom fields on crm.lead.

Ringy (formerly iSales)

Activity

maps to

Odoo CRM

Mail Thread Message / Note

1:1
Fully supported

Call, email, and SMS activity history embedded in Ringy Lead records migrates as Odoo CRM Mail Thread messages attached to the corresponding Lead or Opportunity. Activity timestamps, types (call, email, sms), disposition data, and notes transfer to mail.message records with message_type set accordingly. Call duration and disposition migrate to custom fields on the message record. Activity ordering is preserved by setting create_date to the original Ringy timestamp. Note: Call recordings and full SMS thread content are not accessible via any documented export path and are flagged as non-migratable in the inventory document.

Ringy (formerly iSales)

Custom Properties

maps to

Odoo CRM

Custom Fields (ir.model.fields)

lossy
Mapping required

Custom fields on Ringy Leads must be explicitly included during CSV export via the Include all custom fields checkbox. We verify this option is selected during extraction scoping. Each Ringy custom field is analyzed by data type (text, number, date, picklist) and mapped to the equivalent Odoo CRM field type (Char, Float, Date, Selection). Picklist values from Ringy become Selection field options in Odoo. We pre-create all custom fields in Odoo via Settings before any data import begins. Any Ringy custom fields that cannot be mapped (e.g., unsupported data types) are documented and migrated as Char fields with original values preserved for later reclassification.

Ringy (formerly iSales)

Tag

maps to

Odoo CRM

Tag

1:1
Fully supported

Tags applied to Ringy records are extracted from Lead CSV rows where tag values appear in a delimited column. Tags are mapped to Odoo CRM Tags (crm.tag), which are a standard Odoo CRM feature. Multiple comma-separated Ringy tags on a single record become multiple Tag records linked via crm.lead.tag.rel. We preserve the full original tag taxonomy during migration so that the customer's admin can reorganize tagging logic in Odoo post-migration. If Ringy uses a taxonomy or hierarchical tag structure, we document it in the migration inventory for manual rebuild in Odoo.

Ringy (formerly iSales)

Owner

maps to

Odoo CRM

User

1:1
Fully supported

Ringy owners referenced on Leads, Companies, and Deals are extracted by email from the CSV export. We resolve Ringy owners by email match against the destination Odoo CRM User records. Any Ringy owner without a matching Odoo User is held in a reconciliation queue for the customer admin to provision before record import resumes. Owner resolution must complete before Deal and Lead migration begins because Odoo CRM Opportunity requires an assigned user. Inactive Odoo users can be provisioned with no login access to preserve historical assignment without granting active licenses.

Ringy (formerly iSales)

Lead Status

maps to

Odoo CRM

Stage

lossy
Fully supported

Ringy Lead status values (new, contacted, qualified, lost, converted) map to Odoo CRM stage sequences. We configure Odoo stages to match Ringy status labels and ordering before migration. Each stage probability percentage from Ringy is applied to the corresponding Odoo stage. Stage configuration is deployed via Odoo data import before any record migration begins. If the customer uses Ringy status values that do not map directly to Odoo stage concepts, we propose a mapping during scoping and document the rationale.

Ringy (formerly iSales)

Pipeline

maps to

Odoo CRM

CRM Pipeline

lossy
Fully supported

Ringy deal pipeline names and stage sequences are preserved as metadata during CSV extraction. We create corresponding Odoo CRM pipelines with matching stage sequences before migration begins. Each Ringy pipeline maps to a separate Odoo CRM pipeline view in the Kanban interface. Pipeline configuration is deployed via Odoo Settings before any Opportunity records are imported. If the customer has a single Ringy pipeline, we create one Odoo pipeline; multiple Ringy pipelines each become separate Odoo pipelines, which is a native Odoo CRM feature.

Ringy (formerly iSales)

Drip Campaign

maps to

Odoo CRM

Studio Automation / Custom Module

1:1
Fully supported

Drip campaigns and automated follow-up sequences in Ringy are stored as platform-native automation objects with no documented export API. Campaign structure, sequence logic, timing rules, and branching conditions cannot be extracted programmatically. We document the visible campaign structure including campaign names, associated stages, sequence templates, and keyword triggers as reference metadata in the migration inventory. The customer admin uses this document to rebuild equivalent automation logic in Odoo Studio using Odoo CRM's planned actions and server actions, or engages an Odoo partner for custom Python module development.

Ringy (formerly iSales)

Call Log

maps to

Odoo CRM

None

1:1
Fully supported

Call history, disposition data, and recording URLs stored in Ringy's built-in VOIP softphone are not accessible via any documented export mechanism or API. The CSV export for Leads surfaces call activity as timestamped history entries but does not include recording URLs or full disposition metadata. We extract any call data that appears in the Lead activity log and migrate it as mail.message records, but recording files and detailed call metadata are non-migratable. We document the call log gap in the migration inventory so the customer understands what is not transferred before migration begins.

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.

Ringy (formerly iSales) logo

Ringy (formerly iSales) gotchas

High

Usage-based billing for calling and texting is not obvious

High

No public API — all data extraction is CSV-only via the UI

Medium

Auto-block keyword feature silently filters records from exports

Medium

Drip campaign and automation logic cannot be exported

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

  • All data extraction is CSV-only via the Ringy UI

    Ringy has no documented public API, REST endpoint, or developer documentation for programmatic data access. Every migration relies on the Generate CSV function inside the Lead export UI. This workflow requires a logged-in user session and cannot be automated headlessly. We use this UI-based CSV export as the primary extraction method. For very large datasets (over 50,000 records), exports may need to be split by date range or filtered by status. We coordinate the export sessions with the customer's Ringy admin, verify the Include all custom fields checkbox is selected, and audit the output for completeness before migration begins.

  • Auto-block keyword filtering may silently exclude records

    Ringy's drip campaign system includes an auto-block feature that filters leads containing certain keywords from sequences and, in some cases, from the visible pipeline without user notification. Records that have been auto-blocked may not appear in CSV exports without explicit investigation. We audit the customer's auto-block keyword list during scoping and identify any blocked records that may have been excluded from the exported dataset. Blocked records are imported into a dedicated Odoo Lead queue for manual review rather than silently discarded, and the gap is documented in the migration inventory.

  • Odoo CRM email BCC and M365 IMAP limitations affect communications parity

    Reddit discussions of Odoo CRM note that email integration lacks a true BCC-to-record feature and that M365 integration via IMAP is considered less secure by some IT teams. When migrating from Ringy, which has native calling, SMS, and email in a unified desk, teams should plan for third-party VoIP and SMS module integration in Odoo or accept that communications workflow parity depends on additional configuration. We flag the communications parity gap in the migration scope document so the customer's admin understands what Odoo does not replicate natively from Ringy's unified desk.

  • Drip campaign and automation logic cannot migrate

    Drip campaigns, automated follow-up sequences, and SMS/email automation rules in Ringy are stored as platform-native automation objects with no documented export. There is no export for sequence order, timing rules, branching logic, or keyword triggers. We document the visible campaign structure including names, stages, and associated templates as reference metadata for the customer to use when rebuilding sequences in Odoo CRM using Odoo Studio server actions or a custom Python module. This is a manual rebuild scope that sits outside the data migration.

  • Call recordings and SMS thread content are non-migratable

    Ringy's built-in VOIP softphone stores call recordings and detailed call metadata in a format inaccessible via the CSV export. SMS conversation threads are stored within Ringy's messaging interface with no documented export path. We preserve any call and SMS data that appears as activity history in the Lead CSV rows, but recording files, full conversation threads, and detailed call disposition metadata do not transfer. We document the call and SMS content gap explicitly in the migration inventory so the customer understands the limitation before migration begins.

Migration approach

Six steps for a successful Ringy (formerly iSales) to Odoo CRM data migration

  1. Discovery and scoping

    We audit Ringy's CSV export configuration, verify the Include all custom fields checkbox is available and selected, and review the auto-block keyword list to identify any filtered records. We assess Odoo CRM module availability (Community vs Enterprise), data volume by object type, custom field count, pipeline and stage structure, and owner roster. The discovery output is a written migration scope document including record counts by object, a preliminary field mapping, a list of any auto-blocked records requiring manual review, and a decision checklist for the customer to confirm Odoo CRM edition and module scope before migration begins.

  2. Field mapping and custom field creation

    We build the complete field mapping from Ringy CSV column headers to Odoo CRM field names, analyzing each Ringy field by data type and matching it to the appropriate Odoo field type. Custom Ringy fields are pre-created in Odoo CRM via the Settings interface before any record import. Stage mapping documents the relationship between each Ringy Lead status value and its corresponding Odoo CRM stage, including probability percentages. Pipeline mapping creates the matching Odoo CRM pipeline and stage sequence in Settings before any Opportunity records are imported.

  3. Data quality audit and staging export

    We run a staging export from Ringy in a dedicated session, reviewing the CSV output for duplicates (records with matching email addresses), incomplete fields, inconsistent formatting (phone number formats, date formats), and orphaned company records without contact data. We flag data quality issues and propose a cleansing plan to the customer before the production export. Large exports are split by date range or filtered by status to stay within manageable CSV file sizes. The staging export serves as the basis for the sandbox migration in the next step.

  4. Sandbox migration and reconciliation

    We run a full migration into an Odoo CRM test environment using production-like data volume from the staging export. The customer reconciles record counts (Leads in, Contacts in, Companies in, Opportunities in), spot-checks 25-50 random records against the Ringy source, and reviews the Odoo CRM pipeline configuration and Kanban view. Any field mapping corrections, missing custom fields, or stage configuration adjustments happen in the test environment before the production migration begins. The customer signs off the sandbox migration before we proceed to production.

  5. Production migration in dependency order

    We run production migration in record-dependency order: Companies (Contacts with is_company=True) first, then Contacts with parent_id resolved, then Leads, then Opportunities with user_id and team_id resolved, then activity history as mail.message records, then Tags via tag assignment records. Each phase emits a row-count reconciliation report before the next phase begins. Owner references are resolved by email match against the Odoo CRM User table, with unresolved owners held in a queue for the customer admin to provision before Opportunity import. Auto-blocked records identified during scoping are imported into a dedicated Odoo Lead queue for manual review.

  6. Cutover, validation, and automation rebuild handoff

    We freeze Ringy access 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 the drip campaign inventory document listing all identified Ringy campaigns with names, stages, and templates, plus the auto-block keyword list and SMS thread gap documentation. We support a one-week hypercare window where we resolve reconciliation issues raised by the customer's sales team. We do not rebuild Ringy drip campaigns as Odoo Studio automations inside the migration scope; that work is handled by the customer admin or an Odoo partner.

Platform deep dives

Context on both ends of the pair

Ringy (formerly iSales) logo

Ringy (formerly iSales)

Source

Strengths

  • Integrated calling, SMS, and email in a single flat-rate CRM reduces tool sprawl for sales teams
  • Cloud VOIP softphone with local ID display and call scripting directly in the CRM workflow
  • Mobile app with full CRM access for field and remote sales representatives
  • Drip campaign and automated follow-up sequencing to nurture leads without manual intervention
  • Color-coded UI and straightforward navigation that reviewers consistently describe as easy to learn

Weaknesses

  • No publicly documented API — all data extraction relies on the UI-based CSV export for Leads
  • Pricing model with add-ons (power dialer, AI tools) and usage-based calling/texting creates bill shock for heavy users
  • Auto-block keyword feature silently filters leads from the pipeline without user notification
  • Performance reported as sluggish at times, particularly under high-volume usage scenarios
  • SMS thread interface is difficult to follow for teams managing high volumes of text conversations
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?

Moderate CRM migration. 4 of 8 objects need a mapping; the rest are 1:1.

C

Overall complexity

Moderate migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Ringy (formerly iSales) and Odoo CRM.

  • Object compatibility

    C

    4 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

    Ringy (formerly iSales): Not publicly documented.

  • Data volume sensitivity

    B

    Ringy (formerly iSales) doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your Ringy (formerly iSales) 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 Ringy (formerly iSales) to Odoo CRM data migrations

Answers to the questions buyers ask most during Ringy (formerly iSales) to Odoo CRM migration scoping. Not seeing yours? Book a call.

Can't find your answer?

Walk through your Ringy (formerly iSales) 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 15,000 Leads and 3,000 Deals with no complex custom fields and a single pipeline. Migrations with multi-pipeline Deal structures, large activity histories (over 200,000 activity records), extensive custom field sets, or a Community-to-Enterprise Odoo scope move to six to ten weeks because of CSV batch splitting, data quality remediation, stage reconfiguration, and auto-block audit work. Odoo edition selection (Community free vs Enterprise paid) also affects timeline if the customer needs to evaluate deployment options.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Ringy (formerly iSales).
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