Answer first. Book the job.

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.

Board, right now
Thumbtack#1084

Dryer heats but will not spin

  1. New
  2. Assigned
  3. En route
  4. On site
  5. Completed
Phone call#1083

Furnace short cycling, no heat

  1. New
  2. Assigned
  3. En route
  4. On site
  5. Completed
Google Local#1081

Fridge leaking under the crisper

  1. New
  2. Assigned
  3. En route
  4. On site
  5. Completed

Every channel you sell on, one feed you own

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

Working today

In the queue right now

Each of these lands a request in the same inbox, stamped with where it came from.

Phone call
A number you register stamps its channel on every job it books
Chat on your site
One script tag, and it answers at 8 p.m. too
Voice widget
A visitor talks, speech-to-text hands you a typed request
Screenshot from any app
Thumbtack, Angi, Yelp, Google Local Services, a warranty portal - OCR reads the screenshot and builds the lead
Typed in by hand
Whoever picked up enters it in seconds
Your history
Google Sheets or CSV, thousands of rows, deduped by phone
Coming

On the roadmap

Each of these needs a partner program or a scheduled build. None of them are sold as working until they are.

Inbound webhook (opens Zapier)Inbound email parsingThumbtack Partner APIYelp Leads APIAngiGoogle Local Services APIWarranty networks via Dispatch
By screenshot

No public API exists

These platforms offer no lead API to anyone. The screenshot path still puts their requests in your queue today.

HouzzNetworxPorchHome Depot Pro ReferralChoice, Cinch and AHS portals

From first ring to paid, no second tool

  1. 01 / 05

    A request lands at 8 p.m.

    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.

  2. 02 / 05

    The board catches it

    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.

  3. 03 / 05

    The van pulls out

    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.

  4. 04 / 05

    Work happens, paperwork does not

    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.

  5. 05 / 05

    Closed, and countable

    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.

Thumbtack#1084

Dryer heats but will not spin

  1. New
  2. Assigned
  3. En route
  4. On site
  5. Completed

Everything a front desk does, minus the desk

Built around how appliance and HVAC shops actually run: arrival windows, warranty channels, seasonal contracts, techs in vans.

A board that runs the day

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.

  1. New
  2. Assigned
  3. En route
  4. On site
  5. Completed

One queue, whatever the door

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.

ThumbtackPhone callHome warrantyGoogle Local ServicesReferralYelp

The follow-up writes itself

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.

Signed on the doorstep

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.

Your history walks in, and it can walk out

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.

CSViCalREST APIWebhooks
No lock-in by design

Every request lands in the same queue

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.

  • Convert a request into a job in one click. The customer is matched against your book on the way in.
  • Every request stores the seconds between arriving and having an answer ready. That number is a column, not a feeling.
  • A reply and a follow-up sequence are drafted automatically, and they cancel themselves the moment a person takes over the thread.
  • Name the jobs you do not take, and the queue drafts a polite decline for them instead of leaving an argument for Monday.
  • Warranty work carries its own flag, so the bill goes to the home warranty company and the revenue report knows the difference.
  • The queue exports to CSV, and the export is written into the audit log with the name of whoever ran it.
ChannelWhat came inWhereStageReply ready in
ThumbtackDryer heats but will not spinNashville, 37206Needs reply12 s
Phone callFurnace short cycling, no heat upstairsFranklin, 37064Converted8 s
Home warrantyRefrigerator leaking under the crisperBrentwood, 37027In review31 s
Google LocalWasher stops mid cycle, code F21Nashville, 37211New5 s
YelpDuct cleaning, whole houseFranklin, 37067Dismissed3 s

Demo rows in the real table component. The channel, the stage and the clock are the columns your own inbox carries.

The board takes your side

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.

  • Five lanes, a table, and a tab for cancelled work. A cancelled job never disappears, it moves.
  • Filters run on the server: year, technician, channel, city, status. The dropdowns only offer values your data actually has.
  • One search box covers job numbers, paper invoice numbers, symptoms, addresses, cities, appliances, customer names and phones.
  • The board updates itself over a live channel, so two dispatchers never argue about who saw what.
