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 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.

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.

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.

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.
| Guardrail | What it means for you |
|---|---|
| Runs as you | Every 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 back | Otto re-reads the saved record and verifies the values and line identities before reporting success. |
| Version + fingerprint on edits | Quote updates carry the backend version and a fingerprint of the full record, so a colleague's simultaneous edit isn't silently overwritten. |
| Safe to retry | Request IDs, action receipts, and backend idempotency keys mean a dropped connection can't produce two quotes. |
| Catalog changes need your click | Otto 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 accept | No sending quotes or invoices to customers, no taking payments, no accepting documents on anyone's behalf. |
| Never replaces unsaved work | If you have a form open with unsaved changes, Otto's refresh will not overwrite it. |
| Suspendable | A 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.
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
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
