CancelIntel

Know what almost made them cancel.

One script tag. One question at the moment of churn. Every answer in your dashboard — in the customer's own words, while they still remember why.

Start 7-day trial

That button runs the real widget — the same one your customers would see.

Three steps, about four minutes

  1. 1

    Paste the snippet

    One async script tag in your app. Under 8 KB, no dependencies, no cookies.

  2. 2

    Tag your cancel button

    Add data-cancelintel-trigger. We ask the question, then let the cancel carry on.

  3. 3

    Read the answers

    One feed with timestamps and the page each answer came from. Export CSV any time.

<script src="https://cancelintel.dietsoda.dev/embed/k/YOUR_KEY/widget.js" data-cancelintel async></script>

<button data-cancelintel-trigger>Cancel subscription</button>

One plan. No free tier to outgrow.

Pro

$19 /month

Free for 7 days. No card to start.

  • Up to 3 cancel surveys
  • 2,000 answers a month
  • CSV export of every answer
  • Domain allowlist so nobody else can post answers
  • No CancelIntel badge on your widget
Start 7-day trial

Questions

Will this slow my page down?
No. The script is under 8 KB, loads async, and renders nothing until someone clicks cancel. It never blocks your page.
Does it work with my stack?
If your cancel flow is HTML, yes. React, Rails, Django, Webflow, plain HTML — one script tag and one attribute. The widget renders inside a shadow root, so your CSS and ours can't fight.
What about GDPR?
No cookies, no tracking pixels, no fingerprinting. We store the answer text, the page it came from, and the submitting IP for rate limiting. We never ask your customer for a name or an email.
Does it stop my customer cancelling?
Never. The question appears once, they can skip it, and the cancel then continues exactly as it would have. If our backend is down, the widget gets out of the way.