Phone call#1102

Refrigerator not cooling, Franklin

Arrival 10-1Refrigerator$486.00
  1. New
  2. Assigned
  3. En route
  4. On site
  5. Completed

Needs a person

  • Completed with no amount2 jobs
  • No channel on the job1 job
  • Stuck in En route over 2 h1 job

The board works this list out on its own, every time you open it.

Four calendar views

Day, week, month, and a timeline that reads across technicians. Book a walk-in straight from the grid.

Time you cannot book

Block a vacation or a van service on one technician or on the whole company, and the calendar respects it.

Who should take it

Technicians come back ranked by skill match against the appliance, window conflicts, and how loaded that day already is.

Double booking, out loud

Pick somebody who is already busy and you hear about it before you save, while the fix is still one click.

Their own calendar feed

Each technician gets a private iCal URL that Google, Apple and Outlook subscribe to.

More than one shop

Locations are first class. A job knows which branch it belongs to and the numbers can be split by it.

Your day ends when the last job does

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.

In the van

One action per screen
Start driving, I have arrived, Complete job. Big targets, high contrast, one thumb, gloves on.
Buttons that admit it
No phone on the job and the call button goes dark. No address, no navigation button. Nothing pretends to work.
Your jobs, nobody else's
Without the see-all permission the server will not load another technician's job, and it will not show yours to anyone else on the crew.
The invoice happens on site
Build the lines, take the signature with a finger, and the signed PDF is on the job before you pull away from the curb.
Tracked on shift, wiped in 90 days
Location is recorded only between the start and the end of your shift, then a nightly job deletes it after 90 days. That is California's AB 984, and it runs as code.
Your calendar, your pocket
A private iCal feed puts your schedule into Google, Apple or Outlook, next to the rest of your life.

In the record

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.

Signed before the work
The estimate is approved by the customer before anybody opens a panel. Labor and parts are already on it.
Signed after the work
Finalizing the invoice takes two signatures, the customer's and the technician's, and pulls the approved estimate lines forward.
What stays in the record
SHA-256 of each signature image, the IP, the device string, and the time. The rendered PDF gets its own hash.
Frozen means frozen
A finalized invoice refuses edits. Cash, check or transfer is logged against it with an audit entry and the amounts sync back to the job.

Your invoice, not our template

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.

1. The form you print today, with last year's job in it
2. Four candidates found, yours to accept or reject
3. Same form, now filling itself for every job

Two ways in

Keep the page exactly as it is, rasterized at 200 DPI, or break it apart into text, images and vector shapes you can move.

The old data is cut out

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.

Variables, six groups

Document, company, customer, job, money, signing. System blocks handle the line items and the totals.

Preview is the real thing

The editor renders the actual PDF and shows you the page. Headless Chromium does the drawing, so nothing is approximated.

What your customer sees

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.

Track

The visit moves from Received to At your address while they watch, on the same stops your board shows.

  1. New
  2. Assigned
  3. En route
  4. On site
  5. Completed

Leaves out: prices, your other jobs, anyone else's address.

Pay

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.

Review

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.

Shared call

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.

Join

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.

Print the QR once. It keeps working.

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 daysValue
Opens, all sources1,284
Unique visitors911
Scanned from a printed code742
Clicked from a screen542
Top deviceiPhone

Demo numbers from one sample link, in the table the panel uses.

  • Your own domain, checked for real. The CNAME is resolved before the domain goes live, and the certificate is issued on the first request without you touching anything.
  • Scans and clicks are counted apart, because the printed code carries its own marker and the redirect reads it.
  • Unique visitors are counted as a hash of the link and the address. The address itself is never written down.
  • Delete a link and its slug goes back in the pool, because that slug is already on a flyer somebody is holding.
  • A domain will not delete while live links point at it, and the refusal tells you how many printed codes it would have killed.

