CRM migration

Migrate from Zendesk Sell to Odoo CRM

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

Zendesk Sell logo

Zendesk Sell

Source

Odoo CRM

Destination

Odoo CRM logo

Compatibility

77%

10 of 13

objects map 1:1 between Zendesk Sell and Odoo CRM.

Complexity

BStandard

Timeline

4-6 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Zendesk Sell to Odoo CRM is a migration driven by Sell's August 31, 2027 sunset deadline combined with Odoo's appeal as an open-source all-in-one business suite. The structural difference that shapes the entire migration is Odoo's Partner model: Sell maintains separate Contact and Company objects while Odoo collapses both into a single Partner record with a Contact Type field distinguishing internal contacts (company employees) from individual customers and suppliers. We resolve that schema split at scoping, map Sell's Pipeline and Stage hierarchy to Odoo's crm.team and stage configuration, and write all records through Odoo's XMLRPC API with batch chunking and exponential backoff on 429 responses. Sequences, workflows, and automation state do not migrate; we deliver a written inventory of every active Sell automation for the customer's team to rebuild in Odoo's Studio or Action rules framework. Custom fields migrate as Odoo custom fields on the equivalent model, and we flag any field types that require Odoo schema changes before import.

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

Zendesk Sell logo

Zendesk Sell

What's pushing teams away

  • Zendesk officially announced Sell's retirement on August 31, 2027, with data deletion per Zendesk's Service Data Deletion Policy upon subscription end or sunset date, whichever comes first.
  • Pricing tiers gate features aggressively: advanced workflows move from Team to Professional, and reporting depth varies significantly across plans with no transparency in published docs.
  • Customers report the platform does not accommodate SaaS business models well and lacks advanced reporting capabilities that growing companies require.
  • Per-user pricing compounds with seat creep as teams add power users, temp licenses, and partner access, making total cost unpredictable.
  • Support-only billing and multiple login charges frustrate teams that feel they already pay for the service and should receive unlimited user seats on paid tiers.

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

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

Zendesk Sell

Lead

maps to

Odoo CRM

Lead (crm.lead)

1:1
Fully supported

Sell Leads migrate 1:1 to Odoo CRM Lead (crm.lead model). The sell lead_source property maps to Odoo's source_id (crm.lost_reason is for losses, not sources). We preserve all custom Lead fields as Odoo custom fields on crm.lead via Studio or a data migration script. The lead's owner maps to Odoo user_id by email match. Unqualified leads that were never converted in Sell remain as Odoo Leads for the sales team to work through in Odoo's Kanban pipeline view.

Zendesk Sell

Contact

maps to

Odoo CRM

Partner (res.partner)

1:many
Fully supported

Sell Contacts require a schema split in Odoo. Each Sell Contact becomes an Odoo res.partner record with type='contact' linked to a parent Partner (type='contact' or 'invoice') representing the company. If the Sell Contact has an associated Company, we create that company as a res.partner with type='company' first, then create the Contact as a child Partner linked via parent_id. For contacts without a company, we create a standalone Partner record. Email, phone, address, and custom Contact fields map directly; Odoo's partner fields (street, city, country, website) accept the Sell Contact address payload.

Zendesk Sell

Company

maps to

Odoo CRM

Partner (res.partner) type=company

1:1
Fully supported

Sell Companies map to Odoo res.partner records with type='company'. The company name becomes the Partner display name; the company domain maps to the website field for deduplication. We create the company Partner before any child Contact Partners so that the parent_id reference resolves at insert time. Industry, employee count, and custom Company fields migrate as custom fields on res.partner.

Zendesk Sell

Deal

maps to

Odoo CRM

Opportunity (crm.lead)

1:1
Fully supported

Sell Deals map to Odoo CRM Opportunity (crm.lead with type='opportunity'). The deal name becomes the Opportunity name, amount maps to planned_revenue, probability maps to Odoo's probability field, and stage maps to crm.stage via the pipeline's stage sequence. Loss reasons from Sell custom properties map to crm.lost_reason records created during schema setup.

