Service Storm
Meet Otto

Otto, the AI Agent That Runs Your Service Business

Describe the job the way you'd describe it to a foreman. Otto prices it from your catalog, writes the quote, creates the customer, books the visit, and shows you the saved record — inside Service Storm, on your phone, or from Claude and ChatGPT.

OTTO open beside a roof replacement quote in Service Storm, showing the three priced options it just created and a saved-work link to the record

Otto is the AI agent built into Service Storm. Not a help chatbot, and not a text generator you copy from — an agent that calls the same APIs your buttons call, so the work it does ends up as real records you can open, edit, print, and send. It works from a panel beside whatever you're on, from the Service Storm mobile app, and — through our hosted MCP server — from Claude and ChatGPT.

The short version

Otto builds multi-option quotes from your real catalog, creates customers, properties, jobs and visits, edits and reprices documents, maintains your catalog and templates, and handles tasks and field notes. It runs under your login and your permissions, verifies every write, and cannot send customer messages, take payments, or accept documents.

What Otto does

Quoting

This is where Otto earns its keep. Describe the job — the site, the scope, the conditions — and Otto builds a quote priced from your actual catalog services, materials, labor rates, and price book. It structures it as multiple options so the customer has a real choice, adds the optional upgrades you genuinely sell, writes a customer-facing job summary that captures the scope and the assumptions, and sets the deposit. Then it hands it to you to edit.

It also handles the fiddly parts properly: creating a quote from one of your templates copies the option and line structure with fresh IDs while preserving parent-child line links and catalog metadata, so an included material stays attached to its parent service instead of drifting into a loose line item.

A finished Service Storm quote built by OTTO — company logo, quote number 1400, billing and property address, a job summary describing the good, better and best options, and the option selector showing Good at $22,120
The output is a customer-ready document, not a chat message — logo, scope, options, deposit and all.

Jobs, visits, and the schedule

Otto converts an accepted quote into a job through the same workflow the Convert button uses, carrying related invoices along with it. It schedules and reschedules visits, and links documents to jobs — validating company, customer, and property ownership, updating both membership arrays, and recalculating job totals as it goes.

It also knows the difference between two things that sound identical. "Have John do the work" changes the visit assignment. "Assign this job to John" might mean the business role your company calls Project Manager or Salesman — a completely different field. Otto asks rather than guessing, and it reads your company's own configured label for that role.

Invoicing and documents

Otto edits and reprices invoices, merging validated changes into a fresh read and preserving unrelated fields. Finalized documents are not quietly rewritten — those go through the established change-order and revision flow.

Catalog, pricing, and templates

Otto can search and maintain your services, materials, categories, price books, taxes, discounts and surcharges, and calculate proposed service prices from labor rates, durations, price matrices, overhead, material costs, and markup tiers. It builds reusable quote templates and packages that reference your real catalog IDs and current rates.

It can also build your email, SMS, and contract templates — using the real placeholder variables from your own system, validated before saving and previewed against a real quote, job, or customer so you can see what the customer will actually receive.

Tasks, field notes, and questions

Otto opens tasks linked to a job, visit, customer, quote, or invoice, assigns them through your normal notification workflow, and sets dated reminders in your company timezone. Field notes are handled through the separate Field Notes API and respect authorship, sharing, and pinning rules — a request for a field note never quietly becomes an ordinary job note. And it answers questions: what's on the schedule, what this customer's history looks like, what's outstanding.

The Service Storm quotes list with the OTTO launcher pill in the bottom-right corner
OTTO sits beside the work on every screen. It already knows the record, the option, and the line you have selected.

Otto in the field

The mobile version is deliberately different. A tech standing on a roof does not want a blank chat box; they want three buttons. Otto's mobile entry point offers exactly that — start a visit, record the materials used, check what's left to finish, show the active shift — plus the ability to pick up a conversation from earlier in the day.

The result is that materials actually get logged, because saying "two bundles of architectural shingles and a roll of ice and water" beats tapping through a materials picker in the sun. The office sees it the moment it saves.

OTTO in the Service Storm mobile app offering field actions: what's left to finish this visit, help me record materials used, and show my active shift
Otto on mobile: built for a thumb and a glove, not a keyboard.

The guardrails, in plain terms

An agent that can write to your business is only worth having if you can predict what it will and won't do. Here is the whole list.

GuardrailWhat it means for you
Runs as youEvery tool call uses your login. Mutations are filtered by the specific permission that action requires. A technician's Otto has a technician's reach.
Reads its writes backOtto re-reads the saved record and verifies the values and line identities before reporting success.
Version + fingerprint on editsQuote updates carry the backend version and a fingerprint of the full record, so a colleague's simultaneous edit isn't silently overwritten.
Safe to retryRequest IDs, action receipts, and backend idempotency keys mean a dropped connection can't produce two quotes.
Catalog changes need your clickOtto has no apply tool. It prepares a before-and-after proposal; the server re-checks permissions, revisions and uniqueness when you approve it.
Cannot send, charge, or acceptNo sending quotes or invoices to customers, no taking payments, no accepting documents on anyone's behalf.
Never replaces unsaved workIf you have a form open with unsaved changes, Otto's refresh will not overwrite it.
SuspendableA user's AI access can be switched off centrally, and the next tool call fails immediately.

What Otto is not

It is not autonomous. It does not run overnight, watch your inbox, or take actions you didn't ask for. It is a very fast pair of hands that works one task at a time, in a conversation you started, and stops to ask when a request is genuinely ambiguous.

Conversations that survive real life

Otto's tasks are stored in the database, not the browser. History, linked records, questions, creation receipts, action outcomes, and usage all persist. Close the tab, reload, come back after lunch, switch devices — the task is still there with everything it did. Start a new task and it gets a genuinely independent identity, so this morning's roof quote can't bleed into this afternoon's service call.

What it costs

Otto is billed by usage on prepaid credits, not as a per-seat add-on. A typical task runs about eight cents. Top-ups come in $10, $25, and $50, which work out to roughly 125, 312, and 625 tasks. Credits never expire. The usage panel shows spend this month, credits remaining, an estimate of tasks left, and recent purchases — and only users with company management permission can buy more.

~$0.08Typical task
$10 / $25 / $50Top-up sizes
NeverCredits expire

Buying credits

Credits are purchased on the web app, charged to the company's default card. The mobile app shows your balance and usage but does not sell credits, in line with the app stores' rules on in-app purchases.

Otto outside Service Storm

If you already work in Claude or ChatGPT, you don't have to come to us. Service Storm's hosted MCP server exposes the same tool layer Otto's specialists use, at the highest consent level, so your assistant can do the same work from wherever you already are.

Connect your own assistant

Our MCP server brings Service Storm into Claude and ChatGPT, under your permissions.

See the MCP server
A field service team using Service Storm

In the office and in the truck

Otto works from the quote screen at the desk and from one thumb on a job site. Same permissions, same records, same audit trail.

Frequently Asked Questions

Run jobs. Get paid.

Service Storm runs your whole field service business from one platform — lead to ledger.

Book a Demo