Bring seven years with you

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.

Paste a link or paste the rows

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.

One customer stays one customer

Matching runs on the normalized phone number, and every imported job keeps a reference back to the line it came from.

Two switches your bookkeeping needs

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.

Nine metrics, five breakdowns

Build the report you actually argue about: by month, quarter or year, split by channel, city, technician, appliance or payment method.

The customer book, and what it remembers

  • One card per customer with every job, every contact point and the flag you set when somebody stops paying.
  • Lifetime value counts paid work only, and the screen says so out loud instead of quietly inflating the number.
  • Consent to text is stored with where it came from: a web form, a phone call, or a STOP reply.
  • Ratings collected from the public review page roll up into one average, with the unanswered requests listed next to it.

The whole panel, screen by screen

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.

  • OverviewThe day so far, and the handful of things that need a person
  • Job InboxEvery request in one queue, whichever way it arrived
  • JobsBoard, table, cancelled tab, and filters that run on the server
  • CalendarDay, week, month, and a timeline per technician
  • CustomersHistory, contact points, and who is flagged for not paying
  • TechniciansSkills, shifts, and who is actually free on Thursday
  • CallsCall records with the transcript and the fields pulled out of it
  • Dispatch mapTechnician pins for the day, on demo pins until geocoding lands
  • Links & QRShort links on your own domain, with a QR studio
  • ReviewsAverage rating, what came back, what nobody answered yet
  • MarketingWin-back segments, and who was skipped for missing consent
  • AnalyticsThis month: jobs, revenue, average ticket, lead conversion
  • StatisticsYears of work sliced by channel, city, technician, appliance

Company

  • Organization
  • Roles & permissions
  • Team
  • Billing
  • Security

Intake

  • Order channels
  • Phone numbers
  • AI Agent
  • Lead Bot
  • Website chat

Work

  • Notifications
  • Documents
  • Price book
  • Knowledge base

Data

  • API
  • Import
  • Link domains
13sections in the panel
17settings pages, in four groups
185endpoints in the REST API
5pages your customer opens with no login

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.

Two companies, one database, zero leaks

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.

Isolation lives in Postgres
Row-level security covers 39 tables. Another company's rows are never returned: the database refuses them before our code gets a say.
The tenant context is per transaction
It is re-stamped on every transaction, because a pooled connection that kept the last tenant is exactly how leaks happen.
It refuses to start unsafe
Give the app a superuser database role, or one with BYPASSRLS, and it will not boot. Point production at local disk storage and it will not boot either.
Outbound ships switched off
Nothing addressed to a customer can leave while the master switch is off, even with provider keys already in place.
Every action is written down
An append-only log records who did what to which record, including exports.

Fourteen permissions, three preset roles

Build your own roles on top of these. Revoking something critical asks you to confirm, because that click ends somebody's shift.

Default permissions for the dispatcher, operator and technician roles
PermissionDispatcherOperatorTechnician
Handle incoming requestsDispatcher cannot handle incoming requestsOperator can handle incoming requestsTechnician cannot handle incoming requests
View jobsDispatcher can view jobsOperator can view jobsTechnician can view jobs
Create and edit jobsDispatcher can create and edit jobsOperator can create and edit jobsTechnician can create and edit jobs
Edit job amountsDispatcher can edit job amountsOperator cannot edit job amountsTechnician cannot edit job amounts
Delete jobsDispatcher cannot delete jobsOperator cannot delete jobsTechnician cannot delete jobs
Assign techniciansDispatcher can assign techniciansOperator cannot assign techniciansTechnician cannot assign technicians
See other technicians' jobsDispatcher can see other technicians' jobsOperator cannot see other technicians' jobsTechnician cannot see other technicians' jobs
View customersDispatcher can view customersOperator can view customersTechnician can view customers
Edit customersDispatcher can edit customersOperator can edit customersTechnician cannot edit customers
View analyticsDispatcher can view analyticsOperator cannot view analyticsTechnician cannot view analytics
Manage company settingsDispatcher cannot manage company settingsOperator cannot manage company settingsTechnician cannot manage company settings
Manage roles and permissionsDispatcher cannot manage roles and permissionsOperator cannot manage roles and permissionsTechnician cannot manage roles and permissions
Configure the AI agentDispatcher cannot configure the ai agentOperator cannot configure the ai agentTechnician cannot configure the ai agent
Manage invoices and paymentsDispatcher cannot manage invoices and paymentsOperator cannot manage invoices and paymentsTechnician 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.

