Skip to main content

ServiceTitan integration: review requests after every completed job

Connect ServiceTitan and ask every customer for a Google review when a job is completed, with the credit going to the technicians on the job.

A
Written by Axel Lavergne

Get Google reviews from ServiceTitan jobs without asking by hand. When a job is marked Completed in ServiceTitan, Reviewflowz sends that customer a review request by email, SMS or WhatsApp, and credits the review that comes back to the technician who did the work. See the ServiceTitan integration.

How it works

  1. A technician closes a job and it reaches Completed.

  2. Within about 15 minutes, the customer becomes a contact in Reviewflowz with the job number, business unit and technician.

  3. The request goes out after your delay, on the channel you chose.

  4. Their review is matched to the job and credited to each technician on it.

What triggers a request

ServiceTitan event

When it fires

What comes across

A job is completed

Checked every 15 minutes (ServiceTitan offers no webhooks to new apps)

Customer name, email, mobile or phone, job number, job type, business unit, service location and technicians

Scheduled, Dispatched, In Progress, Hold and Canceled never send. A job canceled after completion drops out of matching. A customer is asked once, even after a second job. On connect we import 90 days of completed jobs, so your technicians get credit for reviews you already have. None of those customers is messaged.

ServiceTitan settings in Reviewflowz showing the completed-job trigger

ServiceTitan sync status in Reviewflowz

Connect ServiceTitan

You collect four values in three places. The user doing this needs the Generate API Application Key and Manage API Application Access permissions in ServiceTitan.

1. Tenant ID. In ServiceTitan, click the Settings gear, search Integrations and open API Application Access. Copy the Tenant ID at the top right.

2. Application Key. At developer.servicetitan.io, choose Sign In as Production Environment User. The Integration Environment buttons lead to a sandbox that can't see your jobs. In My Apps, click Register New App. Developer Details describe us, not you: enter Organization Name Reviewflowz, website https://www.reviewflowz.com (with the https://) and email [email protected], then click Generate next to the External Data Application GUID. Under Tenant APIs, add your Tenant ID and click Add API Scopes, then tick Jobs, Customers, Locations, Appointment Assignments and Business Units. Read access is enough. Save, then copy the Application Key from the pencil icon on the app's row.

The ServiceTitan developer portal sign-in screen

The Register New App form in the ServiceTitan developer portal

The Tenant APIs section with the Add API Scopes button

3. Client ID and Client Secret. Back in API Application Access, click Connect New App, select your app, click Connect and approve the scopes. The Allowed "tenant" value on the app's page should match your Tenant ID. Then, in the developer portal's My Apps, click the chain-link icon (App Connections). Copy the Client ID, click Generate and copy the Client Secret straight away, because it's shown once.

API Application Access in ServiceTitan

The Connect New App picker in ServiceTitan

Application details showing the allowed tenant value and granted scopes

The App Connections icon on the app's row in My Apps

App Connections with the Client ID and the Generate button

4. Reviewflowz. Open Integrations, then Automate review requests, and click the ServiceTitan card. In Connect ServiceTitan, paste the Client ID, Client Secret and Tenant ID, and the Application Key into App Key (optional). Despite the label, you need it. Click Connect ServiceTitan.

ServiceTitan card in the Reviewflowz integrations directory

Connect ServiceTitan window in Reviewflowz with empty fields

A failed connection says which value is wrong: "ServiceTitan rejected those credentials" means the Client ID or Secret, and "Those credentials work, but that Tenant ID does not" means the Tenant ID. Once connected, you land in a draft request called "ServiceTitan review requests", set to email.

ServiceTitan connection details in Reviewflowz

Link your business units to locations

Under Locations, Match locations by decides which of your locations a job belongs to, and so which location's review pages the request points to.

  • Business unit, when your business units are branches. Link each one, so Denver HVAC Service and Denver Plumbing go to Ridgeline Comfort Denver.

  • Customer address, when they're trade lines. We take the location nearest the customer, within 80 km.

Set Fall back to as well. A unit left Not linked, like Commercial Service here, isn't ignored. Its jobs go to the nearest location by address, then to the fallback. Click Refresh list after adding a business unit.

ServiceTitan business units linked to Reviewflowz locations

Set up the request

  • When. Ridgeline Comfort emails an hour after the job closes, while the visit is fresh, then follows up 2 days later with "Still happy with the work, {{first_name}}?". Options run from as soon as possible to 7 days, up to 3 messages, and the follow-ups stop once a customer clicks, reviews or unsubscribes.

  • Channel. Email, SMS or WhatsApp, one per request, from the customer's details in ServiceTitan. Customers missing that channel are skipped.

  • Message. Set the From name ("Ridgeline Comfort"), the subject ("How did we do today, {{first_name}}?"), the body and the button text ("Review your visit"). SMS counts 160 characters, link included. WhatsApp uses an approved template. Try Send myself a test.

  • Direct reviews to. Smart routing sends one button and picks the site per customer, here Google toward a 4.8 rating and Yelp for as many reviews as possible. Show all options on the email gives every site its own button, on email only.

Email editor for the review request sent after a completed job

Follow-up reminder email editor

Review routing options with Google and Yelp objectives

Review request email a customer receives after a completed job

Turn it on

Open the request and click Turn requests on. Only jobs completed after you connected are ever messaged. Jobs completed while requests are off are never sent one, even after you turn requests on.

Requests page listing ServiceTitan customers with their review request status

See what it brings back

The Requests page counts Contacts, Requests, Clicked CTA, Matched and Stopped. When Erin Quinlan reviews the visit, the review card credits Luis Ortega, the technician on the job. A job with two technicians credits both. The Team Attribution Leaderboard under Reports > Dashboard ranks your technicians by reviews, and the CRM Integration widget on the same Dashboard tracks requests, clicks and matches.

Customer review credited to the technician from the ServiceTitan job

Leaderboard of reviews credited to each technician

Dashboard widget showing ServiceTitan review requests, clicks and matched reviews

Good to know

  • ServiceTitan is part of the Premium plan, from $70 per location per month.

  • Only the teammate who connected ServiceTitan can change its settings.

  • Each ServiceTitan company (tenant) needs its own connection. ServiceTitan restricts a customer app to one tenant, so for a second one, email [email protected] with your App ID or register a second app from a ServiceTitan user on that second company.

  • Regenerated the Client Secret? Syncing stops. Disconnect, then connect again with the new secret.

  • Nothing is written back to ServiceTitan.

  • Disconnecting keeps your contacts, orders and requests. Jobs completed while disconnected are never messaged.

Related

Did this answer your question?