BambooForge Listmonk Connector
A real connector between Odoo 19 and Listmonk — the free, open-source self-hosted newsletter & mailing-list manager. Point it at your Listmonk URL, drop in an API user + token, and the connector imports your mailing lists and subscribers straight into Odoo's Email Marketing app over the Listmonk REST API — on a schedule, and keeps opt-outs and suppression in sync both ways (Listmonk unsubscribes & blocklist ↔ Odoo mail.blacklist and mailing.contact opt-out), with dry-run safety and full source you can audit.
Verified live against a running Listmonk
We don't just claim a vague version range. The connector was installed on Odoo 19, pointed at a live Listmonk 2.5.1 instance over its REST API, and run through a full mailing-list / subscriber import — 0 errors.
| Listmonk version | API | Live result |
|---|---|---|
| 2.5 | REST API (HTTP Basic) | ✔ Live-tested — 5 lists / 8 subscribers, 0 errors |
| 2.x | REST API (config admin) | ✔ Compatible — validate on your build |
| 3.x / 4.x+ | REST API (API user token) | ✔ Supported (same /api, Basic auth) |
The live test imported 5 lists and 8 subscribers with no errors. Lists became Odoo mailing lists and subscribers became Odoo mailing contacts, each linked to the mailing lists it belongs to — for example the subscriber “Alice Wong” imported linked to 3 lists: VIP Customers, Product Updates and Newsletter.
Built to actually sync — not to look busy
Listmonk exposes a clean REST API, and this connector treats it that way: it authenticates with an API user + token over HTTP Basic, reads your lists and subscribers from /api, and maps each one onto the right Odoo record — mailing lists and mailing contacts, with each subscriber linked to the lists it belongs to. Every model ships with verifiable sync logic, covered by tests — no fake dashboards, no “readiness score” with nothing behind it.
What you actually get
Everything below ships in the box — an import-first, read-only connector that reads your Listmonk over the REST API with an API user + token.
Two-way opt-out & suppression sync
Listmonk unsubscribes and blocklist entries flow into Odoo as mailing.contact opt-outs and mail.blacklist entries — and Odoo opt-outs push back to Listmonk. Consent stays consistent on both sides, so you never email someone who unsubscribed anywhere. Runs on the resilient queue and honours dry-run.
Lists → mailing lists
Each Listmonk list imports as an Odoo mailing.list in the Email Marketing app — its name plus the Listmonk metadata: type (public / private), opt-in (single / double) and subscriber count.
Subscribers → contacts
Each Listmonk subscriber becomes an Odoo mailing.contact — name, email and Listmonk status — ready to use in the Email Marketing app.
List membership linked
Every subscriber is linked to the Odoo mailing lists it belongs to — list memberships are resolved from the imported lists, so your Listmonk segmentation carries over into Odoo intact.
Status mapping
The Listmonk subscriber status — enabled, disabled or blocklisted — is carried across onto the Odoo mailing contact through an editable mapping table per instance.
Scheduled sync
The connector imports from Listmonk on a schedule (cron) — point it at your instance and it keeps Odoo up to date. Inbound webhooks and write-back are on the roadmap.
HTTP Basic REST client
One client authenticates with a Listmonk API user + token sent as HTTP Basic auth against /api. No OAuth — works with v2 admin credentials and v3+ API users alike; retry with backoff and rate-limit handling built in.
Sync Control Tower
A live operations dashboard for every instance — sync health, circuit-breaker state, queue backlog, dead-letter count, open conflicts and throughput, each a click-through to the jobs behind it. Know sync is healthy without reading a single log line.
Bulk dead-letter console
Every job that exhausted its retries lands here, grouped by instance and error. Select many at once and bulk requeue once you've fixed the cause, or bulk discard — no record-by-record clean-up.
Conflict-resolution workbench
When a local and a remote change collide, the conflict is captured with a side-by-side snapshot diff. Triage them in one place and bulk-resolve — keep local or take remote — instead of digging through history.
Field-mapping studio
Map source fields to Odoo fields visually, test the exact payload transform in a wizard before you save, and let one-click suggestions propose sensible mappings. Expression transforms and step conditions evaluate through Odoo's sandboxed safe_eval.
A live walkthrough inside Odoo 19
Recorded in a real Odoo 19 connected to a live Listmonk 2.5 — the connection cockpit, a synced list and subscriber, the status mapping and the flow engine, all on real data.
Every screen, from a live install
Captured from a running Odoo 19 connected to a live Listmonk 2.5 — real data imported through the connector, not mockups.








