CRM migration

Migrate from Altcraft to Odoo CRM

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

Altcraft logo

Altcraft

Source

Odoo CRM

Destination

Odoo CRM logo

Compatibility

73%

11 of 15

objects map 1:1 between Altcraft and Odoo CRM.

Complexity

BStandard

Timeline

4-8 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Altcraft is a profile-centric CDP and marketing automation platform built around unified customer Profiles, behavioral event histories, and visual Scenario builders. Odoo CRM is a sales-focused CRM embedded in an open-source ERP stack, using Contacts, Leads, and Opportunities as its primary objects. The two platforms share surface-level feature names—segments, campaigns, email templates—but their underlying data models differ significantly. We migrate Profiles to Odoo Contacts and Companies, preserve behavioral event timestamps as custom fields, document Altcraft Scenario logic for rebuild in Odoo Automated Actions, and transfer message templates and campaign metadata without attempting to port Scenario code. Control Group assignments and loyalty program structures migrate as structured data tied to the Contact record.

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

Altcraft logo

Altcraft

What's pushing teams away

  • Profile-based pricing scales with database size, creating unpredictable monthly bills as the contact list grows and pushing teams toward flat-rate alternatives.
  • On-premise and private cloud installations require custom integration work per environment, making the total cost of ownership higher than the headline subscription price suggests.
  • Limited public review presence and sparse independent user community make peer validation and competitive comparison difficult before committing.
  • Documentation and developer guides return errors or redirect loops, raising concerns about the platform's long-term maintenance and support responsiveness for enterprise accounts.

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

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

Altcraft

Profile (Customer Profile)

maps to

Odoo CRM

Contact + Company (Partner)

1:many
Fully supported

Altcraft Profiles are unified records combining contact identity, behavioral event history, channel subscriptions, device metadata, and all custom fields into a single object. We split this into Odoo Partner records: personal identity data (name, email, phone, address) becomes Contact (and its parent Company/Partner record). Behavioral event history, channel subscriptions, and device context migrate as custom fields on the Contact and as a structured JSON blob in a dedicated ir.attachment linked to the Contact for audit trail. Custom Profile fields map to Odoo custom fields on res.partner with appropriate type conversion (string, date, integer, selection). We preserve the original Altcraft Profile ID as an external_id field for reconciliation.

Altcraft

Company (within Profile)

maps to

Odoo CRM

Partner (Company type)

1:1
Fully supported

Altcraft's embedded company data within Profiles maps to Odoo res.partner records of type company. The company name, domain, industry, employee count, and revenue range from Altcraft's company fields become their Odoo equivalents. If a single Contact belongs to multiple companies in Altcraft, we create a primary Company Partner and link secondary affiliations as Contact tags or as dedicated Partner relationships.

Altcraft

Segment (Static & Dynamic)

maps to

Odoo CRM

Group + Tag

lossy
Fully supported

Static segments in Altcraft are straightforward list transfers to Odoo res.partner groups. Dynamic segments based on real-time behavioral criteria require reimplementation in Odoo: we export the full segment definition (filter criteria, time windows, SQL joins, behavioral thresholds) as a structured description document and recommend the Odoo Automated Action equivalent using domain filters on res.partner. Static segments that reference Profile lists migrate as Odoo Groups with members assigned directly. The customer admin rebuilds dynamic segment logic post-migration using Odoo's domain filter builder.

Altcraft

Campaign

maps to

Odoo CRM

CRM Campaign

1:1
Fully supported

Altcraft Campaign records (send history, open and click analytics, channel assignment) migrate to Odoo CRM Campaign with campaign name, description, start and end dates, and target partner sets. Performance metrics (opens, clicks, unsubscribes) transfer as structured fields. Channel assignment (Email, SMS, Push) maps to Odoo's mailing.channel configuration. Campaign Master and A/B test results from Altcraft Cloud Pro tier are preserved as campaign-level custom fields in Odoo.

Altcraft

Automation Scenario

maps to

Odoo CRM