Three gates stand between a message and a customer

Consent on file

Current, and stored with the source it came from. No consent, no message, and the run report names the ones it skipped.

Quiet hours, their clock

Nothing between 9 p.m. and 8 a.m. in the recipient's timezone, the one the law counts by.

Sent once, counted once

A campaign deduplicates its own recipients, because a double send is a second violation on the same phone number.

  • Phone numbers, emails and message bodies never reach the logs in the clear.
  • Technician positions are kept for 90 days and then wiped by a nightly job.
  • Location is only recorded between the start and the end of a shift, which is what California AB 984 asks for.

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.

It talks to whatever you already run

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
  • Outbound webhooks sign every body with HMAC-SHA256 and send it as X-Servayo-Signature, so you can prove the call came from us.
  • A WebSocket channel pushes job, lead and payment events the moment they happen, scoped to your company and nobody else's.
  • Technician schedules leave as iCal feeds. The inbox leaves as CSV. Delivery of a webhook is best effort today: the last status is recorded, there is no retry queue yet.
Webhook events Servayo sends
EventFires when
ticket.createdA job was created, by a person or by the API
ticket.updatedStatus, assignment or amounts changed
lead.createdA request landed in the inbox
lead.convertedA request became a job
call.receivedA call record was written
review.submittedA customer left a rating
payment.succeededReserved 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.

One price for the shop, never per technician

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.

Servayo plans compared
FeatureFree$0per monthOne crew, the whole boardStarter$99per monthFor solo operators and small crewsProfessional$200per monthFor shops with a dispatcherEnterprise$500per monthFor multi-crew, multi-location operations
Team members2515Unlimited
Job board and calendarIncludedIncludedIncludedIncluded
Invoices and on-site signaturesIncludedIncludedIncludedIncluded
Customer tracking linksIncludedIncludedIncludedIncluded
Short links and QR studioIncludedIncludedIncludedIncluded
Import from Google Sheets and CSVIncludedIncludedIncludedIncluded
Your data out: CSV export and iCal feedsIncludedIncludedIncludedIncluded
Roles, permissions and two-factor sign-inIncludedIncludedIncludedIncluded
Document studio with your own PDFNot includedIncludedIncludedIncluded
Short links on your own domainNot includedIncludedIncludedIncluded
Job Inbox with follow-up sequencesNot includedIncludedIncludedIncluded
Estimates with approval signaturesNot includedNot includedIncludedIncluded
Advanced analyticsNot includedNot includedIncludedIncluded
REST API and outbound webhooksNot includedNot includedIncludedIncluded
Dedicated onboardingNot includedNot includedNot includedIncluded
SupportEmailEmailPrioritySLA
Sign upStart freeGet startedGet startedGet started

Free

$0per monthOne crew, the whole board
  • Team members: 2
  • Job board and calendar
  • Invoices and on-site signatures
  • Customer tracking links
  • Short links and QR studio
  • Import from Google Sheets and CSV
  • Your data out: CSV export and iCal feeds
  • Roles, permissions and two-factor sign-in
  • Support: Email
Start free

Starter

$99per monthFor solo operators and small crews
  • Team members: 5
  • Job board and calendar
  • Invoices and on-site signatures
  • Customer tracking links
  • Short links and QR studio
  • Import from Google Sheets and CSV
  • Your data out: CSV export and iCal feeds
  • Roles, permissions and two-factor sign-in
  • Document studio with your own PDF
  • Short links on your own domain
  • Job Inbox with follow-up sequences
  • Support: Email
