Running an HVAC business with Odoo

How do I assign a technician and deadline to an Odoo task?

Workflow overview: How do I assign a technician and deadline to an Odoo task?
Workflow overview. Instructional screenshots show the actual demo interface.

Assign an Odoo job task to a technician, set its date and time deadline, and verify task access in the technician's own session.

Alex has a sales-linked job task, but it still needs a responsible technician and an internal deadline. This guide assigns that task, records its service-site context and checks what the technician can actually see under the standard Project User role.

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 generated task from create a task from a sales order. Prepare the technician's internal account using set user access rights and its employee link using link an employee to a user. Our new fictional account is Demo Technician H42, linked to an HVAC Technician employee profile. It has Role: User, Project: User, and no Sales, Accounting, Purchase or Inventory role. Its non-email login and blank work email are local training choices; email delivery is not established by this account. Owner and technician use America/New_York. The project keeps Team members only visibility.

Step-by-step workflow

101 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; native limited Project User plus employee link, assignment/deadline/context on existing task6, actual own-session before/after and unrelated-task boundary. Blank training email failure retained; no appointment/time-entry/real email delivery. Private password and login preparation excluded from all media.

Step 1. Prepare and review the technician account

As administrator, open Settings → Manage Users. For a new training account, use New, enter Demo Technician H42 and the local login demo-technician-h42, then choose Role: User and Project: User under Access Rights. Save and reopen the account. Use H61's Create employee → Employee → Work procedure to set Job Title: HVAC Technician. Keep the same user/employee link and review the other app permissions. The private local password is prepared through H03's native Security procedure; never include login secrets in the tutorial media.

Video action 1: Open the app menu as the demo owner. The actual target is highlighted in gold.
Open the app menu as the demo owner.
Video action 2: Choose Settings for the technician account. The actual target is highlighted in gold.
Choose Settings for the technician account.
Video action 3: Open Manage Users. The actual target is highlighted in gold.
Open Manage Users.
Video action 4: Choose New for this one fictional technician. The actual target is highlighted in gold.
Choose New for this one fictional technician.
Video action 5: Name the fictional account Demo Technician H42. The actual target is highlighted in gold.
Name the fictional account Demo Technician H42.
Video action 6: Enter the local non-email login demo-technician-h42. The actual target is highlighted in gold.
Enter the local non-email login demo-technician-h42.
Video action 7: Choose the standard User role. The actual target is highlighted in gold.
Choose the standard User role.
Video action 8: Review User rather than Administrator. The actual target is highlighted in gold.
Review User rather than Administrator.
Video action 9: Open the Project access selector. The actual target is highlighted in gold.
Open the Project access selector.
Video action 10: Choose the standard Project User permission. The actual target is highlighted in gold.
Choose the standard Project User permission.
Video action 11: Keep Sales set to No. The actual target is highlighted in gold.
Keep Sales set to No.
Video action 12: Keep Timesheets set to No. The actual target is highlighted in gold.
Keep Timesheets set to No.
Video action 13: Keep Accounting set to No. The actual target is highlighted in gold.
Keep Accounting set to No.
Video action 14: Keep Bank set to No. The actual target is highlighted in gold.
Keep Bank set to No.
Video action 15: Keep Purchase set to No. The actual target is highlighted in gold.
Keep Purchase set to No.
Video action 16: Keep Inventory set to No. The actual target is highlighted in gold.
Keep Inventory set to No.
Video action 17: Open Calendar preferences to review the time zone. The actual target is highlighted in gold.
Open Calendar preferences to review the time zone.
Video action 18: Keep America/New_York for this technician. The actual target is highlighted in gold.
Keep America/New_York for this technician.
Video action 19: Return to Access Rights before saving. The actual target is highlighted in gold.
Return to Access Rights before saving.
Video action 20: Commit the account fields on the heading. The actual target is highlighted in gold.
Commit the account fields on the heading.
Video action 21: Save this one technician account once and wait. The actual target is highlighted in gold.
Save this one technician account once and wait.
Video action 22: The saved account is Demo Technician H42. The actual target is highlighted in gold.
The saved account is Demo Technician H42.
Video action 23: Reopen retains the standard User role. The actual target is highlighted in gold.
Reopen retains the standard User role.
Video action 24: The saved Project access is User. The actual target is highlighted in gold.
The saved Project access is User.
Video action 25: Continue with the same saved Demo Technician H42 account. The actual target is highlighted in gold.
Continue with the same saved Demo Technician H42 account.
Video action 26: The local training account has no email address. The actual target is highlighted in gold.
The local training account has no email address.
Video action 27: Create this technician’s linked employee once. The actual target is highlighted in gold.
Create this technician’s linked employee once.
Video action 28: The saved technician now has one linked Employee. The actual target is highlighted in gold.
The saved technician now has one linked Employee.
Video action 29: Open that existing employee profile. The actual target is highlighted in gold.
Open that existing employee profile.
Video action 30: Open Work for the employee’s job title. The actual target is highlighted in gold.
Open Work for the employee’s job title.
Video action 31: Set the employee Job Title to HVAC Technician. The actual target is highlighted in gold.
Set the employee Job Title to HVAC Technician.
Video action 32: Commit the Job Title on the employee heading. The actual target is highlighted in gold.
Commit the Job Title on the employee heading.
Video action 33: Save the employee Job Title once and wait. The actual target is highlighted in gold.
Save the employee Job Title once and wait.
Video action 34: Reopen the same linked employee profile. The actual target is highlighted in gold.
Reopen the same linked employee profile.
Video action 35: Review Work again on the saved employee. The actual target is highlighted in gold.
Review Work again on the saved employee.
Video action 36: The saved Job Title is HVAC Technician. The actual target is highlighted in gold.
The saved Job Title is HVAC Technician.
Video action 37: Work Email remains blank in this local training example. The actual target is highlighted in gold.
Work Email remains blank in this local training example.

