Browse the docs

Agent setup guide

Repair Estimate Explainer

Turns the tech's notes into a plain-words estimate grouped Safety now / Soon / Can wait — approved by your advisor, prices untouched.

Available About 15 min to set up

What it does

Turns the tech's notes into a plain-words estimate grouped Safety now / Soon / Can wait — approved by your advisor, prices untouched.

  • Starts when your advisor's estimate form posts a repair order to its webhook: customer, vehicle, line items with the tech's notes, prices and your urgency codes.
  • AI rewrites each line in plain language — what it is, why it matters, what happens if it waits — using only the technician's notes.
  • Groups the lines into Safety: now, Soon and Can wait by your own urgency codes, copying every price exactly; the total comes straight from your form.
  • Your advisor approves (and can edit) every estimate email in Reviews before it is sent.
  • Emails the customer, who replies to approve work; replies go to your service desk inbox.
  • Creates or updates the customer's HubSpot contact and logs the estimate as a note.

What it needs

  • A paid plan (agents run live on paid plans).
  • An AI provider key (Settings → AI Providers).
  • HubSpot, connected in Settings → Integrations.
  • An estimate form or script that can post JSON to a webhook (shop systems like Tekmetric, Shopmonkey or Mitchell aren't connectors).
  • Your written urgency codes, approval process and sign-off.

What it doesn't do

  • It doesn't diagnose and never changes, rounds or totals prices — it only rewords what the technician wrote.
  • The customer's approval comes back as an email reply and isn't recorded automatically in your shop system or HubSpot.
  • Nothing is emailed without the advisor's approval.
  • It doesn't read photos or inspection videos, and doesn't connect to shop management systems directly.

Availability and plans

Available

Its workflow is built and tested, and every app it needs is live. You can get it and set it up now.

Included free on the Enterprise plan; on other paid plans it's a one-time purchase per workspace (the price is on the Agents page). The Agents page in the app always shows its current status.

Before you start

  • A paid plan: agents run live, and the Free plan only runs Dry Runs.
  • An AI provider key (OpenAI, Anthropic, Google and more) in Settings → AI Providers. AI usage is billed by your provider.
  • These apps, connected in Settings → Integrations: HubSpot.
  • A form, app or system that can send each new item to a webhook URL (the agent starts from a webhook).
  • About 15 minutes.

Set it up step by step

Get the agent first (buy it, or it's already yours when your plan includes it), then in Agents → My agents press “Set up this agent”. That creates the agent's workflow in your workspace (it counts towards your plan's workflow limit) and opens the canvas with a setup checklist above it. Each item links to the exact place to go and ticks itself off when it's done.

1. Connect your AI provider

The AI steps run on your own key (OpenAI, Anthropic, Google and more). Add one in Settings → AI Providers.

2. Connect HubSpot

Connect the HubSpot account your customers are kept in (Settings → Integrations → HubSpot).

3. Paste your urgency codes and rules

Open “Explain the estimate in plain words” and replace the placeholder with your codes, approval process, validity, warranty and sign-off.

SettingWhat to enterIn step
Your urgency codes and estimate rulesReplace the placeholder with your shop name, what each urgency code means (Safety now / Soon / Can wait), how customers approve work, how long estimates are valid, your warranty line and sign-off. It starts as “[PASTE YOUR SHOP NAME, WHAT EACH OF YOUR URGENCY CODES MEANS (E.G. A = SAFETY NOW, B = SOON, C = CAN WAIT), HOW CUSTOMERS APPROVE WORK, HOW LONG ESTIMATES ARE VALID, YOUR WARRANTY LINE AND SIGN-OFF HERE]” until you replace it.“Explain the estimate in plain words”

4. Add your service desk inbox

Open “Email the customer” and enter the address customers' replies should go to.

SettingWhat to enterIn step
Your service desk inbox (Reply-to)Customers' replies (their approval) come back to this address.“Email the customer”

5. Pick your HubSpot account

Pick the same HubSpot account in “Create or update the HubSpot contact” and “Note the estimate on the contact”.

SettingWhat to enterIn step
HubSpot account (contacts)The HubSpot account your customers are kept in. Pick your connected HubSpot account.“Create or update the HubSpot contact”
HubSpot account (estimate notes)The same HubSpot account, used to log the estimate. Pick your connected HubSpot account.“Note the estimate on the contact”

6. Test it with Dry Run

Press Dry Run: the agent runs on sample data with no messages sent and nothing written to your apps.

7. Switch the trigger on

Open the trigger, switch the webhook on and copy its URL and secret into your advisor's estimate form.

How it works

The agent is a normal workflow with 8 steps (1 AI step, with a person approving in Reviews). You can open, edit and monitor it like any other workflow.

  • Estimate from your advisor's form — Starts when your form or app sends data to the agent's webhook URL. Starts when your service advisor's estimate form posts to this webhook: customer, vehicle, each line item with the tech's notes, price and your urgency code, and the estimate total.
  • Explain the estimate in plain words — AI step (runs on your AI provider key). AI rewrites each line in plain language (what it is, why it matters, what happens if it waits) and groups them into Safety: now / Soon / Can wait by your urgency codes — using only the tech's notes and never changing a price.
  • Advisor approves the estimate email — A person approves or rejects it in Reviews (the run waits). The advisor checks every line, price and group in Reviews, edits the wording if needed and approves; nothing is sent before that.
  • Not sent — Kept in the run history. Branch: Rejected. The advisor rejected the draft; nothing was emailed or logged.
  • Email the customer — Sends an email from your workspace's sender. Branch: Approved. Emails the approved explanation with the total exactly as your form sent it. Replies (the customer's approval) come back to your service desk.
  • Create or update the HubSpot contact — HubSpot: Create or update a contact. Creates the customer as a HubSpot contact, or updates the one with the same email.
  • Note the estimate on the contact — HubSpot: Add a note. Logs the RO number, vehicle, each line with its price and group, and “estimate emailed for approval” on the contact's timeline.
  • Emailed and logged — Kept in the run history. The run history keeps the estimate, the email and the HubSpot note.

Test it with Dry Run

Press Dry Run in the canvas. The agent runs on the sample data stored on its trigger (the “Sample data for Dry Run” box), so you can check every step's output before anything is live. Edit the sample to match the fields your own form or app sends.

Sample data fields

advisor_name, ro_number, customer_name, customer_email, customer_phone, vehicle, mileage, line_items (a list), estimate_total, shop_notes.

  • Nothing is sent or written: app actions, emails and Slack posts are simulated, and AI steps don't call your AI provider.
  • Approval steps use the Dry Run decision you pick in the step's settings (approved, rejected or timeout), so you can try each branch.

Go live

  • Open the trigger, switch the webhook on and copy its URL and secret into your advisor's estimate form.
  • The webhook is protected by a secret: send it in the header shown in the Activation panel (requests without it are refused with 403). Each request starts one run.
  • The setup checklist adds a “paid plan” item before activation: live runs need a paid plan (the Free plan only runs Dry Runs).
  • When every checklist item is done and the trigger is on, the checklist says “Live — this agent is running”. Follow its runs in the workflow's History tab and in Analytics → Agents.

Questions

What should the form send?

A JSON POST with advisor_name, ro_number, customer_name, customer_email, customer_phone, vehicle, mileage, estimate_total and line_items (each with description, tech_notes, price and urgency_code). Your form posts it with the webhook's signature header.

Does it work with Tekmetric, Shopmonkey or Mitchell?

Not directly: those shop systems aren't connectors. Your advisor's form (or a small export script) posts the estimate to the webhook.

How does the customer approve?

By replying to the email (e.g. “please do the brakes”). The reply lands in your service desk inbox; it isn't recorded automatically.

Troubleshooting

  • “No AI provider connected” or a rejected key: connect or fix the key in Settings → AI Providers, then press Test there.
  • A checklist item stays unticked: the setting is still empty or still contains its placeholder text. Open the step from the checklist and fill it in.
  • An app step fails with “Needs reconnect”: the account's access was revoked or expired. Reconnect it in Settings → Integrations.
  • Nothing happens when your form sends data: check the webhook is switched on and the request carries the secret header (403 means it's missing or wrong).
  • A run shows as paused: it's waiting for someone in Reviews to approve or reject it.
  • A step failed: open the run in History and check that step in the Trace tab for the error and what it received.

Generated from the agent's own workflow, so it always matches what the agent does. Last updated .