OpenAI improves accuracy when connected; a keyword rules fallback still runs when OpenAI is off or unavailable. ServiceFlow suggests form fields and line items from a job description when you create estimates, jobs, or invoices. Suggestions come from your price book, not live supplier sites.
Settings to Integrations to OpenAI, enable integration (see OpenAI Setup Guide). Open the create flow above and describe the work in the @mention-enabled description field. Review the AI Assistant panel, suggestions auto-apply when target fields or line tables are empty. Note: Edit an existing estimate at /estimates/:id/edit in the same builder (line items, options, tax, deposits). The AI Assistant panel is shown on new estimates only. @mentions in the description: - @customer, link a customer record - @technician, assign or reference a technician (estimates & jobs) - @pricebook. Manual Generate from description when you want to refresh suggestions. AI Entity Insights on detail pages after save (job, invoice, customer). Form auto-fill: title, project type, duration, payment terms, deposit, valid-until. Line item suggestions with optional Good / Better / Best tiers. Auto-apply when line table empty; Apply suggestions merges when rows exist. Meaningful description, at least 12 characters before auto-generate runs.
Overview
ServiceFlow suggests form fields and line items from a job description when you create estimates, jobs, or invoices. Suggestions come from your price book—not live supplier sites. OpenAI improves accuracy when connected; a keyword rules fallback still runs when OpenAI is off or unavailable.
| Flow | Route | AI panel location |
|---|---|---|
| Estimate (new) | /estimates/new | Pricing & line items |
| Estimate (edit) | /estimates/:id/edit | Same builder; AI panel hidden |
| Job | /jobs/new (or New Job modal) | Job details column |
| Invoice | /invoices/new | Items & Services step |
How to access
- Settings → Integrations → OpenAI — enable integration (see OpenAI Setup Guide).
- Open the create flow above and describe the work in the @mention-enabled description field.
- Review the AI Assistant panel — suggestions auto-apply when target fields or line tables are empty.
Note: Edit an existing estimate at
/estimates/:id/edit in the same builder (line items, options, tax, deposits). The AI Assistant panel is shown on new estimates only.How do you @mentions in the description:?
@mentions in the description:.
All create flows
- @mentions in the description:
@customer— link a customer record@technician— assign or reference a technician (estimates & jobs)@pricebook— search price book items; on estimates/invoices, selecting one adds a line row immediately
- Rules fallback without OpenAI — keyword matching; panel shows a badge when using local rules.
- Manual Generate from description when you want to refresh suggestions.
- AI Entity Insights on detail pages after save (job, invoice, customer).
Estimates (/estimates/new)
- Form auto-fill: title, project type, duration, payment terms, deposit, valid-until.
- Line item suggestions with optional Good / Better / Best tiers.
- Auto-apply when line table empty; Apply suggestions merges when rows exist.
Jobs (/jobs/new)
- Form auto-fill: service type, priority, duration, quoted price, payment terms, technician.
- Auto-apply when service type / duration / price fields are still empty.
- No line items on jobs — use Estimates → New for priced breakdowns.
Invoices (/invoices/new)
- Form auto-fill: title, payment terms, due date (never in the past), reference/PO when detected.
- Single-tier line item suggestions from price book.
- Auto-apply when line table empty; merge when rows exist.
Prerequisites
- Populated Price Book with clear names, categories, and prices.
- Meaningful description — at least 12 characters before auto-generate runs.
- OpenAI connected under Integrations (optional but recommended).
Example: one sentence on a new estimate, job, and invoice
Type at least 12 characters in the description or auto-generate does not run. "No cool" is too short. "Upstairs system not cooling, filter packed, customer wants a same-week repair" is enough for the rules engine to look at price book names and categories. Connect OpenAI when the crew uses trade slang the keyword list misses. The panel shows a rules badge when it is not using the model, so you know the suggestion is a match against your items, not a web search.
On a new estimate, empty option columns receive suggested lines, including Good / Better / Best when the assistant offers tiers. If you already added a labor line by hand, use Apply suggestions so the merge keeps that row.
@pricebook still inserts the item you picked, which is exact. The suggestion list is a guess. Deposit, valid-until, title, project type, duration, and payment terms can fill when those fields are empty. They do not overwrite a deposit percent you already chose. The panel is absent on edit. Change an old estimate in the builder without expecting the assistant to rewrite it.On a new job, the same description can suggest service type, priority, duration, a technician, and a quoted price. The price-book price hint marked "soon" on the job form is a different control and is not live. Use the assistant's number or type your own. On a new invoice, suggestions are a single tier, not three options. Due date suggestions are never in the past. A detected PO or reference can fill that field. Auto-apply runs when the item table is empty. Merge runs when rows exist.
Entity insights on a saved job, invoice, or customer are a separate card. They need OpenAI and they do not change line items. Dashboard chat is a third surface. None of these three order parts, send the customer an email, or approve an estimate. If the price book names are vague ("Service"), suggestions stay vague. Rename items before you blame the model.