Step 2. Open the generated job and check the starting access

Open S00008 - Demo Time-Billed Labor H41 using H41's sales-order/project navigation. Check Project: Demo Service Jobs H40, Customer: Demo Property H08, and the S00008 Sales Order Item. Assignees and Deadline are initially empty. In our separate technician session, opening this task before assignment produced Access Error. Having Project User access alone did not make every task in this restricted project visible.

Video action 38: Open the existing S00008 sales order as owner. The actual target is highlighted in gold.
Open the existing S00008 sales order as owner.
Video action 39: Open its existing Projects and Tasks link. The actual target is highlighted in gold.
Open its existing Projects and Tasks link.
Video action 40: Open the same S00008 time-billed job task. The actual target is highlighted in gold.
Open the same S00008 time-billed job task.
Video action 41: Review the intended Demo Service Jobs H40 project. The actual target is highlighted in gold.
Review the intended Demo Service Jobs H40 project.
Video action 42: Review Demo Property H08 as the job customer. The actual target is highlighted in gold.
Review Demo Property H08 as the job customer.
Video action 43: Keep the existing S00008 Sales Order Item. The actual target is highlighted in gold.
Keep the existing S00008 Sales Order Item.
Video action 44: Assignees are empty before this assignment. The actual target is highlighted in gold.
Assignees are empty before this assignment.
Video action 45: Deadline is empty before this assignment. The actual target is highlighted in gold.
Deadline is empty before this assignment.
Video action 46: Technician session: Access Error before assignment. The actual target is highlighted in gold.
Technician session: Access Error before assignment.
Video action 47: Project User alone does not open this restricted task. The actual target is highlighted in gold.
Project User alone does not open this restricted task.
Video action 48: Return to the same task as the owner. The actual target is highlighted in gold.
Return to the same task as the owner.

Step 3. Choose the responsible assignee

In the owner session, open Assignees, search Demo Technician H42, and select the actual existing user from the dropdown. Check that this is the intended account and that no unintended assignee is present. Keep the existing project, customer and sales-order item unchanged.

Video action 49: Find the existing Demo Technician H42 assignee. The actual target is highlighted in gold.
Find the existing Demo Technician H42 assignee.
Video action 50: Choose the actual existing technician account. The actual target is highlighted in gold.
Choose the actual existing technician account.
Video action 51: Review the one selected responsible technician. The actual target is highlighted in gold.
Review the one selected responsible technician.

Step 4. Choose the deadline date and time

Click Deadline. In the native picker, select October 16, 2026, enter 4:00pm in its time field and click Apply. The tested field supports both date and time. This is an internal task deadline in America/New_York; it is separate from the proposed customer visit window.

Video action 52: Open the native date-and-time Deadline picker. The actual target is highlighted in gold.
Open the native date-and-time Deadline picker.
Video action 53: Review October 2026 before choosing the day. The actual target is highlighted in gold.
Review October 2026 before choosing the day.
Video action 54: Choose October 16 for the internal deadline. The actual target is highlighted in gold.
Choose October 16 for the internal deadline.
Video action 55: Set the internal deadline time to 4:00pm. The actual target is highlighted in gold.
Set the internal deadline time to 4:00pm.
Video action 56: Apply the selected deadline date and time. The actual target is highlighted in gold.
Apply the selected deadline date and time.
Video action 57: Review the deadline separately from a visit window. The actual target is highlighted in gold.
Review the deadline separately from a visit window.

