Skip to content
Mesa Web Designers

Website & leads

ServiceTitan Contact Form Integration

A form that emails the office is a form someone has to retype. Connected properly, the same form puts a clean booking request in ServiceTitan, with the address, the problem and the campaign already filled in.

Workflow
  1. 01

    Customer submits

    Form, estimate tool or booking request on your site

  2. 02

    Server validates

    Required fields, phone format, spam and duplicate checks

  3. 03

    Mapped and sent

    Source, campaign and answers attached; retried if ServiceTitan is unreachable

  4. 04

    Office confirms

    A CSR reviews the request in ServiceTitan and books it

Demonstration of a contact form submission becoming a ServiceTitan booking request. The customer and job shown are sample data.

The form works. The handoff is where leads leak.

Most contractor contact forms ask for a name, a phone number, an email and a message. The message box gets "AC not cooling, upstairs only, can someone come today" or just "call me." The CSR then calls back to ask for the address, whether it's a house or a business, and which unit is acting up, before typing all of it into ServiceTitan and guessing at the campaign.

Connecting that form to ServiceTitan is not just a matter of pointing it at an API. The form has to ask for what the office actually needs, map each answer to the right place, keep bots and repeat submissions out of the Bookings screen, and still deliver the lead on the afternoon ServiceTitan's API is slow to respond. Those are the parts this page is about.

The broader service, including how your admin approves access and what the project includes, is on the ServiceTitan website integration page. This is the detail for the form itself. It's one of several flows in ServiceTitan website and lead integrations.

The field map

Before any code, we sit down with whoever runs your office and agree what each answer becomes. A ServiceTitan booking can carry contact details, the address, a summary, campaign, business unit, job type and uploaded images.

  • Customer and contact

    Name, mobile number and email, with the number checked for the right length and format before it's sent. A second contact, such as a tenant or property manager, goes into the summary unless your office wants it handled differently.

  • Service address

    Street, city and ZIP as separate fields, with address autocomplete so the CSR isn't fixing typos. The ZIP also drives a service-area check before the form is ever submitted.

  • Job type and business unit

    The customer picks from plain-language choices like "No heat" or "Water heater leaking," and the integration translates them into your actual job types and business units. Anything ambiguous goes in as a general request rather than a wrong guess.

  • The problem, in their words

    The free-text description goes into the booking summary along with the structured answers, laid out so a CSR can read it in five seconds on the phone.

  • Campaign and source

    The campaign comes from what the website captured about the visit, not from the CSR's memory. The capture side is covered on lead source attribution.

  • Photos, if you want them

    A photo of the leak or the error code saves a trip. Uploaded images can travel with the booking; we strip location data and camera metadata before sending, and ask the customer's permission in plain words.

What happens when someone presses Submit

The order matters. Every check happens before ServiceTitan sees anything.

  1. 1

    Validate in the browser and again on the server

    The customer gets instant, specific messages ("That phone number is missing a digit"). The server repeats every check, because browser checks are easy to skip.

  2. 2

    Screen out spam

    A hidden honeypot field, a time-on-page check, a bot challenge such as Cloudflare Turnstile, and limits on repeated submissions from the same source. Pitches for SEO services never reach the Bookings screen.

  3. 3

    Catch repeat submissions

    Someone who presses Submit twice, or submits again an hour later because nobody called, should produce one request, not three. Repeats within a window you choose are merged into the first.

  4. 4

    Send the booking from the server

    The integration builds the booking with the mapped fields and sends it using credentials kept on the server, never in the page. It records what was sent and what ServiceTitan returned.

  5. 5

    Confirm to the customer

    A confirmation screen and, if you want, an email that says what happens next and when, in your office's words. Don't promise a callback time the office can't keep at 9 p.m.

  6. 6

    Fall back if ServiceTitan doesn't answer

    If the API is unreachable or rejects the request, the lead is kept in a queue, retried with backoff, and emailed to the office immediately so nobody waits on a retry. Retries are designed so a timeout doesn't become two bookings.

