Back to Admin

Process Estimates

Complete guide to viewing, managing, and configuring estimates — categories, products, flow steps, rules, and QuickBooks sync.

Overview

Estimates in RFS Hub are generated through the Estimate Chatbot. When a customer completes the guided flow, the system automatically creates an estimate with line items, pricing, and totals. From the admin area, you can view all estimates, manage the product catalog, configure the chat flow, set up pricing rules, and sync estimates to QuickBooks Online.

Each estimate has a unique number in the format EST-YYYYMMDD-XXXX (e.g. EST-20260312-0001 for the first estimate on that date). Estimates are stored with the customer's contact information, all line items, and totals including HST at 13%. The system supports four categories: Alarm System, CCTV/Cameras, Access Control, and Intercom; each has its own products, flow steps, and rules.

Estimates List

Navigate to Estimates in the sidebar to see all generated estimates. Each row shows the estimate number, customer name, email, category, status, QBO sync status, and creation date.

Filtering & Searching

FilterTypeOptions
SearchText inputSearch by customer name, email, or estimate number.
CategoryDropdownAll (default), Alarm, CCTV, Access Control, Intercom, or any custom categories.
StatusDropdownAll (default), Draft, Sent.
QBO StatusDropdownAll (default), Pending (not yet synced), Synced, Error.

Estimate Details

Click the expand arrow on any estimate row to see its details — all line items with quantities, unit prices, installation costs, monthly fees, and totals. You can also see the QBO sync status and any error messages.

QuickBooks Online Sync

When QuickBooks Online (QBO) is connected, you can push estimates to QBO to create corresponding estimate records in your accounting system. The QBO connection is set up in Settings → Estimate → Integrations.

Pushing Estimates to QBO

There are three ways to push estimates:

  • Single push — Click the "Push to QBO" button on an individual estimate row.
  • Selected push — Check the boxes next to multiple estimates, then click "Push Selected."
  • Sync All Pending — Click "Sync All Pending" to push all estimates with status "pending" or "error" to QBO at once.

If an estimate has already been synced, the button shows "Re-sync" instead.

Bulk Sync

Use the "Select All" checkbox to select all pushable estimates (those not yet synced), then click "Push Selected" to sync them in batch. A confirmation dialog appears before the bulk sync begins.

Estimate View Page

Each estimate has a public view page at /estimate/view/[id]. This is the page customers see when they receive an estimate link. It shows:

  • Company header with name, phone, and email.
  • Estimate number and date.
  • Customer name, email, and phone.
  • Line items table with product name, quantity, unit price, equipment total, and installation total.
  • Subtotals for equipment and installation.
  • Monthly monitoring fees (if applicable).
  • HST calculation and grand total.
  • Notes section with any applicable notes.

Printing & PDF

The estimate view page includes a Print button that opens the browser print dialog. You can print to paper or save as PDF. The page is styled for clean printing with proper page breaks.

Estimate Configuration

All estimate configuration is managed in Settings → Estimate. This is where you define what the chatbot asks, what products are available, how pricing works, and how estimates are generated.

Categories

Categories define the types of security systems you offer estimates for. Each category has its own set of flow steps, products, and rules. Manage categories in Settings → Estimate → Categories.

Category Fields

FieldRequiredDescription
SlugYesA unique URL-friendly identifier. Must start with a lowercase letter and contain only lowercase letters, numbers, and underscores. Cannot be changed after creation. Example: cctv, access_control
Display NameYesThe name shown to customers in the chatbot. Example: "CCTV / Camera System"
Display OrderNoNumeric sort order. Lower numbers appear first. Default: 0. Use the up/down arrows to reorder.
IconNoA Lucide icon to display next to the category. Options: shield-alert, camera, door-open, phone.
ActiveNoToggle to enable/disable the category. Inactive categories won't appear in the chatbot. Default: Active.

Products

The product catalog contains all items that can appear on an estimate. Each product belongs to a category and has pricing information. Manage products in Settings → Estimate → Products.

Product Fields

FieldRequiredDescription
CategoryYesWhich category this product belongs to. Select from your defined categories.
Product CodeYesA unique identifier using uppercase letters, numbers, and underscores. Cannot be changed after creation. Example: DOME_CAM_4MP
Product NameYesThe display name on the estimate. Example: "4MP Dome Camera with IR"
Item TypeNoProduct (physical item, default) or Service (labor, installation, recurring service).
Unit PriceNoThe price per unit in dollars. Example: 299.99. Default: 0.
Installation CostNoThe installation cost per unit. This is shown separately from the product price. Example: 75.00. Default: 0.
Monthly FeeNoRecurring monthly monitoring fee. Shown in a separate section on the estimate. Example: 24.99. Default: 0.
Contract TermNoThe contract length for monthly services. Example: "36 months"
Item NoteNoA note that appears on the estimate line item. Example: "Includes mounting bracket"
QBO SKUNoThe QuickBooks Online SKU for this product. Used when syncing estimates to QBO.
Sort OrderNoControls the display order within the category. Lower numbers appear first. Default: 0.
ActiveNoToggle to enable/disable the product. Inactive products won't be included in estimates. Default: Active.