Step 5. Add the manually reviewed visit context

In Description, enter Service Site H08, 205 Demo Service Lane and the proposed training visit window, October 16, 9:00–11:00 AM America/New_York. State that customer access and technician availability need confirmation before dispatch. Keep the internal 4:00 PM deadline distinct from that window. This supplies context that the H41 task did not inherit from the quotation's scope note.

Video action 58: Add the manually reviewed service site and proposed visit context. The actual target is highlighted in gold.
Add the manually reviewed service site and proposed visit context.
Video action 59: Commit the manual handoff text on the task heading. The actual target is highlighted in gold.
Commit the manual handoff text on the task heading.
Video action 60: Review the complete service-site and visit-window instructions. The actual target is highlighted in gold.
Review the complete service-site and visit-window instructions.

Step 6. Save and reopen the owner view

Click Save manually, then reopen or reload the same task. Check the technician name, service-site note and Oct 16, 4:00 PM deadline. The chatter records the changes from no assignee/deadline to these saved values. The task remains in Ready stage with In Progress status and retains its original sales-line link. The two allocated Hours remain the earlier estimate.

Video action 61: Save this assignment and deadline once, then wait. The actual target is highlighted in gold.
Save this assignment and deadline once, then wait.
Video action 62: Reopen the same saved job task. The actual target is highlighted in gold.
Reopen the same saved job task.
Video action 63: The saved task retains Demo Technician H42. The actual target is highlighted in gold.
The saved task retains Demo Technician H42.
Video action 64: The saved internal deadline is October 16 at 4:00 PM New York time. The actual target is highlighted in gold.
The saved internal deadline is October 16 at 4:00 PM New York time.
Video action 65: The saved description keeps the separate proposed visit window. The actual target is highlighted in gold.
The saved description keeps the separate proposed visit window.
Video action 66: The earlier two allocated Hours remain. The actual target is highlighted in gold.
The earlier two allocated Hours remain.

Step 7. Verify the technician's own view

In a separate browser session, sign in as Demo Technician H42 and open the same task. Our technician can now read its customer, sales-order-item reference, assignee, description and Oct 16, 4:00 PM deadline. Reload and compare the saved values. The project still has team-only visibility and its owner team is unchanged; assignment added the technician as a follower of this task.

Video action 67: Technician session: open the assigned S00008 job. The actual target is highlighted in gold.
Technician session: open the assigned S00008 job.
Video action 68: The technician can read the same service project. The actual target is highlighted in gold.
The technician can read the same service project.
Video action 69: The technician can read the job customer. The actual target is highlighted in gold.
The technician can read the job customer.
Video action 70: The task retains its S00008 Sales Order Item. The actual target is highlighted in gold.
The task retains its S00008 Sales Order Item.
Video action 71: Demo Technician H42 is the saved assignee. The actual target is highlighted in gold.
Demo Technician H42 is the saved assignee.
Video action 72: The technician sees October 16 at 4:00 PM New York time. The actual target is highlighted in gold.
The technician sees October 16 at 4:00 PM New York time.
Video action 73: The technician reads the saved site and proposed visit window. The actual target is highlighted in gold.
The technician reads the saved site and proposed visit window.
Video action 74: This technician view exposes no Timesheets tab. The actual target is highlighted in gold.
This technician view exposes no Timesheets tab.
Video action 75: Reload the same task in the technician session. The actual target is highlighted in gold.
Reload the same task in the technician session.
Video action 76: Reload retains the same saved deadline. The actual target is highlighted in gold.
Reload retains the same saved deadline.
Video action 77: Reload retains the same complete handoff context. The actual target is highlighted in gold.
Reload retains the same complete handoff context.

Step 8. Check the access boundary and notification separately

Our technician's attempt to open the earlier Demo Service Job H40 task still produced Access Error. Returning to the assigned task succeeded. The technician's blank email also caused the native assignment email notification to fail with mail_email_invalid; task access still worked. If your process requires an email alert, review the recipient address and actual delivery using set up and test outgoing email. An assigned name is not proof that a notification arrived.

