Integrations overview
Connect billing, support, survey, and CRM sources to enrich your churn score.
Product usage tells you whether an account is using the software. It can't tell you whether they're paying on time, piling up support tickets, or quietly turning into a detractor on your last survey. Those signals already exist — in Stripe, in your helpdesk, in your CRM — they're just scattered across tools that don't talk to each other.
Integrations pull those signals into ChurnWarn and normalize them into the same metrics your components already read, so your churn score reflects the whole account relationship rather than only the product-usage events your app emits. You could forward any of these yourself through the SDK or HTTP API — integrations just save you from wiring up each external source by hand and keep them in sync for you. A failed payment, a spike in tickets, and a falling NPS all land on the same account and move the same score. Connect them under Settings → Integrations.
Categories
| Category | Providers | Feeds |
|---|---|---|
| Billing | Stripe | Seats, plan changes, failed payments, MRR. |
| Support | Intercom, Zendesk, Freshdesk | Ticket volume, CSAT, escalations, resolution time. |
| Surveys | Delighted, Typeform | NPS, CSAT, sentiment trend. |
| CRM | HubSpot, Salesforce | Renewal date, owner, deal value, lifecycle stage. |
| Data pipes | Segment | Any of the above, routed from your existing Segment source. |
Each category lights up a different part of the score. Billing drives the commercial and growth signals (seat utilization, plan upgrades, MRR tier). Support drives the four support-health signals. Surveys populate the optional NPS / CSAT component. CRM supplies the lifecycle context — renewal date, owner, contract value — that tunes urgency rather than raw engagement.
How it works
Every provider follows the same path, whatever its category:
- Connect a provider with an API key or OAuth from its settings page. There's no SDK to deploy and no engineering work — connecting is a credentials-and-save step you can do from the dashboard.
- Match accounts. ChurnWarn links the provider's customers to your accounts by a shared key — email domain, an external id, or a CRM account id, depending on the provider. Once matched, the provider's signals attach to the right account automatically.
- Normalize signals. Incoming data is mapped to the same canonical metrics your
components read — so a Stripe
plan_upgradedand an SDKplan_upgradedare scored identically, and you never have to rebuild a component per source.
If you pipe support tickets through both Segment and a direct Zendesk connection, you'll double-count and overstate ticket pressure. Pick one path per signal, and let the others cover the gaps they're best at.
Staying in sync
Once connected, a provider keeps itself current through webhooks — most signals land within seconds of happening in the source tool, so a failed payment or a new ticket shows up on the account without you doing anything. You can also press Sync now at any time to pull a fresh batch on demand, which is the fastest way to confirm a connection is working right after you set it up.
Each connected integration shows its last sync time and surfaces the last error if a credential expires or a scope is missing — so a quietly broken connection is visible on the integrations page rather than silently starving a signal.
Before you start
- You'll need admin access to the provider to create an API key or authorize OAuth. Read-only scopes are enough — ChurnWarn never writes back to your tools.
- Have your ChurnWarn project open on Settings → Integrations to paste credentials and run the first sync.
- Decide your matching key in advance (email domain vs. external id vs. CRM id) so accounts line up cleanly on the first sync.
- Each provider page below lists exactly what it pulls, which components it feeds, and a step-by-step setup with a link to the provider's own docs.