Skip to main content

Documentation Index

Fetch the complete documentation index at: https://help.1nspect.app/llms.txt

Use this file to discover all available pages before exploring further.

Comms Cockpit

The Comms Cockpit is the single control surface for everything your business sends via email. It combines two distinct editors in one page:
  • Email Template editor — build and edit the email bodies (subject, body, variable tokens, links) that the workflow engine sends
  • Workflow Step editor — wire each template to a trigger event with a send offset, recipients, and conditional rules
This article is the UI reference. For the conceptual model behind triggers, offsets, and templates, see Communications & Workflow.

When you use it

  • First-week setup — build out your standard email templates (booking confirmation, contract reminder, report delivery, agent summary, etc.) and wire each to a trigger
  • Rare adjustments — change a subject line, swap a template, retime a reminder
  • Per-service customization — add a service-type-specific step (e.g. 11-month warranty reminder for New Construction)
  • A/B testing copy — duplicate a template, tweak it, swap the wiring
Most operators rarely visit Comms Cockpit after initial setup. The workflow engine handles delivery for every order automatically once configured.

Screen layout

[SCREENSHOT: comms-cockpit-screen.png — desktop, the Comms Cockpit with a top section for editing an email template (Name, Trigger, Subject, Body) and a bottom section for editing workflow steps (Trigger, Offset, Recipients, Template).] The page is split into two stacked editors:
  1. Email Template editor (top half) — for the email body itself
  2. Workflow Step editor (bottom half) — for wiring a template to a trigger
A sidebar (typically left) lists existing templates and existing workflow steps. Click a row to load it into the relevant editor.

Email Template editor

The top editor builds the email itself. Every field your customer sees in their inbox starts here.

Template fields

FieldRequiredNotes
Template NameInternal label (e.g. “Booking Confirmation”)
Suggested TriggerDrop-down — used for grouping only. Actual timing is set in the Workflow Step editor.
Subject LineSupports $Variable tokens (e.g. “Your inspection at $InspectionAddress is confirmed”)
Email BodyRich text editor with formatting toolbar

Variable tokens