The questions worth asking, by trade

Two or three extra questions save the callback. More than that and fewer people finish the form.

  • HVAC

    Heating or cooling, whole house or one area, system age if they know it, and whether anyone at home is elderly or medically vulnerable, which many shops treat as a priority call.

  • Plumbing

    Active leak or not, water shut off or not, and the fixture involved. An active leak with no shut-off should push the customer to call, not wait for a form.

  • Electrical

    Partial or full outage, any burning smell or sparking (which belongs on the phone), and whether it's a panel, outlet or new work.

  • Garage doors

    Door stuck open or closed, broken spring or cable if they can tell, and whether a car is trapped inside.

  • Roofing

    Active leak or inspection, roof type, and whether the request is storm-related, which may matter for insurance paperwork later.

Testing before the form goes live

Where ServiceTitan provides an integration environment for your account, every combination is tested there first: each job type choice, each business unit, an address outside the service area, a submission with photos, a duplicate, and a forced outage to prove the fallback email arrives. Then a CSR walks through the result in ServiceTitan and tells us what's confusing.

After cutover, we compare website submissions against bookings for the first weeks. If a form produced a submission and ServiceTitan has no matching booking, that's a bug to fix that day, not a mystery to discover at month-end. The same discipline runs through our general API integration work.

What to have ready before we talk

None of this is required for a first call, but each answer makes the scope and the quote sharper.

  • Every form on the site today, and where each one sends its submissions
  • Your job types and business units, and which ones web customers should be able to request
  • The ZIP codes or areas you serve, by business unit if they differ
  • Who should receive the fallback email if ServiceTitan can't be reached
  • Whether you want photo uploads, and what the office does with them
  • How quickly the office calls back web requests during and after business hours

Related ServiceTitan development

Mesa Web Designers is an independent developer. We are not affiliated with, endorsed by, or a partner of ServiceTitan. ServiceTitan is a trademark of its owner. What an integration can do depends on your ServiceTitan products, the permissions your admin grants, and the APIs available to your account.

Start the conversation

Stop retyping form leads.

Send us the forms you have and the job types you use. We'll write the field map and quote the connection.

  • Web apps, portals and integrations start from $575, priced by complexity
  • The developer who scopes it builds it and answers the phone
  • Built for ServiceTitan contractors nationwide
Step 2 of 4 · The details50%

What do you need built?

Pick what fits (pick any)

Rather talk? (480) 525-7582. 0% financing on any project, 25% down. See all pricing

Contact form integration: questions we hear a lot.

What does a form submission look like in ServiceTitan?

It arrives as a booking under the integration's booking provider tag, in the Bookings area, where a CSR books it as a job or dismisses it. It carries the contact details, address, a readable summary of the answers, the campaign and, where mapped, the business unit and job type.

What happens if ServiceTitan is down when someone submits?

The submission isn't lost. It's stored, retried automatically, and emailed to the office right away so someone can call the customer without waiting. When ServiceTitan responds again, the queued booking goes in once, not twice.

Will spam end up in our Bookings screen?

Very little, if any. Bot checks, a hidden honeypot field, timing checks and submission limits run on the server before anything is sent to ServiceTitan. Anything that slips through is a CSR dismissing one booking, not a flood.

Can existing customers be matched automatically?

With bookings, the CSR matches the request to the existing customer when booking it, which is the safest check. Automatic matching matters when an integration creates customer records directly, and which lookups are possible depends on your account and permissions, so we confirm that during scoping.

Can we keep our current form design?

Usually, yes. The visible form can stay close to what you have; the work is in the fields behind it, the server-side checks and the mapping. We often add one or two questions the office asks on every callback anyway.

Stop retyping form leads.

Send us the forms you have and the job types you use. We'll write the field map and quote the connection.