Dryer heats but will not spin
- New
- Assigned
- En route
- On site
- Completed
One queue for every request. One board for every job. An invoice signed at the door, and a live link where your customer watches the visit happen.
Dryer heats but will not spin
Furnace short cycling, no heat
Fridge leaking under the crisper
Software in this trade gets sold to the owner and endured by everyone else. A job here touches four people, so the product has to answer to all four.
Every request lands in one queue with a stopwatch on it, and your channel numbers go back seven years, so you know which source paid for itself before you renew it.
Watch a job move The dispatcherThe board warns you about a double booking before you save, ranks who should take the job, and gives junk calls a polite no without you.
See the board The technicianOne button per screen, gloves on. The invoice is signed at the door, so your day ends when the last job does.
See the field portal Your customerA link shows the visit moving: received, on the way, at the address. No app, no login, no calling to ask.
See their five pagesIn early 2025 Angi changed how it routes work and its network revenue fell 79 percent in a quarter. Shops that lived on that one faucet fell with it. The insurance is unglamorous: every source feeding one queue, with the receipts to show which ones earn their keep.
Each of these lands a request in the same inbox, stamped with where it came from.
Each of these needs a partner program or a scheduled build. None of them are sold as working until they are.
These platforms offer no lead API to anyone. The screenshot path still puts their requests in your queue today.
From the chat box on your site, from a marketplace screenshot, or typed in by whoever picked up. It joins one queue with its channel already on it, and the queue counts the seconds until an answer is ready.
Convert the request and the customer is matched against your book on the way in, so you do not end up with three copies of the same address on Maple Street. Your dispatcher picks from technicians ranked by skill and load, and a double booking gets flagged before it saves.
The technician taps En route with one thumb, gloves still on. The tracking link your customer got moves to the same stop the board is showing, and it never reveals the address list or the amount.
Parts and labor go on the invoice while the panel is still open. Your customer signs the screen at the door, and the signed PDF files itself against the job before the van moves.
Cash, check or transfer gets logged against the invoice, the amounts sync back to the job, and the month you are having shows up in the channel grid the same evening.
Dryer heats but will not spin
Built around how appliance and HVAC shops actually run: arrival windows, warranty channels, seasonal contracts, techs in vans.
Every job is a strip on a track. Move it lane by lane, filter by technician, city or channel, and let the live channel keep two dispatchers looking at the same thing.
Chat on your site, a marketplace request, a screenshot of a conversation, a call record, or something typed in by hand. It all lands in the same inbox, and it lands there tagged with where it came from.
A reply and the sequence behind it are drafted the moment a request arrives. When texting is connected they go out on their own, and a conversation with a person cancels the whole chain, so a robot never chases anyone after a human spoke.
The estimate is approved before the work starts, the invoice is signed when it ends, and both keep a hash, an address and a timestamp. The finalized PDF stops accepting edits.
Years of jobs arrive from a spreadsheet and leave again through the API, the webhooks or a CSV. Nothing about this product is designed to make leaving expensive.
Five ways in today: a call record, the chat widget, the voice widget, a screenshot from any marketplace app, and plain typing. One list, five stages, the channel stamped on arrival. Next January nobody digs through a spreadsheet asking where the work came from.
| Channel | What came in | Where | Stage | Reply ready in |
|---|---|---|---|---|
| Thumbtack | Dryer heats but will not spin | Nashville, 37206 | Needs reply | 12 s |
| Phone call | Furnace short cycling, no heat upstairs | Franklin, 37064 | Converted | 8 s |
| Home warranty | Refrigerator leaking under the crisper | Brentwood, 37027 | In review | 31 s |
| Google Local | Washer stops mid cycle, code F21 | Nashville, 37211 | New | 5 s |
| Yelp | Duct cleaning, whole house | Franklin, 37067 | Dismissed | 3 s |
Demo rows in the real table component. The channel, the stage and the clock are the columns your own inbox carries.
Two dispatchers, one truth. The board updates itself over a live channel, ranks who should take the job, and flags the double booking before you save it. The automation here takes the junk calls off your desk, not you off the board: you stay the person who decides.
Refrigerator not cooling, Franklin
The board works this list out on its own, every time you open it.
Day, week, month, and a timeline that reads across technicians. Book a walk-in straight from the grid.
Block a vacation or a van service on one technician or on the whole company, and the calendar respects it.
Technicians come back ranked by skill match against the appliance, window conflicts, and how loaded that day already is.
Pick somebody who is already busy and you hear about it before you save, while the fix is still one click.
Each technician gets a private iCal URL that Google, Apple and Outlook subscribe to.
Locations are first class. A job knows which branch it belongs to and the numbers can be split by it.
The field portal is built for a phone in sunlight, gloves on, one hand. One main action per screen, the invoice signed at the door, the paperwork already filed when the van door shuts. And the location question has a straight answer, written into code.
This half is for the owner. The argument about what was agreed happens two months later, on the phone, with nobody in the room who was there. Two signatures and a pair of hashes settle it in advance.
Everyone in this category hands you a gallery of their forms. Servayo takes the PDF your shop has printed for ten years, works out what was typed into it, and puts live fields where the old data used to be.
Keep the page exactly as it is, rasterized at 200 DPI, or break it apart into text, images and vector shapes you can move.
Accepted fields are redacted out of the source PDF and the background is redrawn. The previous customer's name is truly gone from the file instead of hiding under a white box.
Document, company, customer, job, money, signing. System blocks handle the line items and the totals.
The editor renders the actual PDF and shows you the page. Headless Chromium does the drawing, so nothing is approximated.
What does hiring your shop feel like from the other side of the door? Five pages answer that, and every one opens from a plain link: no app to install, no account to make, no password to forget.
The visit moves from Received to At your address while they watch, on the same stops your board shows.
Leaves out: prices, your other jobs, anyone else's address.
The signed invoice and one payment button, on the phone the link was opened with.
Leaves out: an account, a password, a card we keep on file.
Five stars, one tap each, offered right after the job closes, while the fixed dryer is still humming.
Leaves out: hoops. A rating takes seconds, which is why it happens.
The call that booked the job, playable from a link when sharing it settles a question.
Leaves out: the caller's number and personal details.
The link that brings a new hire onto the crew, and it expires when you say it does.
Leaves out: a shared password floating around the shop.
Convenience does the marketing here. The customer who never had to call and ask is the one who leaves five stars, five stars are what the map pack ranks, and ranking is what makes the next lead cheaper. Show your customer a visit that answers its own questions, and the review takes care of itself.
Short links are a product inside the product. Your own domain, a code studio, and analytics that know the difference between a sticker on a furnace and a tap in an email.
go.yourcompany.com/tune-up
Six dot styles, three corner styles, your logo in the middle, out as PNG or SVG at whatever size the printer wants.
| Last 14 days | Value |
|---|---|
| Opens, all sources | 1,284 |
| Unique visitors | 911 |
| Scanned from a printed code | 742 |
| Clicked from a screen | 542 |
| Top device | iPhone |
Demo numbers from one sample link, in the table the panel uses.
Shops stay on a spreadsheet because the history lives there. Move it once and those old years start answering questions the spreadsheet never could.
Each row is a year, oldest at the top. The grid shows the shape of a seven year book rather than anybody's real one: yours will have its own weather, and the report builder is where you go looking for why.
A public Google Sheets link or the CSV itself, up to five thousand rows. Columns are guessed for you, and you correct the guess before anything is written.
Matching runs on the normalized phone number, and every imported job keeps a reference back to the line it came from.
Count jobs with no amount, or leave them out. Count warranty work, or leave it out. The totals change and the page says which rule is on.
Build the report you actually argue about: by month, quarter or year, split by channel, city, technician, appliance or payment method.
Software this size usually gets sold with one screenshot of a chart. Here is the entire navigation instead, settings included, so you can judge the thing before you hand over a card.
Four of those screens are still waiting on something, and here is the list: AI Agent and Calls are built end to end but need a telephony provider, the Dispatch map draws demo pins until geocoding is wired in, and Marketing builds its segments without sending anything yet. You get to know that here instead of discovering it in week two.
Most tools keep tenants apart with a filter somebody remembered to write. Here the database refuses to hand over rows that are not yours, and the application will not start if that guarantee has been weakened.
Build your own roles on top of these. Revoking something critical asks you to confirm, because that click ends somebody's shift.
| Permission | Dispatcher | Operator | Technician |
|---|---|---|---|
| Handle incoming requests | Dispatcher cannot handle incoming requests | Operator can handle incoming requests | Technician cannot handle incoming requests |
| View jobs | Dispatcher can view jobs | Operator can view jobs | Technician can view jobs |
| Create and edit jobs | Dispatcher can create and edit jobs | Operator can create and edit jobs | Technician can create and edit jobs |
| Edit job amounts | Dispatcher can edit job amounts | Operator cannot edit job amounts | Technician cannot edit job amounts |
| Delete jobs | Dispatcher cannot delete jobs | Operator cannot delete jobs | Technician cannot delete jobs |
| Assign technicians | Dispatcher can assign technicians | Operator cannot assign technicians | Technician cannot assign technicians |
| See other technicians' jobs | Dispatcher can see other technicians' jobs | Operator cannot see other technicians' jobs | Technician cannot see other technicians' jobs |
| View customers | Dispatcher can view customers | Operator can view customers | Technician can view customers |
| Edit customers | Dispatcher can edit customers | Operator can edit customers | Technician cannot edit customers |
| View analytics | Dispatcher can view analytics | Operator cannot view analytics | Technician cannot view analytics |
| Manage company settings | Dispatcher cannot manage company settings | Operator cannot manage company settings | Technician cannot manage company settings |
| Manage roles and permissions | Dispatcher cannot manage roles and permissions | Operator cannot manage roles and permissions | Technician cannot manage roles and permissions |
| Configure the AI agent | Dispatcher cannot configure the ai agent | Operator cannot configure the ai agent | Technician cannot configure the ai agent |
| Manage invoices and payments | Dispatcher cannot manage invoices and payments | Operator cannot manage invoices and payments | Technician can manage invoices and payments |
The technician preset carries four of the fourteen, and that is a wall rather than a curtain: without the see-all permission the server will not load another technician's job at all.
Current, and stored with the source it came from. No consent, no message, and the run report names the ones it skipped.
Nothing between 9 p.m. and 8 a.m. in the recipient's timezone, the one the law counts by.
A campaign deduplicates its own recipients, because a double send is a second violation on the same phone number.
In the United States a text message penalty is counted per message, which is why these run as code in front of the sender rather than as a paragraph in a policy. The sending channel itself connects at launch; until then the gates guard a queue that stays inside the product.
The API behind the panel is the API you get. Keys start with sk_live, only the hash is stored, and the secret is shown once.
curl -H "Authorization: Bearer sk_live_your_key_here" \ https://api.servayo.com/api/v1/tickets
X-Servayo-Signature, so you can prove the call came from us.| Event | Fires when |
|---|---|
| ticket.created | A job was created, by a person or by the API |
| ticket.updated | Status, assignment or amounts changed |
| lead.created | A request landed in the inbox |
| lead.converted | A request became a job |
| call.received | A call record was written |
| review.submitted | A customer left a rating |
| payment.succeeded | Reserved for a future release. Today a recorded payment reaches you as ticket.updated with status paid |
Full REST reference, with every endpoint group and a live schema explorer.
Every plan carries the platform: the board, the documents, the tracking links, the reporting. The tiers set how many people work inside and how fast we answer you, and the price does not climb because you hired somebody.
| Feature | Free$0per monthOne crew, the whole board | Starter$99per monthFor solo operators and small crews | Professional$200per monthFor shops with a dispatcher | Enterprise$500per monthFor multi-crew, multi-location operations |
|---|---|---|---|---|
| Team members | 2 | 5 | 15 | Unlimited |
| Job board and calendar | Included | Included | Included | Included |
| Invoices and on-site signatures | Included | Included | Included | Included |
| Customer tracking links | Included | Included | Included | Included |
| Short links and QR studio | Included | Included | Included | Included |
| Import from Google Sheets and CSV | Included | Included | Included | Included |
| Your data out: CSV export and iCal feeds | Included | Included | Included | Included |
| Roles, permissions and two-factor sign-in | Included | Included | Included | Included |
| Document studio with your own PDF | Not included | Included | Included | Included |
| Short links on your own domain | Not included | Included | Included | Included |
| Job Inbox with follow-up sequences | Not included | Included | Included | Included |
| Estimates with approval signatures | Not included | Not included | Included | Included |
| Advanced analytics | Not included | Not included | Included | Included |
| REST API and outbound webhooks | Not included | Not included | Included | Included |
| Dedicated onboarding | Not included | Not included | Not included | Included |
| Support | Priority | SLA | ||
| Sign up | Start free | Get started | Get started | Get started |
Launch pricing, month to month, no contract. Every workspace starts on Free; you move up from Settings when the crew outgrows it, and the change takes effect the same minute.
Signup builds the workspace, the import brings your history, and the Free plan does not ask for a card.