Pre-launch checklist
Launch Day Is a Bad Time to Learn the Book Now Button Goes Nowhere
Every website launch has a moment when someone taps Book Now on a phone and nothing happens. Good launches have that moment a week early, on a staging address, with nobody watching but the person holding the clipboard. This checklist is how you schedule it.
October 26, 2026 · 11 min read
The short answer
Before a contractor website that feeds ServiceTitan goes live, test every path with a real submission: booking, each form, tracked calls, ad click capture, attribution, review requests, membership sales and the portal link. Do it in ServiceTitan's integration environment where possible, whitelist staging and live domains for Scheduling Pro, then check speed, redirects and search basics.
On this page
- Rehearse in the copy, not in the live account
- Bookings and forms: walk every path a customer can take
- Calls, click IDs and conversions: the tracking that fails without a sound
- After the job: review requests, membership sales and the portal link
- Launch week, one step at a time
- The one-page version to print and tape by the dispatch desk
- Speed and search: the launch checks that have nothing to do with ServiceTitan
- Who signs off, and who keeps watching afterward
Rehearse in the copy, not in the live account
Testing a ServiceTitan integration in the live account is like rehearsing a wedding toast at the wedding. It can be done. Nobody enjoys it. ServiceTitan gives its customers both a production environment and an integration environment, which its developer FAQ calls "the equivalent of the sandbox environment," and a customer's integration environment holds a copy of its production data. Your ServiceTitan admin requests access by emailing integrations@servicetitan.com, as the getting access guide explains.
Two details trip people up. The client ID, client secret and access token each belong to one environment, so a staging site holding production credentials is not testing anything safely. The app key, by contrast, is not environment specific, so going live means swapping in the production client ID and secret and calling the production URLs with the same key. Store both sets in the site's environment settings, clearly labeled, before anyone needs them at 4:45 on a Friday. The rest of the connection is explained on the ServiceTitan integration hub.
Some checks can only happen in production, such as a real call through a tracked number. For those, warn the CSRs first, put TEST in every customer name, and agree who dismisses the test bookings afterward. An unexplained test booking is how a dispatcher spends a morning trying to reach a customer named Test Test.
Bookings and forms: walk every path a customer can take
Each form and each booking path gets one real submission, on a phone, from start to finish, and someone checks the result in ServiceTitan instead of trusting the thank-you page. The thank-you page is the website's opinion. ServiceTitan is the record. The background for each check is on the online booking and web forms pages.
- Scheduling Pro loads on every domain. The live domain with and without www, plus staging, must be listed under Scheduler Details, or the scheduler will not load there.
- Every booking button opens it. Each button carries the se-booking-show class, the overlay opens on a small phone, and the link-style install appears nowhere, since ServiceTitan warns it "can disrupt lead source tracking."
- API bookings reach the Calls screen. The Booking Provider Tag is selected for the app, and the account configuration that shows API bookings is turned on.
- Each form lands with its source. Estimate, contact, callback and emergency forms each create the record the field map promised: name, contact details, address, summary and the web session.
- Failure is rehearsed. On staging, break the credentials on purpose, submit a form, and confirm it queues, retries and alerts. Then restore them and watch the queue empty.
- Duplicates are tested. Submit the same form twice and confirm the office sees exactly what the field map says it should.

