Browse the docs

Agent setup guide

Service Request Intake

Classifies each web or ad lead by job type and urgency, sends it to ServiceTitan's booking queue and alerts Slack on emergencies.

Available About 20 min to set up

What it does

Classifies each web or ad lead by job type and urgency, sends it to ServiceTitan's booking queue and alerts Slack on emergencies.

  • Receives each new service request from your website, landing page or ad lead forms through a webhook.
  • AI picks the job type from your services, rates urgency (emergency / urgent / routine), checks your service area, drops spam and writes a two-line summary with a call-back tip.
  • Sends every real request to ServiceTitan's booking queue with the job type, urgency and summary, for your CSRs to confirm and schedule.
  • Emergencies (gas smell, flooding, no heat in freezing weather and anything you list) are also posted to your dispatch channel in Slack for an immediate call-back.
  • Every request and classification is kept in the run history.

What it needs

  • A paid plan (agents run live on paid plans).
  • An AI provider key (Settings → AI Providers).
  • ServiceTitan (with the app connected and a booking provider set up by your admin) and Slack.
  • Forms that can send new requests to a webhook URL.

What it doesn't do

  • It doesn't create jobs or pick a technician or time slot: CSRs confirm each request in ServiceTitan's booking queue.
  • It doesn't call or text the customer back.
  • ServiceTitan only for now: Jobber and Housecall Pro versions aren't available yet.
  • Coming soon until ServiceTitan is approved.

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: ServiceTitan and Slack.
  • A form, app or system that can send each new item to a webhook URL (the agent starts from a webhook).
  • About 20 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 ServiceTitan

Connect ServiceTitan with the tenant ID, client ID/secret and app key from Settings → Integrations → API Application Access in ServiceTitan.

3. Connect Slack

Connect the Slack workspace your dispatchers and CSRs use.

4. List your services and emergencies

Open “Classify the request” and replace the placeholder with your services, service area and emergencies.

SettingWhat to enterIn step
Your services and emergenciesReplace the placeholder with your trades and services, the ZIP codes or cities you serve, and what you treat as an emergency. It starts as “[LIST YOUR TRADES, SERVICES, SERVICE AREA AND WHAT COUNTS AS AN EMERGENCY]” until you replace it.“Classify the request”

5. Pick the emergency channel

Open “Alert the team in Slack” and pick your account and channel. Invite the app to private channels first (/invite @Fluxo Flow).

SettingWhat to enterIn step
Slack accountThe Slack workspace emergencies are posted to. Pick your connected Slack account.“Alert the team in Slack”
Channel for emergenciesYour dispatch or CSR channel, e.g. #dispatch.“Alert the team in Slack”

6. Set the ServiceTitan booking queue

Open both “Add it to the ServiceTitan booking queue” steps, pick your ServiceTitan connection and enter your booking provider ID.

SettingWhat to enterIn step
ServiceTitan connection (emergencies)Your ServiceTitan connection. Pick your connected ServiceTitan account.“Add it to the ServiceTitan booking queue”
Booking provider ID (emergencies)The booking provider tag ID your ServiceTitan admin chose when connecting the app.“Add it to the ServiceTitan booking queue”
ServiceTitan connectionYour ServiceTitan connection (the same one). Pick your connected ServiceTitan account.“Add it to the ServiceTitan booking queue”
Booking provider IDThe same booking provider tag ID.“Add it to the ServiceTitan booking queue”

7. Test it with Dry Run

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

8. Switch the trigger on

Open the trigger, switch the webhook on and copy its URL into your website and ad lead forms.

How it works

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

  • New service request — Starts when your form or app sends data to the agent's webhook URL. Your website form, landing page or ad lead form posts each new service request to the workflow's webhook URL.
  • Classify the request — AI step (runs on your AI provider key). AI reads the request, picks the job type from your services, rates the urgency, checks the service area, spots spam and writes a summary for your CSRs.
  • Spam, emergency or normal? — Decision: picks the branch to follow. Spam is dropped; emergencies are posted to Slack for an immediate call-back and still go to the booking queue; everything else goes straight to the booking queue.
  • Spam dropped — Kept in the run history. Branch: Spam. Spam stays in the run history only; nothing is sent to ServiceTitan.
  • Alert the team in Slack — Slack: Post a message. Branch: Emergency. Posts the emergency, the customer's phone and address and the CSR tip to your dispatch channel so someone calls back now.
  • Add it to the ServiceTitan booking queue — ServiceTitan: Create a booking (lead). Sends the emergency to ServiceTitan's booking queue, marked EMERGENCY, for your CSRs to book.
  • Emergency queued — Kept in the run history. The run history keeps the request, the classification and the ServiceTitan booking ID.
  • Add it to the ServiceTitan booking queue — ServiceTitan: Create a booking (lead). Branch: Normal. Sends the request to ServiceTitan's booking queue with the job type, urgency and summary, for your CSRs to confirm and schedule.
  • Queued — Kept in the run history. The run history keeps the request, the classification and the ServiceTitan booking ID.

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

name, phone, email, address, service, message, source, submitted_at.

  • Nothing is sent or written: app actions, emails and Slack posts are simulated, and AI steps don't call your AI provider.

Go live

  • Open the trigger, switch the webhook on and copy its URL into your website and ad lead forms.
  • 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

Does it book the job?

No. It puts the request in ServiceTitan's booking queue; your CSRs confirm it and pick the technician and time slot.

Do you have a Jobber or Housecall Pro version?

Not yet. This version sends to ServiceTitan.

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.
  • Slack says the app isn't in the channel: in Slack, type /invite @Fluxo Flow in that channel (always needed for private channels).
  • 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 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 .