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
| Filter | Type | Options |
|---|---|---|
| Search | Text input | Search by customer name, email, or estimate number. |
| Category | Dropdown | All (default), Alarm, CCTV, Access Control, Intercom, or any custom categories. |
| Status | Dropdown | All (default), Draft, Sent. |
| QBO Status | Dropdown | All (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
| Field | Required | Description |
|---|---|---|
| Slug | Yes | A 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 Name | Yes | The name shown to customers in the chatbot. Example: "CCTV / Camera System" |
| Display Order | No | Numeric sort order. Lower numbers appear first. Default: 0. Use the up/down arrows to reorder. |
| Icon | No | A Lucide icon to display next to the category. Options: shield-alert, camera, door-open, phone. |
| Active | No | Toggle 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
| Field | Required | Description |
|---|---|---|
| Category | Yes | Which category this product belongs to. Select from your defined categories. |
| Product Code | Yes | A unique identifier using uppercase letters, numbers, and underscores. Cannot be changed after creation. Example: DOME_CAM_4MP |
| Product Name | Yes | The display name on the estimate. Example: "4MP Dome Camera with IR" |
| Item Type | No | Product (physical item, default) or Service (labor, installation, recurring service). |
| Unit Price | No | The price per unit in dollars. Example: 299.99. Default: 0. |
| Installation Cost | No | The installation cost per unit. This is shown separately from the product price. Example: 75.00. Default: 0. |
| Monthly Fee | No | Recurring monthly monitoring fee. Shown in a separate section on the estimate. Example: 24.99. Default: 0. |
| Contract Term | No | The contract length for monthly services. Example: "36 months" |
| Item Note | No | A note that appears on the estimate line item. Example: "Includes mounting bracket" |
| QBO SKU | No | The QuickBooks Online SKU for this product. Used when syncing estimates to QBO. |
| Sort Order | No | Controls the display order within the category. Lower numbers appear first. Default: 0. |
| Active | No | Toggle 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
| Field | Required | Description |
|---|---|---|
| Step Key | Yes | A unique identifier for this step. Use lowercase letters, numbers, dots, and underscores. Example: camera.count, installation_type |
| Category | No | Which category this step belongs to. Select "Shared" for steps used across all categories (like contact info). Otherwise select a specific category. |
| Field Name | Yes | The answer field name where the customer's response is stored. This name is used in transition conditions and product rules. Example: camera_count, installation |
| Question | Yes | The question text shown to the customer. Example: "How many cameras do you need?" |
| AI Hint | No | Extra context for the AI to help present the question naturally. Example: "Suggest 4-8 cameras for a typical home. More for larger properties." |
| Input Type | Yes | How the customer provides their answer:
|
| Options | For choice type | The available choices. Add options one by one. Each option is displayed as a clickable chip. Example: ["New Installation", "Upgrade Existing", "Add More Cameras"] |
| Phase | No | Which phase of the flow this step belongs to: system_selection, requirements (default), contact, or confirmation. |
| Sort Order | No | Display order within the flow. Default: 0. |
| Terminal | No | If enabled, this step ends the flow (no more questions after it). Default: Off. |
| Active | No | Toggle 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
| Field | Required | Description |
|---|---|---|
| Rule Name | Yes | A descriptive name for this rule. Example: "Add NVR for new CCTV installations" |
| Category | Yes | Which estimate category this rule applies to. |
| Condition | Yes | When this rule should activate. Uses the same expression language as transitions. Use always to always apply. Example: installation=new AND camera_count>0 |
| Product | Yes | Which product to add to the estimate when the condition matches. Select from products in the same category. |
| Quantity | Yes | How many of the product to add. Can be:
|
| Priority | No | Rule evaluation order. Lower numbers are evaluated first. Default: 10. |
| Active | No | Toggle 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.