Chapter 4

Sales and Service

Cloud CRM (Aug 2026): Sales, Service, Marketing (plus Inventory, Projects, Work Orders and Partners) use the same master-detail workspace on the web: the module's records on top, the linked client (with its contacts) in Related, and the record's Interactions below. Partners lists client records whose Category is "Partner". A campaign shows its member-clients note instead of a single parent. The web Sales list resolves the Stage label and hides the source CRM's per-user system rows; Service resolves priority labels (Low/Medium/High). The web Sales toolbar has Current/All/Won/Lost/Suspended Sales and a close-date range dropdown (Any Date / This Month / This Quarter / This Year / Next 30 or 90 Days), matching the desktop's combos. Service's toolbar has All/My Tickets, a deadline range dropdown (Any Date / Overdue / Today / This Week / This Month / Next 30 Days), a Priority filter and a Status filter that covers both the web's own statuses and any status label synced in from your source CRM; see "On the web (the Service list)" below for what that means in practice. The web sale page (Oct 2026) shows the sale's Competitors and partners with each one's comment, Lost to and the Completion reason. A value your office database has not sent yet reads Not synced yet. The free-text box on the web form is now called Other competitor notes (the same text as before). Changing a sale to Won or Lost on the web form opens a small window asking for the reason and, for Lost, Lost to; it lists only the reasons offered for that status (hidden reasons never appear), and Skip keeps the new status with no reason. The reasons come from your office's list, so a workspace without one shows the box greyed out with "No completion reasons are set up." On a sale created on the web or a phone the change is saved at once. On a sale from your office database (Oct 2026) you can also assign and remove competitors and partners and change their comments on the sale page, and Won or Lost with its reason and Lost to is sent from the form: these changes are sent to your office computer and show as waiting until it has them. See "Changes wait for your office computer" below.

Source-CRM equivalents: Opportunities and Customer Service. Renamed Sales and Service; the data is your source CRM's.

In this chapter - Sales: the list, the sale dialog, stages and status - Service: the list, the case dialog, solutions and knowledge base - Right-click menu and toolbar (Sales and Service) - Work Orders from a sale or a case - What Interactions shows


Sales

The Sales list shows every opportunity (status icon by status, coloured stage/probability, close date, revenue). Master-detail: selecting a sale shows that sale's own people in Related and that sale's own history in Interactions (see Related and Interactions follow the clicked sale or ticket below).

While the list loads (14 Oct 2026). The Sales list is read from the database in the background, so the window stays usable while it loads: opening Sales, changing the Status or Close Date filter, pressing Refresh, or arriving from a dashboard indicator shows a single Loading sales... row, and the window title says Loading sales... until the count arrives. That row is a message, not a sale: it cannot be selected, opened or deleted. You can change a filter again while it loads; the list always ends up showing the last filter you chose, never an earlier one that happened to answer later. When Sales is first opened, the first sale is selected as soon as the list arrives, so Related and Interactions below follow it.

  • "Sales could not be loaded: " (in red) means the read failed, for example the database did not answer. The list is not empty; press Refresh or reconnect. Hover over the row for the full reason.
  • "Sales could not be loaded: Loading was stopped before it finished" appears if the program was closing while the list loaded; Refresh loads it again.
  • An empty list (no rows, no red row) means the read worked and no sale matches the Status and Close Date filters you chose. Since 14 Oct 2026 a database problem (a dropped connection, no database connected, a table that could not be read) always shows the red row above, never an empty list.

Close Date column, sort order, and the Close Date filter (This Month / This Quarter / This Year / Next 30 or 90 Days). All three read the sale's real, recorded Close Date; a sale that has not closed yet shows its Estimated Close Date (the forecast) instead, so an open sale in your pipeline still has something useful in the column rather than a blank. None of the three ever reads the source CRM's internal "Actual Close Date" field. Despite its name, that field is not a close date on a sale that has been edited since it closed; it is the date it was last modified, so reading it here would occasionally show you an edit timestamp labelled as a close date. Filtering "This Month", for example, therefore returns the sales that actually closed (or are forecast to close) this month, not the ones that were merely touched this month.

New Sale on the Sales panel creates a real opportunity record in the source database (the Clients right-click "Create a Sale…" item is not connected yet).

Sale dialog: tabs Basic (objective, description, client, revenue/cost, dates, next action, Stage with the probability bar, Confidence, Products/Services and Categories pickers, team / leader / campaign), Status (In Progress / Suspended / Won / Lost / Abandoned), User-Defined Fields, Activities, Sales Plans (activities or strategy view), Competitors / Partners (see Competitors and partners on a sale below), Work Orders (Chapter 8), Project actions (Create a project from this sale, Chapter 5). OK/Apply save to the source database.

Opening a sale or a ticket (14 Oct 2026). The sale or ticket window opens straight away and reads the record from the database in the background, so the rest of the program does not freeze while it does. Until the record has arrived:

  • a Loading this sale... (or Loading this ticket...) bar shows across the top;
  • the tabs, OK, Apply, Save and the toolbar buttons are greyed out; Cancel works at any time and simply closes the window;
  • the values you could see in the list (the objective or subject, for example) may already show; they are replaced by the record as stored as soon as it arrives.

Everything unlocks the moment the record is on screen. The User-Defined Fields, Activities (or Sales Plans activities) and Work Orders tabs fill in the first time you open them, so opening the window does not wait for lists you may never look at.

If the record cannot be read (the database did not answer, the record was deleted by someone else, or a list the record needs, such as the sale stages or ticket statuses, could not be read), the bar turns red and says This sale could not be loaded, so it cannot be edited or saved here, followed by the reason. The window stays greyed out and only Cancel works. This is deliberate: a window that never received the record must never be able to save its empty boxes over the real one. Close it and open the record again once the database is back.

A ticket whose linked Solution notes document could not be read opens normally, but the Solution notes box is locked (hover over it for why) and Save leaves those notes exactly as they are.

Forecast revenue, Actual revenue and Cost (Basic tab). A sale carries two revenue figures, side by side and each labelled:

  • Forecast revenue: what the sale is expected to be worth while you are working it. This is the figure the Sales list's Revenue column and the pipeline charts use.
  • Actual revenue: what the sale really closed for. When you mark a sale Won on the Status tab, Actual revenue is filled in for you from Forecast revenue, so the common case (it sold for what you forecast) needs no typing. It stays editable: change it to the real figure at any time, before or after you mark the sale Won.
  • The fill only happens when Actual revenue is still empty or an untouched $0.00. A figure you have typed in this dialog (even 0) or an Actual revenue already saved on the sale is never overwritten.
  • It happens when you pick Won. Opening a sale that is already Won does not change what is stored, so an older won sale saved with $0.00 opens showing $0.00 until you type its figure.
  • A Forecast revenue of zero copies nothing.
  • Saving writes it to the sale's Actual Revenue field in your source CRM, the same field your source CRM shows. A new sale saved already marked Won is created with it.

Which amount a Project, Invoice or Work Order made from a sale carries. The Actions ▸ Create Project / Create Invoice / Create Work Order from this Sale items all use the same rule: the sale's Actual revenue if it is set, otherwise its Forecast revenue. "Set" means more than $0.00: an Actual revenue that is empty or $0.00 (including a 0 you typed) falls back to Forecast revenue, because every sale won in TechieCRM before September 2026 stores $0.00 there. The figures are read as they stand on screen, so an Actual revenue you have just typed is used even before you save. A Project gets the amount as both its Budget and its Revenue; an Invoice gets one line at that price (and refuses if the amount is $0.00); a Work Order's seeded line gets it as the unit price.

The Status tab's Won line used to carry a small unlabelled Revenue: box that saved nowhere. It has been removed; the Won line now points you to Actual revenue on the Basic tab instead.

