ServiceTitan is the enterprise platform in our migration list. Conduit pulls 6 data types: customers, jobs, invoices, estimates, technicians, and pricebook items. Authentication uses an OAuth-style “Connect Account” flow handled through ServiceTitan’s official API gateway.
This guide walks the full migration: connecting, what transfers, gotchas specific to ServiceTitan’s data model, and what to verify after.
01Pre-requisites
ServiceTitan migrations have a few prerequisites that don’t apply to other platforms:
- Active ServiceTitan API access. Your ServiceTitan account needs to be on a tier that includes API access. If you’re on the smallest plan, you may need to contact ServiceTitan support to enable it.
- An admin role in ServiceTitan. The OAuth handoff requires admin-level permissions to authorize Conduit’s read access.
- Tenant ID. Conduit asks for your ServiceTitan tenant ID during the connect step. You can find it in your ServiceTitan URL (the subdomain) or in Settings → Integrations.
If any of these aren’t in place, the wizard will prompt you with the specific blocker. Most fixes are 5-10 minutes; getting API access enabled can take a day or two.
02Connect to ServiceTitan
- Open Conduit’s migration wizard at Settings → Import Data → Import from Another Tool.
- Click the ServiceTitan tile.
- Click Connect Account. A new window opens to ServiceTitan.
- Sign in with your ServiceTitan admin account.
- ServiceTitan asks you to authorize Conduit’s read access. Confirm.
- Enter your ServiceTitan tenant ID when Conduit prompts (if not auto-detected).
- The popup closes. Conduit’s wizard advances to Pull Data.
03What transfers
Conduit pulls 6 data types from ServiceTitan:
- Customers. Names, contact info, addresses, customer type (residential/commercial), tags, lifetime value notes.
- Locations. ServiceTitan’s “Location” model attaches to customers. Each location becomes either the primary address or a secondary record on the customer.
- Jobs. Work orders, scheduled date and time, technician assignment (mapped by email if your Conduit team includes the same emails), status, type.
- Invoices. Line items, totals, payment status, customer link, issue date.
- Estimates. Imported as Conduit bids.
- Pricebook items. Service codes, descriptions, units, list price. Cost is pulled when ServiceTitan exposes it.
Each record gets a servicetitan_external_id for re-import idempotency.
04What doesn’t transfer
ServiceTitan is the most feature-rich source, so the most things don’t transfer one-to-one:
- Membership/recurring service plans. ServiceTitan’s membership model (annual contracts, scheduled visits) flattens. Recreate as Conduit recurring schedules.
- Dispatch board state. Your dispatch board doesn’t transfer; recreate scheduling in Conduit’s calendar.
- Inventory tracking. ServiceTitan’s truck inventory and warehouse data don’t transfer. Conduit handles inventory differently (committed cost on POs).
- Custom forms. ServiceTitan supports per-job custom forms. These don’t have a Conduit equivalent.
- Marketing campaign data. Lead source transfers as a tag on the customer; campaign analytics don’t.
- Call recordings, audit logs. Operational data, not data records, doesn’t transfer.
05After import
ServiceTitan migrations need extra verification because of the volume:
- Run a customer count check. ServiceTitan total customers should match Conduit’s count (within a few because of duplicate-detection logic).
- Check 10 random customers. Verify name, address, lifetime spend roughly matches.
- Verify invoice totals. Pick three large customers; their lifetime invoice totals should match.
- Reconnect Stripe in Settings → Payments.
- Re-create memberships. Anything you sold as an annual or recurring plan needs a Conduit Recurring Schedule.
- Update technicians. Email addresses on your Conduit team should match the email addresses on ServiceTitan technicians for job assignment to flow through.
Run both systems in parallel for at least a week before deactivating ServiceTitan. The volume makes it especially worth verifying.