CRM migration
Field-level mapping, validation, and rollback between Vocus and Odoo CRM. We move data and schema; workflows are rebuilt natively in Odoo CRM.
Vocus
Source
Odoo CRM
Destination
Compatibility
10 of 12
objects map 1:1 between Vocus and Odoo CRM.
Complexity
BStandard
Timeline
2-3 weeks
Overview
Vocus is a Gmail productivity extension for email tracking, automated follow-ups, and personalized bulk campaigns; it has no published export API and maintains no native contact database. Migrating to Odoo CRM means sourcing contacts from the connected Gmail account export, reconstructing Followup sequences as Odoo activity records and automated actions, mapping Snippets to Odoo template or signature records, and delivering Campaign definitions and reporting metrics as CSV exports paired with Odoo Documents. We do not migrate browser extension settings, Vocus workspace configuration, or the auto-BCC CRM sync state. Workflows, automated rules, and sequence cadences do not migrate as code; we deliver a written inventory of every Followup sequence and Campaign for the customer's admin to rebuild inside Odoo CRM's action and marketing automation layers.
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 Vocus 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.
Vocus
Connected Gmail Inboxes
Odoo CRM
res.users + mail.mail
1:1Vocus connected Gmail accounts map to Odoo res.users with the mail integration configured via IMAP or Odoo Discuss OAuth. Each Vocus user account becomes an Odoo user whose sent email is tracked through the mail.mail and mail.message tables. We preserve the Vocus user email address and display name; we configure IMAP sync settings in Odoo so that Gmail activity flows into Odoo's activity timeline rather than requiring a browser extension.
Vocus
Snippets
Odoo CRM
mail.template
1:1Vocus Snippets (reusable text blocks scoped at 50/100/200 depending on plan) map to Odoo mail.template records. We export Snippet content as the mail.template body field, Snippet title as template name, and apply formatting preserved as HTML. If the Odoo instance does not have the email marketing module, Snippets map to ir.actions.server records or stored in a Notes document for rep use. We flag Snippets exceeding the target plan limit for customer review before import.
Vocus
Followup Sequences
Odoo CRM
mail.activity + crm.lead (opportunity)
1:1Vocus Followup sequences with delay cadences and message content map to Odoo mail.activity records linked to crm.lead (opportunity) or res.partner. Each Vocus Followup step becomes a separate activity with an activity_type_id, user_id (assigned owner), and date_deadline offset computed from the sequence start date plus the Vocus delay. We preserve the message body as activity note, and we flag sequence counts against the source Vocus plan limit during scoping to identify any records that exceed tier limits and require customer decision on archiving.
Vocus
Campaigns (Bulk Email)
Odoo CRM
utm.campaign + document.attachment
1:1Vocus personalized bulk email Campaigns map to Odoo utm.campaign records with campaign name, start date, and target audience preserved. Campaign reporting metrics (open rate, click rate, delivery rate) export as CSV and are delivered alongside the migration as a reference document because Odoo's native campaign reporting uses mail.mass_mailing which requires the email marketing module. File attachments from Campaigns download and are re-uploaded to Odoo document.attachment linked to the utm.campaign record.
Vocus
Email Tracking Events
Odoo CRM
mail.message
1:1Vocus real-time open and click tracking events are not independently exportable via API. We extract what is available through the Gmail connector export and map tracking event summaries to mail.message records attached to the relevant crm.lead or res.partner. Detailed per-recipient tracking data that cannot be extracted programmatically is documented in the CSV campaign report delivered with migration. Open and click timestamps are preserved in mail.message fields where available.
Vocus
Teams (Shared Workspace)
Odoo CRM
res.users + res.groups
lossyVocus Teams share analytics, templates, and billing under a central account. We map Team members to Odoo res.users records and preserve team structure using Odoo access groups (res.groups) so that shared Snippets and Campaigns remain accessible to the same set of users post-migration. Shared billing information does not migrate; this is an Odoo account administration task.
Vocus
CRM Integration Records (auto-BCC)
Odoo CRM
mail.mail
1:1Vocus auto-BCC integration writes email activity to Salesforce and Pipedrive but does not store records in Vocus. We do not migrate from the Vocus integration layer. Instead, we export email activity directly from the connected Gmail account using Gmail API or IMAP export and map sent emails to mail.mail records in Odoo, preserving the same activity timeline the auto-BCC was writing to the previous CRM.
Vocus
Campaign Attachments
Odoo CRM
document.attachment
1:1File attachments included in Vocus Campaigns are stored in Vocus and downloaded during export. We preserve these as document.attachment records in Odoo, linking each file to the corresponding utm.campaign record via the res_model and res_id fields. Attachment filename, mime_type, and file size are preserved. Files over 10 MB are flagged for the customer to host externally and reference via URL field.
Vocus
Gmail Contacts (Source for Contacts)
Odoo CRM
res.partner
1:1Vocus does not maintain a contacts database; it surfaces Gmail contacts. We source contact records from the connected Gmail account export (Google Contacts API or CSV export) and map them to Odoo res.partner. Individual contacts use partner_type = contact; company records use partner_type = company. Email address is the dedupe key. We map phone, company name, job title, and address fields to their Odoo equivalents.
Vocus
Vocus Browser Extension Settings
Odoo CRM
mail.integration (configuration)
lossyVocus browser extension settings (signature blocks, tracking domains, snippet folders, notification preferences) have no direct Odoo equivalent and do not migrate. We deliver a configuration checklist for the customer's admin to reconfigure email signatures in Odoo res.partner (partner_id field), set up tracking domains in Odoo's email alias configuration, and organize Snippet content inside mail.template folders.
Vocus
Custom Objects / Custom Fields
Odoo CRM
none
1:1Vocus does not expose custom objects or custom fields API. The platform has no equivalent to CRM custom records. We cannot migrate custom field definitions or values from Vocus because they do not exist in Vocus. If the customer has extended Vocus data through Google Sheets or third-party integrations, those extensions migrate as CSV imports to Odoo ir.ui.menu or custom models built by the customer's Odoo developer.
Vocus
Contacts / Leads
Odoo CRM
res.partner (as Leads via crm.lead)
1:1Vocus does not maintain a contacts or leads database. There is no Vocus-native contact record to migrate. We source all contact data from the connected Gmail account export and map Gmail contacts to Odoo res.partner. For leads that are not yet customers, we create crm.lead records in Odoo with partner_id left null until the lead is qualified, at which point the crm.lead converts to a res.partner following the Odoo standard Lead-to-Opportunity conversion workflow.
| Vocus | Odoo CRM | Compatibility | |
|---|---|---|---|
| Connected Gmail Inboxes | res.users + mail.mail1:1 | Fully supported | |
| Snippets | mail.template1:1 | Mapping required | |
| Followup Sequences | mail.activity + crm.lead (opportunity)1:1 | Mapping required | |
| Campaigns (Bulk Email) | utm.campaign + document.attachment1:1 | Mapping required | |
| Email Tracking Events | mail.message1:1 | Mapping required | |
| Teams (Shared Workspace) | res.users + res.groupslossy | Mapping required | |
| CRM Integration Records (auto-BCC) | mail.mail1:1 | Fully supported | |
| Campaign Attachments | document.attachment1:1 | Fully supported | |
| Gmail Contacts (Source for Contacts) | res.partner1:1 | Fully supported | |
| Vocus Browser Extension Settings | mail.integration (configuration)lossy | Fully supported | |
| Custom Objects / Custom Fields | none1:1 | Not supported | |
| Contacts / Leads | res.partner (as Leads via crm.lead)1:1 | Not 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.
Vocus gotchas
No documented public API for data export
Followup sequence limits constrain migration completeness
Browser extension instability during migration
CRM integration is write-through only, not a data store
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
Vocus account audit and Gmail contact export
We audit the Vocus account across plan tier, Snippet count, Followup sequence count, active Campaign count, connected inboxes, and Team membership. We simultaneously request a Google Contacts export from the connected Gmail account (Google Contacts CSV or Google Takeout) and a Gmail sent-mail export via Google API or IMAP. We also ask the customer to manually export Snippets and Followup content from the Vocus dashboard as a backup where the API-equivalent is not available. The audit output is a written migration scope specifying what can be extracted programmatically versus what requires customer-provided exports.
Odoo instance assessment and IMAP or Discuss configuration
We assess the destination Odoo CRM instance for module availability (CRM, Email Marketing/utm, Document, Studio for custom fields). We configure the email integration via Odoo Discuss (OAuth Gmail sync) or IMAP for each migrating user so that email activity flows into Odoo's activity timeline server-side rather than requiring the Vocus browser extension. We design the custom field schema for any Snippet metadata or Campaign fields that require Odoo Studio fields. If the Odoo instance does not have the email marketing module, we flag this limitation before migration so the customer can decide whether to add the module.
Schema deployment and sandbox migration
We deploy the Odoo CRM schema including mail.template records for Snippets, utm.campaign records for Campaigns, mail.activity records for Followup sequences, and document.attachment records for Campaign files. We run a sandbox migration using a test Odoo database or a clone of the production database to validate record counts, field mapping accuracy, and attachment preservation. The customer reviews the sandbox output and signs off before production migration begins. Any Snippet or Followup content missing from the customer-provided exports surfaces here and requires a second extraction round.
Contact sourcing and deduplication
We import contacts from the Google Contacts export into Odoo res.partner using email address as the dedupe key. Individual Gmail contacts map to res.partner with partner_type = contact; contacts with a company domain map to partner_type = company records with child contact records for individuals. We run a deduplication pass before final import to identify and merge duplicates that exist across Gmail and any other contact sources the customer has merged into Vocus. Duplicate records are flagged for customer review if the merge is ambiguous.
Production migration in dependency order
We run production migration in record-dependency order: res.users and res.groups first (Team members), then res.partner (contacts from Google Contacts), then crm.lead for unqualified leads, then mail.template (Snippets), then utm.campaign (Campaigns), then mail.activity (Followup sequences linked to res.partner or crm.lead), then document.attachment (Campaign files). Each phase emits a row-count reconciliation report. Email activity from Gmail sent-mail export maps to mail.message records linked to the relevant res.partner. The Vocus Followup sequence delay offsets are recomputed against the Odoo activity date_deadline to preserve the original cadence.
Cutover, validation, and Followup rebuild handoff
We freeze Vocus writes during cutover and run a final delta migration of any records modified during the migration window. We deliver a written inventory of every Vocus Followup sequence and Campaign with the Odoo equivalent action, activity template, or utm.campaign record documented for the customer's admin to rebuild automated actions and sequence triggers inside Odoo CRM Automated Actions. We do not rebuild Vocus Followup sequences as Odoo automated actions inside the migration scope; that is a separate engagement or internal admin task. We provide a one-week hypercare window for reconciliation issues raised by the sales team.
Platform deep dives
Vocus
Source
Strengths
Weaknesses
Odoo CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. All 8 core objects map 1:1 between Vocus and Odoo CRM.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Vocus and Odoo CRM.
Object compatibility
All 8 core objects map 1:1 between Vocus and Odoo CRM.
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
Vocus: Not publicly documented.
Data volume sensitivity
Vocus 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 Vocus to Odoo CRM migration scoping. Not seeing yours? Book a call.
Walk through your Vocus 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 Vocus
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.