Running an HVAC business with Odoo

How do I create a job task automatically from an Odoo sales order?

Workflow overview: How do I create a job task automatically from an Odoo sales order?
Workflow overview. Instructional screenshots show the actual demo interface.

Configure an Odoo service product to create one linked task on sales-order confirmation, with a separate timesheet billing policy.

Alex wants each confirmed hourly service sale to create its own job task in the existing service project. This guide configures a dedicated labor product, confirms one training sale and checks the task's customer, sales-line link and allocated time.

Alex Rivera and Demo Air HVAC are fictional training examples. Prices, dates, quantities and business situations in this guide are illustrative.

Before you begin

Tested in stock Odoo 20.0-20260926 Community as the demo owner administrator, with official modules and standard configuration. Use the existing project from H40, the service-product concepts from H11 and the confirmation distinction from H26. Official Project, Timesheets, Sales–Project and Sales–Timesheets integrations are installed in this runtime. H11's fixed-price service call and labor products remain unchanged. This lesson adds Demo Time-Billed Labor H41 and enables Billable on the existing project for the hourly workflow. It tests owner confirmation and automatic task creation; actual-time invoicing is a later check.

Step-by-step workflow

89 highlighted video actions with a white pointer, gold border and English captions, without narration. Each written step groups its smaller video actions. Stock Odoo20 Community owner; enable Billable on existing timesheet-enabled team-only project, create a separate Task/Based-on-Timesheets hourly product, confirm once and verify one generated linked task with allocation2h/recorded0. No signature, time entry, invoice or payment.

Step 1. Prepare the existing project for billable time

Open Project → Projects. On Demo Service Jobs H40, open the card's more_vert menu and choose Settings, then select the form's Settings tab. Keep Timesheets checked and enable Billable under Time Billing. Keep Team members only visibility and the current team unchanged. Click Save manually. In our first product-selector check, this project was absent while Billable was off; after enabling it, the same existing project became selectable.

Video action 1: Open the app menu. The actual target is highlighted in gold.
Open the app menu.
Video action 2: Choose Project for the existing service board. The actual target is highlighted in gold.
Choose Project for the existing service board.
Video action 3: Hover Demo Service Jobs H40. The actual target is highlighted in gold.
Hover Demo Service Jobs H40.
Video action 4: Open the existing project more menu. The actual target is highlighted in gold.
Open the existing project more menu.
Video action 5: Choose Settings for this same project. The actual target is highlighted in gold.
Choose Settings for this same project.
Video action 6: Open the project Settings tab. The actual target is highlighted in gold.
Open the project Settings tab.
Video action 7: Keep Timesheets enabled. The actual target is highlighted in gold.
Keep Timesheets enabled.
Video action 8: Keep Team members only visibility. The actual target is highlighted in gold.
Keep Team members only visibility.
Video action 9: Enable Billable for this hourly service workflow. The actual target is highlighted in gold.
Enable Billable for this hourly service workflow.
Video action 10: Commit this choice on the project heading. The actual target is highlighted in gold.
Commit this choice on the project heading.
Video action 11: Save the Billable setting once and wait. The actual target is highlighted in gold.
Save the Billable setting once and wait.
Video action 12: Billable is now enabled on the same existing project. The actual target is highlighted in gold.
Billable is now enabled on the same existing project.

Step 2. Create a separate hourly labor product

Open Sales → Products → Products → New. Name it Demo Time-Billed Labor H41, keep Sales checked, clear Purchase, and choose Service. Set Sales Price to $80 per Hours using the actual Hours unit. The illustrative 6% sales tax remains on this training product. Do not change H11's service definitions to retrofit their already confirmed sales.

Video action 13: Open the app menu for Sales. The actual target is highlighted in gold.
Open the app menu for Sales.
Video action 14: Choose Sales. The actual target is highlighted in gold.
Choose Sales.
Video action 15: Open Products. The actual target is highlighted in gold.
Open Products.
Video action 16: Choose Products. The actual target is highlighted in gold.
Choose Products.
Video action 17: Choose New for a separate hourly service. The actual target is highlighted in gold.
Choose New for a separate hourly service.
Video action 18: Name it Demo Time-Billed Labor H41. The actual target is highlighted in gold.
Name it Demo Time-Billed Labor H41.
Video action 19: Keep Sales enabled. The actual target is highlighted in gold.
Keep Sales enabled.
Video action 20: Clear Purchase for this separate labor product. The actual target is highlighted in gold.
Clear Purchase for this separate labor product.
Video action 21: Choose Service as Product Type. The actual target is highlighted in gold.
Choose Service as Product Type.
Video action 22: Set the training Sales Price to 80. The actual target is highlighted in gold.
Set the training Sales Price to 80.
Video action 23: Keep the actual Hours unit for this service. The actual target is highlighted in gold.
Keep the actual Hours unit for this service.
Video action 24: Review the illustrative six-percent Sales Tax. The actual target is highlighted in gold.
Review the illustrative six-percent Sales Tax.