Automated Action (documented, not migrated)

1:1
Fully supported

Altcraft Scenarios are visual workflow builders with conditional branches, loop constructs, time delays, and API webhook calls that have no portable export format. We do not migrate Scenarios as executable code. We export a structured Scenario inventory document listing every Scenario's name, trigger event, condition tree, action sequence, and referenced Profile and Segment IDs, with a written recommendation for Odoo Automated Action equivalents using ir.actions.server and ir.cron configurations. The customer's Odoo admin or implementation partner rebuilds the logic in Odoo's Actions menu post-migration.

Altcraft

Message Template

maps to

Odoo CRM

Email Template (mail.template)

1:1
Fully supported

Altcraft message templates export in standard formats (HTML, plain text) with merge field placeholders. A/B test variants are preserved as separate template records. We map Altcraft merge fields to Odoo's Jinja2-style {{object.field}} syntax in mail.template records, and convert channel-specific templates (SMS, Push) to Odoo Mass Mailing templates scoped to the appropriate mailing.channel. Template assets (images, logos) transfer as Odoo ir.attachment records linked to the template.

Altcraft

Product

maps to

Odoo CRM

Product Template (product.template)

1:1
Fully supported

Altcraft product catalog records map to Odoo product.template with name, default_code (SKU), list_price, standard_price, and product type (service vs consumable vs stockable). Product images migrate as ir.attachment records linked to the product.template. Variant attributes from Altcraft (size, color) map to Odoo attribute lines on the template. If Altcraft products include e-commerce pricing rules tied to customer segments, those rules are documented for rebuild in Odoo pricelists.

Altcraft

Order (linked to Profile)

maps to

Odoo CRM

Sale Order (sale.order)

1:1
Fully supported

Altcraft order history linked to Profiles migrates to Odoo sale.order records with order reference, date, partner (from Profile), order lines (from Altcraft order items), and sale status. Order total and tax calculations transfer from Altcraft. If the destination Odoo instance includes the Inventory or Accounting modules, we link the sale.order to the appropriate picking and invoice records during migration. Historical orders are set to sale.done state to prevent accidental workflow triggers.

Altcraft

Control Group

maps to

Odoo CRM

Partner Tag + Campaign Member Status

lossy
Fully supported

Altcraft Control Groups are campaign holdout groups assigned to specific Profile IDs for comparative analytics. We preserve Control Group membership as a res.partner.category tag (e.g., 'Control Group: Q1 Email Test') and set the corresponding CRM Campaign Member status to 'Excluded' for those Contacts. We preserve the original Control Group assignment in a custom field on the partner record so comparative analytics can be re-established post-migration in Odoo's reporting tools.

Altcraft

Loyalty Program

maps to

Odoo CRM

Loyalty Program (loyalty.program)

1:1
Fully supported

Altcraft loyalty tiers, points balances, and promo code pools tied to Profiles migrate to Odoo loyalty.program records and associated loyalty.card records per partner. Tier thresholds map to Odoo's loyalty level definitions. Promo code rules map to Odoo coupon and promotion rules. If the destination Odoo instance does not include the Loyalty app, we deliver loyalty data as structured CSV with clear column headers for the customer's admin to configure the Loyalty program post-migration.

Altcraft

Custom Profile Field

maps to

Odoo CRM

Custom Field on res.partner

1:1
Fully supported

Altcraft user-defined fields on the Profile object export as structured columns in the profile CSV. We create matching custom fields on Odoo res.partner using ir.model.fields with the appropriate ttype (char, text, date, datetime, integer, float, selection, many2one). Relational fields (many2one to other objects) require pre-creation of the destination object schema before field migration. We flag any Altcraft field types that cannot be directly represented in Odoo (e.g., JSON blobs) and recommend storing these as ir.attachment binary records with a descriptive filename.

Altcraft

Form Definition + Survey

maps to

Odoo CRM

Survey (survey.survey)

1:1
Fully supported