Get started

Professional

$200per monthFor shops with a dispatcher
  • Team members: 15
  • Job board and calendar
  • Invoices and on-site signatures
  • Customer tracking links
  • Short links and QR studio
  • Import from Google Sheets and CSV
  • Your data out: CSV export and iCal feeds
  • Roles, permissions and two-factor sign-in
  • Document studio with your own PDF
  • Short links on your own domain
  • Job Inbox with follow-up sequences
  • Estimates with approval signatures
  • Advanced analytics
  • REST API and outbound webhooks
  • Support: Priority
Get started

Enterprise

$500per monthFor multi-crew, multi-location operations
  • Team members: Unlimited
  • Job board and calendar
  • Invoices and on-site signatures
  • Customer tracking links
  • Short links and QR studio
  • Import from Google Sheets and CSV
  • Your data out: CSV export and iCal feeds
  • Roles, permissions and two-factor sign-in
  • Document studio with your own PDF
  • Short links on your own domain
  • Job Inbox with follow-up sequences
  • Estimates with approval signatures
  • Advanced analytics
  • REST API and outbound webhooks
  • Dedicated onboarding
  • Support: SLA
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.

Fair questions

Do you plug into Thumbtack, Yelp and Angi?
Not by direct connection, and we would rather say so than let you find out later. The channel wall above is the honest map: today their requests reach your queue by screenshot, by the phone number you register per channel, and by the widgets on your own site. Partner APIs are on the roadmap, and until a key is in hand they stay in the Coming column.
What does my technician get out of it?
A portal built for a phone in sunlight with gloves on: one main action per screen, big targets, an honest connection indicator, nothing to install from a store. The invoice is signed at the door, so the paperwork is finished when the job is. And location has a straight answer: tracked only on shift, wiped after 90 days, the way California AB 984 spells it out.
What will my customer see?
Five pages that open from a link, with no app and no login: live tracking, payment, a review page, a shared call card, and the join page for your own crew. The tracking page never shows amounts or other addresses. The estimate is signed before work starts, and the invoice pays in one tap after.
How do we get started?
Signing up builds the whole workspace in one step: your company, your order channels, the dispatcher, operator and technician roles, and your own admin account. Then you paste in your history and invite the crew with a link that expires when you say it does.
We have seven years in a spreadsheet. Now what?
Paste a public Google Sheets link or the rows themselves, up to five thousand of them. Columns are matched for you, you correct the match before anything is written, and customers merge on the phone number instead of doubling up. Save an XLSX file as CSV first, that is the only format rule.
Can we get our data back out?
Yes, and without asking us. The REST API that runs the panel is the same one your key opens, outbound webhooks are signed with HMAC-SHA256, technician schedules leave as iCal feeds, and the inbox exports to CSV with the export itself written into the audit log.
Who can see what?
Fourteen separate permissions, three preset roles, and any role you build yourself. A technician gets four of the fourteen: without the see-all permission the server will not load another technician's job, so the limit holds whatever anyone types into the address bar. Two-factor sign-in is there when you want it.
What about TCPA and quiet hours?
Consent, quiet hours and dedupe are enforced in code before anything sends. A message needs current consent stored with its source, it will not go out between 9 p.m. and 8 a.m. in the customer's timezone, and a campaign will not hit the same person twice. Texting itself connects at launch: until then the gates guard a queue that waits inside the product, which is the safest kind.
Which trades does Servayo fit?
Appliance repair and HVAC first: brand lists, arrival windows, and the warranty flag that sends the bill to the home warranty company instead of the homeowner. The equipment form is defined per company, so a plumbing or garage door crew describes what it services in its own words.

Set it up this afternoon.

Signup builds the workspace, the import brings your history, and the Free plan does not ask for a card.