You can also import products from QuickBooks when QBO is connected. Click the "Import from QBO" button to pull products from your QuickBooks account.

Selectors

Selectors define which products appear in the quantity selector UI during the estimate chat. When a flow step uses the qty_selector input type, the selector items for that category are displayed as product cards with +/- quantity buttons.

Each selector item links a product to a display name, minimum/maximum quantities, and a field name. Configure selectors in Settings → Estimate → Selectors.

Chat Flow (Steps)

Flow steps define the questions the estimate chatbot asks. Each step captures a specific piece of information needed to generate the estimate. Manage steps in Settings → Estimate → Chat Flow.

Step Fields

FieldRequiredDescription
Step KeyYesA unique identifier for this step. Use lowercase letters, numbers, dots, and underscores. Example: camera.count, installation_type
CategoryNoWhich category this step belongs to. Select "Shared" for steps used across all categories (like contact info). Otherwise select a specific category.
Field NameYesThe answer field name where the customer's response is stored. This name is used in transition conditions and product rules. Example: camera_count, installation
QuestionYesThe question text shown to the customer. Example: "How many cameras do you need?"
AI HintNoExtra context for the AI to help present the question naturally. Example: "Suggest 4-8 cameras for a typical home. More for larger properties."
Input TypeYesHow the customer provides their answer:
  • choice — Multiple choice with defined options (e.g., Yes/No, New/Upgrade).
  • number — A numeric value (e.g., number of cameras).
  • text — Free-form text response.
  • qty_selector — Product quantity selector with cards and +/- buttons.
  • contact — Collects name, email, and phone.
  • confirm — Yes/No confirmation step.
OptionsFor choice typeThe available choices. Add options one by one. Each option is displayed as a clickable chip. Example: ["New Installation", "Upgrade Existing", "Add More Cameras"]
PhaseNoWhich phase of the flow this step belongs to: system_selection, requirements (default), contact, or confirmation.
Sort OrderNoDisplay order within the flow. Default: 0.
TerminalNoIf enabled, this step ends the flow (no more questions after it). Default: Off.
ActiveNoToggle to enable/disable the step. Default: Active.

Transitions

Transitions define which step comes next based on the customer's answers. Each transition has a from step, a to step, a condition expression, and a priority.

Conditions use a simple expression language. Examples:

  • always — Always take this transition (used as a fallback).
  • installation=new — Take this transition when the "installation" answer is "new."
  • camera_count>4 — Take this transition when camera_count is greater than 4.
  • installation=new AND camera_count>4 — Compound conditions.

When multiple transitions match, the one with the lowest priority number wins (priority 1 is evaluated before priority 10).

Product Rules

Product rules determine which products get added to the estimate and in what quantities, based on the customer's answers. Manage rules in Settings → Estimate → Rules.

Rule Fields

FieldRequiredDescription
Rule NameYesA descriptive name for this rule. Example: "Add NVR for new CCTV installations"
CategoryYesWhich estimate category this rule applies to.
ConditionYesWhen this rule should activate. Uses the same expression language as transitions. Use always to always apply. Example: installation=new AND camera_count>0
ProductYesWhich product to add to the estimate when the condition matches. Select from products in the same category.
QuantityYesHow many of the product to add. Can be:
  • Fixed number — e.g., 1 (always add exactly one).
  • Answer field — e.g., camera_count (use the customer's answer).
  • Formula — e.g., CEILING(camera_count/2) or door_count+motion_count.
PriorityNoRule evaluation order. Lower numbers are evaluated first. Default: 10.
ActiveNoToggle to enable/disable the rule. Default: Active.

Notes

Notes are conditional text blocks that appear on the estimate document. They can be used for disclaimers, terms, warranty information, or any other text that should appear based on the estimate category or customer's answers. Manage notes in Settings → Estimate → Notes.

Estimate Knowledge Base

The estimate KB contains articles specific to the estimate flow. These help the AI answer questions during the estimate conversation — for example, explaining the difference between camera types or what monitoring includes. Manage the estimate KB in Settings → Estimate → Knowledge.

Flow & Rules Simulators

The estimate settings include two built-in simulators for testing your configuration without going through the actual chatbot:

  • Flow Simulator (in Chat Flow) — Simulates the flow step transitions. Enter test answers and see which path the flow takes. Useful for verifying your transition conditions work correctly.
  • Rules Simulator (in Rules) — Simulates the product rules. Enter test answers and see which products would be added to the estimate and in what quantities. Useful for verifying your pricing rules.

There is also an Estimate API Test page at /admin/estimate-api-testwhere you can test condition expressions and quantity formulas directly by entering expressions and seeing the evaluation results.