Altcraft Form definitions and NPS survey question structures export cleanly from the UI. We migrate form schema (question types, required flags, branching logic) to Odoo survey records using the survey module. Responses already embedded in Profile records migrate as standard Profile data to Contact custom fields. Standalone response logs transfer as survey.user_input records linked to the responding partner. Survey URLs and embed codes do not migrate and must be recreated in Odoo.

Altcraft

Communication Channel

maps to

Odoo CRM

Mailing Channel (mailing.channel)

lossy
Fully supported

Altcraft channel configurations (Email sender IDs, SMS provider credentials, approved sender addresses, Web Push credentials, Messenger tokens) must be re-established in Odoo's Mailing Channel settings. We export the channel names, types, and metadata from Altcraft and deliver a configuration guide mapping each channel to its Odoo mailing.channel equivalent. API credentials do not transfer for security reasons and must be re-entered by the customer's admin in Odoo Settings.

Altcraft

Engagement: Email

maps to

Odoo CRM

Mail Message (mail.message)

1:1
Fully supported

Altcraft email engagement records (send timestamp, open timestamp, click timestamp, unsubscribe action) migrate to Odoo mail.message records linked to the parent res.partner record. Email body content is stored as mail.message body HTML. Engagement metrics (opens, clicks) migrate as custom fields on mail.message for reporting. Thread-level email conversations in Altcraft map to Odoo's mail.thread model with message_ids preserved for conversation continuity.

Altcraft

Engagement: Call

maps to

Odoo CRM

CRM Lead/Phonecall Log

1:1
Fully supported

Altcraft call engagement records (call duration, disposition, recording URL) migrate to Odoo CRM Lead log records or to crm.phonecall model if the CRM phonecalls module is installed. We preserve call duration, timestamp, and disposition as structured fields on the log entry. Recording URLs are stored as ir.attachment records linked to the partner. Call assignments migrate by resolving Altcraft owner ID to the Odoo user responsible for the contact.

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.

Altcraft logo

Altcraft gotchas

High

Profile-count pricing means database size drives the bill

High

Automation Scenarios do not export as portable logic

Medium

API developer guide returns HTTP 301, blocking programmatic discovery

Medium

Private Cloud and on-premise use separate support contracts

Medium

Control Group assignment is Profile-ID dependent

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

  • Automation Scenarios do not export as portable logic

    Altcraft Scenarios are configured inside a visual builder with conditional branching, loop constructs, time delays, and API webhook calls that have no standard export format. We cannot generate a drag-and-drop import package for Odoo. We export the Scenario as a structured description (trigger, conditions, actions, referenced Profiles and Segments) and deliver a written rebuild guide using Odoo Automated Actions (ir.actions.server) and scheduled actions (ir.cron). Your Odoo admin or implementation partner rebuilds each Scenario manually post-migration. This is standard scope for any CDP-to-CRM migration because the workflow models differ fundamentally.

  • API developer guide returns HTTP 301, blocking programmatic discovery

    The official API reference at guides.altcraft.com/en/developer-guide/ returns a 301 redirect, preventing programmatic enumeration of endpoints, object schemas, and field types before migration. We work around this by exporting Profile data through Altcraft's UI-based CSV export for all profile attributes, custom fields, and behavioral event timestamps. Albato integration credentials or direct database access credentials (for Private Cloud and on-premise customers) allow API-based extraction when available. API-based migration is only possible when the customer supplies their own endpoint documentation or integration credentials.

  • Profile-count pricing accrues during the export window

    Altcraft bills on the number of customer Profiles stored across all cloud tiers. During migration scoping, we count every Profile record that will land in the destination. We advise customers to throttle their export to minimize the double-billing period where both platforms accumulate profile counts. We coordinate export timing with Altcraft's billing cycle cut-off date when disclosed by the customer. Odoo does not charge per-contact in either Community or Enterprise editions, so the destination storage cost is fixed regardless of volume.

  • Dynamic segments do not map 1:1 to Odoo groups

    Altcraft dynamic segments use real-time behavioral criteria including event frequency, recency, SQL joins, and cross-channel conditions that Odoo's domain filter builder cannot replicate identically. Static segments migrate cleanly as Odoo res.partner groups with direct membership assignment. Dynamic segments require the customer's Odoo admin to define equivalent domain filters post-migration, testing whether Odoo's query performance meets the segmentation cadence needs. We deliver a segment inventory document describing each dynamic segment's logic in plain language for the admin to translate.

  • Control Group assignment breaks if Profile IDs change during import

    Altcraft Control Groups are assigned to specific Profile IDs. If Profiles receive new IDs during Odoo import (because Odoo generates sequential partner IDs rather than preserving external identifiers by default), the Control Group association breaks. We preserve Control Group membership as an explicit Contact attribute before import (stored as a partner category and custom field) and re-apply the assignment after Odoo IDs are established, ensuring comparative campaign analytics remain valid. Odoo requires enabling the external ID field and setting it during CSV import to maintain ID continuity.