Run every Listmonk store from one Control Tower
A short walkthrough of the operations tooling on real data: the Control Tower board, the side-by-side conflict workbench and the bulk dead-letter console.
Production safety, by default
Resilient queue
Retry with exponential backoff, rate-limit awareness, dead-letter handling and conflict capture for every job.
Circuit breaker
Auto-pauses sync after N consecutive failures so a broken endpoint can never flood your data.
Dry-run mode
Default-ON for every new instance — preview the exact write before anything touches live records.
Pre-flight validation
Blocking and warning findings surfaced before go-live, with auto-fix suggestions.
Rollback snapshots
Capture record state before risky writes and roll back cleanly when needed.
Narrow write scope
List and subscriber content is import-only — a sync never creates, updates or deletes your Listmonk lists or subscribers. The single exception is compliance: opt-out / blocklist changes are synced back so consent stays consistent on both sides.
Honest feature matrix
No asterisks, no fake checkmarks. Here is exactly what this version does — and what is on the roadmap.
| Capability | Status |
|---|---|
HTTP Basic REST connection (API user + token against /api) | ✔ Included |
Lists → mailing.list (name, type, opt-in mode, subscriber count) | ✔ Included |
Subscribers → mailing.contact (name, email, status) | ✔ Included |
| List membership linked — each subscriber tied to its Odoo mailing lists | ✔ Included |
| Subscriber status mapping (enabled / disabled / blocklisted) | ✔ Included |
| Works with v2 admin credentials and v3+ API user tokens (both Basic) | ✔ Included |
| Scheduled (cron) import | ✔ Included |
| Queue: retry · backoff · dead-letter · circuit breaker | ✔ Included |
| Pre-flight validation · rollback snapshots · dry-run | ✔ Included |
| Built-in import flow templates | ✔ Included |
Two-way opt-out / suppression sync (Listmonk unsubscribe & blocklist ↔ Odoo mail.blacklist + mailing.contact opt-out) | ✔ Included |
| Sync Control Tower — live health / circuit / backlog / dead-letter / conflicts / throughput dashboard | ✔ Included |
| Bulk dead-letter console — grouped exhausted jobs, bulk requeue / discard | ✔ Included |
| Conflict-resolution workbench — snapshot diff, triage & bulk resolve | ✔ Included |
Field-mapping studio — payload-test wizard, one-click suggestions, safe_eval transforms & conditions | ✔ Included |
| Inbound webhooks / live-push (instead of scheduled import) | Roadmap |
| Write-back / export of list & subscriber content Odoo → Listmonk (opt-out / suppression already two-way) | Roadmap |
| Campaign / template import | Roadmap |
Live in four steps
A guided quick-setup wizard and onboarding checklist walk you from a Listmonk API token to your first safe import.
Create a token
In Listmonk, create (or locate) an API user and copy its token — or use your v2 admin credentials. No schema changes, no plugin to install.
Connect
In Odoo, enter your Listmonk base URL plus the API user + token, then run the first scheduled import. One click tests reachability.
Dry-run
Preview exact writes with dry-run + validation on. Clear any blocking findings.
Go live
Let the scheduled (cron) import keep Odoo up to date from Listmonk, with opt-outs kept in sync both ways.
Buy with full clarity
In the box today
- Read-only import: lists → mailing lists, subscribers → mailing contacts
- List membership linked — each subscriber tied to its Odoo mailing lists
- HTTP Basic REST client (API user + token) — no OAuth, works with v2 admin creds and v3+ tokens
- Scheduled (cron) import — point it at your Listmonk and it stays current
- Configurable subscriber-status mapping, dry-run safety, rollback snapshots
- Full source included — audit and extend every line for your own use
- Two-way opt-out / suppression sync — unsubscribe & blocklist kept consistent both ways (compliance-safe)
- Sync Control Tower — one live dashboard for health, circuit breaker, backlog, dead-letter, conflicts & throughput
- Bulk dead-letter console & conflict-resolution workbench — triage and fix at scale, not row by row
- Field-mapping studio — visual mapping, a payload-test wizard, one-click suggestions and
safe_evaltransforms
Roadmap
- Inbound webhooks / live-push instead of a scheduled import
- Write-back / export of list & subscriber content Odoo → Listmonk (opt-out / suppression already syncs both ways today)
- Campaign / template import
Frequently asked
Which versions are supported?
Odoo 19.0 on the Odoo side. On the Listmonk side, the connector was live-tested on Listmonk 2.5 and targets the Listmonk 2.x / 3.x / 4.x lines that expose the same /api REST endpoints. Validate on your specific build.
What does it import?
Two Listmonk entities: lists become Odoo mailing lists (mailing.list) in the Email Marketing app — carrying type, opt-in mode and subscriber count — and subscribers become Odoo mailing contacts (mailing.contact) with their name, email and status. Each subscriber is linked to the mailing lists it belongs to, resolved from the imported lists.
How does authentication work?
One mode: HTTP Basic. You enter your Listmonk base URL plus an API user and its token (or password) in Odoo, and the connector sends them as Basic auth on every REST call. This covers Listmonk v2 admin credentials and v3+ API users alike — no OAuth. It imports list and subscriber content, and writes back only opt-out / blocklist changes to keep consent consistent.
Does it push changes in real time?
Not yet. The connector imports on a schedule (cron). Inbound webhooks / live-push and write-back to Listmonk are on the roadmap.
Is it safe to run against production data?
Dry-run mode is ON by default for new instances, validation blocks risky writes, and rollback snapshots let you undo. List and subscriber content is import-only, so a sync never alters your Listmonk lists or subscribers — the only thing written back is opt-out / blocklist state, to keep consent consistent on both sides. You decide when to go live.
What support and refund policy do I get?
Every request is answered within 24 hours, setup help included. If you report a bug within 2 months of purchase and it isn't resolved within 15 days, you're entitled to a full money-back refund.
Connect Odoo and Listmonk the honest way
24-hour support · Report a bug within 2 months — unresolved in 15 days = full refund · Full source included
bambooforge.labs@gmail.comMore from BambooForge Labs — one vendor, the same standard: tested, source included, supported.
BambooForge Listmonk Connector
A read-only bridge from Listmonk into Odoo 19's Email Marketing: import your Listmonk lists as Odoo mailing lists and your Listmonk subscribers as Odoo mailing contacts — over the official Listmonk REST API, with a resilient job queue, dry-run safety, validation and rollback so you stay in control.
This page is the complete manual. If you follow it top to bottom you can install, connect, run your first import, automate it, and fix the common issues without contacting support.
- Overview
- Requirements
- Installation
- Step 1 — Set up API access on Listmonk
- Step 2 — Create the connection in Odoo
- Step 3 — First import (dry-run, then live)
- Field mapping & customization
- Automation (scheduled actions)
- Safety features
- Troubleshooting
- Frequently asked questions
- Data, privacy & limits
- Support & updates
- Upgrading & version compatibility
- Uninstallation
- Changelog
Overview
The connector pulls newsletter data from Listmonk into Odoo over the Listmonk JSON REST API. It is import-only: data flows Odoo ← Listmonk and the connector never writes back to Listmonk. It covers two entities:
- Lists → mailing.list — each Listmonk list becomes an Odoo mailing list. The list name is imported, and the raw Listmonk metadata is kept on the record so the source of truth is auditable: external id, uuid, list type (public/private), opt-in mode (single/double) and the last observed subscriber count.
- Subscribers → mailing.contact — each Listmonk subscriber becomes an Odoo mailing contact (name + email). The raw Listmonk status (enabled / disabled / blocklisted) is kept, and the contact's list_ids are resolved from the subscriber's Listmonk lists against the lists you already imported.
Because list links are resolved by lookup, lists are always imported before subscribers, so each subscriber's list membership lands correctly.
Direction of sync: Odoo ← Listmonk (pull-only). Every remote call goes through a queue: nothing is written to Odoo until a job runs, jobs retry with back-off on transient failures, and a circuit breaker pauses an instance that keeps failing.
Requirements
- Odoo: 19.0, Community or Enterprise. The connector depends on Email Marketing (mass_mailing), which installs automatically.
- Listmonk: a reachable Listmonk server. Works with both Listmonk v2 (config admin username + password) and v3+ (API user name + token) — both are Basic-style credentials (see Step 1).
- Python: no extra libraries beyond a standard Odoo 19 install.
- Odoo access: any internal user can use the connector screens. The API token/password is stored in a system-only field, so only the Settings / Administration user can read or change it.
- Network: outbound HTTPS from Odoo to your Listmonk server. By default the connector refuses internal/loopback/private hosts as an SSRF safeguard (see Safety features).
Installation
- Copy bambooforge_listmonk_connector into your Odoo addons path.
- Restart the Odoo service.
- Open Apps, click Update Apps List, search for Listmonk, and press Activate / Install. The dependency Email Marketing installs automatically.
No Listmonk server is required to evaluate the connector: a mock Listmonk REST API ships inside the module, so you can install, explore and run the full import flow against sample data before pointing it at a real server. To use it, set the instance Base URL to <your-odoo-url>/listmonk/mock_api with API Path api and any Basic-auth user/token.
Step 1 — Set up API access on Listmonk
The connector authenticates with HTTP Basic auth, sent on every request as the Authorization: Basic base64(user:token) header. There is no OAuth and no API-key query parameter — just a username and a secret.
Listmonk v3 and newer (recommended):
- Sign in to your Listmonk admin UI as a super-admin.
- Go to Settings ▸ Users ▸ API users and create an API user.
- Give it a role that can read lists and subscribers (read access is all the connector needs — it never writes to Listmonk).
- Copy the API user name and the generated token. The token is shown once.
- In Odoo, enter the API user name as API User and the token as API Token / Password.
Listmonk v2:
- Use your Listmonk config admin username and admin password.
- In Odoo, enter the admin username as API User and the admin password as API Token / Password.
In both cases the connector sends the pair as HTTP Basic over the wire, so use HTTPS in production to keep the credential confidential.
Step 2 — Create the connection in Odoo
Open Listmonk Connector ▸ Configuration ▸ Instances and create a record.
Key fields:
| Field | What to enter |
|---|---|
| Name | A label for this server, e.g. Production Listmonk. |
| Base URL | Your Listmonk server root, e.g. https://lists.example.com (or http://localhost:9000 for a local server, with Allow internal host on). |
| Authentication | HTTP Basic (user + token) — the only mode. Sent as the Authorization: Basic header on every request. |
| API User | The Listmonk Basic-auth username — the API user name (v3+) or the config admin username (v2). |
| API Token / Password | The Listmonk Basic-auth secret — the API user token (v3+) or the admin password (v2). Visible to administrators only. |
| API Path | The Listmonk REST API path. Leave the default api unless your server differs. |
| Verify SSL | Keep on for production. Turn off only for self-signed test certificates. |
| Allow internal host | Off by default. Turn on only to reach a Listmonk server on localhost or a private network (lowers the SSRF guard — see Safety features). |
Then click Test Connection. The connector calls GET /api/lists?per_page=1 with your credentials. A green Connected state means the URL and Basic credentials are correct; the connector also seeds the default subscriber-status mappings on first connect. If it fails, the exact error is recorded on the form and in Logs (see Troubleshooting).
Step 3 — First import (dry-run, then live)
New instances start with Dry-run ON. In dry-run, import jobs simulate writes: instead of creating Odoo records they produce Validation Results you can review under Listmonk Connector ▸ Operations ▸ Validation Results. This lets you confirm what would happen before anything is written.
To run a first import:
- On the instance, click Import Lists first, then Import Subscribers. Importing lists first lets each subscriber's list membership resolve. These buttons enqueue jobs; they do not block the UI.
- Jobs are processed by the Listmonk Queue Processor scheduled action (every minute), or immediately if you run the processor manually from Operations ▸ Queue Jobs.
- Review Validation Results while still in dry-run.
- When satisfied, open the instance, turn Dry-run OFF, and run the imports again to write the records for real.
Imported records land in the standard Email Marketing app: lists under Email Marketing ▸ Mailing Lists, contacts under Email Marketing ▸ Mailing List Contacts. Each carries its Listmonk external id, so re-imports update the same record instead of duplicating it.
Field mapping & customization
- Field Mappings (Configuration) map Listmonk fields to Odoo fields per entity. Use Generate suggested mappings on the instance to seed the business-critical ones, then adjust.
- Schema Fields lists the discovered fields per entity. Run Schema Introspection on the instance to refresh it: the connector flattens a live Listmonk sample record (falling back to the bundled mock when the server is unreachable) and lists the Odoo target fields beside it.
- Subscriber Status Mappings (seeded on first connect) record how each raw Listmonk subscriber status (enabled / disabled / blocklisted) is interpreted. The raw status is always kept verbatim on the contact in listmonk_status.
- Listmonk metadata is preserved verbatim on each imported record (external id, uuid, list type, opt-in mode, subscriber count on lists; uuid and status on contacts) so you can audit exactly what came from Listmonk.
Automation (scheduled actions)
The module ships these scheduled actions (Settings ▸ Technical ▸ Scheduled Actions):
| Scheduled action | Default | Purpose |
|---|---|---|
| Listmonk Queue Processor | every 1 min | Processes queued import jobs. |
| Listmonk Reconciliation | every 15 min | Pulls recent remote lists/subscribers for enabled entities and re-queues anything missing or previously failed. |
| Listmonk Maintenance | every 1 hr | Recovers stale/locked jobs and trims old jobs and logs. |
| Listmonk Flow Scheduler | every 5 min | Runs scheduled import flows. |
| Listmonk Flow Metrics | every 1 hr | Aggregates flow-run metrics. |
| Listmonk Auto Recover | every 15 min | Reopens a tripped circuit breaker once the cooldown passes and no blocking validation issues remain. |
Turn on Auto import / Auto reconcile for lists and/or subscribers on the instance to let the scheduled actions keep things in sync hands-free.
Webhooks: Listmonk does not push entity webhooks for list/subscriber imports, so this connector is pull-only — it imports on the schedule above. A /listmonk/webhook route exists but is a neutralized placeholder: it acknowledges with HTTP 200 and imports nothing, so existing subscriptions or health checks do not 404. Do not rely on it to import data; use the scheduled import / reconcile flows instead. Inbound webhooks are a roadmap item.
Safety features
- Dry-run mode (Dry-run, ON by default) — simulate writes and review Validation Results before going live.
- Business validation profiles (Business validation profile: Minimal / Standard / Strict) — gate risky writes; Standard is the default.
- Resilient queue — every remote action is a job. API calls retry with exponential back-off (API retry limit / backoff / cap), and failed jobs retry up to Retry limit before moving to the dead-letter state.
- Circuit breaker (Circuit state) — after repeated failures, or any auth/configuration failure, the instance auto-pauses (Tripped). The Auto Recover action reopens it after a cooldown once no blocking issues remain; or click Resume.
- Rollback snapshots (Rollback enabled, on by default) — imports can capture a snapshot so you can undo a batch from Operations ▸ Rollback Snapshots.
- SSRF guard — the connector refuses internal/loopback/private/link-local/ reserved hosts unless Allow internal host is explicitly enabled.
Troubleshooting
| Symptom | Cause and fix |
|---|---|
| Test Connection fails with 401/403 | Wrong Basic credentials, or the Listmonk user lacks read access. Re-check Step 1: API User must be the API user name (v3+) or admin username (v2), and API Token / Password the matching token/password. An auth failure also trips the circuit breaker, so click Resume after fixing. |
| "Base URL ... is not allowed because it resolves to the non-public address" | Base URL points at localhost or a private/loopback IP. Enable Allow internal host on the instance (self-hosted/test Listmonk only). |
| "the URL must start with http:// or https://" | The Base URL is missing its scheme. Enter the full https://lists.example.com. |
| SSL errors on Test Connection | Self-signed certificate. Use a valid cert, or turn off Verify SSL for testing only. |
| Jobs stay in Pending | The Queue Processor is off, the instance is paused, or the circuit breaker is tripped. Check Scheduled Actions is active, that the instance is not Paused, and Resume if needed. |
| Instance shows Tripped | Circuit breaker tripped after repeated failures (or an auth/config error). Fix the server/credentials; Auto Recover reopens it after the cooldown, or click Resume. |
| Subscribers import but have no lists | Subscriber list links resolve against lists already in Odoo. Run Import Lists first, then Import Subscribers again. |
| Nothing happens after Import | You are in Dry-run. Review Validation Results, then turn dry-run off and re-run. |
| Records imported twice | Imports are keyed by the Listmonk external id, so this should not happen. If it does, check that two instances do not point at the same Listmonk server. |
| "Listmonk rate limit reached" / server errors | Listmonk returned 429 or a 5xx. The client already retries with back-off; if it persists, lower the import limits or batch size and retry later. |
For anything else, Operations ▸ Logs records every API call, payload and error with a timestamp.
Frequently asked questions
Which versions are supported? Odoo 19.0 on the Odoo side. On the Listmonk side, both v2 (config admin username + password) and v3+ (API user name + token) work, because the connector uses HTTP Basic for both. Validate your exact build with the bundled mock first.
Do I need a Listmonk server to evaluate it? No. A mock Listmonk REST API ships inside the module. Point the instance Base URL at <your-odoo-url>/listmonk/mock_api (API Path api, any Basic credentials) to run the full import flow against sample data.
How does authentication work? HTTP Basic only. The connector sends Authorization: Basic base64(user:token) on every request. Use HTTPS so the credential is not exposed in transit.
Does the connector write anything back to Listmonk? No. It is strictly read-only / import-only. It only reads lists and subscribers from Listmonk and creates/updates the matching Odoo mailing lists and contacts.
Is there real-time sync via webhooks? Not in v1. Listmonk does not push entity webhooks for list/subscriber imports, so the connector pulls on a schedule (every minute for the queue, every 15 minutes for reconciliation). The /listmonk/webhook route is a placeholder only. Inbound webhooks are on the roadmap.
Is it safe to run against production data? Yes — Dry-run is ON by default, validation gates risky writes, and rollback snapshots let you undo a batch. You decide when to go live. And because the connector never writes to Listmonk, your Listmonk data is never at risk.
What support and refund policy do I get? Every request is answered within 24 hours, setup help included. If you report a bug within 2 months of purchase and it is not resolved within 15 days, you are entitled to a full money-back refund.
Data, privacy & limits
- The connector reads lists and subscribers from your Listmonk server and writes the corresponding Odoo mailing lists and mailing contacts. It never writes to Listmonk — there is no export and no two-way sync.
- The API token/password is stored in a system-only (admin-only) field.
- In scope today: list import (→ mailing.list), subscriber import (→ mailing.contact) with resolved list membership and preserved Listmonk metadata, scheduled import + reconciliation, dry-run, validation and rollback.
- Out of scope / roadmap: write-back / export to Listmonk; inbound real-time webhooks; incremental list filtering by modified date (v1 lists by page size / offset).
Support & updates
- Support: bambooforge.labs@gmail.com — answered within 24 hours, setup help included.
- Refund: report a bug within 2 months of purchase; if unresolved within 15 days, full refund.
- Full source is included. Updates track the supported Odoo 19 / Listmonk REST API line.
Upgrading & version compatibility
This build targets Odoo 19.0. Each Odoo major series (17.0, 18.0, 19.0) has its own dedicated build of this module — always install the build that matches your Odoo version. Mixing a build with a different Odoo series is not supported.
Patch upgrades (same series, e.g. 19.0.1.0.0 → later)
Back up your database and filestore first.
Replace the module folder with the newer build.
Restart Odoo with the module updated:
./odoo-bin -c your.conf -u bambooforge_listmonk_connector -d your_db
Odoo applies any schema/data changes automatically. Your existing records and configuration are preserved.
Cross-version migration (e.g. Odoo 17 → 18)
Upgrading Odoo itself is a database migration handled by Odoo's standard upgrade tooling. When you migrate the database to the next Odoo series, install the matching build of this module for that series. Data created by this module carries over with the database migration.
After any upgrade the module's scheduled actions resume on their normal cadence — no manual re-activation is required.
Uninstallation
You can remove this module at any time from Apps → (this module) → Uninstall, or from the command line. Uninstalling is clean and reversible by reinstalling — but note what is and is not deleted.
What is removed
- The module's own tables and every record in them (22 models, prefixed listmonk.*) — this is the data this module created.
- The menus, actions, views and reports this module installed.
- Its scheduled actions (cron jobs) — they stop immediately on uninstall.
- Connection records, credentials, field mappings, queue jobs and sync logs stored in Odoo.
What is preserved
- Your remote platform is never touched. Uninstalling only removes the Odoo-side connector; products, customers and orders on the external store/service are untouched.
- Records already imported into standard Odoo models (e.g. contacts, products, sales orders) remain — they are ordinary Odoo records once created.
- Attachments and chatter messages on standard records are kept.
As always, take a database backup before uninstalling in production.
Changelog
19.0.1.0.0
Current release for Odoo 19.0. This build includes:
- Two-way subscription & opt-out sync between Odoo 19 and Listmonk: unsubscribe/blocklist <-> mail.blacklist + mailing.contact opt-out (compliance-safe), plus Lists & Subscribers import.
- Resilient queue, dry-run safety, auditable source.
Feature additions and fixes ship as new builds on the Odoo Apps store; this page and the module's version reflect the current published release. Always keep the build matched to your Odoo series (see Upgrading & version compatibility).
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module