Zendesk Sell

Pipeline

maps to

Odoo CRM

Team (crm.team)

lossy
Fully supported

Sell Pipelines are custom workflow containers that map to Odoo crm.team records. Each Sell Pipeline becomes a crm.team, and the pipeline's name becomes the team name. Team members (Sell Users) map to crm.team.member records by email match against res.users. If Odoo is self-hosted, team assignment uses crm.team member relations; on Odoo Online, the team field on crm.lead serves the same scoping.

Zendesk Sell

Stage

maps to

Odoo CRM

Stage (crm.stage)

lossy
Fully supported

Sell Stages are children of Pipelines and map to Odoo crm.stage records scoped to the corresponding crm.team. Stage ordinal position and win/loss flags migrate from Sell: stage.sequence sets Odoo stage order, and is_won maps to Odoo's onchange logic that advances to the Won stage. We configure stage names to match Sell naming conventions unless the customer requests renaming during scoping.

Zendesk Sell

Task

maps to

Odoo CRM

Activity (mail.activity)

1:1
Fully supported

Sell Tasks migrate to Odoo mail.activity records linked to the target crm.lead (Opportunity) or res.partner (Contact/Company). Task fields map as follows: name becomes activity's summary, date_deadline carries the due date, completed_at maps to date_done, and status maps to Odoo's activity state (planned, today, overdue, done). Owner mapping uses email match to res.users for the user_id on the activity. Attachments on Tasks migrate as mail.message attachments via Odoo's ir.attachment model.

Zendesk Sell

Note

maps to

Odoo CRM

Note (mail.message)

1:1
Fully supported

Sell Notes attached to Contacts, Deals, Leads, or Companies migrate as Odoo mail.message records with message_type='notification' linked to the target record via res_model and res_id. We preserve note body as HTML content in the message body. Parent record references resolve after both the parent record and its Odoo ID are known, so Notes import last in the activity phase. Tags on Notes migrate to Odoo message.main attachment_tags if the customer activates the Discuss module.

Zendesk Sell

Line Item

maps to

Odoo CRM

Sale Order Line or custom Opportunity fields

1:1
Fully supported

Sell Line Items attach to Deals and contain product name, quantity, unit price, and discount. Odoo treats Line Items as Sale Order Lines only when the Sale app is active and the Opportunity is converted to a Sale Order. We map Line Items to Odoo custom fields on crm.lead (line_item_product, line_item_qty, line_item_price) during the migration, and flag that if the customer activates Odoo Sale, these fields can be converted to Sale Order Lines via Odoo's Convert to Quotation action post-migration.

Zendesk Sell

User

maps to

Odoo CRM

User (res.users)

1:1
Fully supported

Sell Users (sales reps and admins) export with email, role, and territory. We match Sell Users to Odoo res.users by email. Any Sell User without a matching Odoo res.users account enters a reconciliation queue for the customer's admin to provision before Contact and Deal import resumes, because Owner fields on Opportunities and Contacts require a valid user_id in Odoo.

Zendesk Sell

Custom Fields

maps to

Odoo CRM

Custom Fields (ir.model.fields)

1:1
Mapping required

Sell custom fields on Leads, Contacts, Deals, and other objects map to Odoo custom fields created via Settings > Technical > Database Structure > Fields or via a data migration module. Custom field type resolution happens during scoping: text fields map to char or text, picklist fields map to selection, date fields map to date, numeric fields map to float or integer. We resolve Sell's numeric custom field IDs against their field keys before creating Odoo fields, and build a lookup table to apply values during the import phase.

Zendesk Sell

Tag

maps to

Odoo CRM

Tag (crm.tag)

1:1
Fully supported

Sell Tags applied to Contacts, Deals, and Leads map to Odoo crm.tag records. Each unique tag value creates a crm.tag record, and the tag association migrates as crm.lead.tag_rel entries linked to the Opportunity or Lead. Odoo tags are shared across Leads and Opportunities, matching Sell's tag model.