Step 3. Choose Task and the existing project

In General Information, open Create on Order and select Task. Choose Demo Service Jobs H40 in Project and leave Task Template empty. The same menu also offers Project and Project & Task, but those paths were not exercised here. This setting creates a task in the selected existing project; it does not create a new project for each sale.

Video action 25: Open Create on Order. The actual target is highlighted in gold.
Open Create on Order.
Video action 26: Choose Task in the existing-project path. The actual target is highlighted in gold.
Choose Task in the existing-project path.
Video action 27: Find the existing Demo Service Jobs H40 project. The actual target is highlighted in gold.
Find the existing Demo Service Jobs H40 project.
Video action 28: Select the actual existing service project. The actual target is highlighted in gold.
Select the actual existing service project.
Video action 29: Leave Task Template empty. The actual target is highlighted in gold.
Leave Task Template empty.

Step 4. Set the billing policy separately

Open Invoicing Policy and select Based on Timesheets. Save and reopen the product. Verify Create on Order: Task, the intended Project, Based on Timesheets, and $80 per Hours. Hours describes the unit; this separate billing policy identifies the time-based setup. Selecting Hours alone would not establish it. No timesheet or customer invoice is created by saving this product.

Video action 30: Open the separate Invoicing Policy. The actual target is highlighted in gold.
Open the separate Invoicing Policy.
Video action 31: Choose Based on Timesheets. The actual target is highlighted in gold.
Choose Based on Timesheets.
Video action 32: Click the product heading to commit the fields. The actual target is highlighted in gold.
Click the product heading to commit the fields.
Video action 33: Save this separate service product once and wait. The actual target is highlighted in gold.
Save this separate service product once and wait.
Video action 34: Reopen the same saved hourly service. The actual target is highlighted in gold.
Reopen the same saved hourly service.
Video action 35: Create on Order retains Task. The actual target is highlighted in gold.
Create on Order retains Task.
Video action 36: The existing project remains selected. The actual target is highlighted in gold.
The existing project remains selected.
Video action 37: Invoicing Policy retains Based on Timesheets. The actual target is highlighted in gold.
Invoicing Policy retains Based on Timesheets.
Video action 38: The saved unit remains Hours. The actual target is highlighted in gold.
The saved unit remains Hours.
Video action 39: The saved training rate is 80 per Hour. The actual target is highlighted in gold.
The saved training rate is 80 per Hour.

Step 5. Create and confirm one new training quotation

In Sales, use New → New Quotation and select Demo Property H08. Add the actual Demo Time-Billed Labor H41 product and enter 2 Hours at $80 per Hour. Our S00008 totals $169.60 including the illustrative tax. Set Customer Reference to H41 automatic time-billed job and add a scope note naming Service Site H08 and actual-time billing. Save and review the order and addresses. For this synthetic trigger test, the owner clicked Confirm once. Customer online signing remains the separate H26 procedure; no customer signature is claimed for S00008.

