Work Orders
Note: desktop feature. This chapter describes the TechieCRM desktop application. Work Orders is not yet available in the web portal: the web shows a read-only list of any records synced from the desktop, and none of the dialogs, toolbars, right-click actions or automations described below exist there yet.
A work order is a dispatched unit of work: what is to be done, for which customer, by which partner/assignee, when, and what it costs/earns. Work orders are their own module (not a child of Service) because they can come from a Service case, a Sale, a Project, an Agreement, or stand alone. (No source-CRM equivalent.)
In this chapter - The dispatch list - The work order dialog: Basic, Lines, Assignments, and who it is Assigned to - Two statuses: internal and customer - Changing a status from the ribbon (Set Status) - Work orders are never deleted: cancel one instead - Assigning a partner: the Partners registry, Flag as partner…, role, agreed amount, and the compliance guard - Raising a work order from a won sale - Raising a work order from a ticket, without opening it first - Where work orders appear
The dispatch list
Icon bar ▸ Work Orders. Status icon/tint by internal status; New Work Order. Double-click opens the order.
Filtering the list
The drop-down on the list's toolbar, and the matching buttons on the ribbon's View tab, choose which work orders are shown. Hover over an entry in the drop-down to see which status it reads.
| Filter | Shows |
|---|---|
| Open (the default) | Every order whose internal status is not completed or cancelled. |
| All | Every work order. |
| Assigned to Me | The work orders whose Assigned to is you (see Assigned to below). An order nobody has reassigned counts as assigned to its owner (whoever created it), so your own new orders are here until you hand them to someone else, and an order someone hands to you appears here even though you did not create it. The partners on the Assignments tab are companies, not TechieCRM users, and do not count. An order marked Unassigned is never yours, even if you created it. If TechieCRM cannot tell who is logged in, this filter shows nothing rather than everyone's orders. |
| Unassigned | The work orders whose Assigned to is set to Unassigned, waiting to be dispatched. An order nobody has reassigned is not in this list: it counts as its owner's (see above). |
| New, Dispatched, Accepted, On Site, Completed, Cancelled | Orders with that internal status (your team's view). |
| Scheduled, In Progress | Orders with that customer-facing status. The list's Status column shows the internal status, so a "Scheduled" order may read Dispatched there; add the Customer status column (Column Setup) to see both side by side. |
The ribbon's View ▸ Scheduled / In Progress / Completed / All / Open / Assigned to Me buttons pick the same entries (there is no ribbon button for Unassigned yet; use the drop-down). The list's Assigned to column (shown by default) names the person each order is assigned to, or reads Unassigned. The toolbar's Column Setup button (left of Refresh) lets you choose, create and share the columns shown; see Chapter 20, Column setups on the TechieCRM windows.
Long lists: Load more
The list shows the first 500 work orders that match the filter, newest scheduled date first (orders with no scheduled date come last). When more match, a bar under the list says Showing the first 500 work orders. More match this filter. Press Load more on that bar to add the next 500 below the ones already shown; press it again until the bar goes away, which means every matching order is in the list. Nothing is left out without the bar telling you.
- Choosing another filter, Refresh, Set Status, or changing an order's status in its window reloads the list from the first page.
- Sorting by a column header sorts the rows that are loaded. To sort every matching order, load them all first.
- An order whose scheduled date someone changes while you are loading pages can move to a part of the list you have already passed; press Refresh to see the list as it is now.
- The work orders shown under a client (Clients ▸ Interactions) and the list opened from a dashboard tile still show every matching order at once, with no bar.
The toolbar's Work Order Settings (⚙) button reports that Work Order Settings is not yet implemented: there is no Work Orders section in Settings yet. It is listed here so you know the button is answering honestly rather than failing.
The dialog
| Tab | Contents |
|---|---|
| Basic | Subject, description, customer (Choose…), parent (ticket / sale / project / agreement; an agreement-spawned order names its agreement, a sale-spawned order names its sale), priority, scheduled date, Assigned to, site location, zone, NTE (not-to-exceed), currency, on-site hours, and the two status pickers. |
| Lines | Products / labour / parts / inventory: description, qty, unit price (customer) and unit cost (yours). Totals roll up to the header. |
| Assignments | The assignment ledger: every partner/person assigned, role, agreed amount, status. Assign Partner… picks from the Partners registry (Chapter 9), with Flag as partner… for a company that is not a partner yet, and asks for the role and the agreed amount. |
Opening a work order (14 Oct 2026). The window opens straight away and reads the work order (and the list of users behind Assigned to) from the database in the background, so the rest of the program does not freeze. Until it has arrived a Loading this work order... bar shows across the top, and the tabs and Save (or Create for a new one) are greyed out; Close works at any time. If the work order cannot be read, the bar turns red and says This work order could not be loaded, so it cannot be edited or saved here, with the reason, and only Close works.
Assigned to
Assigned to is the TechieCRM user the work order is assigned to: the dispatcher or technician responsible for it. It is what the list's Assigned to Me filter reads.
- Choosing someone. The drop-down lists your TechieCRM users (the same list as the other user pickers; system accounts such as COMPANY are not offered). Pick a person and press Save (or Create on a new order).
- Until someone reassigns it, an order is assigned to its owner, whoever created it. A new order therefore starts on you. Orders that existed before this field was added read the same way; nothing was changed in them.
- Only a change is saved. Opening an order and pressing Save without touching Assigned to writes nothing to it.
- Unassigned. The first choice in the drop-down, Unassigned (awaiting dispatch), takes the order off everyone's list, for example a job that is waiting to be dispatched. It then appears under the list's Unassigned filter, the Assigned to column reads Unassigned, and it is in nobody's Assigned to Me, not even its owner's. Pick a person later to dispatch it. You can also create a new order as Unassigned by choosing it before pressing Create; if you do not, the new order is yours.
- An order with no owner at all (older data) shows (nobody). That is not the same as Unassigned, and choosing it saves nothing.
- A name followed by "(not in the user list)" means the order is assigned to a login that is not in today's user list (for example a user who has since been removed). It is shown as it is, not replaced; pick someone else to reassign it.
- Who may reassign. Reassigning is a change to the work order, so it needs the right to change work orders. A user without it gets the usual rights message when pressing Save, and nothing is saved.
- First use on an older database. The first time anyone reassigns an order (or marks one Unassigned), TechieCRM adds the Assigned to field to its own Work Orders table. If the login cannot do that, Save says so: sign in once with the MASTER ID (or an ID with SQL admin rights on the database). Until then every order counts as assigned to its owner.
Zone and on-site hours
- Zone is the dispatch zone or territory the job falls in: free text, up to 60 characters
(for example
Zone 4 (North)). Leave it blank if you do not zone your work. - On-site hours is how long the visit took, in hours (two decimals). While it reads “Not recorded” the field is empty; type or step above 0 to record a figure. Setting it back to 0 clears it again.
Both can be filled in when you create the order and changed afterwards on an existing order; Save writes them.
What Save writes
Save (on an existing order) writes the two status pickers and every field you can edit on the Basic tab:
| Written by Save | Notes |
|---|---|
| Subject | Required: a work order must always have one. If you clear it, Save stops and asks you to type a subject; nothing at all is saved until you do. |
| Description | The free-text box under the subject: what the job actually is. There is no length limit and line breaks are kept. Empty the box to clear it. |
| Site / Location | Clear the box to remove the site again. |
| Priority | Low / Medium / High / Urgent. An order with no priority yet shows Medium as a stand-in and stays unset unless you choose one. |
| Scheduled date | The date shown in the picker. An order that has no date yet shows today's date as a stand-in; Save leaves it unscheduled unless you actually pick a date. |
| NTE amount | Set it back to 0 to clear the not-to-exceed figure. |
| Currency | CAD or USD. Changing it re-labels the order's amounts; it does not convert them. Amounts print as $1,234.50 CAD, and a negative amount as -$50.00 CAD (minus sign before the dollar sign; Chapter 7, How money is written). |
| Zone | Clear the box to remove the zone. |
| On-site hours | Set it back to 0 (“Not recorded”) to clear it. |
| Internal status / Customer status | Completing an order stamps the completed date (and, for a plan-spawned order, updates the plan's last-service date). |
| Assigned to | Only when you chose a different person, or Unassigned. If the reassignment cannot be saved, a message says why and the rest of the Save still stands. |
Everything on the Basic tab is re-read from the database straight after a save, so what you are looking at is what was stored.
Note. The customer and the parent record (the case, sale, project or agreement the order came from) are set when the order is created; on an already-saved order they are shown for reference and cannot be changed. Lines and assignments have their own tabs and are saved there, not by this button.
Two statuses
| Internal (your team) | Customer-facing |
|---|---|
| new → dispatched → accepted → on site → completed / cancelled | open → scheduled → in progress → completed → closed |
Changing a status from the ribbon (Set Status)
Select a work order in the list, then Edit ▸ Dispatch ▸ Set Status and pick one of four items. The change is saved straight away (you do not need to open the order), and the list refreshes with the same order still selected (unless the current filter no longer shows it).
Because a work order has two statuses, each item changes the one(s) it actually names:
| Set Status item | Internal status | Customer status |
|---|---|---|
| Scheduled | unchanged | scheduled |
| In Progress | unchanged | in progress |
| Completed | completed (stamps the completed date; for an agreement's visit, updates the agreement's last-service date) | completed |
| Cancelled | cancelled | closed: so the customer is no longer told the job is scheduled |
To set any other combination (for example on site), open the order and use the two pickers on the Basic tab.
- Nothing selected? TechieCRM says "Select a work order first." and changes nothing.
- Not allowed to change work orders? You get the same explanation the work order dialog's Save gives (your rights or your plan do not allow it), and nothing is changed.
- It could not be saved (for example the database is unreachable): a message names the order and the status, and the order is left as it was.
Work orders are never deleted: cancel one instead
A work order is a permanent record of a job: who was sent, when, and what it cost. There is no Delete for work orders: not on the list, not in the dialog, not on the right-click menu.
To call off a work order, select it in the list and use Edit ▸ Dispatch ▸ Set Status ▸ Cancelled, or open it, set its Internal status to cancelled on the Basic tab, and press Save. The order stays in the list (filter by Cancelled to see only those), greyed out, and it is no longer counted among the open orders.
If you press Delete on the ribbon while the Work Orders list is showing, TechieCRM tells you exactly that ("Work Orders are not deleted. They are kept permanently as the job's record. To call off a work order, open it and set its Internal status to Cancelled, then Save, or select it in the list and use Edit ▸ Dispatch ▸ Set Status ▸ Cancelled.") and changes nothing.
Assigning a partner
Assignments ▸ Assign Partner… lists the companies in your Partners registry (Chapter 9), only those. Each one shows its partner status and, when known, its compliance status (for example Beta Electric (active · compliance: approved)). Type in Search partners and press Find (or Enter) to narrow the list by name.
Ordinary clients are not offered: a company must be flagged as a partner first, so that it has the partner record its compliance requirements (Chapter 11) belong to.
A company that is not a partner yet: Flag as partner…
Press Flag as partner… in the picker. TechieCRM opens exactly what Partners ▸ Add Partner… opens: a search of your client list to choose the company, then the Partner dialog, where you fill in its type, status, service areas and so on and press Save. When you close the Partner dialog after saving, the picker refreshes and the new partner is already selected; set the role and amount and press Select. If you close the Partner dialog without saving, nothing is flagged.
The button is hidden if you are not allowed to add partners.
Role and agreed amount
Alongside the list, the picker asks for two things about this assignment:
| Field | What it means |
|---|---|
| Role | Lead, Member or Crew. Only a Lead assignment fills the order's lead-partner field and moves a brand-new order to dispatched; a Member or Crew assignment is added to the ledger without changing the header. |
| Agreed amount | What you have agreed to pay this partner for this assignment (your payable). It is recorded in the work order's own currency, shown next to the box, so a USD order records a USD amount. While it reads “Not agreed yet” no amount is stored. |
Both appear straight away in the Assignments tab's Role and Agreed columns.
The compliance guard
When you assign a partner whose compliance is expired or missing for that kind of work (Chapter 11), TechieCRM warns you and asks to confirm before assigning. This applies to every partner, including one you have just flagged.
If you are not allowed to change work orders, Assign Partner… tells you so and the picker does not open.
Raising a work order from a won sale
When a sale is won, the work it was sold for becomes a job to dispatch. TechieCRM raises that work order straight from the sale, so the order carries the customer and stays linked back to the sale it came from.
Two ways in, both on the Sale (Chapter 6):
| Where | What it does |
|---|---|
| Actions ▸ Create Work Order from this Sale (toolbar) | Opens the New Work Order dialog already linked to the sale, with the sale's client as the customer, the sale's objective as the subject (Work order: <objective>) and one line already filled in from the sale (below). Fill in schedule, adjust the lines and assign as usual, then Create. |
| Work Orders tab ▸ Create Work Order | Exactly the same thing: the button on the tab does the same job as the Actions item, seeded line and all. The tab also lists every work order this sale has already produced; double-click one to open it. |
A sale never raises a work order on its own. Saving a sale, or ticking Won, creates nothing. The order is only created when you ask for it here, and even then, nothing is written until you press Create in the New Work Order dialog.
The line the sale fills in for you
The New Work Order dialog opens with its Lines tab already holding one line taken from the sale:
| On the line | Where it comes from |
|---|---|
| Description | The sale's Objective, exactly as it reads on screen, e.g. Installation & Configuration. |
| Quantity | 1. A sale records one agreed amount for the whole job, not a unit price and a count. |
| Unit price | The sale's Actual revenue if it is set (more than $0.00), otherwise its Forecast Revenue. If neither is set the line starts at $0.00; type the real amount over it. |
| Unit cost | The sale's Cost, or $0.00 if the sale has none. |
| Item type | Left blank. A sale does not say whether what was sold is a product, labour or a part, so it is yours to choose. |
It is a starting point, not a decision. Nothing about the line is fixed: select it and use Edit Line… to change any of it, Remove Line to throw it away, or Add Line… to add more alongside it. The line (and everything you did to it) is written only when you press Create.
If you correct the sale's Objective, Forecast Revenue, Actual revenue or Cost before raising the order, the line follows what is on screen, not what was last saved.
A sale with an empty Objective raises the work order with no lines at all. TechieCRM will not write a line reading "Sale" or "TBD" just to have one; an empty Lines tab tells you honestly that there is nothing to copy, and you add the lines yourself.
Won sales only
Both are available only when the sale's status is Won and the sale has been saved. On any other sale they are greyed out, and hovering says why:
| What you see | What it means |
|---|---|
| "Work orders can only be raised from a sale whose status is Won." | The sale is New, In Progress, Lost, Abandoned or Suspended. Set its status to Won on the sale's Status tab and save. |
| "Save this sale first, then mark it Won to raise a work order." | The sale has never been saved, so there is nothing for the work order to link to. |
| "This sale could not be identified in the database, so it cannot be linked." | TechieCRM could not read the sale back (usually no database connection). Nothing is created; it will not guess a link. |
Ticking Won on the Status tab is not enough on its own: Apply or OK the sale first. The buttons follow the sale's saved status, and they switch on as soon as the save completes; you do not have to close and reopen the sale.
The sale's existing work orders are always listed on the Work Orders tab, whatever the sale's status. Only creating a new one is restricted to won sales.
What the link records
The new order is stored with a parent of Sale and a permanent reference to that exact sale, so:
- the work order's Parent field names the sale (e.g. Sale 4001: Replace the roof) instead of showing a bare reference number;
- the sale's Work Orders tab finds it again;
- the same link is understood by the web portal and the mobile app, so an order raised on the desktop shows under the right sale everywhere.
The parent is fixed when the order is created and cannot be changed afterwards (see the note under What Save writes).
Raising a work order from a ticket, without opening it first
The Work Orders ribbon tab's Create ▸ From Ticket button raises a work order linked to a
Service ticket in one step: pick the ticket from a search list (type to filter by ticket number,
subject or company), and TechieCRM opens the New Work Order dialog already linked to it, with
the ticket's client as the customer and the ticket's subject as the work order's subject
(Work order: <subject>). Fill in schedule, lines and assignment as usual, then Create.
This is the same link the ticket's own Work Orders tab makes (see below); From Ticket exists because the Work Orders module has no "selected ticket" of its own to act on, so it asks first instead of requiring you to open the ticket to get there.
Where work orders appear
- The customer's Interactions (as customer) and the partner's Interactions (as partner).
- A Work Orders tab on the Sale, Ticket, Project and Agreement dialogs, each listing the orders that record spawned, with Create Work Order and double-click-to-open.
- A Work Orders tab on the Partner dialog, listing the orders that partner is assigned to. It is a read-only list: partner work is dispatched from the customer's side, so there is no Create button there.