Zendesk Sell

Call Record

maps to

Odoo CRM

Activity (mail.activity) + Attachment (ir.attachment)

1:1
Fully supported

Sell call logs, call outcomes, and call duration migrate as Odoo mail.activity with activity_type_id set to phone. Call recording URLs (if stored as external links in Sell) migrate as ir.attachment records pointing to the original recording URL, attached to the same crm.lead or res.partner. Call disposition and outcome text map to custom fields on the activity if the customer has Odoo Studio active.

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.

Zendesk Sell logo

Zendesk Sell gotchas

High

Sell sunset creates a hard deadline for data migration

Medium

Sell API rate limits are low for large-volume exports

Medium

Custom field IDs differ from field keys in API calls

Medium

Sequences and cadence state cannot be migrated

Low

Job queue limit of 30 concurrent background jobs

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

  • Sell sunset is August 31 2027 with data deletion

    Zendesk's Service Data Deletion Policy triggers deletion of all Sell data on the sunset date or subscription end, whichever arrives first. Organizations that begin migration after Q1 2027 face compressed timelines, specialist unavailability, and risk of data loss if the export phase exceeds available time. We treat every Sell migration as time-bound and schedule discovery calls targeting a migration start at least nine months before the deadline. Customers on Sell Professional or Enterprise should begin scoping now.

  • Odoo Partner model requires Contact-Company split

    Odoo's res.partner is a single model representing both individuals and organizations. Sell maintains separate Contact and Company objects, which must be split during migration: each Sell Contact with an associated Company creates a company Partner (type=company) first, then a contact Partner (type=contact) with parent_id pointing to the company. Contacts without a company create standalone Partners. Migrations that skip this design step create orphaned Partners with no organizational hierarchy, breaking Odoo's address sharing and company-level reporting.

  • Sequences and cadence state do not migrate

    Sell Sequences store enrollment state, step history, and reply tracking tied to individual Contacts. This data is not exportable as a discrete object and Odoo has no equivalent cadence-tracking model in its standard CRM app. We export Sequence metadata (name, step count, cadence type) as a reference document and flag active sequences for rep-level rebuild in Odoo Action Rules or a third-party sales engagement module. Enrollment state, reply rates, and step resume points are not migratable.

  • Odoo self-hosted requires XMLRPC access and server configuration

    Odoo Online uses a REST-like API via XMLRPC against the database directly, which requires valid credentials with API access rights. Self-hosted Odoo deployments additionally require network access to the server's XMLRPC endpoint, the database name, and appropriate user access levels for the migration user. We resolve Odoo API credentials during discovery, configure the migration user with appropriate access rights, and implement batch chunking with retry logic for large-volume writes.

  • Sell Line Items require Odoo Sale app activation

    Sell Line Items (product, quantity, price, discount attached to Deals) do not have a native Odoo CRM equivalent outside of the Sale module, where they become Sale Order Lines. We store Line Item data as custom fields on crm.lead during migration and flag that if Odoo Sale is activated, the customer's admin can use Odoo's Convert to Quotation feature to create proper Sale Order Lines from the Opportunity. Without Sale activated, the Line Item data is preserved but not linked to Odoo's product catalog.

Migration approach