On the web (Add / Edit Opportunity page). The web form is a single page, not the tabbed dialog above.

Objective is the sale's name (what the sale is for) and it is required: save with it empty and the page comes back with "An objective is required." beside the box, the same words the desktop dialog uses, and nothing is saved. Objective is what the Sales list shows in its first column, what the sale's own page is titled, and what a search matches.

Changed 6 September 2026. This box used to be labelled Description, and what you typed in it was stored in the field the rest of the platform uses for the client's name. That is why an unlinked sale used to appear in the Sales list with its own title printed in the Client column. Your existing sales have not been altered: one created before this date still shows its name correctly everywhere, and its Client column is now blank rather than wrong. The next time you open such a sale and save it, its name moves into Objective and it looks like every other sale. Nothing is lost either way, and there is nothing you have to do.

It also carries a Client box in the Settings card:

  • Type two or more letters in the search box to look a client up by company name or person's name, then click a result; the client's ID drops into the ID box below it.
  • Or paste a client ID straight into the ID box, if you already have one.
  • Clear empties the box; saving then leaves the sale with no client.
  • Under the box the page tells you which client the sale is currently on ("Linked to ..."), or "Not linked to a client".
  • The Client box is editable when you add a sale and when you edit one, so a sale created from the ribbon with no client can be attached to the right client afterwards. A sale with no client shows "This record has no linked client yet." in its Related panel.
  • An ID that matches no client is rejected with a message on the field; it is never saved as though it worked.
  • Saving stores the chosen client's name on the sale as well as the link, so the Sales list can still name the client on a sale whose client record has not been brought across from your old CRM. Clearing the Client box clears that stored name too.

Actual Revenue on the web. The web form's Financial card has Forecast Revenue and Actual Revenue side by side, and it follows the desktop's rule: when you change Status to Won, Actual Revenue is filled in from Forecast Revenue, but only if Actual is still empty or an untouched 0. A figure you have typed into Actual on the page (even 0), or an Actual already saved on the sale, is never replaced, and a Forecast of 0 or blank copies nothing. Opening a sale that is already Won changes nothing; the fill happens only at the moment you pick Won. The filled figure is an ordinary value you can change before you press Save, and what is saved is exactly what the box shows; the server never fills Actual in by itself. (The fill needs JavaScript; with it switched off the box simply stays as it was.)

Forecast Revenue, Actual Revenue and Cost will not accept a negative number: on the desktop, OK or Apply with a negative in any of them stops with a message naming the field(s) and nothing is saved (enter 0 or a positive amount). Should a negative one already be in the database (imported, or written by the source CRM), the sale and ticket screens display it as -$50.00 (minus sign before the dollar sign (Chapter 7, How money is written) rather than refusing to open. Ticket bill rate and fee follow the same rule. All Sales on the ribbon shows every sale regardless of status; the Sales list's own view box (Current / All / Won / Lost / Suspended Sales) does the same job from the list. Each row's status mark is coloured by status: New blue, In Progress green, Won green, Lost red, Suspended amber.

On the web (the Sales list). The web Sales page is the same master-detail workspace as the desktop panel, with three filters in its toolbar and a strip of numbers above the list:

  • View: Current / All / Won / Lost / Suspended Sales, the same five choices as the desktop. "Current Sales" is what a bare /sales/ link shows, which is why the ribbon's All Sales button carries ?view=all.
  • Close date: Any Date / This Month / This Quarter / This Year / Next 30 Days / Next 90 Days. A sale with no estimated close date is left out whenever one of these is chosen.
  • Status: the six status labels as they are stored (New, In Progress, Won, Lost, Abandoned, Suspended). The same filter is on the clickable pills under the toolbar, which carry a live count each. A pill is only offered when it would show something, so with "Current Sales" in force you see New and In Progress and not Won. A Won pill there would read 0 and, clicked, would give you an empty list.
  • The numbers strip (Sales / Open / Won / Lost / Suspended) follows your search and your close-date choice but NOT the view box, because those five numbers are the view box's buckets. So with "Current Sales" showing, the Open number and the list's own total are the same number and the Sales number is deliberately larger: it counts every sale your search matched.
  • The Client column is blank when a sale has no client; it no longer falls back to printing the sale's own name there.
  • Sorting. Click a column heading. Description, Stage, Revenue and Close sort the whole list. Client and Status do not, and the page says so under the list rather than moving nothing and leaving you guessing: the Client name is looked up in Clients for each row rather than stored on the sale, and the Status shown is worked out from two stored fields. Those two columns also switch Show all off while they are the sort, because a list that loads more rows as you scroll can only stay in order if the database is doing the ordering.
  • The source CRM's per-user @USER.OPP bookkeeping rows are hidden here, as they are on the desktop, and they are not counted in any of the numbers above.
  • Paging, page size and Show all work as described in Chapter 20.

Competitors and partners on a sale

(Desktop, 23 Oct 2026. Competitors and partners can both be assigned, removed and commented.)

Open a sale and choose the Competitors / Partners tab. It has two lists, Competitors and Partners. Each one shows the client entries linked to this sale, with their Name, City and State. These are the same links your office CRM keeps for the sale, so a competitor or partner linked there appears here, and one you assign here appears there.

  • A person is shown as "First Last (Company)"; a company by its name.
  • Click a row to see its comment in the Competitor comment or Partner comment box below the list. Hovering over a row shows the same comment. A row with no comment says "No comment."
  • "(entry no longer exists)" in italics means the linked client entry has been deleted from Clients. The link is still on the sale, so it is still listed, and you can unassign it.
  • Columns fit their content. A long name widens its column and the list scrolls sideways instead of cutting the name off. Make the window bigger and both lists grow with it.

What each message means. The lists never leave you guessing whether they are empty or broken:

You see It means
No competitors yet. Press Assign... to add one. Nothing is linked, and you can add one.
No competitors linked to this sale. (or partners) The database answered: nothing is linked. You see this wording when you cannot change the list (a window opened read only, or a plan or login that cannot change sales).
A red line at the top of the tab, starting Could not read the competitors and partners of this sale: The database could not be read; the line says why (for example the connection dropped). Both lists show Not shown instead of an empty list, and nothing on this tab can be changed or saved. The rest of the sale still opens and saves normally. Close the sale and open it again once the database is back.
No partners linked: this sale has not been saved yet. A new sale opened by someone who cannot change sales. Anyone who can change sales sees No partners yet. Press Assign... to add one. instead, and can assign partners before the first save.
Loading competitors... The sale is still being read; it lasts a moment.
Not shown: this sale could not be loaded. The whole sale could not be read (the red bar at the top of the window says why).

Assigning competitors

(Desktop, 23 Oct 2026.)

On the Competitors / Partners tab of a sale:

  1. Press Assign... beside the Competitors list. The Assign a competitor window opens.
  2. It lists the client entries whose Category is Competitor. Type part of a name or company in Search and press Search (or Enter) to narrow the list.
  3. Tick Show all entries to list every client entry instead, for a competitor that has not been given the Competitor category. It is linked just the same.
  4. Click the entry and press Assign (or double-click it). It is added to the bottom of the Competitors list and selected.
  5. Type a comment for it in the Competitor comment box if you like (up to 254 characters; the box stops there).
  6. Press OK or Apply to save.
  • Unassign removes the selected competitor from the list. Select a row first.
  • Editing a comment: select the row and type in the comment box.
  • Nothing is saved until OK or Apply. Assign, Unassign and comment changes are all kept on the tab until then, and they are saved together with the rest of the sale, all at once: either every change is saved or none is. Cancel closes the sale and throws them away.
  • A new sale: you can assign competitors before the sale has been saved. They are saved right after the sale is created, when you press OK or Apply.
  • Already listed: an entry that is already a competitor on this sale cannot be added twice. The window says so and nothing is added.
  • No Competitor category: if your database's Category list has no Competitor choice, Show all entries is ticked and cannot be unticked, and the window says why.
  • If saving fails, a message says "The sale was saved, but its competitors and partners could not be saved." with the reason. Your changes stay on the tab and the window stays open: press Apply to try again, or Cancel to throw them away.
  • If someone else changed the list while you had the sale open (for example they removed a competitor whose comment you edited), saving says so and nothing on the tab is saved. Close the sale and open it again to see the current list.
  • Who can assign: anyone who can change sales. A window opened read only, a plan that is read only for Sales, or an office CRM login without the right to change sales shows the list with Assign... and Unassign greyed out, and OK / Apply explain why nothing can be saved.
  • Lost to (Status tab, for a Lost sale) lists (Unknown) and this sale's competitors, updating as you assign or unassign them; your choice is saved with the sale, and a stored Lost to that is not one of the competitors stays, marked (not one of this sale's competitors). Changing a Lost sale to any other status clears its Lost to when you save. See The Status tab: Completion reason and Lost to below.
  • Partners work the same way; see Assigning partners below.

