Integrations
Connect ServiceTitan to Laddr
Two-way sync of contacts, jobs, and invoices. OAuth-based, no API keys to copy. Most shops are connected and syncing in 10 minutes.
Colin LawlessCo-founder, CTO7 min readUpdated Apr 24, 2026On this page
What syncs
- Customer + location records — synced both ways, with ServiceTitan as system of record by default.
- Job records — created in ServiceTitan from Laddr-booked appointments; status changes flow back to Laddr.
- Invoices and balances — read-only from ServiceTitan into Laddr (so Boost can suppress review requests on unpaid jobs).
- Tag/campaign mapping — Laddr lead sources map to ServiceTitan campaigns one-to-one.
Connect
- Open Settings → Integrations → ServiceTitan.
- Click Connect. You'll be redirected to ServiceTitan's OAuth screen.
- Sign in with a ServiceTitan admin account. The popup must be allowed — check your browser's pop-up blocker if it doesn't open.
- Approve the requested scopes (read + write on customers, jobs, invoices).
- You'll land back in Laddr with a connected status. The first sync runs immediately.
Admin-only
ServiceTitan requires an admin to authorize the OAuth grant. If you don't have admin access, ask your owner — the connection is per-org, not per-user, so they only need to do it once.
Scope what's shared
By default, all customers and jobs sync. You can narrow this:
- By business unit — sync only specific BUs (residential, commercial, plumbing, HVAC).
- By tag — sync only customers with a specific tag (e.g. ServiceTitanReady).
- By date — sync only jobs scheduled in the last N days, not your full historical archive.
{
"businessUnits": ["BU_PLUMBING", "BU_HVAC"],
"customerTagFilter": null,
"jobLookback": "P30D"
}Sync directions
Each entity has a default direction. You can override per-entity in Settings → Integrations → ServiceTitan → Sync rules.
- Customers: ServiceTitan → Laddr (default). Reverse to push Laddr-captured leads in.
- Jobs: Laddr → ServiceTitan when LARA books. ServiceTitan → Laddr for status updates.
- Invoices: ServiceTitan → Laddr only. Read-only for compliance.
- Notes: bidirectional. Watch for noise — most shops disable this.
Conflicts and reconciliation
When the same record exists on both sides with different fields, Laddr defaults to ServiceTitan. You'll see conflicts queued in /admin/integrations under "Pending review." Approve, reject, or merge per record.
Phone numbers
Phone formatting differs across systems. Laddr normalizes to E.164 (+17165550100). If you see duplicates, it's almost always because ServiceTitan stored a number as (716) 555-0100 in one record and 7165550100 in another. Run /admin/integrations → Dedupe to merge.
Disconnect
- Open Settings → Integrations → ServiceTitan.
- Click Disconnect.
- Pick whether to keep synced data (keeps everything frozen as-is) or wipe it (deletes Laddr-only copies).
- Confirm. The OAuth grant is revoked immediately.