Tokens are placeholders replaced with real inspection data at send time. The same tokens work in subject lines, body text, and contracts: Client tokens: $ClientFirstName $ClientLastName $ClientNames $Client2FirstName Property & inspection: $InspectionAddress $InspectionDate $InspectionTime Inspector & company: $InspectorName $InspectorLicense $CompanyName $CompanyLogo Fees: $InspectionFee $BaseFee $ServiceFee $InspectionFeeTable Links: $ContractLink — client signing portal $ReportLink — client report download $AgentReportLink — agent-only report view $PortalLink — realtor portal magic link Payment handles: $VenmoHandle $ZelleContact $CashAppHandle See Communications → Template Variables for the complete list and edge cases. The body editor has an Insert Hyperlink toolbar action that opens a small modal:
FieldNotes
Link text (optional)If you already selected text, leave blank — the selection becomes the link
URL or $VariableEither a regular https:// URL or a token like $ReportLink
The hint explains: “You can use a VariabletokenastheURL(e.g.Variable token as the URL (e.g. ReportLink).” This is the recommended way to add report-link buttons — the link resolves per-recipient at send time, so the client sees their full report link and the agent sees the agent-only view. The dialog has Cancel (no change) and Apply (commits the link) buttons.

Workflow Step editor

The bottom editor wires a template to a trigger event. Each row in the workflow steps list is one step; the engine fires every enabled step that matches a trigger.

Step fields

Trigger

FieldRequiredNotes
TriggerDrop-down of the 17 supported triggers — see Communications → Trigger Events
Custom triggerYou can also type a custom trigger like warranty.6mo or survey.post_inspection for events you fire yourself via the API
Tip from the UI: “Add two steps for this trigger — one for Primary Client using $ReportLink, and one for agents using $AgentReportLink. Each recipient gets the correct scoped link.” This is the canonical pattern for report delivery.

Timing

FieldRequiredNotes
Send OffsetAny value supported: 0, +12h, +48h, +7d, +6mo, -24h. Negative for “before” the anchor; positive for “after”.
Offset AnchorFrom trigger time (default) — counts from when the trigger fired. From inspection date — counts from the scheduled inspection date. Use for reminders (e.g. -48h from inspection_date).

Recipients

FieldRequiredNotes
Email TemplateDrop-down of templates defined in the upper editor
RecipientsMulti-select: Primary Client · Co-client · Buyer’s Agent · Assigned Inspector · custom field
Also Send To (fixed addresses)Free-form list — type emails, press Enter or comma. Example: team@company.com. Useful for internal CC.

Scoping

FieldRequiredNotes
Applies to Service TypesMulti-select of service types. Pick “All Services” for orders regardless of service. Otherwise, restrict (e.g. “New Construction” for a warranty reminder).
ActionWhat this step does — see Actions below
ConditionalOptional condition (e.g. contractSignedAt == null) — the step only fires if the condition is true

Conditional examples

The conditional field accepts simple expressions:
  • contractSignedAt == null — only if the contract is unsigned
  • paymentStatus == 'paid' — only after payment received
  • assignedInspectorName != null — only if an inspector is assigned

Actions — what the step does

ActionWhat happens
Send emailComposes the linked template, resolves variables, sends to the listed recipients
Advance inspection statusChanges the inspection’s status (drop-down: Scheduled / Assigned / In Progress / Completed / Cancelled). Useful for auto-completing or auto-cancelling on certain triggers.
Suppress (skip for these service types)Cancels any other workflow step that would have fired for the listed service types and this trigger
Retime (use this offset instead)Overrides the offset for the listed service types — useful for “my Commercial inspections need a 7-day reminder, not the standard 48h”

Order of operations

When a trigger fires for an order:
  1. The engine looks up every enabled step matching the trigger AND the order’s service types
  2. Steps are sorted by their offset (most-negative first, then chronologically)
  3. For each step:
    • The conditional is evaluated against the order
    • If the conditional passes (or is empty), the step is scheduled
  4. Send actions are enqueued; status-advance and retime actions execute synchronously
You can preview the calculated firing schedule by selecting an order and using Preview Workflow Steps (a debug action available to owners).

Templates list

Each template appears as a row showing its Template Name and a count of which workflow steps reference it (e.g. “Booking Confirmation · 2 steps”). Actions on each row:
  • Click to load into editor
  • 📋 Duplicate
  • 🗑 Delete (only if no workflow step references it)

Workflow Steps list

Each workflow step row shows:
  • Trigger name
  • Offset (e.g. +2h)
  • Template name
  • Recipient count
  • An on/off toggle (disable a step without deleting it)
Disabled steps remain in Firestore but the engine skips them.

A typical day-1 setup

Build templates first, then wire steps. Recommended starting set:
TemplateTriggerOffsetRecipients
Booking Confirmationbooking.confirmed0Client (+ Co-client)
Contract & Agreementbooking.confirmed0Client
Contract Remindercontract.sent+24h if contractSignedAt == nullClient
Signing Confirmationcontract.signed0Client + Inspector
Payment Requestcontract.signed0Client
48-Hour Reminderinspection.reminder (anchor: inspection_date)-48hClient
Day-Of Reminderinspection.reminder (anchor: inspection_date)-2hClient
Report Delivery (Client)report.published0Client — uses $ReportLink
Report Delivery (Agent)report.published0Agent — uses $AgentReportLink
Follow-Upinspection.completed+24hClient
For New Construction, add a single step:
  • 11-Month Warranty | inspection.completed | +11mo | Client | Service: New Construction Final
This inherits every other step from the base workflow.

Errors and recovery

AlertCauseFix
Save failedNetwork or auth errorRetry; if persistent, the template is preserved in your draft state — refresh and re-save
Template not deleted — referenced by N step(s)Trying to delete a template still wired to workflow stepsDelete or rewire those steps first
Invalid offset formatOffset string doesn’t match the patternUse formats like 0, +12h, +2d, -48h, +6mo
Variable not recognizedUsed a token not in the variable listCheck spelling; custom variables aren’t supported (yet)

What this page does NOT do

  • It does not send test emails. Use the per-order Communications tab on Inspection Details for one-off sends and previews.
  • It does not show delivery analytics. Open-rate / click-rate / bounce data lives in your email-service-provider’s dashboard (or in future enhancements to the Reports module).
  • It does not manage contracts. Contracts are separate — see Contracts Cockpit.
  • It does not send SMS or push. Email only.