Calls, click IDs and conversions: the tracking that fails without a sound
Tracking never breaks loudly. The phone rings, the job gets booked, and the only symptom is a report three months later that credits everything to direct traffic and nobody to the ads. So test it the way you test a smoke detector: on purpose, before you need it, with someone listening.
ServiceTitan's Google Ads integration, part of Marketing Pro Ads, says it "isn't complete until Google Analytics and Dynamic Call Tracking using DNI are also configured." Dynamic Call Tracking can be set up only once Google Ads is configured, and it needs a configuration for each website, so a new domain needs its own. Accounts in Canada must use Manual DNI. Load a landing page with UTM tags, confirm the number on the page swaps, and confirm the site stores the click parameters and sends them with a form.
If you use CallRail, its connection runs through Settings > Integrations > API Application Access and needs the Generate API Application Key and Manage API Application Access permissions; the call tracking page has the detail. If anyone uploads offline conversions to Google Ads with a custom script, check it: on June 15, 2026, Google moved offline conversion import and enhanced conversions for leads uploads to the Data Manager API and blocked them in the Google Ads API. The full chain is on the Google Ads conversion tracking page, and Facebook spend on the Meta ads page.
After the job: review requests, membership sales and the portal link
The checks people skip are the ones that happen after the truck leaves, because nobody can test them by clicking around the website. They need a finished job, and the integration environment is a fine place to finish one.
Review requests. With Marketing Pro Reputation and the default Job Complete trigger, ServiceTitan sends one default review request per job, as soon as the next job in a chosen business unit is completed, and SMS surveys go out only between 8 AM and 9 PM. Picking the Manual Request trigger instead stops the automatic request for that job. NiceJob's ServiceTitan page says its invites go out after you close a job. Either way, confirm the request arrives and its link opens the right profile. The reviews page and our guide to getting more Google reviews cover the rest.
Membership sales. A plan sold on the website should arrive as a membership sale; ServiceTitan's memberships API has an endpoint that "Creates membership sale invoice." Check that plan names and prices on the site match the membership types in ServiceTitan, because a club called Gold on the website and Premier in the office produces a renewal call nobody can answer. See memberships and the roof care club demo.
The portal link. ServiceTitan's Customer Portal requires Online Payments, plus ServiceTitan Payments for credit cards, and ServiceTitan suggests you "Embed a link to your customer portal on your website." Put the link where customers look for it, such as the header, the footer and any page about invoices, and tap it from a phone. The choices are on the customer portal page.
Launch week, one step at a time
Here is the order we follow. It front-loads the slow parts, such as getting environment access and admin approval, because those wait on people, and people take vacations at exactly the wrong time.
- 1
Freeze the field map
Confirm the signed field map matches what the site sends. Any change after this point is a new test, not a quick tweak.
- 2
Request the integration environment early
Have your ServiceTitan admin email integrations@servicetitan.com in the first week, so testing never waits on an inbox.
- 3
Whitelist the domains
Add the live domain, its www version and the staging address to Scheduler Details if you use Scheduling Pro.
- 4
Submit every form on staging
One submission per form type, on a phone, each checked in the integration environment against the field map.
- 5
Break the connection on purpose
Bad credentials, a timeout, a missing setting. Confirm the queue holds the lead, the retries run and the alert reaches a person.
- 6
Check the tracking chain
UTM tags and click IDs captured on landing, tracked numbers swapping, the web session attached to every lead.
- 7
Get the production app approved
Your admin reviews the requested scopes under API Application Access and chooses Allow. Until then, the developer's side shows "Not Connected Yet."
- 8
Swap the credentials
Production client ID and secret in, the same app key, production URLs. No integration credentials left on the live site.
- 9
Map the redirects, then move DNS
Every old URL points to its new page before the domain switches, so ads, listings and bookmarks keep working.
- 10
Run the production tests
One call, one booking and one form, each labeled TEST, with the CSRs warned and one person assigned to dismiss them.
- 11
Read the first week's leads
Compare each real booking in ServiceTitan with the site's own log. Every submission should have a matching record.
- 12
Watch the usage report
We check the API Usage Report ServiceTitan shows for each app. A sudden spike or a sudden silence means something changed.
The one-page version to print and tape by the dispatch desk
| Check | How to test it | Passing looks like |
|---|---|---|
| Scheduling Pro domains | Open the scheduler on the live, www and staging addresses | It opens on all three |
| Booking buttons | Tap each one on a phone | The overlay opens with no page reload |
| API bookings | Submit one booking in the integration environment | It appears on the Calls screen with name, summary and source |
| Estimate form | Submit a test request | A booking for the visit, with the details the salesperson needs |
| Callback form | Submit with a preferred time | A booking flagged for a quick return call |
| Emergency form | Submit and watch who responds | High priority, with the phone number shown first on the page |
| Spam filter | Submit too fast with the hidden field filled | Held or rejected; nothing reaches ServiceTitan |
| Failure handling | Break the credentials on staging | Queued, retried, alert sent, no duplicate |
| Tracked numbers | Visit with UTM tags, then call | The number swaps and the call carries the campaign |
| Click IDs | Land with a test click parameter and submit a form | The click ID travels with the web session |
| LSA leads | Open a recent Get Quote lead | Staff know its phone number is a Google tracking number |
| Review requests | Complete a test job | One request, sent within allowed hours, to the right profile |
| Membership sale | Buy a plan on staging | A membership sale with the matching membership type |
| Portal link | Tap it from a phone | ServiceTitan's customer portal opens |
| Speed | Run key pages through our website health check | Pages load fast and the scheduler script is deferred |
| Redirects and search | Crawl the old URLs | Each redirects once to its new page, with titles in place |
| Business listings | Check the Google Business Profile | Same name, address and phone; the booking link works |
The LSA line matters more than it looks. ServiceTitan's Local Services Ads lead capture is in Early Access, and the phone number it receives "is a Google tracking number, not the customer's real number," so CSRs should not save it as the customer's phone. The Local Services Ads page explains the rest.
Speed and search: the launch checks that have nothing to do with ServiceTitan
A site can pass every ServiceTitan check and still lose the launch to a slow home page or a missing redirect. ServiceTitan's scheduler install tag carries a defer attribute, so it should not hold up the first paint; make sure your own scripts are as polite. Our Core Web Vitals service handles the stubborn cases, and a custom Next.js build avoids most of them.
Then the search basics. Every old URL redirects to its new page, as our redirect guide describes. Titles and descriptions exist on every page, structured data names the business consistently, and the Google Business Profile matches the site. The broader website SEO checklist and the map pack audit handle the rest. Hestia, an agent in Athena CMS, keeps hours, phone, address and services identical across the site, which is one less thing to check by hand.
Who signs off, and who keeps watching afterward
Three people should sign the checklist: the owner or general manager, who cares whether leads arrive; the office lead, who knows what a good booking looks like; and a dispatcher, who will be first to notice a bad one. We sign it too. After launch, Argus in Athena CMS watches for failing forms, broken links and slow pages, and our hosting and maintenance plans cover the updates.
Building a new site? Our web design pricing page lists custom builds from $1,750 at a fixed price, and about $9,000 for a site with online booking or an estimate flow, with 0% financing at 25% down. Tracking gaps go to conversion tracking setup. If the site already exists, a free site audit shows which of these checks it fails today, or call (210) 346-0848 and walk through it with us.
Questions contractors ask about ServiceTitan integration
Every path a lead can take: each booking button, each form, tracked calls, click ID capture and the web session sent with leads, review requests after a finished job, membership sales and the customer portal link. Then the usual launch checks: speed, redirects, titles and business listings. Confirm each result in ServiceTitan itself, not on the website's thank-you page.
Yes. ServiceTitan customers can get an integration environment, which ServiceTitan calls the equivalent of a sandbox, and it holds a copy of your production data. Your ServiceTitan admin requests access by emailing integrations@servicetitan.com. Credentials are specific to each environment, so the staging site needs its own client ID and secret.
Usually because the staging address is not whitelisted. The scheduler will not load on a domain missing from Scheduler Details, and ServiceTitan recommends listing the bare domain, the www version and any staging sites. Also check that the button carries the se-booking-show class and that the install script is actually on that page.
In production, yes. API bookings land on the Calls screen like any other request. Warn the office before production tests, put TEST in the customer name, and agree who dismisses them. Most testing should happen earlier, in the integration environment, where a test booking bothers nobody.
They can. On June 15, 2026, Google moved offline conversion import and enhanced conversions for leads uploads to its Data Manager API and blocked them in the Google Ads API. If your setup uploads conversions through a custom script, confirm it was moved. If you rely on ServiceTitan's Google Ads integration, confirm its conversion actions keep recording after launch.
Someone in the office, not only the web developer. A developer can prove the site sent a booking; only the office can say whether it was the booking they needed. We work through the list with the office lead and a dispatcher, then keep watching after launch through Athena's site watch and our maintenance plans.
Keep reading
- Online bookingThe Customer Picked Thursday at 10. Does the Dispatch Board Know?ServiceTitan's Scheduling Pro or a custom booking flow on your own site: how each installs, tracks and shows availability, and when each one wins.
- Web formsThe Lead Nobody Has to Retype: Website Forms That Arrive in ServiceTitan WholeSend estimate, callback, contact and emergency forms to ServiceTitan as bookings with the source attached. Field map, spam filtering, retries, prices.
- Custom site, server-side linkIf a Visitor Can Read Your API Secret, So Can Everyone: Custom Next.js Sites That Book Into ServiceTitan From the ServerA custom Next.js site that sends bookings to ServiceTitan from its own server: credentials hidden, click IDs kept, pages fast. How it works, limits, prices.
- The developer programBefore Any Website Touches the ServiceTitan API, Someone in Your Office Clicks AllowHow the ServiceTitan API works for contractors: access and approval, the data families a website touches, no webhooks yet, and what a custom build takes.
- Google Ads and ServiceTitanWhy Google Ads Keeps Buying Phone Taps, and How ServiceTitan Revenue Changes Its MindSend booked jobs and invoice revenue from ServiceTitan back to Google Ads: the exact conversion actions, click IDs, enhanced conversions and setup steps.
- Calls, matched to revenueOne Number per Source, One Campaign per Number, One Invoice at the End of the LineHow tracked numbers, ServiceTitan DNI and CallRail tie each call to a campaign, a booked job and its invoice, and what your website has to get right.
- Everything in ServiceTitan IntegrationSee the section
Get a second set of eyes before launch
Send us the staging link and tell us how your ServiceTitan account is set up. We will run the checklist, show you what fails, and fix it or quote the fix.
Which of these sounds like you? (pick any)
Rather talk now? Call (210) 346-0848.