CRM migration
Field-level mapping, validation, and rollback between Lead Guerrilla and Odoo CRM. We move data and schema; workflows are rebuilt natively in Odoo CRM.
Lead Guerrilla
Source
Odoo CRM
Destination
Compatibility
6 of 12
objects map 1:1 between Lead Guerrilla and Odoo CRM.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from Lead Guerrilla to Odoo CRM is a structural migration complicated by the absence of a public API on the source side and the tight 1CRM coupling that may have created cross-referenced records between marketing data and CRM data. Lead Guerrilla has no documented REST API, GraphQL endpoint, or developer portal, so we choreograph a staged manual export: CSV downloads for Contacts and Companies, admin-UI screenshots for automation rules and campaign configurations, and manual field-level inventory for Landing Pages and Web Forms. Odoo CRM receives these records via its XML-RPC API with batch chunking and exponential backoff. We preserve lead scoring values as custom integer fields on CRM Lead, segment membership as Tags, and campaign enrollment history as Notes or custom stage-history fields. Marketing automation rules, landing pages, web forms, and workflow logic do not migrate; we deliver a detailed rebuild playbook for each so the customer's team can reconstruct them in Odoo's Marketing Automation and Website builder apps.
Every standard and custom field arrives verified.
AI proposes the map; you confirm before any record moves.
Parent–child, lookups, and ownership stay linked.
Calls, emails, meetings — with original timestamps.
Documents, uploads, and inline notes move with the record.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a Lead Guerrilla 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.
Lead Guerrilla
Contact
Odoo CRM
CRM Lead
1:1Lead Guerrilla Contacts map directly to Odoo CRM Lead records via the Odoo External API (xmlrpc/2/object). We preserve name (split into firstname and lastname if combined), email, phone, address fields, and any custom contact properties. Lead scoring values from Lead Guerrilla migrate as a custom integer field lg_lead_score__c on the Odoo crm.lead model. Tags from Lead Guerrilla migrate as Odoo Tag records linked via res.partner.category with the tag applied to the corresponding Lead record.
Lead Guerrilla
Company
Odoo CRM
Account (res.partner with customer_rank > 0)
1:1Lead Guerrilla Company records map to Odoo Partner records with the customer flag set (partner_type = company). The Company name becomes the Account name; the Company domain becomes the Website field used for deduplication during import. In Odoo, Companies and individual Contacts share the same res.partner table differentiated by is_company flag, so we preserve the Contact-to-Company linkage by setting the parent_id field on each Contact Partner record to reference the corresponding Company Partner record.
Lead Guerrilla
Campaign
Odoo CRM
CRM Team + Marketing Campaign (mailing)
1:manyLead Guerrilla multi-channel Campaigns map to Odoo CRM Team (for ownership and pipeline assignment) and Odoo Mailing (mailing.mailing model) records for email campaign delivery. Campaign timing rules and channel assignments from Lead Guerrilla are catalogued and documented for manual rebuild in Odoo's Marketing Automation app. The enrollment triggers (form submit, page visit, tag applied) have no direct Odoo equivalent and are documented as automation rebuild actions in the handoff playbook.
Lead Guerrilla
Segment
Odoo CRM
Tag + Domain Filter
lossyLead Guerrilla Segments define dynamic contact groups based on form source, behavior, or demographic criteria. We export segment definitions including filter conditions and member counts. Each Segment is translated into an Odoo Tag (res.partner.category) plus an Odoo Domain expression on a static List or an Act Window action so the customer's team can reproduce the behavioral grouping logic. We deliver a field-level segment-to-domain mapping table as part of the rebuild playbook.
Lead Guerrilla
Lead Scoring
Odoo CRM
Custom integer field on CRM Lead (lg_lead_score__c)
lossyLead Guerrilla calculates lead scores from website behavior, form submissions, and campaign interactions. We export the current numeric score per contact as a custom integer field on the Odoo crm.lead model. The scoring model itself (point values per action, threshold levels) does not transfer; we document the point matrix in the handoff playbook so the customer's Odoo admin can configure equivalent lead scoring rules in Odoo's CRM app using its native Lead Scoring feature.
Lead Guerrilla
Activities (engagement history)
Odoo CRM
CRM Lead Activity Log (mail.message)
1:1Lead Guerrilla tracks email opens, page visits, form submissions, SMS sends, and tweet engagement as Activities with timestamps and event types. We export the full activity history and post it to Odoo CRM Lead records via the mail.message model using the Odoo External API. High-volume activity records are chunked into batches of 500 and rate-limited with exponential backoff to respect Odoo's API throughput limits on the customer's plan tier.
Lead Guerrilla
Tags
Odoo CRM
Tag (res.partner.category)
1:1Lead Guerrilla Tags on Contacts and Companies migrate to Odoo Tags via the res.partner.category model. Tag naming conventions are preserved exactly as-is to maintain segmentation continuity. Tags applied to Companies attach to the corresponding res.partner record; Tags applied to Contacts attach via partner_id on the tag record or a dedicated tag-relation table if Odoo version uses a many2many field.
Lead Guerrilla
Users/Owners
Odoo CRM
User (res.users)
1:1Lead Guerrilla User accounts (campaign owners, assignment recipients) map to Odoo User records by email match. We extract the user list including name and email during discovery. Odoo User provisioning is the customer's responsibility (requires admin access and license assignment), but we reconcile the owner_id field on every migrating record against the resolved User ID and hold unmatched records in a reconciliation queue until the customer's admin provisions the missing Users.
Lead Guerrilla
Landing Page metadata
Odoo CRM
Website Page (website.page)
lossyLead Guerrilla Landing Page metadata (title, URL slug, published status, redirect rules) migrates as documentation for rebuild. The actual page HTML content, form embed scripts, and A/B testing configurations are not portable. We deliver a page-by-page inventory with field-level mapping so the customer's Odoo admin can rebuild each landing page in Odoo's Website app builder. Redirect rules from Lead Guerrilla are preserved as Odoo website.redirect records pointing to the new Odoo page URLs.
Lead Guerrilla
Web Form definitions
Odoo CRM
Website Form (website.form)
lossyLead Guerrilla Web Form field definitions, submission mappings, and redirect behavior migrate as documentation. Form logic (conditional field visibility, required field enforcement, submission triggers) is catalogued in the rebuild playbook. Odoo's Website app supports form building with the website_form module; the customer's marketing team rebuilds forms using the field-level inventory we deliver. Form submission data that arrived in Lead Guerrilla migrates as CRM Lead records created from the form submission date.
Lead Guerrilla
Custom Contact Properties
Odoo CRM
Custom fields on crm.lead (ir.model.fields)
lossyAny custom fields defined on Lead Guerrilla Contacts beyond the standard name/email/phone/address set are catalogued by name, type, and options during discovery. We create matching custom fields on the Odoo crm.lead model (ir.model.fields with track_visibility and related settings configured) before record import begins. Custom field types are mapped to nearest Odoo field types: text properties to char/text, numeric properties to float/integer, date properties to date/datetime.
Lead Guerrilla
1CRM Cross-Reference IDs
Odoo CRM
Deduplication and relinking audit
1:1Because Lead Guerrilla is built by 1CRM Systems Corp and its Contact and Company records share internal identifiers with the 1CRM database, cross-references between marketing data and CRM data can become orphaned when migrating to a non-1CRM destination. We audit every record that carries a 1CRM cross-reference ID during scoping, flag each pair for manual relinking, and resolve the relationship (or remove the orphaned reference) before final production import. If the customer is simultaneously migrating away from 1CRM, we recommend sequencing the CRM migration first, then the marketing automation migration, to prevent cascading relinking work.
| Lead Guerrilla | Odoo CRM | Compatibility | |
|---|---|---|---|
| Contact | CRM Lead1:1 | Fully supported | |
| Company | Account (res.partner with customer_rank > 0)1:1 | Fully supported | |
| Campaign | CRM Team + Marketing Campaign (mailing)1:many | Fully supported | |
| Segment | Tag + Domain Filterlossy | Fully supported | |
| Lead Scoring | Custom integer field on CRM Lead (lg_lead_score__c)lossy | Mapping required | |
| Activities (engagement history) | CRM Lead Activity Log (mail.message)1:1 | Fully supported | |
| Tags | Tag (res.partner.category)1:1 | Mapping required | |
| Users/Owners | User (res.users)1:1 | Mapping required | |
| Landing Page metadata | Website Page (website.page)lossy | Fully supported | |
| Web Form definitions | Website Form (website.form)lossy | Fully supported | |
| Custom Contact Properties | Custom fields on crm.lead (ir.model.fields)lossy | Fully supported | |
| 1CRM Cross-Reference IDs | Deduplication and relinking audit1:1 | Fully supported |
Gotchas + challenges
Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.
Lead Guerrilla gotchas
No documented API for bulk data export
Marketing automation rules are not exportable
Tight 1CRM coupling creates migration blast radius
Overage billing model creates migration cost surprises
Landing page and form assets require rebuild at destination
Odoo CRM gotchas
Odoo.sh version gating blocks assisted migrations from trial
Enterprise modules fail to install on Community after database restore
Custom module view inheritance breaks between Odoo major versions
Custom fields risk losing their application context on Community
API access for Community is gated behind the Custom Plan
Pair-specific challenges
Migration approach
Discovery and export choreography design
We audit the Lead Guerrilla instance via admin-UI walkthrough, documenting all Contacts, Companies, Campaigns, Segments, Landing Pages, Web Forms, active automation rules, and engagement history volume. Because there is no API, we design a staged manual export process: CSV exports for Contacts and Companies (scheduled in batches), screenshot and configuration-note inventory for automations and campaign rules, and field-definition export for forms. We pair this with a scoping call to understand the customer's Odoo edition choice (Community self-hosted vs. Standard cloud vs. Custom cloud) and whether a simultaneous 1CRM exit is planned, which affects cross-reference audit scope.
Destination schema design in Odoo
We design the Odoo CRM schema before any data moves. This includes provisioning custom fields on crm.lead (lg_lead_score__c for lead scoring, lg_source__c for original Lead Guerrilla source, lg_segment__c for segment membership), creating Tag records (res.partner.category) matching Lead Guerrilla tags, configuring CRM Pipeline stages and teams (crm.team) to map from Lead Guerrilla campaign ownership, and designing the Account-Contact parent-child relationship in res.partner. If the customer uses Odoo Community (self-hosted), we provide the XML-RPC migration script and schema definition file; if Standard or Custom cloud, we use the Odoo External API with the customer's database credentials. Schema is validated in an Odoo test database before production.
Manual export execution and cross-reference audit
The customer's Lead Guerrilla admin executes the export choreography from our written guide: CSV exports for Contacts and Companies, screenshot inventory for active automation rules and campaign configurations, and field-level export for web form definitions. We review the exported CSVs for completeness and quality. Simultaneously, we perform the cross-reference audit: every Contact carrying a 1CRM internal ID is flagged, the corresponding Company is verified in the export, and the relationship is queued for resolution. If the customer is simultaneously exiting 1CRM, we coordinate the CRM migration sequencing to handle the double cross-reference resolution.
Data cleansing and deduplication
We cleanse the exported data before Odoo import: duplicate email addresses are flagged (first record wins), invalid email formats are corrected or quarantined, missing required fields (name or email) are flagged for the customer to supply, and cross-reference orphans are resolved using the audit output. Any contacts that cannot be resolved (missing Company reference, broken 1CRM link, no valid email) are held in a separate quarantine file with resolution instructions. Deduplication against any existing Odoo data (if migrating into an existing Odoo instance) uses email as the primary key.
Odoo production import in dependency order
We import into Odoo CRM in record-dependency order using the Odoo External API (xmlrpc/2/object) with batch chunking of 500 records per request and exponential backoff on rate-limit responses. Companies (res.partner with is_company=True) are imported first as the Account records. Contacts (res.partner with is_company=False, parent_id set to the Company) are imported second with the parent_id resolved from the Company import. Tags (res.partner.category) are imported before or alongside contacts and applied via partner_id relation. CRM Leads are created from the Contact records or directly from the Lead Guerrilla Contact export with lg_lead_score__c and lg_segment__c preserved. Activities (mail.message) are imported last with parent_id and res_id resolved to the migrated Lead record. Each phase emits a row-count reconciliation report.
Cutover, rebuild handoff, and hypercare
We freeze Lead Guerrilla writes during cutover, run a final delta import of any records modified during the migration window, then enable Odoo as the system of record. We deliver the automation rebuild playbook (every Lead Guerrilla automation with Odoo equivalent documented), the landing page rebuild inventory (page-by-page field-level mapping), and the web form rebuild guide (form field definitions mapped to Odoo website.form fields). We support a one-week hypercare window where we resolve any reconciliation issues. We do not rebuild Lead Guerrilla automations as Odoo Marketing Automation rules, landing pages in Odoo's Website app, or web forms in Odoo's website_form module; those are separate design and rebuild tasks for the customer's marketing team.
Platform deep dives
Lead Guerrilla
Source
Strengths
Weaknesses
Odoo CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 3 of 8 objects need a mapping; the rest are 1:1.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Lead Guerrilla and Odoo CRM.
Object compatibility
3 of 8 objects need a mapping; the rest are 1:1.
Field mapping clarity
Field mapping is derived from defaults — final spec confirmed during the sample migration.
Timeline complexity
8-object category — typical timelines run 2–7 days end-to-end.
API constraints
Lead Guerrilla: Not publicly documented.
Data volume sensitivity
Lead Guerrilla doesn't expose a bulk API — REST + parallelization used for high-volume runs.
Estimator
Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.
Step 1
Pick a category, then your source and destination platforms.
Category
FAQ
Answers to the questions buyers ask most during Lead Guerrilla to Odoo CRM migration scoping. Not seeing yours? Book a call.
Walk through your Lead Guerrilla to Odoo CRM migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Lead Guerrilla
Other ways to arrive at Odoo CRM
Ready when you are
Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.