OdooWiki OCA HUB

Mail Activity Plan Domain

mail_activity_plan_domain folder_open OCA/mail open_in_new
Discuss License: AGPL-3

This module extends Odoo's activity plan feature with domain-based filtering at two levels:

Plan domain

Each activity plan gains a Domain field. Only records matching this domain will have the plan available in the scheduling wizard (mail.activity.schedule). This lets you restrict plans to, for example, company-type partners or records in a specific stage.

Template domain

Each line of an activity plan (template) gains its own Domain field. When executing a plan, activities whose template domain does not match the target record are silently skipped. This allows a single plan to cover heterogeneous records while still generating only the relevant activities per record.

Notes

  • The error preview shown in the scheduling wizard (missing responsible, etc.) deliberately ignores template domains so that all potential configuration issues remain visible.
  • When scheduling a plan on multiple records, execution is serialized record by record so that each record is evaluated independently against both plan and template domains.
  • Domain syntax follows the standard Odoo domain format, e.g. [('is_company', '=', True)].

auto_awesome What this module does

AI-generated from the code · Odoo 18.0

Adds a filter field to activity plans and to each activity line inside a plan, so a plan is only offered for records that match, and only the relevant activities are created for each record.

This module makes activity plans smarter by letting you decide, with a filter, which records a plan applies to and which activities inside the plan should actually be created.

On an activity plan you get a new filter field next to the target model. Leave it empty to keep the plan available for all records of that model, or set a filter so the plan only appears in the scheduling wizard for records that match. Changing the target model resets the filter.

Each activity line inside a plan also gets its own filter field. When a plan is launched, activities whose filter does not match the record are skipped, so one plan can cover different kinds of records and still create only the useful activities.

When you schedule a plan on several records at once, the module processes them one by one and then shows you the list of the records it worked on. If only one record was selected, the screen simply refreshes.

The filter fields are added to the activity plan form, to the activity lines list (hidden by default) and to the standalone activity line form. The module touches mail.activity.plan, mail.activity.plan.template and the scheduling wizard mail.activity.schedule.

Depends on

mail
Models and fields (3)
  • mail.activity.plan · extends an existing modeldomain
  • mail.activity.schedule · extends an existing model
  • mail.activity.plan.template · extends an existing modeldomain

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-03
Confirmed (verified in repository and branch) Estimated (unverified) No information

Confirmation status: 2 confirmed, 7 with no information of 9 versions.

terminal Installation and usage

OCA documentation · Odoo 18.0

To use this module:

  • Go to Settings > Technical > Activities > Activity Plans.
  • Open or create an activity plan.
  • In the Domain field, set the domain that records must match for this plan to appear in the scheduling wizard (e.g. [('is_company', '=', True)] to restrict the plan to company-type partners). Leave empty or use [] to apply to all records.
  • In the plan lines, each activity template also has its own Domain field. Set it to skip that activity for records that do not match (e.g. [('is_company', '=', False)] to schedule an activity only for individual contacts). Leave empty or use [] to always schedule the activity.

When scheduling a plan from a record, only plans whose Domain matches that record will be listed. During execution, activities whose template domain does not match the record are silently skipped.

No verified information in OCA: Installation, Configuration.

info

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.