Skip to main content
AK Ankush Kaura

Setting Activity Plan Deadlines in Odoo CRM Without Guessing

How Odoo 19 CRM activity plans calculate deadlines from a plan date, how that differs from activity chaining, and how to assign each step.

Published on 14 Nov 2026 · 5 min read

Animated portrait of Ankush Kaura

Short answer: An activity plan in Odoo 19 CRM is a list of steps, each with an interval and a Trigger of Before Plan Date or After Plan Date. You choose the plan date when you launch it, and Odoo places every activity relative to that one date. Pick the event the whole sequence is built around, such as the meeting or the site visit, as the plan date, and the rest of the deadlines follow without anyone counting days.

Applies to

  • Odoo version: Odoo 19. The CRM activities page is identical in the 20.0 documentation.
  • Edition: Community and Enterprise. Activity plans live in the mail framework, which is in the Community code.
  • Apps: CRM. Other apps have their own plans, and an activity type limited to another model cannot be used in a CRM plan.

What should the plan date be?

This is the decision that matters most, and it is made once, when you design the plan. The plan date is the day the plan is anchored to. In the documentation’s example, the meeting is the objective, so the meeting line has an interval of zero and everything else is measured from it: preparation lines come before it, and the quote and follow-up come after.

Think of it as a reverse calendar. If you start from “when do we first contact them”, the outcome you care about lands wherever the arithmetic puts it. If you start from the outcome, the preparation fits around it.

How do the interval, units and trigger fit together?

Each line on CRM ‣ Configuration ‣ Activity Plans has an Activity Type, a Summary, an Assignment, an Interval, Units (days, weeks or months) and a Trigger. When the plan is launched from the Activity button on an opportunity, you select the plan, choose a Due Date, and the Plan Summary lists the resulting deadlines before you confirm with Schedule.

I read the 19.0 source to see how the date is worked out. The deadline is the plan date plus or minus the interval, using plain calendar arithmetic. That method does not consult a working-time calendar, so a line three days after a Friday plan date lands on a Monday, and two days after it lands on a Sunday. If your team does not work weekends, look at the Plan Summary before scheduling.

Does the activity type’s own deadline still apply?

Not inside a plan. Activity types have a Schedule setting too, with two options: after previous activity completion date, or after previous activity deadline. The source comment on plan lines says the activity type’s delay fields are ignored in favour of the plan line’s values. So changing the type’s default delay will not shift an existing plan. Edit the plan line instead.

How is a plan different from chaining?

Chaining lives on the activity type. With Suggest Next Activity, the user sees recommendations once the current activity is done. With Trigger Next Activity, marking it Done launches the next one immediately. Both react to a completed step.

A plan works the other way round. It schedules the whole sequence on day one, from one plan date, so the manager can see the whole schedule. Chaining suits open-ended work where the next step depends on the last outcome. A plan suits a repeatable routine with a known end point.

Who receives each activity?

Per line, Assignment is either Ask at launch or Default user. With the first, the person you choose in Responsible at launch gets the line. With the second, it always goes to the named user. A plan can mix both, for example a manager review fixed to the manager while the rest follow the salesperson.

If a line is set to Ask at launch and no responsible is provided, the 19.0 source returns an error naming the activity. That is a useful safety net. A Default user who later leaves the company is not, and I would review plans whenever someone changes role.

When it fits and when it doesn’t

Plans fit routines that repeat with the same shape: a demonstration, a site survey, an onboarding call series. They do not fit deals where the next step is unknown. For those, chaining or a single manually chosen activity is better, because a plan full of guessed steps becomes a list people mark Done to clear.

A worked example

A company that installs security cameras builds a “Site survey” plan with the survey itself as the plan date. Before it: an email confirming the visit and a call to check access. On the day: the survey meeting. After: a quote and then a follow-up.

The salesperson launches it from the opportunity, picks the survey date, reviews the Plan Summary and notices that the quote falls on a weekend. They change the interval on the quote line to land on a working day and schedule the plan.

Common mistakes

  • Starting from the first contact. The key event then lands wherever the maths puts it.
  • Too many lines. Keep a plan to the steps people actually do.
  • Leaving Default user on old plans. Someone who has left keeps receiving work.
  • Editing the activity type and expecting the plan to change. The plan line wins.

There is a longer screen by screen walkthrough of this on sajjalbajaj.in.

Official references

How this article was checked: I read the Odoo 19 CRM activities page, compared it with 20.0, and read the 19.0 mail activity plan template, activity type and scheduling wizard source for how deadlines and assignment are calculated. I did not run a live database.

If you want help designing repeatable sales routines in Odoo, take a look at the stack page.

Frequently asked questions

How does an Odoo activity plan calculate deadlines?

Each plan line has an Interval, Units and a Trigger of before or after the plan date. When you launch the plan you pick a Due Date, and Odoo adds or subtracts each interval from it.

What is the difference between an activity plan and activity chaining?

A plan schedules a whole sequence at once from one plan date. Chaining, set on an activity type, suggests or triggers the next activity only after the current one is marked Done.

Who gets the activities in a plan?

Each line is either Ask at launch, which uses the Responsible chosen when the plan is scheduled, or Default user, which always uses the named person.