Back to Blog

The $0 Churn Guard: Monitoring Customer Health with GitHub Actions

Stop staring at dashboards. Learn how to build a headless, automated churn monitoring system using BigQuery, Python, and GitHub Actions. Practically for free.

Dashboards are where data goes to die.

We spend weeks building beautiful Looker or Tableau dashboards showing "Daily Active Users" or "Churn Risk" but nobody looks at them until the End of Month meeting. By then, the customer is already gone.

If you are a busy founder, Revenue Ops Manager or a GTM Engineer, you don't need a dashboard. You need an alarm.

You could buy a fancy Customer Success Platform (CSP) or a Reverse ETL tool to trigger these alerts. But that costs money and takes weeks to implement. Or, you could build a Headless Churn Guard in about 30 minutes using tools you already have: BigQuery and GitHub Actions.

Here is how I built a "Silent Churn" monitor for $0.

The Signal: Volumetric Churn

First, we need to define what "Risk" looks like.

Most tools track binary churn: "Did they cancel?" (Too late).

Some track dormancy: "Did they stop logging in?" (Still too late).

The best signal is Volumetric Churn. This happens when an account is technically still active, but their usage has collapsed. Maybe they went from 100 events/day to 5 events/day. They haven't cancelled yet, but they have mentally checked out.

In my open-source semantic layer, GrowthCues Core, I calculate this automatically as volume_change_ratio_7d.

  • 1.0: Steady usage.
  • 1.5: Growth (Expansion signal!).
  • 0.3: Danger. Usage dropped by 70% compared to last week.

The Architecture: "DevOps for Sales"

We don't need a server to check this metric. We just need a script to run once a day.
GitHub Actions is perfect for this. It’s essentially a free, cloud-hosted Cron job that loves code.
Here is the setup:

  1. The Brain (BigQuery): Your warehouse holds the fct_account_metrics_daily table with the churn scores.
  2. The Worker (GitHub Actions): A workflow triggers every morning at 8:00 AM UTC.
  3. The Messenger (Slack): A Python script posts a high-priority alert to your #customer-success channel.

The Code

I included the full template in the examples/ folder of the GrowthCues Core repo, but here is the logic in a nutshell.

The Python script connects to BigQuery and runs this query:

SELECT account_id, volume_change_ratio_7d
FROM \`growthcues_core.fct_account_metrics_daily\`
WHERE metric_date \= DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY)
 AND volume_change_ratio_7d \< 0.5 \-- Usage dropped by \>50%
 AND volume_change_ratio_7d \> 0 \-- Filter out already inactive
LIMIT 5

If it finds any accounts, it formats a Slack message payload and fires it off via a webhook.

Why this is better than a SaaS tool

  1. It's close to the metal: You aren't relying on a third-party tool's "Health Score" black box. You are querying your raw data with your definitions.
  2. It's customizable: Want to alert on "Expansion" instead? Just change < 0.5 to > 1.5 in the SQL. Want to email the CEO instead of Slack? Just change the Python function.
  3. It's free: GitHub Actions has a generous free tier (2,000 minutes/month). This script takes 30 seconds to run. You will likely never pay a dime.

How to deploy it

I wanted to make this accessible to anyone with a Segment/Rudderstack setup.

  1. Clone the GrowthCues Core repository.
  2. Navigate to examples/automation/.
  3. Copy the churn_guard.yml workflow into your .github/workflows/ folder.
  4. Add your BigQuery credentials, project id, schema name, and Slack Webhook to the repo secrets.

That's it.

Tomorrow morning, your Sales and Success teams will start getting proactive alerts about accounts that need saving before they even send the cancellation email. This is just one example of how to build "DevOps for Sales" using simple, serverless tools. You can extend this pattern to monitor expansion signals, product adoption, or any other GTM metric that matters to your business.

Build your own Headless Growth Systems and stop flying blind.

Get the Full Script on GitHub and start automating your GTM signals today.

Turn Your Data Warehouse into a Product-Led Growth Engine

Don't just store product usage data. Activate it. Model journeys, predict churn, and trigger automated GTM plays without writing a single line of code.

Get GrowthCues

No credit card required • Setup in minutes • 7-day free trial