Migration approach

Six steps for a successful Altcraft to Odoo CRM data migration

  1. Discovery and data audit

    We audit the source Altcraft portal across tier (Cloud/Cloud Pro/Private Cloud/On-premise), total Profile count, custom field definitions, active Segment count and logic type (static vs dynamic), Campaign history volume, Automation Scenario inventory, Loyalty program structure, and Communication Channel configurations. We pair this with Odoo edition selection: Community (free) covers CRM-only migrations; Odoo.sh Enterprise is required if the customer needs Odoo Apps (Loyalty, Survey, VoIP), multi-database Odoo instances, or SLA-backed support. The discovery output is a written migration scope document and an Odoo edition recommendation.

  2. Schema design in Odoo

    We design the destination schema in Odoo. This includes creating custom fields on res.partner (profile_id__c, behavioral_event_log__c, channel_preferences__c, loyalty_tier__c, loyalty_points__c), provisioning Product templates from Altcraft product records, configuring CRM Pipeline stages to match Altcraft campaign structure, setting up mailing.channels for each communication channel type, and designing the Group/Tag taxonomy to represent Altcraft segments. Schema is deployed into an Odoo.sh staging database or Sandbox for validation before any data moves.

  3. Staging migration and reconciliation

    We run a full migration into the Odoo staging environment using production-like data volume. The customer's RevOps or admin lead reconciles record counts (Partners in, Contacts in, Campaigns in, Product templates in), spot-checks 25-50 random Contact records against the Altcraft source Profile data, and validates custom field values, loyalty balances, and segment memberships. Any mapping corrections happen in staging before production migration begins. Dynamic segment logic is documented for manual rebuild in staging validation.

  4. Segment logic documentation and Scenario inventory

    We compile a written inventory of every Altcraft Segment (static and dynamic) with its name, criteria definition, member count, and recommended Odoo Group equivalent. We also compile a Scenario inventory for every Automation Scenario listing its trigger, condition tree, action sequence, and referenced Profile and Segment IDs with a written Odoo Automated Action rebuild recommendation. These documents are delivered to the customer's admin team before production cutover and are outside the scope of automated migration.

  5. Production migration in dependency order

    We run production migration in record-dependency order: Products and Price Lists first (reference data), then Partners (Contacts and Companies), Loyalty Programs and Loyalty Cards, Campaigns with performance metrics, Form and Survey definitions, Message Templates, Engagement history (email logs, call logs), and finally Control Group assignments as partner tags. Each phase emits a row-count reconciliation report before the next phase begins. We disable Odoo automated actions and workflow triggers during import to prevent unintended record updates.

  6. Cutover, validation, and handoff

    We freeze Altcraft writes during cutover, run a final delta migration of any records modified during the migration window, then enable Odoo as the system of record. We deliver the Segment and Scenario inventory documents to the customer's admin team with a rebuild guide for Odoo Automated Actions. We support a one-week hypercare window where we resolve any reconciliation issues raised by the customer's team. We do not rebuild Altcraft Scenarios as Odoo Automated Actions inside the migration scope; that is a separate implementation engagement or an internal admin task.

