How a phone number becomes a TPS/CTPS verdict.
Pick the native integration for your CRM, or call the API from your own stack. Configure once, then every phone number gets a UK TPS and CTPS verdict written back in real time.
1. Connect
Install the marketplace app for your CRM, or create an API key for Zapier or any other system (self-serve, in minutes). The native apps request the scopes they need (contacts, companies, leads, accounts, plus the automation surface) and create the
tps_statusproperty and supporting fields on the right objects. The API route works the same way: send us a number, get a verdict.2. Configure
Pick which phone fields to screen, how often, and how you want the verdict to behave. Single combined status or separate TPS and CTPS verdicts. Hide listed numbers from your reps, or just flag them for review. Nightly re-check on or off. UK-only or handle international numbers as out-of-scope. Save once.
3. Run
Real-time on change: when a phone number is added or modified, TPSClear catches the webhook, normalises the number, queries the TPS and CTPS registers, and writes the verdict back to the record. An optional nightly re-check covers any number last checked 27 or more days ago, so each number is re-checked inside the 28 days the law gives a new registration before it applies, with a day allowed for the register's daily update. Where the CRM supports it, a native workflow action lets you trigger screening explicitly inside any automation.
The full walkthrough
Architecture in one diagram
The whole loop, end to end. Same shape for every integration. Whichever CRM you use, or whether you call the API directly, the flow between TPSClear and the UK TPS/CTPS data sources is the same.
The verdicts
TPSClear writes one of these values to tps_status on the record:
- Not a valid UK number Empty, non-UK, or unparseable; fix the record before dialling.
- Unknown (check failed) A register lookup could not be completed; re-screened automatically, never assumed Clean.
- Clear Number is valid UK and not on TPS or CTPS.
- TPS-listed Number sits on the personal TPS register. Unsolicited marketing calls are unlawful unless the contact has given specific consent.
- CTPS-listed Number sits on the corporate CTPS register. Same rules apply for B2B unsolicited calls.
Need raw fields for reporting? You also get tps_listed, ctps_listed, and tps_screened_at as separate properties on every integration.
What works on which CRM
Every integration ships with the same screening engine and the same verdicts. The differences are in how each CRM lets us hook into record changes and automation.
| CRM | Real-time re-screen | Nightly re-check | Native automation | Auto-create fields | Marketplace |
|---|---|---|---|---|---|
| HubSpot | Yeswebhook | Yesoptional, numbers last checked 27 or more days ago | Yesworkflow action | Yes | Live |
| Salesforce | Via a record-triggered Flow you build | No | YesFlow action | Yesmanaged package | In build |
| Dynamics 365 | YesPower Automate | Planned | YesPower Automate action | Yessolution package | In build |
| Pipedrive | Yeswebhook | Yesoptional, paid plans | Via Pipedrive Automations | Yes | In build |
| Zoho CRM | YesZoho notifications | Yesoptional, paid plans | YesDeluge custom function | Yes | In build |
| Capsule | Yeswebhook | Planned | Via API | Yes | In build |
| Direct API | You call us on change | You schedule the re-check | Up to you | Not applicable | API only |
Or just use the API
If your CRM is not on the list, or you want to screen numbers from a custom system, a call centre dialler, a marketing automation tool, or a data warehouse, the TPSClear API does the same job in one HTTPS call.
curl -X POST https://api.tpsclear.co.uk/v1/screen \
-H "Authorization: Bearer $TPSCLEAR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"phoneNumbers": ["+447700900123"]}'
# response
{
"results": [
{
"phoneNumber": "+447700900123",
"tpsListed": false,
"ctpsListed": false,
"status": "clean",
"checkedAt": "2026-05-08T09:00:00Z"
}
]
}Bulk endpoint, webhooks for re-screen events, and rate limits are all documented on the developer page.
Call from HubSpot with a built-in gate
TPSClear can also act as a calling provider inside HubSpot. When a rep clicks the call button, the TPSClear Gate opens next to the record, screens that number against TPS and CTPS at that exact moment, and shows a hard DO NOT CALL before anyone dials. Callable numbers get a click-to-call link on the rep's own phone or headset, and the call is logged back to the record; no separate dialler required.
The Gate is in beta while it goes through HubSpot certification. If you want early access, get in touch.
Guides on TPS screening in practice
Cold calling software: diallers, data, CRM and where TPS screening fits
What each kind of cold calling tool does, what it costs at published October 2026 prices, which dialler settings carry legal rules, and why the register check runs on the CRM record before a number reaches the dialler.
TPS and CTPS suppression explained: screening, suppression lists and your own opt-outs
Screening is the TPS and CTPS lookup; suppression is acting on it. Your own opt-out list beats consent and the registers, with no 28-day grace.
HLR lookups explained: how mobile number checks work, and which results to trust
How an HLR lookup works, what it returns, how telemarketers use it to find dead numbers, which answers to trust, the pitfalls, and how the TPSClear dead number check uses it in HubSpot and the API.
TPS screening in Zapier: screen a number before every call
A worked Zapier setup for teams whose CRM has no native TPS app: trigger, screen, write-back, plus the opt-out suppression Zap and a daily re-screen of older records, on prepaid checks from £9.
TPS register API: what's available and how to use it
TPS isn't a live API; it's a daily file. What that means for vendors, how list cleaners actually work, and what a sensible developer API over TPS/CTPS looks like.
Ready to try it?
Get screening running on your records, or build against the API.