Video action 40: Open the app menu. The actual target is highlighted in gold.
Open the app menu.
Video action 41: Choose Sales. The actual target is highlighted in gold.
Choose Sales.
Video action 42: Open New for one new hourly service quotation. The actual target is highlighted in gold.
Open New for one new hourly service quotation.
Video action 43: Choose New Quotation without a template. The actual target is highlighted in gold.
Choose New Quotation without a template.
Video action 44: Find the existing Demo Property customer. The actual target is highlighted in gold.
Find the existing Demo Property customer.
Video action 45: Select Demo Property H08. The actual target is highlighted in gold.
Select Demo Property H08.
Video action 46: Add the time-billed labor line. The actual target is highlighted in gold.
Add the time-billed labor line.
Video action 47: Find the saved Demo Time-Billed Labor H41 product. The actual target is highlighted in gold.
Find the saved Demo Time-Billed Labor H41 product.
Video action 48: Select the actual time-billed service product. The actual target is highlighted in gold.
Select the actual time-billed service product.
Video action 49: Quote two Hours of this service. The actual target is highlighted in gold.
Quote two Hours of this service.
Video action 50: Keep the actual quoted unit as Hours. The actual target is highlighted in gold.
Keep the actual quoted unit as Hours.
Video action 51: Review the saved training rate 80.00. The actual target is highlighted in gold.
Review the saved training rate 80.00.
Video action 52: Commit the line on the quotation heading. The actual target is highlighted in gold.
Commit the line on the quotation heading.
Video action 53: Review two Hours before saving this quotation. The actual target is highlighted in gold.
Review two Hours before saving this quotation.
Video action 54: Open Other Info for the manual job reference. The actual target is highlighted in gold.
Open Other Info for the manual job reference.
Video action 55: Enter the H41 automatic time-billed job reference. The actual target is highlighted in gold.
Enter the H41 automatic time-billed job reference.
Video action 56: Return to Order Lines. The actual target is highlighted in gold.
Return to Order Lines.
Video action 57: Enter the fictional service site and actual-time billing scope. The actual target is highlighted in gold.
Enter the fictional service site and actual-time billing scope.
Video action 58: Commit the scope on the quotation heading. The actual target is highlighted in gold.
Commit the scope on the quotation heading.
Video action 59: Review the complete service scope before saving. The actual target is highlighted in gold.
Review the complete service scope before saving.
Video action 60: Save this new training quotation once and wait. The actual target is highlighted in gold.
Save this new training quotation once and wait.
Video action 61: The saved new quotation is S00008. The actual target is highlighted in gold.
The saved new quotation is S00008.
Video action 62: The same saved line retains two Hours at80. The actual target is highlighted in gold.
The same saved line retains two Hours at80.
Video action 63: Review the 169.60 training total before owner confirmation. The actual target is highlighted in gold.
Review the 169.60 training total before owner confirmation.
Video action 64: Open the actual native Preview to review addresses. The actual target is highlighted in gold.
Open the actual native Preview to review addresses.
Video action 65: Review the copied Billing Office address. The actual target is highlighted in gold.
Review the copied Billing Office address.
Video action 66: Review Service Site H08 as the Delivery address. The actual target is highlighted in gold.
Review Service Site H08 as the Delivery address.
Video action 67: The quoted amount is169.60 before owner confirmation. The actual target is highlighted in gold.
The quoted amount is169.60 before owner confirmation.
Video action 68: Return to the same saved S00008 quotation as owner. The actual target is highlighted in gold.
Return to the same saved S00008 quotation as owner.
Video action 69: Review two Hours at80 before this synthetic owner confirmation. The actual target is highlighted in gold.
Review two Hours at80 before this synthetic owner confirmation.
Video action 70: Confirm this one service order once as the demo owner. The actual target is highlighted in gold.
Confirm this one service order once as the demo owner.
Video action 71: S00008 is now Sales Order without a customer signature. The actual target is highlighted in gold.
S00008 is now Sales Order without a customer signature.

Step 6. Open the generated task through the sales order

After confirmation, S00008 shows Sales Order and the combined 1 Projects / 1 Tasks button. Click it to open the existing project's task board, then open S00008 - Demo Time-Billed Labor H41. The board also contains the earlier manual job; choose the task with this order reference rather than creating another task. Verify Project: Demo Service Jobs H40, Customer: Demo Property H08, and Sales Order Item: S00008 - Demo Time-Billed Labor H41.

Video action 72: The order links one existing Project and one generated Task. The actual target is highlighted in gold.
The order links one existing Project and one generated Task.
Video action 73: Open the combined Projects and Tasks button. The actual target is highlighted in gold.
Open the combined Projects and Tasks button.
Video action 74: Open S00008 - Demo Time-Billed Labor H41. The actual target is highlighted in gold.
Open S00008 - Demo Time-Billed Labor H41.
Video action 75: The generated task uses the existing Demo Service Jobs H40 project. The actual target is highlighted in gold.
The generated task uses the existing Demo Service Jobs H40 project.
Video action 76: Customer is the parent Demo Property H08 contact. The actual target is highlighted in gold.
Customer is the parent Demo Property H08 contact.
Video action 77: Sales Order Item links the same S00008 service line. The actual target is highlighted in gold.
Sales Order Item links the same S00008 service line.

