Agreements
Note — desktop feature. This chapter describes the TechieCRM desktop application. Agreements 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.
An agreement (the records in the Agreements module) is a recurring commitment with a customer on a cadence: a service contract, a maintenance visit schedule, a membership, an insurance premium, a delivery subscription, a monitoring plan… — one service/product, at one location, on a repeating schedule, fulfilled by you or a lead partner, at a contracted price. Active agreements generate the work orders (and customer invoices) themselves — you don't create each visit or bill by hand. (Replaces the recurring "program order" engine some clients ran in a separate scheduling product.) Every agreement has an agreement type (maintenance, service contract, retainer, subscription, membership, insurance premium, delivery, monitoring, lease, other), a term with start/end dates, and can be started from a template; expired agreements that were not renewed stand out in the list, and Renew… creates and links the next term.
In this chapter - The register - Templates - Creating an agreement: Basic and Schedule - Status, expiry and renewal - Recurrence rules and the preview - What gets generated, and when - Generated visits, last/next service, logs - Periods, purposes, and pausing
The register
Icon bar ▸ Agreements. Columns: Agreement #, Subject, Type, Customer, Service, Partner, Recurrence, Next due, Ends, Status. Icon/tint by status (active green, draft grey, paused amber, completed blue, cancelled red; an active agreement whose next due date has passed shows the overdue warning; EXPIRED — not renewed red; expiring (ends within 30 days) amber; Renewed → #n grey-blue). Filters: status incl. Expired — not renewed / Expiring / Renewed, and Due in 7/30 days / Overdue; the header counts active / due / overdue / expiring / expired. Toolbar: New Agreement, Templates…, Generate due work now (all active agreements), Column Setup (choose / create / share the list's columns — extras include start date, last service, price and cost per visit, currency, term, generated count, renewal links; see Chapter 20), Refresh. If the agreement tables can't be read (connection dropped, or your sign-in isn't allowed to read the database catalogue), the module says so — "Failed to load agreements" with the reason — instead of showing an empty register that reads as "there are no agreements". Before the Agreements tables have been installed on a database, the register is simply empty and says nothing: that is the module not being set up yet, not a fault. Agreements also appear on the customer's Interactions panel (type Agreements) — as customer or as lead partner.
Templates
Templates… (toolbar, right-click, or ribbon Create ▸ Templates) lists the industry defaults (system templates: HVAC preventive maintenance, IT managed-support retainer, alarm monitoring, life and health insurance premiums, food-bin delivery, gym/club membership, lawn care, snow removal, commercial cleaning, pest control, software subscription, equipment lease, propane delivery, fleet maintenance) and your own. Filter by System / Mine and by category. Use Template → New Agreement opens a new agreement prefilled (subject, service, recurrence, term, lead days, what to generate, price/cost, scope); New… creates a template; Copy… duplicates one (system templates can only be copied — the copy opens for editing); Edit… / View…; Delete (your own only). A template's category becomes the agreement's type.
Creating an agreement
New Agreement (or Clients ▸ right-click ▸ Add ▸ Create an Agreement… which presets the customer): Basic — agreement type (+ From template… in a new agreement; the label under it names the template used, the renewal chain and expiry), subject, customer (Choose…), service and billing locations, service (source-CRM product/service list or free text), group, lead partner (Choose… / Clear), PO number, status (draft / active / paused / completed / cancelled — only active generates), price and cost per visit, currency, "confirm each visit with customer / partner" flags, job scope, special instructions, access info. Schedule — the recurrence (next section), Start / End with a Term in months (typing a term sets the End date; open-ended = no end), the on-site time, generate N days before due (lead days) and automatically, last service date, and the purposes to generate on this cadence (Work orders ✓ default, Customer invoices, Partner bills, Customer summaries). Create saves and reopens the plan in full.
Recurrence rules
| Repeats | Options |
|---|---|
| Daily | every N days |
| Weekly | every N weeks on the ticked weekdays |
| Monthly | every N months on days of month (e.g. 1,15 or last) or the 1st/2nd/3rd/4th/last ticked weekday |
| Yearly | every N years in the listed months (e.g. 3,9) on a day / nth weekday |
| After last service | N months after the last recorded service (moves as visits complete) |
| Specific dates | a list of dates |
| Start date, optional end date (or open-ended). The Next 12 months (preview) list and Next due | |
| update as you change the rule. |
What is generated, and when
Once a day in the background (and whenever you press Generate), every active plan is checked: each due date up to today + lead days that hasn't been generated yet gets a work order (subject "plan — date", the service as a line at the plan's price/cost, scheduled at the on-site time, the lead partner assigned, the plan named as parent) and, if the purpose is on, a customer invoice. Re-running never duplicates. When a spawned work order is completed, the plan's last service date moves forward.
Generated, Work Orders, Log
Generated tab: every due date → its work order / invoice (double-click opens it), Generate due now, Generate next 12 months, Mark serviced today. Work Orders tab: the plan's dispatched visits. Log: created / status / generated / notes (add a note at the bottom).
Status, expiry and renewal
Stored statuses: draft / active / paused / completed / cancelled (only active generates). The list derives three more from the term: expiring (active, ends within 30 days), EXPIRED — not renewed (the end date passed and no renewal exists — this is the one to act on), Renewed (replaced by a newer agreement). Renew… (dialog button, right-click, ribbon Edit ▸ Agreement ▸ Renew) asks for the new term and creates the next agreement starting the day after this one ends, copying customer / service / partner / pricing / recurrence and linking both (the old one becomes completed → Renewed → #new, the new one renewal of #old). Nothing is deleted.
Periods, pausing, completing
Periods (Schedule tab) bound the agreement to dated windows, each optionally with its own recurrence. Pause stops generation without losing anything; Activate resumes; Mark completed closes it.