Six steps for a successful Zendesk Sell to Odoo CRM data migration

  1. Discovery and Sell sunset timeline assessment

    We audit the Zendesk Sell account across tier (Team or Professional), custom fields, pipeline count, active Sequences, active Workflows, and engagement volume. We pair this with Odoo deployment type identification: Online (SaaS),.sh (PaaS), or self-hosted on-premise. The discovery output is a written migration scope with a Sell sunset gap analysis: if the migration start date is less than nine months from August 31 2027, we flag the account as urgent and compress the staging window.

  2. Odoo schema design and Partner split rule definition

    We design the Odoo destination schema before any data moves. This includes creating crm.team records for each Sell Pipeline, crm.stage records with correct sequence for each Sell Pipeline's stages, crm.tag records for existing Sell tags, and custom fields on crm.lead and res.partner to accommodate all Sell custom field values. The Contact-Company split rule is defined here: we document whether Contacts without a Company in Sell create standalone Partners or are merged into existing company Partners by domain match.

  3. Sandbox migration and data quality audit

    We run a full migration into an Odoo staging environment (copy of the destination database) using production data volume. The customer audits record counts (Leads in, Opportunities in, Partners in, Activities in), spot-checks 25-50 records against Sell source, and validates that Contact-Company hierarchy resolves correctly. Data quality issues (duplicates, blank required fields, malformed emails) are documented and corrected in Sell before the production migration phase. This stage can take one to two weeks depending on data cleanliness.

  4. Owner and User reconciliation

    We extract every distinct Sell User referenced on Deals, Contacts, and Tasks and match by email against Odoo's res.users table. Any Sell User without a matching Odoo User account enters a named reconciliation queue. The customer's Odoo admin provisions missing users before production migration begins. This step gates the production migration because Odoo's Opportunity and Activity records require a valid user_id for the responsible user.

  5. Production migration in dependency order

    We run production migration in record-dependency order: res.users (provisioned, validated), res.partner records with type=company (from Sell Companies), res.partner records with type=contact (from Sell Contacts with parent_id resolved to company Partner), crm.lead records with type=opportunity (from Sell Deals with partner_id resolved and stage_id resolved), crm.lead records with type=lead (from Sell Leads), mail.activity records (Tasks and calls linked to crm.lead or res.partner by Odoo ID resolved at migration time), crm.tag_rel entries, and Line Item custom fields on crm.lead. Each phase emits a row-count reconciliation report before the next phase begins.

  6. Cutover, validation, and automation rebuild handoff

    We freeze Sell writes during cutover, run a final delta migration of records modified during the migration window, then enable Odoo as the system of record. We validate 50 random Opportunity records, 50 Contact records, and 20 Activity records against Sell source data and deliver a reconciliation summary to the customer. We deliver the Workflow, Sequence, and automation inventory document to the customer's team for rebuild in Odoo Action Rules or Studio. We support a one-week post-cutover window to address immediate data issues; ongoing Odoo configuration, workflow rebuild, and admin training are outside standard migration scope.

Platform deep dives

Context on both ends of the pair

Zendesk Sell logo

Zendesk Sell

Source

Strengths

  • Native click-to-dial and call recording built into every tier without add-on cost.
  • Multichannel unified inbox consolidating email, chat, voice, and social tickets in one place.
  • Conversational UI reduces training friction for sales reps new to CRM tools.
  • Deep Zendesk Support integration for companies running both Sell and Support.
  • Mobile-first design with geolocation and full CRM functionality on iOS and Android.

Weaknesses

  • Sell is being retired August 31, 2027, with no new development expected and data deletion on sunset.
  • Feature gating across tiers forces upgrades for basic workflow automation and reporting depth.
  • Per-user pricing with no unlimited seat option on paid plans inflates cost as teams grow.
  • Advanced SaaS metrics, custom reporting, and product-led growth features are limited compared to purpose-built sales platforms.
  • Export and migration tooling is CSV-heavy with limited bulk API automation outside the developer API.
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 Zendesk Sell 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

    Zendesk Sell: Sell Core API: 36,000 requests/hour (10 req/token/sec); Zendesk Support varies by plan tier from 20 req/min (Team) to 700 req/min (Enterprise).

  • Data volume sensitivity

    A

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

Estimator

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

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

Can't find your answer?

Walk through your Zendesk Sell 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 four and six weeks for accounts under 15,000 Contacts and 3,000 Deals with clean data and no custom objects. Migrations with multi-pipeline structures, Line Item preservation, large activity histories, or self-hosted Odoo deployments requiring server-side XMLRPC configuration move to ten to fourteen weeks. Given Sell's August 31 2027 sunset deadline, any migration beginning after Q1 2027 carries elevated risk of incomplete data export. We strongly recommend starting discovery at least nine months before the deadline.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Zendesk Sell.
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