Chapter 10

Agreements

View only on the web You can view this on the web, and create or change records in the desktop app. Web editing for this module is on the way.

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): Basicagreement 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.