Web forms

The Lead Nobody Has to Retype: Website Forms That Arrive in ServiceTitan Whole

The estimate request form on most contractor sites does one thing well: it sends an email. Then a person does everything else. Here is how every form on the site, from the emergency button to the quiet contact page, becomes a ServiceTitan booking with its source still attached.

October 26, 2026 · 10 min read

The short answer

A website form can send each submission to ServiceTitan through its API, as a booking on the Calls screen or as a lead form, instead of emailing the office. The server validates the fields, filters spam, attaches the landing page, referrer and ad click ID, and queues and retries any send that fails, so no lead is retyped or lost.

On this page
  1. Four forms, four levels of hurry, one destination
  2. Booking, lead form or lead: choosing the door into ServiceTitan
  3. The field map, signed before the first line of code
  4. Spam, typos and the bot that fills in forms at 3 a.m.
  5. When ServiceTitan does not answer, the lead waits in line
  6. Zapier, WordPress plugins and the other shortcuts
  7. What it costs, how long it takes, and which form to fix first

Four forms, four levels of hurry, one destination

Most contractor sites carry four forms whether anyone planned them or not. Each is written for a different moment in a customer's week, and each deserves its own treatment on the way into ServiceTitan. Treating them alike is how a burst pipe ends up in the same queue as a polite question about gutter guards. The wider picture is on the ServiceTitan integration hub.

Estimate request

The replacement buyer, collecting quotes. Send the service, the address and a readable summary, as a booking the office turns into an in-home visit. Speed matters here, and accuracy matters more.

Contact

The catch-all: questions, compliments, the occasional vendor pitch. A topic question on the form sends real customer inquiries to ServiceTitan and the rest to an inbox nobody has to triage at 7 a.m.

Callback

The customer who wants a person, not a form. Send the name, the phone and a good time to call, flagged for a fast return. On Bleuwave Home Services, a callback form is answered 24/7 by a real person.

Emergency

No heat in January, water on the floor. Show the phone number first and the form second, and when the form is used, send it with a high priority so it never waits behind routine requests.

Booking, lead form or lead: choosing the door into ServiceTitan

ServiceTitan gives a website more than one way in, and picking the right one is half the integration. Bookings are, in ServiceTitan's words, "incoming inquiries that are funneled to the Calls screen in ServiceTitan," where a customer service rep books each one into a job or dismisses it. The CRM API also has a lead form endpoint, described as "Submits a lead form," and a plain leads endpoint. Each one has its place on a contractor site.

For anything that ends with a truck at a house, we usually send a booking, because it lands where the CSRs already work and a person looks at it before a job exists. For marketing forms, such as a tune-up reminder signup, a lead form fits better. Since December 2025 the API can also convert a booking or a lead into a job by passing its ID when the job is created, which keeps the trail from form to invoice unbroken.

The choice shapes ad reporting, too. In ServiceTitan's Google Ads integration, lead forms and bookings received from the API count as leads, and those sent with a Google click ID are reported to Google Ads as "ServiceTitan Integrated Lead Forms" and "ServiceTitan Integrated Bookings." A form that only emails the office counts as nothing at all. The marketing attribution page shows what that silence does to a monthly report.

A blank paper form folding at the corner into a paper airplane, flying a chalk path to a smiling dispatcher in a headset at her laptop, collage on teal
The paper airplane is the hopeful version. In the usual one, it lands in a shared inbox and waits for Monday.

The field map, signed before the first line of code

Every form integration we build starts with a field map: a table both sides approve, showing where each answer on the form goes in ServiceTitan. It sounds bureaucratic. It is the cheapest hour in the project, because a mapping argument settled on paper costs nothing and the same argument settled in production costs leads. This is the map we start from for a booking.