Platform deep dives

Context on both ends of the pair

Altcraft logo

Altcraft

Source

Strengths

  • Combines CDP, marketing automation, and omnichannel messaging in a single product rather than requiring three separate integrations.
  • Supports cloud, dedicated private cloud, and on-premise deployment to satisfy data-residency and sovereignty requirements.
  • Profile model unifies behavioral data with CRM and SQL data sources, enabling segment logic that references external relational data.
  • Includes Campaign Master, Control Groups, and ML algorithms in Cloud Pro tier—features typically charged as add-ons by competitors.
  • Built on a modern stack (Golang, ClickHouse, MongoDB) that supports real-time analytics and high-volume profile processing.

Weaknesses

  • API documentation is incomplete, returning errors or redirects, which creates friction for migration planning and third-party integration.
  • Pricing is profile-count based, making the total cost unpredictable and significantly higher than competitors for large contact databases.
  • Headquartered in Russia with a small team (21–45 employees), which may present compliance, support, and continuity risks for EU and US enterprises.
  • Limited public review presence and sparse community content make independent evaluation difficult compared to well-documented Western alternatives.
  • On-premise and private cloud require significant custom configuration, and some features (LDAP SSO, custom channels) are tier-gated, inflating implementation cost.
Odoo CRM logo

Odoo CRM

Destination

Strengths

  • Modular open-source architecture lets teams start with CRM and add ERP apps as needs grow, all sharing one PostgreSQL database.
  • Free Community edition with no contact limits and full source code access means zero licensing cost for evaluation and small deployments.
  • Drag-and-drop Kanban pipeline with AI lead scoring gives a visual, prioritized view of the sales funnel without requiring custom configuration.
  • Native integrations with email, live chat, SMS, VoIP, WhatsApp, and social media feed all inbound leads into a single unified inbox.
  • Active Odoo Community Association (OCA) maintains dozens of community-maintained modules on GitHub for extended functionality.

Weaknesses

  • Gmail and email integration reliability is a recurring complaint — threads drop and conversations scatter across inboxes, disrupting sales team workflows.
  • Enterprise edition pricing stacks quickly: multiple apps at per-user rates ($25–$50/user/month) plus Odoo.sh hosting costs more than many SMBs anticipate.
  • Setup and configuration complexity increases significantly once custom fields, automation rules, and multiple installed modules are in play.
  • Odoo.sh trial databases run on a version (e.g., 18.3) that is not directly migratable to Odoo.sh, blocking the assisted migration path Odoo advertises.
  • Version upgrades between major Odoo releases (e.g., 17→18) frequently break custom module view definitions and XPath expressions, requiring manual remediation.

Complexity grading

How hard is this migration?

Standard CRM migration. All 8 core objects map 1:1 between Altcraft and Odoo CRM.

B

Overall complexity

Standard migration

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

  • Object compatibility

    A

    All 8 core objects map 1:1 between Altcraft and Odoo CRM.

  • Field mapping clarity

    C

    Field mapping is derived from defaults — final spec confirmed during the sample migration.

  • Timeline complexity

    B

    8-object category — typical timelines run 2–7 days end-to-end.

  • API constraints

    B

    Altcraft: Configurable via API_MAX_REQUESTS_COUNT — exceeding returns HTTP 429. Specific numeric limits are not published in the developer guide and must be confirmed per deployment..

  • Data volume sensitivity

    A

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Migrations under 50,000 Profiles and 10,000 companies with no loyalty programs and no complex dynamic segments land between four and eight weeks. Migrations with large behavioral event histories (over 1 million event records), loyalty program structures, complex dynamic segment logic, or multi-company Odoo structures requiring separate database instances move to twelve to twenty weeks because of staging reconciliation, segment-to-group transformation work, and loyalty structure re-implementation. Odoo Community editions require manual setup without Odoo.sh automated tooling, which can extend timelines by two to four weeks.

Adjacent paths

Related migrations to explore

Ready when you are

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