How to Create a Task When a Sales Order Is Confirmed in Odoo · Calibre Consulting

Create a project task the moment a sale is confirmed.

A step-by-step guide to making Odoo create a task in a chosen project whenever a sales order is confirmed, using a service product and no custom code.

If your delivery or onboarding team needs a task every time a deal is won, Odoo can create that task in a chosen project the moment a sales order is confirmed. This guide sets it up with a service product and a default quotation template, using only the standard Sales and Project apps and no custom code. The steps were verified on Odoo 19.

Before you start

How the automatic task works

Odoo creates these tasks from sales order lines. When an order is confirmed, Odoo checks each line. If a line holds a service product whose Create on Order setting is Task, Odoo creates one task for that line in the project chosen on the product.

By default, the task is named after the order and the product, for example "S00042 - Onboarding". It carries the order's customer, it stays linked to the sales order line, and its chatter (the message log at the side or bottom of every record) notes which order created it. If the product has no project set, Odoo uses the project selected on the quotation instead. If neither is set, confirmation stops with an error asking for a project.

Set up the product and the default template

Step 1: create the onboarding product

  1. Open the Sales app, then go to Products > Products and click New.
  2. Name the product, for example "Onboarding".
  3. Keep the Sales checkbox under the name ticked. The task options are hidden on products that cannot be sold.
  4. On the General Information tab, set Product Type to Service. The Create on Order field now appears.
  5. Set Create on Order to Task. A Project field now appears below it.
  6. In Project, choose the delivery team's project.
  7. Set the Sales Price to 0 if the customer should not pay for this line, then save.

Create on Order has two other project options. Project & Task creates a new project for each order with a task per order line, and Project creates an empty project for each order. Use them only if every customer should get a project of their own.

Step 2: put the product on every quotation

A task is only created for orders that contain the product, so make it part of the default quotation template.

  1. Open the Sales app, then go to Configuration > Settings.
  2. Tick Quotation Templates. A Default Template field appears under it. Save.
  3. Go to Configuration > Sales Orders > Quotation Templates, a menu that appears once the setting is on, and click New.
  4. Give the template a name. On the Lines tab, click Add a product, add the onboarding product with a quantity of 1, and add any other lines you always quote. Save.
  5. Go back to Configuration > Settings, select the new template in Default Template, and save.

Every new quotation now opens with this template and the onboarding line in place.

Check that it worked

  1. In the Sales app, go to Orders > Quotations and click New.
  2. Choose a customer. The onboarding line should already be on the quotation.
  3. Click Confirm. The quotation becomes a sales order, and users with access to Project see a smart button (a counter at the top of the record) showing Projects and Tasks.
  4. Open the Project app and open the delivery project. A new task such as "S00043 - Onboarding" should be there with the order's customer on it.

If confirmation stops with a missing-project error, the product's Project field is empty and none was chosen on the quotation's Other Info tab.

Pre-fill the task with a task template

By default, the task is created with no one assigned, and its description only holds any extra text from the order line. A task template, which is a task saved as a reusable pattern, can carry a standard checklist into every new task.

  1. Open the Project app and open the delivery project. Create a task with the description, sub-tasks and assignees that every onboarding should start with.
  2. With the task open, open the Actions menu (the gear icon) and choose Convert to Template.
  3. Open the onboarding product again. Because a project is chosen, a Task Template field now shows below Project. Select the template and save.

Each confirmed order then creates a copy of the template, named after the order and the template, linked to the order and set to the order's customer. The template's active assignees and active sub-tasks are copied with it.

Why an automation rule is not enough

An automation rule, which is Odoo's tool for running an action when a record changes, looks like the obvious choice, but its no-code record actions fall short. Create Record only sets the new record's name, so it cannot place the task in a chosen project or link it to the customer. Duplicate Record copies one fixed task, but the copy keeps the original's name with "(copy)" added and keeps the original task's customer rather than the customer on the order. Doing this properly in a rule requires Execute Code, which is custom code.

Pitfalls and version differences

Steps verified on Odoo 19. Menus and labels can differ on other versions.

Common questions

Can Odoo create a task automatically when a sales order is confirmed?

Yes. A service product with Create on Order set to Task and a project selected creates a task in that project whenever an order containing the product is confirmed. Adding that product to the default quotation template puts it on every new quotation.

Who is assigned to a task that Odoo creates from a sales order?

By default, nobody: Odoo creates the task unassigned. If the product uses a task template, the template's active assignees are copied onto each new task.

Will confirming the same sales order again create a second task?

No. A sales order line that already has a task keeps it, so cancelling, resetting and reconfirming the order does not create a duplicate task.

What happens if the task-creating product has no project set?

In Odoo 19, Odoo uses the project selected in the Project field on the quotation's Other Info tab. If neither the product nor the quotation has a project, confirmation stops with an error asking for one.

Talk to the team.

If you are setting this up, or Odoo is not behaving the way this guide describes, book a 30-minute call. We will look at your configuration and tell you what it needs. Calgary studio, in-house team, no offshore handoffs.

Book the call →