Skip to main content

Setup Guide: ServiceTitan

How to connect ServiceTitan to LettrLabs (verified against a real walkthrough) and trigger mail from job/membership data.

A
Written by Adam Rutkowski

ServiceTitan is field-service management software used by home service contractors (HVAC, plumbing, electrical, roofing, and similar trades) to schedule jobs, dispatch technicians, and manage memberships and recurring service plans. Connecting ServiceTitan to LettrLabs lets you automatically mail customers based on what's happening in their ServiceTitan account — a completed job, a sold membership, an overdue invoice — without manually building mailing lists.

Unlike some LettrLabs integrations, connecting ServiceTitan does not send you through a "Login with ServiceTitan" consent screen inside LettrLabs. Instead, you install a pre-built LettrLabs app from inside ServiceTitan's own API Application Access area, generate credentials from that app, then enter them into LettrLabs. This guide covers both halves of that process.

Before you start

  • Admin access to your ServiceTitan account, with permission to manage API Application Access (found under the gear/Settings icon).

  • A LettrLabs card template you want to send, or plan to create one during automation setup.

Step 1: Navigate to API Application Access in ServiceTitan

  1. Log in to your ServiceTitan account.

  2. Click the gear/Settings icon in the upper-right corner.

  3. Go to Integrations > API Application Access.

Step 2: Install the LettrLabs app

  1. Click Connect New App.

  2. In the popup, search for LettrLabs.

  3. Select LettrLabs and click Install.

If LettrLabs doesn't appear in the search: confirm your Tenant ID is correct, make sure any settings were saved, and refresh the browser.

Step 3: Confirm app access

Once installed, LettrLabs appears in your API Application Access list. Make sure the Enable Access toggle is turned on.

Step 4: Generate and copy your keys

  1. Click LettrLabs in the list to open its Application Details.

  2. Copy the Client ID.

  3. Copy the Client Secret (click Generate first if you haven't already — treat it like a password).

  4. Copy the Allowed "tenant" value — this is your Tenant ID.

Step 5: Paste your keys into LettrLabs

  1. Go to app.lettrlabs.com and navigate to Settings > Integrations > ServiceTitan (or Automations > Manage Integrations > ServiceTitan if you're starting your first connection from there).

  2. In the "Create new Connection" popup, paste the Tenant ID (the Allowed "tenant" value from Step 4), Client ID, and Client Secret.

  3. Click Connect.

Step 6: Verify your connection

  • Back in ServiceTitan's API Application Access list, confirm LettrLabs shows as Enabled and connected.

  • In LettrLabs, the ServiceTitan integration should now show as Connected.

Note: if the connection fails, LettrLabs will tell you specifically what went wrong — either the credentials were rejected (double-check the Client ID/Client Secret/Tenant ID and that the app is Enabled in ServiceTitan), or the connection succeeded but one or more required API areas couldn't be reached. Leads access is one optional area — if it isn't available on your ServiceTitan plan, LettrLabs connects anyway and simply skips Leads data.

Step 7: What happens right after connecting

As soon as your account connects, LettrLabs kicks off an initial full-history import of your ServiceTitan data — customers, jobs, estimates, invoices, memberships, recurring services, appointments, and related records. Depending on how much history is in your ServiceTitan account, this initial import can take a while to fully populate. After that, LettrLabs checks for new and updated ServiceTitan data automatically every day — there's nothing further you need to do to keep your data current.

Step 8: Build your first ServiceTitan automation

  1. Start a New Automation, choose your connected ServiceTitan account, and give the automation a name you'll recognize later.

  2. Choose an action:

    • Mail to Recipients — mail the actual ServiceTitan customer/contact who matches your conditions.

    • Mail to Recipients around an Address (Radius Mail) — instead of mailing only the matching customer, also mail a batch of nearby neighbors around that customer's most recent job/service address (useful for neighborhood-style prospecting off a completed job). If you choose this, you'll also set recipients-per-address, property type, and homeowner/renter filters.

  3. Under "Find me customers where…", build the conditions that decide who gets mailed. Conditions are pulled from your ServiceTitan job, estimate, invoice, location, membership, and recurring-service data — for example a job's status, type, completion date, or total value; whether a customer has an active membership of a given type; or whether an invoice is unpaid. Conditions can be grouped with AND (every condition in the group must match) or OR (any one condition in the group is enough).

  4. Alternatively, start from a ready-made preset instead of building filters from scratch (see the Best Practices article below for what each preset does).

  5. Choose a card template, postage type, and any coupon/discount code list, then set a sending cadence and review before saving.

How the trigger actually works

There's no instant, real-time "job completed" push notification driving a mailing the moment a technician closes out a job. Instead:

  • LettrLabs imports your ServiceTitan data on a recurring daily schedule.

  • Separately, once a day, LettrLabs evaluates every active ServiceTitan automation's conditions against your latest imported data.

  • Customers who match are address-verified and checked against duplicate/do-not-mail rules, then queued into a mail order for your chosen template and cadence.

Because both the data import and the automation check run on a daily schedule rather than instantly, expect roughly a one-to-two day gap between something happening in ServiceTitan (a job marked completed, a membership sold) and a card being queued for mail — plan your conditions (for example, "job completed 30+ days ago") with that lag in mind.

Disconnecting ServiceTitan

  1. Open Automations > Manage Integrations and find your connected ServiceTitan account.

  2. Choose Revoke and confirm.

  3. This removes LettrLabs' access on the LettrLabs side and clears out the imported ServiceTitan data associated with that connection. Automations built against it will no longer run until you reconnect and rebuild the connection.

Did this answer your question?