How integrations work
Each integration uses an API key or OAuth token to securely connect PPC TNT to your external tools. Once connected, clicking Sync Now on the dashboard triggers a data pull from all active integrations, aggregating the results into monthly rows on your dashboard.
Minimum for a working dashboard: Connect one CRM or revenue source (for call and revenue data) and one ad platform (for spend data). With just these two, you will have all the columns needed to see your P&L and closing rate.
CRM Integrations
Syncs completed jobs and revenue. Best for plumbers, HVAC, electricians, and other field service businesses already using Housecall Pro as their primary job management tool.
Enterprise-grade sync for larger service businesses. Pulls jobs, revenue, and customer data from your ServiceTitan account.
Syncs jobs and revenue from Jobber. Good for smaller field service businesses that use Jobber for scheduling and invoicing.
Pulls paid invoices directly from QuickBooks Online. Useful if your field service software doesn't have a direct integration but you invoice through QuickBooks.
Syncs payments and customer phone numbers from Stripe. Ideal if you process payments through Stripe directly (common for service businesses with card-on-file setups).
Syncs closed-won deals and contact phone numbers. Best for businesses that use HubSpot as a CRM for tracking leads through a sales pipeline.
Syncs won opportunities and contact phone numbers from GoHighLevel. Common for agencies managing client accounts inside GoHighLevel sub-locations.
Ad Platform Integrations
Pulls daily ad spend automatically via the Google Ads API. This is the most important integration for local service businesses — without it, the spend column of your dashboard will be empty and P&L cannot be calculated.
Pulls daily Facebook and Instagram ad spend. Connect this if you run Meta campaigns alongside Google Ads so all your spend is tracked in one place.
Pulls daily Rumble advertising spend. Connect this if you run video or display campaigns on the Rumble platform.
Call Tracking Integrations
Syncs inbound call data so the dashboard can show Total Calls per month. This is the primary source for call volume if your CRM doesn't track raw inbound call counts accurately.
Ecommerce Integrations
Syncs orders and revenue from your Shopify store. Enables Ecommerce Mode on the dashboard — showing Orders, Revenue, Ad Spend, P&L, and ROAS instead of the service business call funnel.
Security: how credentials are stored
All API keys and tokens are encrypted at rest before being stored. They are never displayed in plain text after you save them. The input fields use password masking so they are not visible on screen.
- Never share these credentials — anyone with your CRM API key has read access to your business data.
- Rotate keys if compromised — if you believe a credential was exposed, regenerate it in the source platform and update it in PPC TNT.
- Use minimum required scopes — when creating API credentials, only grant the permissions the integration actually needs (read-only where available).
Google Ads API note: The Google Ads API requires applying for access at Google Ads → Tools → API Center before a developer token is issued. Basic access (sufficient for PPC TNT) is typically approved within 1–2 business days. You also need to enable the Google Ads API in your Google Cloud Console project.
Troubleshooting connections
| Problem | Fix |
|---|---|
| Sync shows no data after connecting | Re-enter the credentials — a common cause is copying an extra space before or after the key. Save again and re-sync. |
| Google Ads shows zero spend | Verify the Customer ID has no dashes. Confirm the Developer Token is approved (not pending). Check the refresh token hasn't expired by regenerating it. |
| Housecall Pro / Jobber shows no jobs | Make sure jobs are marked as 'Completed' in the CRM — in-progress or cancelled jobs are not included. |
| Shopify sync shows no orders | Confirm the Admin API Access Token has the read_orders scope. Re-install the custom app if necessary. |
| GoHighLevel shows wrong data | Make sure the API Key is from the sub-account (location level), not the agency level. They look similar but pull different data. |
| CallRail shows zero calls | Verify your Account ID is correct (not the Company ID). Check that your CallRail tracking numbers are active and receiving calls. |
FAQ
What integrations does PPC TNT support?
PPC TNT supports four categories: CRM systems (Housecall Pro, ServiceTitan, Jobber, QuickBooks, Stripe, HubSpot, GoHighLevel) for call and revenue data; Ad platforms (Google Ads, Meta Ads, Rumble Ads) for spend data; Call tracking (CallRail) for inbound call attribution; and Ecommerce (Shopify) for order and revenue data.
Do I need all integrations connected?
No. You need at minimum one CRM or revenue source and one ad platform. The more integrations you connect, the more complete your dashboard data will be.
Where do I find my Housecall Pro API key?
Housecall Pro → Settings → Integrations → API Key. Copy the key shown there.
Where do I find my Google Ads customer ID?
Your Google Ads Customer ID is the 10-digit number in the top-right of your Google Ads account (format: 123-456-7890). Enter it without dashes. You also need an OAuth Client ID and Secret from Google Cloud Console, a Refresh Token from the OAuth Playground, and a Developer Token from Google Ads Tools → API Center.
Is my API key data stored securely?
Yes. All API keys and credentials are encrypted at rest using AES-256 encryption before being stored. They are never displayed in plain text after saving and are only used server-side to pull your data.
Can I connect multiple ad accounts?
Currently one ad account per platform per workspace. If you manage multiple Google Ads accounts, connect the one that contains the campaigns for this workspace. Agency users can create separate workspaces for each client, each with their own integration credentials.