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.
Field-service CRM covering jobs, customers, invoices and estimates. A FieldPulse job carries no money and no customer of its own — revenue lives on the invoice and contact details live on the customer record — so PPC TNT assembles one complete job from all three resources. Monetary values are read in dollars, exactly as FieldPulse reports them.
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.
Syncs closed-won deals and contact phone numbers via OAuth, across any Zoho data center. Any deal stage whose name contains “won” counts as revenue, so your custom pipeline names still work.
ZohoCRM.modules.READ, then exchange it for a refresh token. The refresh token does not expire; PPC TNT mints a fresh access token on every sync.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.
PPC TNT's own dynamic-number-insertion (DNI) call tracking — an alternative to CallRail that ties inbound calls to the Google click that drove them and pushes qualifying calls to Google Ads as offline conversions. Configured under Vendors → Call Tracking. Full walkthrough in the Call Tracking & Attribution guide.
A call source for built-in call tracking rather than a CRM. PPC TNT pulls a Five9 report on a schedule, and the disposition your agents set decides which calls convert. Configured per tracking pool, so different campaigns can qualify on different dispositions. See the Five9 integration page.
Workflow & AI Integrations
Add PPC TNT to Claude, ChatGPT or any MCP client as a custom connector and ask about every client account at once. Sixteen tools, scoped to exactly the accounts you can already see. Setup is one URL — no client id, no secret. Full walkthrough in the AI Connector guide.
https://betterads-production.up.railway.app/mcp and leave the OAuth fields blank.read for every reporting tool, and optionally comment:tasks to let your AI comment on your task board. Uncheck the second for a strictly read-only connector.Optional. PPC TNT's AI features run on our platform AI by default; connect your own key on the AI vendor card and every AI feature will run on that instead. Your Business Profile is passed as context either way, so switching models changes which model reads your account — not what it knows about it.
| Provider | Text AI | Ad agents | Image input | Ad creative | Default model |
|---|---|---|---|---|---|
| Anthropic (Claude) | ✓ | ✓ | ✓ | — | Claude default |
| OpenAI (ChatGPT) | ✓ | ✓ | ✓ | ✓ | gpt-5 |
| xAI (Grok) | ✓ | ✓ | ✓ | ✓ | grok-4 |
| Google (Gemini) | ✓ | ✓ | ✓ | ✓ | gemini-2.5-pro |
| Mistral AI | ✓ | ✓ | ✓ | — | mistral-large-latest |
| DeepSeek | ✓ | ✓ | — | — | deepseek-chat |
| Groq | ✓ | ✓ | ✓ | — | llama-3.3-70b-versatile |
| OpenRouter | ✓ | ✓ | ✓ | — | your chosen slug |
Ad creative — generating new ad images in the Meta Ads Agent — is the only capability that isn't universal, because not every vendor exposes an image API. Everything else works on every provider. Full comparison on the AI Insights page.
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?
Five categories: CRM systems (Housecall Pro, ServiceTitan, Jobber, FieldPulse, Zoho, QuickBooks, Stripe, HubSpot, GoHighLevel, FareHarbor) for call and revenue data; Ad platforms (Google Ads, Meta Ads, Rumble Ads) for spend data; Call tracking (CallRail, or PPC TNT's built-in DNI tracking with Five9 / duration / manual call sources) for inbound call attribution and Google Ads conversion sync; Ecommerce (Shopify) for order and revenue data; and Workflow & AI (the AI connector, and your own key from any supported AI provider).
What's the difference between the Five9 integration and CallRail?
CallRail is a call-tracking vendor — it owns the numbers and reports the calls. Five9 is a call source for PPC TNT's own tracking: PPC TNT hands out the numbers, and Five9 tells it how each call was dispositioned. So Five9 answers "was this a real lead?", while CallRail answers "did a call happen?".
Can I connect Google Ads once for the whole agency?
Yes. Connect Google Ads at the agency (MCC) level under Agency → Integrations, then pick which account each client uses from a dropdown on that client's card — no separate OAuth per workspace. For clients outside your MCC, “Connect a different Google account” still does a per-workspace connection.
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.