Compliance & SLA
Note: desktop feature. This chapter describes the TechieCRM desktop application. Compliance & SLA 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.
Two engines behind one board: partner compliance (what documents/certifications a partner must hold, and when they expire) and SLAs (response/resolution targets on service tickets, due dates on work orders and Agreements, with breach detection). (The source CRM has neither natively.)
In this chapter - The board and its three views - Compliance: requirements, a partner's records, expiry, dispatch eligibility - SLA: policies, trackers, business hours, pausing, first response - SLA clocks pause while a ticket waits - Evaluation: when statuses change
The board
Icon bar ▸ Compliance & SLA. The first dropdown switches views: | View | Rows | Filters | |---|---|---| | SLA Board | open SLA trackers: target (ticket / work order / plan), customer, policy, respond-by, resolve-by, hours left, status | Open / Breached / At risk / On track / Paused / Met / All | | Partner Compliance | one row per partner: compliance status, satisfied/total, expiring, expired, next expiry | All / Expired / Expiring / Compliant / Unknown | | Expiry Board | every expiring/expired requirement record | next 30 / 60 / 90 days, expired only | Toolbar: Evaluate now, SLA Policies…, Compliance Requirements…, Column Setup (a separate setup for each of the three views; see Chapter 20), Refresh.
Sorting the columns. Click a heading to sort. Two columns cannot be sorted on these boards and the list says so in the footer rather than doing nothing: Partner, which is filled in from the partner directory after the records are read, and Status, which shows a label rather than the stored value. The Expiry Board also falls back to its own order (soonest expiry first) when a workspace has given its requirements more than 50 different warn-day windows; the footer explains that too. In every other case the click sorts the whole board, not just the page you are looking at.
Compliance
Requirements (Compliance Requirements…): name, category (insurance / licence / safety / training / financial / other), tier, applies to services and regions (blank = all), evidence document required, expires (renewal months) or one-time, warn days before expiry, blocks dispatch when expired or missing. Warn days: how many days ahead of the expiry date the record starts showing as expiring and appears on the Expiry Board. Set it to 0 to be warned on the day it expires and not before; 0 is a real setting, not "off". A requirement with no warn days set at all uses the standard 30 days. A partner's records (Partner dialog ▸ Compliance tab, or double-click a row on the Partner Compliance / Expiry views): the grid of requirements with status, issued, expires, evidence. Select a row, set the status / dates / evidence, Save record; entering an issue date fills the expiry from the renewal months. Not applicable excuses a requirement for that partner. Statuses: not started → submitted → approved → expiring (inside the warn window) → expired; also not applicable, rejected. The partner's overall status (expired / expiring / compliant / unknown) is rolled up automatically and shown in the Partner dialog and directory. The Partner dialog's Basic tab also shows that status in a drop-down. Saving the Basic tab no longer writes it back (September 2026 update): it is a derived value, and the box was filled in when you opened the dialog, so saving an unrelated change (a rating, a note, a phone number) could quietly put a stale compliance status back over one that had recomputed while the dialog was open. The rollup now stands unless you deliberately change the drop-down yourself. Dispatch eligibility: a partner with an expired or missing blocks-dispatch requirement that applies to the work is flagged when you assign them to a work order (Chapter 8).
SLA
Policies (SLA Policies…): name, applies to (ticket / work order / agreement), match on priority, ticket type and/or customer (blank = any; the most specific policy wins, then rank), response hours and resolution hours, count business hours only (Mon–Fri, start/end times) or clock hours, at-risk % (of the target elapsed). Trackers: TechieCRM attaches the matching policy to every open ticket, work order and active agreement and computes respond-by / resolve-by (an agreement's deadline is its next due date). Double-click a row: deadlines, response and resolution status, events, Open record, Pause clock / Resume (deadlines move by the paused time; see below), Record first response. Statuses: on track → at risk → breached; met when resolved in time; paused; cancelled (ticket abandoned).
Closed tickets. A ticket whose status is in the Closed group (Resolved, Abandoned, or any status an administrator puts there) stops its clock. With a resolved date, the ticket is judged met or breached at that date. Without one, it is judged at the first evaluation that sees it closed, and the tracker's events say "closed without a resolved date". An Abandoned ticket is cancelled, not met or breached. If the ticket is reopened, its clock runs again.
First response. TechieCRM records the first response by itself: the first note a person wrote on the ticket after it was created. That means a typed note, a logged phone call (outgoing or incoming), a timed note or an email sent to the customer. The entries the system writes by itself never count: the history log (ticket created, modified, assigned, resolved and so on), the activity log (appointment requested or completed, task completed) and scheduled tasks. A note that carries only a date, with no time of day, counts at the start of that day, or at the moment the ticket was opened if it is the same day. Record first response still works for a response that left no note, and a first response you recorded by hand is never replaced. A note typed in TechieCRM counts the same as one typed in the source CRM. Notes typed in TechieCRM before 24 October 2026 were saved as the activity-log kind (Chapter 17, What kind of note TechieCRM saves), so they do not count yet; use Record first response on those tickets if it matters. A note's time is compared with the ticket's created time as both are kept, in the office's local time. Notes typed in TechieCRM before 24 October 2026 were saved in UTC, 7 or 8 hours late in Pacific time, so on those tickets the first response may show that much late; use Record first response if it matters (Chapter 17, A note's date and time are the office's local time).
SLA clocks pause while a ticket waits
A ticket's SLA clock pauses by itself while the ticket is in a Waiting status, such as Wait for Customer or Call Back, and picks up again when the ticket moves to another status. Every ticket status belongs to one of four groups (Unassigned, Active, Waiting, Closed); the Waiting group is the one that pauses the clock. On the SLA Board the Status column then reads, for example, Paused: Wait for Customer.
- Pause clock (right-click a row, or the tracker window) is a separate, manual pause. A clock you paused by hand stays paused until you press Resume, even if the ticket leaves its Waiting status in the meantime. The Status column reads Paused by hand, or Paused: Wait for Customer, and by hand when both apply.
- Pressing Resume while the ticket is still in a Waiting status ends the manual pause only; the clock stays paused until the ticket's status moves on.
- Only working time counts. When a clock resumes, its deadlines move by the working time it was paused, not the calendar time. A ticket paused from 4 PM on Friday to 10 AM on Monday under a business-hours policy (9 to 5, Monday to Friday) gains two hours, not 66. Under a policy that counts clock hours, every paused hour counts.
- While a clock is paused it is never marked at risk or breached.
Which statuses are Waiting: Wait for Customer, Call Back and PreAuth Pending are built in. A status TechieCRM does not recognise counts as Active, so its clock keeps running.
The clocks on each ticket. You do not need to open this board to see a ticket's SLA: the ticket window shows both clocks (First response and Resolution) with Pause / Resume, and the Service list has Response and Resolution columns. See Chapter 4, The SLA clocks on a ticket.
Evaluation
Both engines run shortly after start-up and every hour, and whenever you press Evaluate now or save a compliance record. Transitions (at risk, breached, met; expiring, expired) are logged once.