A starting field map from website form to ServiceTitan booking (CRM v2 schema, as of October 2026)
Form fieldServiceTitan booking fieldNotes
Full namename (required)One field, not two, so nobody's name gets split wrong
Phone and emailcontactsServiceTitan wants a name plus an address or a phone or email
Service addressaddressChecked for a street and ZIP code before sending
What is going on?summary (required)Written as a readable sentence from the customer's answers
Have we been out before?isFirstTimeClient (required)A yes or no the CSR can trust a little and verify
Submission IDexternalId (required)The site's own ID, so any booking traces back to its submission
Form name and pagesource (required)Set to a value your office agrees on, such as the form's name
Ad campaigncampaignIdThe visit's campaign, mapped to a ServiceTitan campaign
Service typebusinessUnitId, jobTypeIdSends the furnace request to the HVAC unit, not plumbing
How urgent is it?prioritySet high on the emergency form
Preferred timestartA requested time, never a promised one

The web session travels separately. A second call attaches the landing page, the referrer, any click IDs (Google's gclid, gbraid and wbraid, Meta's fbclid, Microsoft's msclkid), the UTM tags and the Google Analytics client ID to the booking or lead form. That is the difference between a lead whose source is website and one whose source is a specific campaign, keyword and page. One caution: every job in ServiceTitan needs a customer and a location, and the API cannot merge duplicate customers, which is another reason a person should see a booking before it becomes a job.

Spam, typos and the bot that fills in forms at 3 a.m.

A form connected to ServiceTitan takes on a new duty: whatever it sends lands on a real person's screen. An inbox can absorb spam. A Calls screen full of fake bookings costs CSR time every morning and teaches the office to distrust every web lead, including the real ones. So the filtering happens on the server, before anything leaves.

  • Validate on the server. Browser checks are a courtesy; the server checks again, because bots skip the browser. A phone number has ten digits, an address has a street, and the summary is not a link to a pharmacy.
  • Use a honeypot and a clock. A hidden field that only bots fill in, and a minimum time between page load and submit, stop most automated junk without asking a homeowner to identify buses.
  • Limit the repeats. One address sending twenty forms in a minute is not a customer in a hurry.
  • Hold the doubtful ones. A submission that fails a soft check goes to a review queue on the site, not to ServiceTitan and not to the trash.
  • Say what went wrong. A form that rejects a typo should name the field in plain words and keep everything else the customer typed.

We have written about why forms attract spam and how to stop it without punishing real customers, and our form repair service handles sites whose forms have stopped sending entirely.

When ServiceTitan does not answer, the lead waits in line

Connections fail, and a form integration is judged by what happens next. Access tokens expire after 15 minutes and ServiceTitan issues no refresh tokens, so the server must fetch a new one on time. The rate limit is 600 calls per 10 seconds per application per tenant. A settings change on the ServiceTitan side can break a working connection, and a scope change creates a new app version whose new permissions wait until an admin accepts it. None of that should cost a lead.

  1. 1

    The customer presses send

    The browser posts the form to your own site, not to ServiceTitan. The customer sees a thank-you page at once, with the phone number for anything urgent.

  2. 2

    The server checks it

    Required fields, formats and spam checks run on the server. Junk stops here and never reaches the Calls screen.

  3. 3

    The submission is saved first

    Before anything goes out, the submission is written to the site's own queue under its ID, so no lead exists only in transit.

  4. 4

    The send and the receipt

    The server sends the booking and the web session to ServiceTitan, records that both were accepted, and emails the office a short receipt.

  5. 5

    Retry, then alert

    If ServiceTitan refuses or times out, the queue retries with growing gaps. Because it records which submission IDs already landed, a retry never doubles a booking. After repeated failures, a person gets an alert that says what broke.

After launch, Argus, the site-watch agent in Athena CMS, watches for failing forms alongside broken links and slow pages. The point is to learn a form broke from an alert on a Tuesday morning, not from a suspiciously quiet phone in March.

Zapier, WordPress plugins and the other shortcuts

There are lighter ways to connect a form, and sometimes they are the right call. ServiceTitan's Zapier integration can book a job or create a task, a job note or an attachment. ServiceTitan says it "is currently in open beta" and is provided "as is," it needs a client ID and secret, and whether your package includes it is a question for ServiceTitan. On WordPress, a WordPress.org search on October 26, 2026 found four plugins mentioning ServiceTitan, none published under ServiceTitan's name; one form plugin, Advanced Form Integration, lists ServiceTitan among its destinations.

A connector is fine when

  • Volume is low and someone checks the office inbox anyway
  • Every form maps to a single ServiceTitan action
  • You can live with a beta tool changing under you
  • Nobody needs the click ID or the web session

Build it on the server when

  • Ad spend depends on knowing which clicks became jobs
  • Forms route differently by trade or by urgency
  • A failed send must be retried and reported, not logged in a dashboard nobody opens
  • You want the field map, the logs and the keys under your own control

The trade-offs of plugin installs get a full page in WordPress vs custom, and the server-side alternative is on the Next.js integration page. If you need data flowing the other way too, the ServiceTitan API page covers custom syncs, and WordPress to Next.js covers the move if the site itself is the obstacle.

What it costs, how long it takes, and which form to fix first

Connecting the forms on an existing site is quoted after a free review. The price depends on how many forms there are, how they route, and whether the site can run server code at all. A connection between two systems typically takes one to three weeks, per our API integrations page. If the forms are part of a new site, custom builds are a fixed price starting at $1,750, and $3,500 for a site with a portal or web app, as the web design pricing page shows, with 0% financing at 25% down.

Fix the form with the most money behind it first. For most contractors that is the estimate request on paid landing pages, because it carries the click IDs that conversion tracking setup depends on. Phone leads deserve the same care on the call tracking page, and booking on the online booking page. Electrical contractors can see trade examples on our electrical industry page, plumbers on plumbing websites.

To start, send us the forms on your site for a free site audit, or ask for the free mockup of a new home page. Or call (210) 346-0848 and tell us what the last web lead looked like when it reached ServiceTitan.

Questions contractors ask about ServiceTitan integration

Yes. A form can create a booking on ServiceTitan's Calls screen through the CRM bookings endpoint, or submit a lead form through its own endpoint, along with the landing page, referrer and ad click IDs. The send happens on the website's server after validation, so the office sees a complete record with its source instead of an email to retype.

A booking is an incoming request that lands on the Calls screen for a CSR to book into a job or dismiss. Leads and lead forms record interest that may never become a visit. On a contractor website, bookings suit anything that ends with a technician at a house, and lead forms suit signups and requests that need a conversation first.

No. Zapier is one option, and ServiceTitan describes its Zapier integration as an open beta provided as is. A server-side connection through ServiceTitan's API does the same job with validation, retries and full attribution, without depending on a third service staying in step. For a low-volume site, Zapier can be a reasonable first step.

They can, if you run ServiceTitan's Google Ads integration through Marketing Pro Ads. ServiceTitan counts lead forms and bookings received from the API as leads, and those sent with a Google click ID appear as integrated lead forms or bookings. The site must capture the click ID when the visitor lands and send it with the lead; see Google Ads conversion tracking.

Nothing the customer notices. The submission is saved on your site first, then sent. If ServiceTitan refuses or times out, the queue retries, and because it tracks which submissions already landed, a retry never doubles a booking. If the failures continue, a person gets an alert, and the office has a short receipt email for every lead in the meantime.

No, and we will not pretend it can. A ServiceTitan help article says estimates cannot be created or booked directly from an external website. The form creates a booking for the visit, carrying the details the salesperson needs, and the estimate itself is written in ServiceTitan once someone has seen the job.

Keep reading

Free · No obligation

Stop retyping web leads into ServiceTitan

Send us the forms on your site. We will map each one to a ServiceTitan booking or lead form, show what source data you are losing today, and quote the fix.

Which of these sounds like you? (pick any)

Rather talk now? Call (210) 346-0848.

CallGet a quote