Step 7. Check allocation, missing handoff details and repeat access

The generated task has Allocated Time: 2h, stage Ready, status In Progress, and empty Assignees, Deadline and Description. The quotation's scope note was not copied into Description, and the task's Customer is the parent contact rather than the service-address record. Use Sales Order on the task to return to S00008. It shows 0 Hours Recorded; Delivered, Invoiced and quantity to invoice remain zero. Reopen the generated task and reload it: the same task remains linked, with no second task created by browsing.

Video action 78: Two quoted Hours became Allocated Time2h. The actual target is highlighted in gold.
Two quoted Hours became Allocated Time2h.
Video action 79: The task starts in the Ready stage. The actual target is highlighted in gold.
The task starts in the Ready stage.
Video action 80: The separate task status is In Progress. The actual target is highlighted in gold.
The separate task status is In Progress.
Video action 81: No technician was assigned by confirmation. The actual target is highlighted in gold.
No technician was assigned by confirmation.
Video action 82: No deadline or appointment was booked. The actual target is highlighted in gold.
No deadline or appointment was booked.
Video action 83: The quotation scope was not copied into Description. The actual target is highlighted in gold.
The quotation scope was not copied into Description.
Video action 84: Use the native Sales Order button to return to S00008. The actual target is highlighted in gold.
Use the native Sales Order button to return to S00008.
Video action 85: The same order shows zero Hours Recorded. The actual target is highlighted in gold.
The same order shows zero Hours Recorded.
Video action 86: Delivered and Invoiced quantities remain zero. The actual target is highlighted in gold.
Delivered and Invoiced quantities remain zero.
Video action 87: Open the same Projects and Tasks link again. The actual target is highlighted in gold.
Open the same Projects and Tasks link again.
Video action 88: Reopen the same generated task rather than creating another. The actual target is highlighted in gold.
Reopen the same generated task rather than creating another.
Video action 89: Reload retains the same single linked task with2h allocated. The actual target is highlighted in gold.
Reload retains the same single linked task with2h allocated.

Check the result

One owner confirmation of S00008 created task 6 in the existing Demo Service Jobs H40 project, linked to the same order and sales line. The two quoted Hours became allocated time; recorded/delivered/invoiced time remains zero. Reopening retained the same task. The existing manual task, H11 fixed-price products, signed service order and partial parts delivery are preserved. No new project, customer invoice, payment or stock picking was created by this service confirmation.

If your screen differs

If the project is missing from the product selector, check its native Billable setting; in this test enabling it made the existing project available. Check the actual sold product and saved Create on Order setting before confirming a new sale. H11's Nothing setting did not generate tasks even for its Hours-based labor line. This test does not establish retroactive task creation after editing a product, cancellation/reconfirmation behavior, task templates or the Project & Task path. A created task still needs instructions, assignment, deadline and appropriate user access. Based on Timesheets is saved configuration here; recording time, invoice quantities and financial results require their own later verification.

Frequently asked questions

How do I create an Odoo task automatically from a sales order?

Configure a Service product with Create on Order: Task and choose the intended existing Project, then save before confirming a new quotation. Our billable project became selectable after its Billable setting was enabled. One owner confirmation created one task with the customer and Sales Order Item link; reopening retained that same task.

Why did confirming my Odoo quotation not create a task?

Check the actual service product sold, its saved Create on Order choice, target project and installed official integration. The earlier H11 products used Nothing and generated no task, including the labor sold in Hours. The dedicated H41 product was configured before its new quotation was confirmed. This test did not establish a retroactive creation procedure for old orders.

Does setting an Odoo product to Hours enable timesheet billing?

Hours is the unit. H11's hourly labor kept a fixed-price/ordered-quantity policy. For H41 we separately selected Based on Timesheets and a billable timesheet-enabled project. Confirmation allocated two Hours but recorded none, with zero delivered and invoiceable quantity. Actual-time recording and invoicing remain later checks.

Continue building the business

Continue with H42: How do I assign a technician and deadline to an Odoo task?. The automatically created task is still unassigned and has no deadline; its two allocated Hours do not reserve a technician's calendar.

Talk to an Odoo partner

Bring your current process and the result you need to Onward to plan your Odoo workflow. Talk to an Odoo partner.