Video action 78: Technician session: the unrelated private task stays denied. The actual target is highlighted in gold.
Technician session: the unrelated private task stays denied.
Video action 79: The access boundary is tested on this one unrelated task. The actual target is highlighted in gold.
The access boundary is tested on this one unrelated task.
Video action 80: Returning to the assigned S00008 task succeeds. The actual target is highlighted in gold.
Returning to the assigned S00008 task succeeds.
Video action 81: The assigned task still retains the saved deadline. The actual target is highlighted in gold.
The assigned task still retains the saved deadline.
Video action 82: Owner session: open the app menu for the notification check. The actual target is highlighted in gold.
Owner session: open the app menu for the notification check.
Video action 83: Choose Settings as the administrator. The actual target is highlighted in gold.
Choose Settings as the administrator.
Video action 84: Open Technical in native developer mode. The actual target is highlighted in gold.
Open Technical in native developer mode.
Video action 85: Open Messages to inspect the actual assignment notification. The actual target is highlighted in gold.
Open Messages to inspect the actual assignment notification.
Video action 86: Open the one assignment message for this S00008 task. The actual target is highlighted in gold.
Open the one assignment message for this S00008 task.
Video action 87: Open Recipients for its actual delivery status. The actual target is highlighted in gold.
Open Recipients for its actual delivery status.
Video action 88: The technician’s email notification has Exception status. The actual target is highlighted in gold.
The technician’s email notification has Exception status.
Video action 89: Emails To is blank for this local training message. The actual target is highlighted in gold.
Emails To is blank for this local training message.
Video action 90: The message recipient is the same fictional technician. The actual target is highlighted in gold.
The message recipient is the same fictional technician.

Step 9. Check what was not scheduled

The Calendar event count stayed zero before and after the saved deadline. This procedure created no appointment, availability reservation, invoice or additional task. Our technician's form also did not expose Timesheets under the tested permissions; time-entry access needs its own check. Keep the manually agreed dispatch and customer handoff separate from this task's responsibility and deadline.

Video action 91: Open the app menu to check Calendar independently. The actual target is highlighted in gold.
Open the app menu to check Calendar independently.
Video action 92: Choose Calendar without creating a meeting. The actual target is highlighted in gold.
Choose Calendar without creating a meeting.
Video action 93: Review the actual October 2026 week. The actual target is highlighted in gold.
Review the actual October 2026 week.
Video action 94: Locate October 16 in the native calendar. The actual target is highlighted in gold.
Locate October 16 in the native calendar.
Video action 95: No appointment was created by this task deadline. The actual target is highlighted in gold.
No appointment was created by this task deadline.
Video action 96: Return to the same saved sales-linked job. The actual target is highlighted in gold.
Return to the same saved sales-linked job.
Video action 97: The saved responsible technician remains assigned. The actual target is highlighted in gold.
The saved responsible technician remains assigned.
Video action 98: The saved deadline remains October 16 at 4:00 PM New York time. The actual target is highlighted in gold.
The saved deadline remains October 16 at 4:00 PM New York time.
Video action 99: The complete site and proposed visit context remain saved. The actual target is highlighted in gold.
The complete site and proposed visit context remain saved.
Video action 100: Ready is still the task’s stage. The actual target is highlighted in gold.
Ready is still the task’s stage.
Video action 101: The separate task status is still In Progress. The actual target is highlighted in gold.
The separate task status is still In Progress.

Check the result

The existing task retains Demo Technician H42 as its assignee and October 16, 2026 at 4:00 PM America/New_York as its deadline, plus the manually entered site/visit context. The technician's own session reads the same values after reload, while the unrelated private task stays denied. Project visibility/team, sales-line linkage and earlier business records are preserved. Calendar events remain zero. Assignment email failed for the blank training address; no email receipt is claimed.

If your screen differs

Test the actual assignee's role and task access rather than checking only the owner's form. This Project User was denied before assignment, gained access to the assigned task and remained denied on the other tested task. These checks do not establish every project/team/portal boundary. User time zones affect how deadlines display; both tested users used America/New_York, and the saved deadline was 20:00 UTC. A deadline did not book a visit or prove availability. The blank-address assignment notification failed and was retained without retry; use a valid reviewed recipient and actual delivery checks when email alerts are needed. Technician time-entry, edit and completion permissions are separate workflows.

Frequently asked questions

How do I assign an Odoo task to a technician?

Prepare the technician's internal user and appropriate Project role, then select that user in the task's Assignees field and save. Reopen the task in the technician's own session. Our Project User could read the assigned task after assignment while an unrelated private task stayed denied. Employee profile creation alone did not establish those access results.

Does an Odoo task deadline book a service appointment? The tested Deadline picker saved a date and time, but Calendar event count stayed zero. We recorded the proposed customer window separately in Description and kept an internal 4:00 PM deadline. Confirm the customer visit, access and technician availability through the business's reviewed dispatch process.
Why can't an assigned user see an Odoo Project task? Check the actual account, Project permission and restricted task/project access in that user's session. Our Project User was denied on the unassigned task, then could read it after assignment added the task follower. The unrelated task stayed denied. Email notification is another check: our blank-address alert failed despite successful task access.

Continue building the business

Continue with How do I add job instructions and completion photos in Odoo?. Preserve the saved site/window context while adding the job's working instructions and evidence.

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.