Assigning partners

(Desktop, 23 Oct 2026.)

A partner is a company in Clients that is a partner: it is in the Partners list (flagged in the Partners window, Chapter 9) or its Category is Partner. On the Competitors / Partners tab of a sale:

  1. Press Assign... beside the Partners list. The Assign a partner window opens.
  2. It lists the partners, and the contacts at those partner companies. Type part of a name or company in Search and press Search (or Enter) to narrow the list.
  3. Tick Show all entries to list every client entry instead. An entry that is not a partner is marked (not a partner); hover over it to see which company that means.
  4. Click the entry and press Assign (or double-click it). A partner is added to the bottom of the Partners list and selected.
  5. Type a comment for it in the Partner comment box if you like (up to 254 characters).
  6. Press OK or Apply to save. Unassign, editing a comment, Cancel, a new sale and a failed save all work exactly as for competitors (above).

Picking an entry that is not a partner. The window asks Make a partner?: "Plain Roofing is not a partner yet. Make Plain Roofing a partner?" You have three answers:

Press What happens
Make a partner... The Partner window opens for that company, the same one the Partners directory uses (Chapter 9: its Basic and Compliance tabs). Fill it in and press Save: the company becomes a partner and the entry is linked to the sale. If you close the Partner window without saving, nothing is linked, the Assign a partner window stays open and says so, and you can pick again.
No The entry is linked to the sale anyway, without becoming a partner.
Cancel Nothing happens; pick another entry.
  • A contact as a partner. A partner is always a company, but you can link the person you deal with there. Pick the contact: the question is about the contact's company ("Make Zetic Consulting a partner?"), and the contact is what is linked to the sale, shown as "First Last (Company)". If the company is already a partner, the contact is linked with no question.
  • If you cannot add partners (your login or plan cannot change Partners), the question has no Make a partner... button and says "Ask someone who can add partners" to make the company one. No still links the entry to the sale.
  • Making a company a partner here does not change its Category. To remove the partner flag later, use the Partners directory (Chapter 9).
  • Already listed: an entry that is already a partner on this sale cannot be added twice; the window says so before asking anything.

The Status tab: Completion reason and Lost to

(Desktop, 23 Oct 2026.)

When a sale ends, the Completion details on its Status tab record why. They can be used once the sale is Won, Lost, Abandoned or Suspended.

Reason lists the completion reasons offered for the status you picked. Each status has its own list, and an administrator can widen or narrow the Won and Lost lists (see Completion reasons offered for Won and for Lost below):

