This module allows the user to define a set of subjects (partners) affected by any data processing activity, and establish a process to ask them for consent to include them in that activity.
For those that need explicit consent as a lawfulness base for personal data processing, as required by GDPR (article 6.1.a), this module provides the needed tools to automate it.
auto_awesome What this module does
AI-generated from the code · Odoo 18.0Ask contacts for explicit consent to include their data in a data processing activity, send them accept/reject emails, and track their answers automatically.
This module adds a consent workflow on top of the Privacy app. On each data processing activity you can choose whether subjects are asked for consent automatically or manually, pick an email template, and decide whether silence means acceptance. A button generates the missing consent requests for the contacts matching the activity's subject rules.
Each consent request links one subject (contact) to one activity and moves through Draft, Awaiting response and Answered. You can send the request by email from the consent form, and the email contains Accept and Reject links that the contact can click without logging in. The answer is recorded with technical details (browser, IP address, date and time), and the contact can change their mind later from the confirmation page.
A scheduled job runs daily to create and send automatic consent requests. A server action can synchronise the contact's email blacklist status with their answer. Contacts show a smart button with their number of consents, and activities show a consent counter. Consents are listed under Data Protection master data, with filters and grouping by activity, state and acceptance.
Depends on
Menus it adds
Models and fields (5)
- mail.mail · extends an existing model
- res.partner · extends an existing modelprivacy_consent_ids (Privacy consents), privacy_consent_count (Consents)
- mail.template · extends an existing model
- privacy.consent · new modelstate, active, accepted, partner_id (Subject), activity_id (Activity), last_metadata
- privacy.activity · extends an existing modelconsent_ids (Consents), consent_count (Consents count), default_consent (Accepted by default), consent_required (Ask subjects for consent), server_action_id (Server action), consent_template_id (Email template), consent_template_default_subject, consent_template_default_body_html
Text generated by AI (DeepSeek) from reading the Odoo 18.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub
Availability by version
Reviewed: 2026-11-03Confirmation status: 7 confirmed, 2 with no information of 9 versions.
Sources · Odoo 18.0
Confirmed on 2026-11-03 in branch 18.0 of OCA/data-protection.
terminal Installation and usage
OCA documentation · Odoo 18.0Installation
Source · Odoo 18.0You may want to install, along with this module, one of OCA's mail_tracking module collection, such as mail_tracking_mailgun, so you can provide more undeniable proof that some consent request was sent, and to whom.
However, the most important proof to provide is the answer itself (more than the question), and this addon provides enough tooling for that.
Multi-database instances
To enable multi-database support, you must load this addon as a server-wide addon. Example command to boot Odoo:
odoo-bin --load=web,privacy_consent
Usage
Source · Odoo 18.0New options for data processing activities:
- Go to Privacy \> Master Data \> Activities and create one.
- Give it a name, such as Sending mass mailings to customers.
- Go to tab Consent and choose one option in Ask subjects for consent:
- Manual tells the activity that you will want to create and send the consent requests manually, and only provides some helpers for you to be able to batch-generate them.
- Automatic enables this module's full power: send all consent requests to selected partners automatically, every day and under your demand.
- When you do this, all the consent-related options appear. Configure them:
- A smart button tells you how many consents have been generated, and lets you access them.
- Choose one Email template to send to subjects. This email itself is what asks for consent, and it gets recorded, to serve as a proof that it was sent. The module provides a default template that should be good for most usage cases; and if you create one directly from that field, some good defaults are provided for your comfortability.
- Subjects filter defines what partners will be elegible for inclusion in this data processing activity.
- You can enable Accepted by default if you want to assume subjects accepted their data processing. You should possibly consult your lawyer to use this.
- You can choose a Server action (developer mode only) that will be executed whenever a new non-draft consent request is created, or when its acceptance status changes. This module supplies a server action by default, called Update partner's opt out, that syncs the acceptance status with the partner's Elegible for mass mailings option.
- Click on Generate consent requests link to create new consent requests.
- If you chose Manual mode, all missing consent request are created as drafts, and nothing else is done now.
- If you chose Automatic mode, also those request e-mails are enqueued and, when the mail queue is cleared, they will be set as Sent.
- You will be presented with the list of just-created consent requests. See below.
New options for consent requests:
- Access the consent requests by either:
- Generating new consent requests from a data processing activity.
- Pressing the Consents smart button in a data processing activity.
- Going to Privacy \> Privacy \> Consents.
- A consent will include the partner, the activity, the acceptance status, and the request state.
- You can manually ask for consent by pressing the button labeled as Ask for consent.
- All consent requests and responses are recorded in the mail thread below.
No verified information in OCA: Configuration.
Installation instructions, the distribution package, dependencies and configuration steps are not shown because they have not yet been verified in the module documentation for any version.
Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.