Status Reasons offered
Won the office CRM's Won reasons, plus any reason marked for Won or for Won and Lost
Lost the office CRM's Lost reasons, plus any reason marked for Lost or for Won and Lost
Abandoned the office CRM's Abandoned reasons
Suspended the office CRM's Suspended reasons
  • (None) at the top means no reason. Choosing it on a sale that had a reason removes it when you save.
  • Changing the status refills the list. A reason you picked that the new status does not offer is dropped, and the box goes back to the sale's saved reason (or (None)).
  • "(current)" after a reason means it is the reason saved on this sale, but it is not offered for the status shown (it belongs to another status's list, is marked for the other status, is hidden, or has been removed from the office CRM). It stays on the sale when you save; pick another reason to replace it.
  • The box is greyed out when there is nothing to choose; hover over it to see why:
  • "This database has no completion reasons set up.": your office CRM has no reasons in any list. Ask your administrator to add them in the office CRM.
  • "This database has no completion reasons for Won sales." (or Lost, Abandoned, Suspended): the other lists have reasons, but none is offered for this status (its list is empty, or every reason in it is hidden or marked for the other status).
  • "A completion reason is chosen when the sale is Won, Lost, Abandoned or Suspended.": the sale is still New or In Progress.
  • "The completion reason could not be read, so it cannot be changed here: ...": the database did not answer; the reason it gives follows. Nothing is changed on save. Close the sale and open it again once the database is back.
  • What is saved: the reason is saved with the sale when you press OK or Apply, only if you changed it and only while the sale is Won, Lost, Abandoned or Suspended. Opening a sale and saving something else never touches its reason. A sale saved back to New or In Progress keeps the reason it had.
  • A new sale saved straight into a final status is created with the reason you picked.

Lost to is beside the Lost status. It lists (Unknown) and this sale's competitors (see Assigning competitors above) and is saved with the sale.

  • Changing a Lost sale to any other status clears its Lost to when you save (it goes back to (Unknown)). Going back to Lost before you save keeps it as it was.
  • A sale that had no Lost to saved has nothing to clear, so nothing about Lost to is written.

Completion reasons offered for Won and for Lost

(Desktop, 23 Oct 2026.)

Your office CRM files every completion reason under one status: a Won reason, a Lost reason, an Abandoned reason or a Suspended reason. TechieCRM can also mark a Won or Lost reason, so that it is offered where it makes sense, and can hide a reason that is no longer used:

Mark Offered for
(no mark) the status it is filed under in the office CRM (a Won reason for Won, a Lost reason for Lost)
Won Won sales only
Lost Lost sales only
Won and Lost both Won and Lost sales
Hidden no sale; a sale that already has it still shows it, marked (current)
  • Abandoned and Suspended reasons are always offered for their own status and carry no mark.
  • Marks are kept in your office database, so every computer in the office sees the same lists without the cloud. The office CRM itself does not know about them: someone still using it sees each reason under the status it is filed under there.
  • A mark never changes a sale. A sale keeps its saved reason whatever the mark says.
  • The first time TechieCRM signs in to a database after this update, it adds the small table that keeps the marks (or adds it when the first sale is opened). A sign-in that is not allowed to create tables leaves it out; the reasons are then offered unmarked, each for the status it is filed under.
  • Marks and hiding are set by an administrator in Settings, Sales (see Adding and changing completion reasons below). Until a reason is marked, it is offered for the status it is filed under.

Adding and changing completion reasons

(Desktop, 23 Oct 2026. Administrators only.)

An administrator (the MASTER login, or a login allowed to manage users) keeps the list of completion reasons from the desktop, in Settings, Sales, Completion reasons. The Sales panel's ⚙ Settings button opens the same page. Changes save straight away, apply to everyone in the office, and are written into the office CRM's own reason lists, so someone still using the office CRM sees the new, renamed or removed reason there too.

The table lists every reason with:

Column Meaning
Reason the name shown in the Reason lists
Offered for Won, Lost or Won and Lost (the mark, or the office list when unmarked); Abandoned or Suspended for those lists
Used on how many sales carry the reason (? when the count could not be read)
Hidden Hidden when the reason is offered nowhere
Office CRM list the list the office CRM files it under: Won, Lost, Abandoned or Suspended reasons

The buttons act on the selected reason and say what happened in the line under the table:

  • Add... asks for the name (up to 79 characters) and Offered for (Won, Lost, or Won and Lost; the default). A reason offered for Won is created in the office CRM's Won list; one offered for Lost, or for Won and Lost, in its Lost list. A name already in that list is refused ("There is already a reason called ...").
  • Rename... changes the name everywhere it is shown, including on sales that already carry the reason. If someone else renamed or removed the reason meanwhile, the change is refused and the list reloads.
  • Offered for... marks the reason for Won, Lost, or Won and Lost. The office CRM list it is filed under never changes: a reason offered for Won and Lost stays under the one list shown in the last column, so someone using the office CRM itself sees it under that one status only. TechieCRM offers it for both.
  • Hide stops offering the reason; sales that have it keep it and show it marked (current). The button reads Show on a hidden reason and offers it again.
  • Remove deletes a reason no sale uses, from the office CRM's list as well. A reason that is on sales cannot be removed: the message says how many sales use it and offers Hide instead, so no sale ever loses its reason.
  • Refresh reads the list again.

Rules worth knowing:

  • Abandoned and Suspended reasons are listed for information and are edited in the office CRM.
  • Anyone who is not an administrator, and anyone running TechieCRM read only without a licence, sees the list with every button greyed and the line "Only an administrator can change completion reasons."
  • If the small table that keeps marks could not be created on this database (a sign-in that may not create tables), the page says so and the list is read only here.
  • If the list could not be read, one line gives the reason and nothing can be changed until Refresh succeeds.
  • Each change is also sent to the cloud when the office is connected, so the web portal and the phones offer the same reasons. A cloud that cannot be reached never undoes a change: the next sync carries it.

When you mark a sale Won or Lost

(Desktop, 23 Oct 2026.)

When you click Won or Lost on a sale's Status tab, a small window asks why, so the reason is recorded while you remember it:

  • Won: the window shows the Reason list, with the reasons offered for Won sales.
  • Lost: the window shows the Reason list, with the reasons offered for Lost sales, and Lost to, which lists (Unknown) and this sale's competitors.
  • Add a competitor... opens the same picker as Assign... on the Competitors / Partners tab. The entry you pick is added to the sale's competitors there and chosen in Lost to. It stays on the sale's competitors even if you then press Skip; remove it on that tab if you do not want it.
  • OK puts your answers in the Reason and Lost to boxes on the Status tab. Nothing is saved until you press OK or Apply on the sale, and you can still change both boxes before then.
  • Skip (or closing the window) keeps the new status and leaves both boxes as they were. You never have to answer: a blank reason and (Unknown) are fine.
  • A box in the window is greyed out, with a note under it, when it has nothing to offer (for example when the database has no Lost reasons). When the window would have nothing to ask at all, it does not open.

The window does not open:

  • when a sale is opened or refreshed and its status is already Won or Lost;
  • when you click the status that is already selected, or go back to the status the sale is saved with (for example a Lost sale you clicked Won on and then Lost again);
  • when the sale is open read only, or you are not allowed to change sales;
  • for Abandoned, Suspended, New or In Progress.

On the desktop, the Status tab of the sale window is the only place a sale can be marked Won or Lost, so the window is asked every time a sale is closed there.

On an iPhone or iPad (and on Android phones and tablets once their build has it), Close, then Won or Lost, asks for the reason and Lost to the same way: see Chapter 25, Closing a sale on the phone.

Changes wait for your office computer

(Web, 23 Oct 2026.)

A sale that came from your office database belongs to that database: the web never writes to it directly. When you change such a sale on the web, the change is sent to the TechieCRM desktop app on your office computer (the one that keeps the office database in step with the cloud), which writes it there with the same checks as the desktop's own Sale window. Until then the sale page shows the change as waiting. Sales created on the web or on a phone are not affected: they are saved at once, as before.

What goes through the office computer:

  • Competitors and partners. On the sale page, Assign a competitor... and Assign a partner... open a picker under the list. It lists client entries from your office database only, filtered to the Competitor category (for partners: companies in the Partners list or with the Partner category, and their contacts); tick Show all entries for everyone. When no entry has the Competitor category, Show all is ticked for you and a note says why. An entry added on the web that is not in the office database yet cannot be linked; the picker counts such matches and says so. Picking a non-partner as a partner asks Make it a partner?: Make a partner... opens the web's Add Partner window and links the entry once you save it there; No links it anyway; Cancel does nothing. A contact makes its company the partner, and the contact is linked. Remove strikes a row through and Comment... changes its comment. Nothing is sent until you press Send to the office; Discard changes throws them away.
  • Won or Lost. Edit the sale and change Status to Won or Lost. The window that asks for the reason (and, for Lost, Lost to) opens as usual, and for Lost it also offers Add a competitor..., which picks a competitor for Lost to and adds it to the sale. When you save, the status, reason and Lost to are sent to the office computer; your other changes on the form are saved at once. Skip still sends the new status, with no reason.
  • Suspended (24 Oct 2026). Changing Status to Suspended is sent to the office computer the same way, with the reason if you chose one. A sale your office already has as Abandoned or Suspended keeps the status it has: saving it again sends nothing.
  • Not through the office computer: moving a sale back to an open status. That is saved at once, as before.

What the sale page shows while a change waits:

You see It means
Waiting for the office beside a new competitor or partner, or a changed comment The change is on its way. A changed comment shows your new text and "The office still has: ..." under it.
A row struck through with Removal waiting The removal is on its way.
Won, waiting for the office (or Lost, Suspended) in the Completion card The close is on its way, with the reason and Lost to it will have. The status itself still reads what the office has.
Waiting: the office computer has not synced since a date and time The office computer has not been in touch for over an hour. Check that it is switched on with TechieCRM open.
A red line starting Not done by the office: The office computer could not make the change; the line says why (for example "Your office CRM login is not allowed to change sales."). Try again sends it again; Dismiss hides the line.
A line starting Not done: changed in the office. Someone changed the same thing in the office first, and the office's value won ("Changed in the office since you opened it: now Lost"). Dismiss the line, look at the new value, and change it again if you still need to.

Only the person who made a change sees its Try again and Dismiss buttons. Once the office has the change, the badge goes away and the page shows the office's own values.

Who can send changes. Your TechieCRM ID must be linked to your login in the office CRM, because the office records the change under that login. Without the link, the sale page and the form say "Your TechieCRM ID is not linked to a login in your office CRM, so this change cannot be sent there. Ask your administrator." and nothing is sent. If your ID is linked to more than one office login, the change is refused too, rather than recorded under the wrong name; ask your administrator to keep one.

Service

The Service list shows service tickets (status icon by status; priority, assigned to, deadline), renamed from the source CRM's "cases" (Tickets is the TechieCRM name; the underlying records are unchanged). New Ticket on the Service panel creates a real case record in the source database (defaults to Unassigned); the Clients right-click "Create a Ticket…" item is not connected yet.

While the list loads (15 Oct 2026). The Service list is read from the database in the background, the same way as the Sales list, so the window stays usable while it loads: opening Service, changing the Show or Deadline filter, pressing Refresh, or arriving from a dashboard indicator shows a single Loading tickets... row (when Service is opened, the window title says the same until the count arrives). That row is a message, not a ticket: it cannot be selected, opened or deleted. You can change a filter again while it loads; the list always ends up showing the last filter you chose. When Service is first opened, the first ticket is selected as soon as the list arrives, so Related and Interactions below follow it.

  • "Tickets could not be loaded: " (in red) means the read failed, for example the database did not answer. The list is not empty; press Refresh or reconnect. Hover over the row for the full reason.
  • "Tickets could not be loaded: Loading was stopped before it finished" appears if the program was closing while the list loaded; Refresh loads it again.
  • An empty list (no rows, no red row) means the read worked and no ticket matches the Show and Deadline filters you chose. A database problem (a dropped connection, no database connected, a table that could not be read) always shows the red row above, never an empty list.

Who a ticket belongs to is shown as a person's name. In the Service list and in the ticket dialog, Assigned to, Owner and Resolved by show the person's name rather than the login code stored on the record. If a login cannot be matched to a user (an account since removed, say), the code itself is shown rather than being left blank, because an empty Assigned to means something quite different: that nobody has been assigned at all. Ticket Queue depends on exactly that distinction, so a ticket assigned to a departed user still counts as assigned and stays out of the queue.

On the web (the Service list). The web Service page is the master-detail workspace, with four filters in its toolbar and a strip of numbers above the list:

  • View: All Tickets / My Tickets (assigned to you).
  • Deadline: Any Date / Overdue / Today / This Week / This Month / Next 30 Days, against the ticket's due date. A ticket with no due date is left out whenever one of these is chosen.
  • Priority: Low / Medium / High / Urgent. Only narrows a ticket whose priority was set as a word on this surface; a ticket synced in with only a raw priority code and no enrichment label is untouched by this filter.
  • Status: a ticket's status can come from two places: the five words this web page itself uses (Open, In Progress, Escalated, Resolved, Closed) or your source CRM's own status list (Assigned, Escalated, Resolved, Abandoned, Unassigned, Wait for Customer, Call Back, PreAuth Pending, the desktop's further breakdown). The dropdown offers both, and the clickable pills underneath show a live count for whichever ones your workspace actually has tickets in; a workspace with only web-created tickets sees the five web words; a fully-synced workspace sees your source CRM's own labels; either way, nothing is offered that would show zero.
  • The numbers strip (Total / Open / Closed / Overdue) counts every ticket in the workspace regardless of the filters above, and works whichever status list wrote the ticket: "Closed" means a ticket whose status is a recognised terminal word (Resolved, Closed, Abandoned) OR that has a resolved/closed date set, so a ticket carrying a status your workspace renamed is still counted correctly by its date.
  • Sorting. Click a column heading. Ticket #, Subject, Assigned and Due sort the whole list. Client, Status and Priority do not, and the page says so under the list: the Client name is looked up in Clients for each row, and Status/Priority are each worked out from a raw source-CRM code plus an enrichment label, neither of which is stored as the single value shown here.
  • Paging, page size and Show all work as described in Chapter 20.
  • Ticket numbers are an alphanumeric label from your source CRM (e.g. FP-00086), not a plain number. Every surface (web, desktop and the mobile app) keeps the label exactly as your workspace shows it, rather than treating it as a number. Tickets still order newest-first correctly: the underlying record sequence is what decides the order, not the label's own text.

Two of these are also on the ribbon's View ▸ Filter group:

  • Overdue Tickets sets the panel's deadline filter to Overdue: every ticket whose deadline has passed.
  • Ticket Queue shows the tickets nobody has been assigned to. It loads All Tickets, then hides every row that has an assignee, and tells you how many are left; View ▸ Clear List (or changing a filter) brings the whole list back. It reads the Assigned to column of the list as it is showing, so if you have hidden that column with Column Setup the command says so instead of guessing; add the column back and run it again.

Ticket dialog: Basic (subject, client/contact, type/reason/origin/queue, priority/severity, assigned to/by, deadline, Products/Services + Categories), Solution / Billing (solution notes stored as a linked document, knowledge-base article Browse/Details, resolved-by, resolution date, fee/bill rate/billable time), User-Defined Fields, Activities, Work Orders. A resolved ticket freezes its elapsed time.

Ticket dates are the office's local time. A ticket's created date and resolution date are kept in the office's local time, the way the source CRM keeps them, and the ticket dialog shows and saves them exactly as they are, with no time-zone change. A ticket created in TechieCRM gets the office's local time as its created date, so it lines up with tickets created in the source CRM. Status Age (on the User-Defined Fields tab: the time since the ticket was resolved, last changed or created) counts from the local time now. (Corrected 24 October 2026: before that the resolution date was shifted by the difference from UTC, 7 or 8 hours in Pacific time, when shown and when saved, Status Age was that much too long, and a new ticket's created date was UTC.) A ticket's last changed time is the office's local time too: saving, assigning or creating a ticket, or moving it to another client entry, stamps the office server's own clock, the same clock the source CRM uses, so the changes the source CRM makes and the ones TechieCRM makes stay in order and every change is picked up by the next sync. (Corrected 24 October 2026: before that TechieCRM stamped it in UTC, 7 or 8 hours ahead, and a change made in the source CRM during those hours could wait for a full refresh before it reached the cloud, the web portal and the phones.) On the web portal and on phones a ticket's created, resolved and last-changed times are the office's times converted to your own time zone (October 2026 update; Chapter 13, "Times from the office database"): a ticket resolved at 2:30 in the office reads 2:30 in Vancouver and 5:30 in Toronto, and a ticket changed in the office CRM after the last sync is carried by the next one.

The SLA clocks on a ticket

(25 October 2026.) A ticket that has a service level (an SLA policy, Chapter 11) shows two clocks: First response (how long until someone must first reply) and Resolution (how long until the ticket must be resolved). Each clock reads, for example:

  • 3h 20m left or Due today 16:00: the clock is running.
  • At risk: 40m left (amber): most of the time allowed is used up (the policy's at-risk share, 75 % unless it says otherwise).
  • Breached 2h ago (red), or Breached: late by 1h for a reply or resolution that came late.
  • Met (green): answered or resolved in time.
  • Paused: Wait for Customer or Paused by hand (grey): see Chapter 11, SLA clocks pause while a ticket waits.
  • Stopped: ticket closed: the ticket was closed without being resolved (Abandoned).
  • No SLA: no policy applies to this ticket.

Under a business-hours policy the time left counts working hours only (9 to 5, Monday to Friday, or the policy's own hours), the same way the deadlines are worked out.

In the ticket window. The Basic Information tab shows a Service level strip under the company and contact: the two clocks, the policy's name, and why the clock is paused when it is. Hover over a clock to see its deadline.

  • Pause stops both clocks by hand and Resume starts them again. The button is there only for people who may change tickets (your user rights and your plan). Resuming a ticket that is still in a Waiting status ends the hand pause only; the clock waits for the status to move on.
  • No SLA applies to this ticket. means there is no policy for it, or SLAs are not set up in this database.
  • SLA could not be read means the database did not answer the SLA question; the reason is shown underneath and when you hover. It never means "no SLA". The ticket itself still opens and saves.
  • A new ticket shows The SLA clocks start once the ticket is saved and checked. Saving a ticket (OK or Apply) checks its SLA straight away, so a new ticket gets its clocks, and moving a ticket into or out of a Waiting status pauses or restarts them, without waiting for the hourly check.
  • Apply now asks the same permission question as OK: on a read-only plan, without a licence, or without the right to change tickets, it explains why and saves nothing.

In the Service list. When SLAs are set up in your database, the list has two more columns at the right, Response and Resolution, with the same words and colours. Click either heading to sort by time left: the most overdue tickets come first, then the least time left, then paused, closed, met and tickets with no SLA. In a database without SLAs the two columns are not shown at all. A custom column setup can include them too: in Column Setup, add Response or Resolution from TechieCRM Fields (Chapter 20). The colours follow your theme.

Resolve, Escalate and Assign from the ribbon

(October 2026.) Edit ▸ Process ▸ Resolve Ticket, Escalate Ticket and Assign Ticket are not switched on yet. In your previous CRM, resolving a ticket also records who resolved it and when, writes a history note and closes its follow-up To-Dos, and escalating or assigning also moves the ticket's follow-up To-Do to the new person. TechieCRM will do all of that together once it has been checked on your database. Until then each button explains this and opens the selected ticket.

Assigning a ticket to someone

(Built October 2026; switched on once it has been checked on your database. Until then Assign Ticket explains that it is waiting and opens the ticket, and the ticket window's Assigned to box is read-only with no … button.)

Once it is switched on there are two ways to assign a ticket, and both do exactly the same thing:

  • select the ticket in the Service list and choose Edit ▸ Process ▸ Assign Ticket; or
  • open the ticket and click … beside Assigned to on the Basic tab. A brand-new ticket must be saved first; the window then says so.

TechieCRM then:

  1. checks that you are allowed to change tickets (your plan and your access rights);
  2. reads the ticket's current assignee fresh from the database;
  3. shows the list of users, starting on the current assignee. Choose the new person and click Select (choosing the person it is already assigned to just tells you so);
  4. asks you to confirm, naming the ticket number and subject, who it is assigned to now and who it will be assigned to, and whether its Status will change (see the setting below);
  5. on Yes, saves everything below in one step. If anything fails, nothing at all is changed: - Assigned to becomes the new person; - Status becomes Assigned, if Settings ▸ Service ▸ Set Status to "Assigned" when a ticket is assigned to a user is ticked (it is, unless an administrator has turned it off). With the setting off, the Status is left as it was. When the Status is set, any "resolved by" and resolution date on the ticket are cleared, as your previous CRM does, because the ticket is open again; - Assigned By, if it was empty, becomes you, the person doing the assigning. If it already names someone, it is left alone; - the ticket's follow-up To-Do (the reminder that goes with its deadline) moves to the new person's To-Do list. If the ticket has no follow-up To-Do, none is created; the result message says "It had no follow-up To-Do to move, and none was created"; - a history note is written on the ticket, for example "Ticket reassigned from Pat Lee to Sam Ortiz by Chris Wong on 2026-10-14 09:30.", followed by the ticket number and subject. History notes cannot be edited or deleted;
  6. tells the new person: a notice on their notification bell ("Ticket assigned to you") and an email, sent from your default send account (Settings ▸ Email). The email goes to the new person's TechieCRM login email when their TechieCRM account is linked to their source CRM user ID, and to the email on their source CRM user record otherwise (see chapter A3, Your two email addresses). Nothing is sent when you assign a ticket to yourself.

If someone else changed the ticket first. If a colleague reassigned the same ticket after you opened the list, TechieCRM does not overwrite their change: it tells you who the ticket is assigned to now, changes nothing, and asks you to refresh and try again.

When the notification cannot be delivered, the ticket is still assigned; the result message says which part did not go and why:

  • the person has no email address in their user details: neither the bell notice nor the email can reach them (the bell is matched to people by their email address too). Add an address to their user details;
  • you have no default send account, or the email server refused: the email is not sent, the reason is shown, and the bell notice is still added;
  • TechieCRM's own database is not available on your computer: no bell notice, the email still goes.

The bell notice is written on your computer and reaches the other person's bell through the cloud (or a TechieCRM database your office shares). In an office that uses neither, they get the email but not the bell notice.

Assigning never writes to your previous CRM's own email queue; the email is TechieCRM's.

Linking a knowledge base article to a ticket

On the ticket's Solution / Billing tab, Related knowledge base article links the ticket to an article in the Knowledge Base (Chapter 18).

  • Browse… lists every article by its article number and title and fills both boxes in.
  • The Article # box holds the article's own number in the same form the Knowledge Base shows it (FP-KB00042). You can also type a number in yourself; both FP-KB00042 and the bare digits 42 find the same article, and the box is rewritten to the full FP-KB… form once the article is found, so the ticket and the Knowledge Base always quote the same number.
  • Title fills in automatically from the matched article; it is not typed.
  • Details… opens the linked article. It stays greyed out until a number actually matches an article. A number that matches nothing is left exactly as you typed it (so an external reference is never overwritten) and the button stays disabled.

SLA: when an SLA policy applies, the ticket's response/resolution deadlines and status appear on the Compliance & SLA board (Chapter 11).

Right-click menu and toolbar (Sales and Service)

Both lists carry the source CRM's full right-click menu, and every item on it does something (before the September 2026 update the lower half of this menu was listed but not connected; a click did nothing). After Add / Open / User-Defined Fields / Delete / Select:

  • Add to Favorite List / Remove from Favorite List: the Favorite List window for the record's client entry (favorite lists hold client entries, as in the source CRM). The toolbar's Favorite List button offers the same plus View Favorite Lists.
  • Activities for : the client's tasks and meetings window (Chapter 3).
  • Phone Log: the client's logged calls: the source CRM's Outgoing calls / Incoming calls notes plus calls logged from TechieCRM's Home ▸ Phone buttons. Newest first; click a row to read the whole note.
  • Sale Monitoring… / Ticket Monitoring…: the Monitor window for this record: who is told when it changes or trips a monitoring rule, and what counts (see Monitoring a sale or a ticket below). The ribbon's Edit ▸ Process ▸ Monitor Sale and Monitor Ticket open the same window for the selected record, or My Monitors when nothing is selected.
  • Sale History / Ticket History: the record's own History entries (the source CRM's automatic "status changed / escalated from…" notes). Tick Show every note on this record to see all of its notes; there, a note filed when an email was sent shows the type Sent email (Chapter 17).
  • Export to Sheet and Print: the list as shown (visible rows and columns), through the same Export window and print preview as the Clients list (Chapter 20).
  • Schedule Project Plan…: a project plan attached to this sale / ticket (not just its client), so its steps show under the record's Activities.
  • View in Clients: switches to the Clients window showing the record's client entry.
  • Properties: type, identification (Opp Id / ticket number), client, created by / on, owner, last modified.

Sales toolbar: Column Setup · Sales Funnel (one layer per sales stage for the sales currently listed: count and forecast revenue) · Sales Pipeline (forecast revenue per stage, the weighted value (revenue × probability) drawn inside each bar, and a status breakdown; both windows print) · Favorite List · Search (hides sales whose Company, Objective, Stage, Status or Close Date does not contain your text; Show all, a filter change or Refresh restores the list). Service toolbar: Column Setup · Favorite List · Activities · Phone Log · Monitoring · Properties · View in Clients · Schedule Project Plan: the same functions as the menu items above.

Monitoring (Sales and Service)

Monitoring watches every open sale and ticket for a condition and raises an alert when one trips. Alerts are in-app notifications: they appear in the web portal's bell and Notifications page, count toward the phone's unread badge, and show in this desktop's bell after the next cloud sync. Monitoring needs the local MongoDB store (Chapter 13 / Settings ▸ Database); without it the menu items say so.

Monitor Rules (the Monitor window's Monitor rules… button, or My Monitors ▸ Monitor rules…) is the workspace's rule table, one row per rule:

Rule Watches Trips when Threshold
Sale idle Sales an open sale has not been modified for the threshold 30 days
Sale past its close date Sales an open sale is past its estimated close date or, when it has no estimate, past the close date recorded on the sale 0 days grace
Ticket past its deadline Tickets an open ticket is past its deadline 0 hours grace
Ticket unassigned Tickets an open ticket has had no assignee since it was created 4 hours
Ticket SLA breached Tickets the ticket's SLA tracker (Chapter 11, Compliance & SLA) has flipped to breached; the SLA engine decides; the threshold is not used –

Each row has Active, Notify owner (the sale's owner / the ticket's assignee), Notify watchers (everyone monitoring the record, see below), Extra recipients (emails, comma-separated), Tell about existing on activate and Max per run. Every rule starts off. Turning one on records the records already in that state silently (so 49 old tickets do not become 49 alerts the moment you tick the box), and from then on only a record that newly enters the state raises an alert. Tick Tell about existing on activate to be told about them anyway; when more than Max per run would go to one person they arrive as a single digest ("Ticket past its deadline: 49 tickets"). Evaluate now runs the rules immediately and shows what happened (how many tripped, how many were new, how many alerts were written, how many had nobody to tell); otherwise they run on every sync tick (about every 15 minutes), after the source CRM refresh and before the push, so an alert rides the same sync up. A computer without cloud sync runs them on the same 15-minute tick once any rule is switched on (Chapter 12, Without cloud sync).

The same alert is never raised twice: the engine remembers the fact that tripped (the date a sale went idle, the deadline that passed) and stays quiet until the condition clears and trips again on a new fact: a deadline that is moved and missed again is a new alert; the same deadline is not. An alert you have read on the web stays read. Someone whose login has no email in the user directory cannot be told; the run counts those, and the rule's fallback recipient (or your own cloud sign-in email) is used only when nobody else can be reached.

Monitoring a sale or a ticket (5 Oct 2026)

Sale Monitoring… / Ticket Monitoring… (right-click, the Service toolbar's Monitoring, the ticket window's Monitoring button, or the ribbon's Monitor button with a record selected) opens the Monitor Sale / Monitor Ticket window. Each person who monitors a record has their own monitor, so everyone can choose what counts for them.

Who is told. The record's owner, its assigned user and administrators choose from the source CRM's four options:

  • Owner only, Assigned user only, Owner and assigned user: the window names the person. A choice that needs someone the record does not have (for example no assigned user) is greyed out and its tooltip says why.
  • Selected users: tick the people in the list (everyone in the user directory; a user marked (no e-mail) can be chosen but cannot be told until their login has an e-mail address).

Everyone else sees Monitor this sale (ticket) myself and the list of who else monitors it: anyone may monitor a record for themselves, but only the owner, the assigned user or an administrator can add or remove other people.

Your own monitor stays yours. The four options above set the record's own list; they do not undo a monitor someone started for themselves with Monitor this sale (ticket) myself. If the owner later chooses Owner only, or takes you off Selected users, you keep monitoring, and what you chose under What counts stays as you set it. The owner's window says so: a line under the list such as "1 person also monitors this ticket themselves (Joe)". Someone the owner added (and who never chose it themselves) stops when the owner takes them off. Only you, from your own Monitor window or My Monitors, stop a monitor you started.

What counts. All changes; Status and assignment changes only; or Only changes to these fields (for a sale: Status, Stage, Probability, Forecast revenue, Estimated close date, Assigned to, Owner, Name, Objective; for a ticket: Status, Priority, Severity, Assigned to, Owner, Deadline, Subject, Type, Queue, Resolved date). Include notes, documents, emails, tasks and meetings added to it is on by default. A new or deleted record always counts.

Who cannot monitor. Someone who cannot see the record: a record marked private can be monitored only by its owner or an administrator, and a person whose access rights do not include reading Sales (or Service) is refused. The window says which and why, and saves nothing until every person you chose is allowed.

From the source CRM's monitoring list (read-only). The source CRM keeps its own lists of who monitors each sale and ticket: a default list that most tickets use, and a list of their own for a few. When an administrator has turned the import on (below), the people on those lists appear here with (default list) or (this record's own list), under a line such as "The source CRM's ticket default list has 2 people (ERICA, SONYA) and covers 155 tickets". Change those lists in the source CRM; TechieCRM shows them as they are. If you also choose to monitor a record you are on a list for, your choice is kept even after the source CRM takes you off that list.

My Monitors (the ribbon's Monitor button with nothing selected) lists everything you monitor: type, record, what counts and where it came from (TechieCRM (your own) for one you started, TechieCRM (on the record's list) for one the owner chose for you, or the source CRM's list). Change… (or double-click) opens the record's Monitor window; Stop monitoring stops your monitor (a monitor that comes only from the source CRM's list cannot be stopped here, and says so). Monitor rules… opens the Monitor Rules window above. Notification settings is greyed out: email timing and quiet hours arrive with change alerts.

Importing the source CRM's lists (administrators). My Monitors has a section The source CRM's monitoring lists, shown to administrators only. It is off until you turn it on, because the lists can be large: on one reference database, two people were on the ticket default list besides MASTER and 155 tickets used it, so turning it on creates 310 monitors at once. So:

  1. Click Check the lists. TechieCRM reads the lists (it only reads; it never changes anything in the source CRM) and says, in one sentence, who is on each default list, how many records use it, and how many monitors turning the import on would create. MASTER is never imported: it is the source CRM's shared administrator login, not a person, so it is left out of every list and the count, and the sentence ends "MASTER, a shared admin login, is not imported." when MASTER was on a list. MASTER monitors brought in by an earlier version are stopped by the next import (a monitor MASTER chose in TechieCRM itself is kept).
  2. Only then can you tick Honour these lists (import them on every sync). From then on every sync tick (every 15 minutes, with or without cloud sync) brings the lists up to date: a person added in the source CRM is added here, a person taken off is stopped here. Import now does it immediately.
  3. Unticking it stops every imported monitor at once (except those also chosen in TechieCRM).

Creating monitors never sends an alert by itself: only later changes do.

What you are told (5 Oct 2026). People who monitor a record are told when it trips a monitoring rule (the Notify watchers column of Monitor Rules) and when it changes, as chosen under What counts: an alert in Notifications (Chapter 12) and, on a computer with a notification area, a banner. Changes are noticed within about two minutes, on computers with or without cloud sync (see Chapter 12, How quickly and One computer per TechieCRM database). Rules for these alerts: - You are not told about your own changes. - A monitor reports changes made after it was set up, never older ones. - Whether you may still see the record is checked again when the change happens: if the record has since become private to someone else, or you no longer have read access to Sales or Service, you are not told. - When more than 25 changes for you arrive in one check (an import, for example), they come as ONE alert, 25 updates on records you monitor, naming the first few records. - Alerts are not sent by e-mail yet, and changes to saved searches are not monitored yet.

Watcher lists made with the earlier Sale/Ticket Monitoring window were moved into monitors automatically the first time this version ran (each e-mail became that person's monitor, keeping any rule choice it had).

Monitors live on this desktop's local store until the cloud registers them (a platform change tracked in docs/design/monitoring_plan.md); the alerts they raise reach every device now.

Work Orders from a sale or a ticket

Both dialogs have a Work Orders tab listing the work orders they spawned; Create Work Order raises one for the same customer with the sale/ticket as its parent (Chapter 8).

On a Sale there is a second way in, the toolbar's Actions ▸ Create Work Order from this Sale, which does exactly the same job as the tab's button, including seeding the new order with one line taken from the sale (its objective, its revenue (Actual if set, else Forecast) and its cost, quantity 1) that you can edit or remove before creating it. A sale never raises a work order by itself; both routes are restricted: a work order can only be raised from a won sale that has been saved. On any other sale the button and the menu item are greyed out and say why. The sale's existing work orders are still listed whatever its status. See Chapter 8, Raising a work order from a won sale.

Interactions

In Sales and in Service, the Related and Interactions panels below the list show only the sale or ticket you clicked. Click another one and both panels change to it.

Related lists that record's people: - its client entry (the company or individual); - its contact, when the sale or ticket names one; - for a sale, also the partners and competitors attached to it in the sale window's Competitors / Partners tab. Their name ends (Partner) or (Competitor); point at it to see the note saved with them.

The client's other contacts are not listed. Clicking a person in Related does not change Interactions: they stay on the sale or ticket.

Interactions lists that record's own history: - its notes; - its to-dos and meetings (the ones scheduled on the sale or ticket); - its own documents and filed emails.

Not listed here: the client's own notes, documents, meetings, to-dos and queued emails, its other sales and tickets, its projects, invoices, work orders and agreements, text messages and meeting notes. The Show All box is hidden, because it has no meaning for one record.

The client's full history is in Clients. Right-click in Interactions ▸ View in Clients (also on the Sales list's right-click menu and the Service toolbar) opens the client in Clients, where everything is listed together, including this sale's or ticket's rows.

This is a change from earlier versions, which listed the whole client's contacts and most of the client's history under a sale or ticket. Expect fewer rows. Campaigns (Marketing) and Projects are unchanged. The web portal still lists the client's contacts under a sale or ticket; it follows in a later update.

Items grouped with a sale or ticket (24 Oct 2026)

In a client's Interactions you can tie several items into a group and link it to the client's sales and tickets (chapter 3, Grouping interactions). Every item in a group linked to a sale or ticket is also listed in that sale's or ticket's Interactions, beside its own history.

How a linked row looks. Its Description ends with · Linked (Group: Roof leak), naming the group that brings it here. When more than one linked group holds it, the oldest is named and the rest are counted: · Linked (Group: Roof leak +1). A group without a name reads as its number of items (· Linked (Group: 3 items)). Point at the row's icon to see every group that links it. An item that already belongs to the sale or ticket itself is listed once, as its own, with no mark.

What is listed. Grouped notes, documents, filed emails, to-dos and meetings. Other grouped items (projects, invoices, work orders, agreements, text messages, meeting notes and emails still waiting to be sent) stay in their group but are not listed on a sale or ticket yet. Only groups linked to this record count: a group linked to another sale of the same client does not show here, and a ticket does not show the items of other sales or tickets its groups are linked to.

Unlink from This Sale / Unlink from This Ticket. Right-click a linked row ▸ Unlink from This Sale (or Ticket). TechieCRM asks first, naming the group and how many items will stop showing here. Choosing Yes removes only this sale's or ticket's link from the group: the items stay in the group, and the group's links to other sales and tickets stay. When the row is in several linked groups, all of them are unlinked from this record, so the row stops showing here. A notice at the bottom of the list says what was done, with an Undo button that puts the link back.

The entry is grey on the record's own rows, and for anyone without the right to change both clients and sales (or tickets). If the group names could not be read, the rows read just · Linked and the entry is grey, because TechieCRM does not know which group to unlink.

If the groups cannot be read, a warning row Linked items could not be loaded (or Group names could not be loaded) appears at the top of the list, above the record's own history. The list is not empty because of it: reload once the office database is reachable again.

A sale or ticket linked to a great many items lists all of them; it just takes a moment longer.

Interactions for a client

For a client, Interactions lists its Sales and Service records as child rows; double-click opens the dialog. Right-click ▸ Add ▸ Sale or Add ▸ Ticket opens the same new-record dialog as the Clients menu, with the selected client already filled in; saving refreshes the list. A Sale row's subtitle is its status and forecast revenue (Won · $12,500.00); a negative forecast (a credit or a reversed sale) reads -$50.00, never $-50.00 (Chapter 7, How money is written).

A ticket's (or sale's) notes, meetings and to-dos appear in two places. They are stored on the ticket, so the ticket's own Activities tab shows only its own; that is unchanged. But they also appear on the client's Interactions timeline, in date order among the client's own notes, documents, meetings and to-dos, so the client's history is complete without opening every ticket. A row that came from a ticket or a sale says so at the end of its description (“· Ticket #12” or “· Sale: Roof replacement”), so you can always tell where it lives. Open, edit, print and delete work on those rows exactly as they do on the client's own; deleting one removes the note or activity from the ticket too, because it is the same record.

Use the Types filter to narrow the timeline (Notes, Meetings, To-Dos …); a ticket's note is a Note, so it follows that filter like any other. Inside a ticket's or sale's own Interactions view nothing is pooled: you see that record's history alone.

Emails saved to a sale or a ticket. In the Email window, Save to Sale… and Save to Service… (Chapter 12, Filing an email on a client) file an email on a sale or a ticket and, ticked by default, on its client. The sale's or ticket's own Interactions lists its own emails (the subject ends · this sale / · this ticket); the client's copy is in Clients. On the client's timeline the same email reads · Sale: Website or · Ticket #12, and a copy that is also on the client shows once, with Filed on … naming every place. Deleting such an email in a sale's or ticket's Interactions removes that one record only; the client's copy and the message in your mailbox stay.

For now Save to Sale… and Save to Ticket… save the email on the client only (the header adds Attaching to the sale waits for the database check.): a check of the CRM database must first confirm how the source CRM links an email to a sale or ticket. Emails filed on a sale or ticket before that check, or once it is done, show as described above.

A new sale or ticket from an email. In the Email window, New Sale… / New Ticket… (also New Sale from Email… / New Ticket from Email… in the message right-click menu, and Ribbon ▸ Edit ▸ Manage Email ▸ New Sale from Email / New Ticket from Email) open this chapter's own new Sale or new Service ticket window, filled in from the selected email: the client the email's address belongs to (else the current client, else you choose it), the subject without Re: / Fwd: as the ticket's Subject or the sale's Objective, the sender's own text (without the quoted earlier messages) as the Description, and for a sale the email's date as the Start date and the first Close date (20 Oct 2026). Edit it as you would any new sale or ticket and press OK; the email is then saved on the new record and its client (for now on the client only, as above) and the Email window's header offers Open (the new record) and Undo (the saved email; the record stays). Closing the window without saving creates nothing. The buttons are hidden when Sales or Service is switched off for your plan and greyed, with the reason, when you cannot create sales or tickets (a beta module you can only view, a read-only plan or licence, or your rights). Full details: Chapter 12, A new sale or ticket from an email.

Deleting a sale or a ticket

Right-click ▸ Delete on the Sales or Service list (or the ribbon Edit ▸ Delete Record, or right-click the row on a client's Interactions timeline). A sale and a ticket each own records of their own (notes, to-dos and meetings linked to that sale or ticket rather than to the client), so, exactly as with a client entry, TechieCRM counts them before anything is removed.

If nothing is attached, you get a plain confirmation. If anything is attached, the Delete dialog lists each kind with its count and asks what should happen to them:

Choice What it does
Delete them together with this record The notes, to-dos and meetings go with the sale or ticket, except History notes, which are kept.
Move them to the client entry: name They are re-attached to the client (or contact) the sale or ticket belongs to, and unlinked from it, so they stay on that client's timeline.
Move them to another Sale / Ticket Search for and pick another sale (or ticket); the records are re-linked to it.

A sale's competitors and partners, its strategy activities and a ticket's project links belong to the record itself; they cannot be moved and are always removed with it, and the dialog says so. The dialog lists Competitors and partners on their own line with their count, so you can see how many links you are about to lose (the companies and contacts themselves are not touched; only their link to this sale goes). The record's user-defined field values and its other ticket notes go with it too. A ticket's solution document is a Knowledge Base article and is left in the Library.

History notes are kept. A sale's or ticket's History notes (for example "status changed…") are the permanent activity log and are never deleted with it (Chapter 17). The Delete dialog lists them on their own line marked kept, the delete choice says "(History notes are kept)", and the result message says how many were kept. If you move the connected records, the History notes shown on the sale or ticket move with the other notes; any the source CRM filed directly on the ticket stay where they are, still kept.

Delete respects your access rights: without delete permission for Sales or Service the menu item is blocked before anything is read.

Selecting several sales or tickets

Both lists use the standard record-list selection (Chapter 2): the row you clicked is the current one (outlined, and it drives the panels below), while selected rows are a separate peach-filled set. Click a row's first-column icon cell to select it, the header's master box to select or clear every row, or right-click ▸ Select / Unselect. Ribbon Edit ▸ List (Select All, De-select All, Invert Selection, Select Entry) acts on the same set.