Amplitude + PostHog Funnel Drop Alert: Ship a Teams Message When Conversion Tanks
Get a Teams alert within hours when a key funnel tanks — not three days later when a PM finally opens a dashboard.
The stack in the order it runs — data flows from the source through to where it lands.
Product funnels break silently. A bad deploy, a copy change, a mobile rendering bug — and your signup-to-activation rate drops 20% while the team is heads-down on the next feature. By the time someone opens Amplitude or PostHog and notices, you've lost three days of conversions. This playbook checks your funnel on a schedule and screams when it breaks.
Amplitude and PostHog are paired here because many teams run both: Amplitude for business-facing funnel analysis, PostHog for self-hosted, privacy-safe event capture. The playbook pulls from whichever you use — or both — via their REST APIs. Pipedream wins over n8n here specifically because Amplitude's Chart API requires OAuth token refresh logic that Pipedream handles cleanly through its built-in connected accounts system.
Airtable stores your baseline conversion rates, set manually per funnel and updated monthly. The automation diffs live numbers against this baseline — not against the prior day, which is too noisy for funnels with weekend traffic patterns. Teams delivery is here because this is built for product teams inside companies that standardized on the Microsoft stack.
When NOT to use this: if you're pre-product-market-fit with fewer than 200 events per day, your funnel data is too noisy for threshold alerting — you'll get false positives constantly. If you already have Amplitude's native Slack notifications configured on a chart, this is redundant for that specific funnel. This playbook earns its keep when you have 3+ funnels to monitor in a unified alert format that Amplitude's native alerts can't produce.
The stack (5)
Chat + channels for Microsoft-365 shops.
If the company is on Outlook/365, Teams is where reports get read — push there, not a separate tool.
How it runs
- 1
Define your funnels and baseline rates in Airtable
Create an Airtable table called 'Funnel Baselines' with these fields: Funnel_Name (Single Line Text), Tool (Single Select: Amplitude | PostHog), Chart_ID_or_Query (Long Text), Baseline_Conversion_Rate (Percent), Alert_Threshold_Pct (Number — the % drop that triggers an alert, e.g. 15), Teams_Channel_Webhook (URL), Last_Alert_Sent (Date). Populate one row per funnel you want to monitor. Start with your most critical path — for most SaaS, that's signup → first meaningful action.
- 2
Get your Amplitude Chart API endpoint
In Amplitude, open the funnel chart you want to monitor, click 'More' → 'Get Chart API'. Copy the URL — it looks like 'https://amplitude.com/api/3/chart/CHART_ID/query'. Authenticate with HTTP Basic Auth using your Amplitude API key and secret key. Paste this URL into the Chart_ID_or_Query field in Airtable. Test it in Postman first. The response returns a 'seriesCollapsed' array where index 0 is your top-of-funnel count and the last index is your converted count. Conversion rate = last / first.
- 3
Get your PostHog funnel query endpoint
In PostHog, navigate to Insights → your funnel → click 'API' in the top right. Copy the POST body and endpoint ('https://app.posthog.com/api/projects/YOUR_PROJECT_ID/insights/funnel/'). Authenticate with your PostHog personal API key in the Authorization header. The response 'result' array contains per-step counts — compute conversion as result[last].count / result[0].count. If self-hosting, replace the domain with your instance URL. Store the full POST body JSON in the Chart_ID_or_Query Airtable field.
- 4
Build the Pipedream workflow with a schedule trigger
Create a new Pipedream workflow. Set the trigger to 'Schedule' running every 4 hours (cron: '0 */4 * * *'). In the first code step, use Pipedream's Airtable action to fetch all records from your Funnel Baselines table. Iterate over each row. For Amplitude rows, fire a GET request to the Chart API URL using the stored credentials. For PostHog rows, fire a POST request with the stored query body. Parse the response in each case to extract the current conversion rate.
- 5
Compare against baseline and flag drops
In a subsequent Pipedream code step, for each funnel record compute: drop_pct = ((Baseline_Conversion_Rate - current_rate) / Baseline_Conversion_Rate) * 100. If drop_pct >= Alert_Threshold_Pct, mark that funnel as needing an alert. Also check Last_Alert_Sent — if an alert was sent within the last 8 hours for this funnel, skip it to prevent alert fatigue. Use Pipedream's built-in $.export() to pass flagged funnels to the next step.
- 6
Post the alert card to Microsoft Teams
For each flagged funnel, use Pipedream's HTTP node to POST to the Teams_Channel_Webhook URL stored in Airtable. Format the body as an Adaptive Card JSON payload with these fields: Funnel name, current conversion rate, baseline rate, drop percentage (red-colored if >20%, yellow if 10–20%), and a direct link back to the Amplitude chart or PostHog insight. Adaptive Cards render natively in Teams. Build and test your template in the Adaptive Card Designer at adaptivecards.io before hardcoding it in Pipedream.
- 7
Update Last_Alert_Sent in Airtable after posting
After successfully posting the Teams card, use Pipedream's Airtable 'Update Record' action to write the current timestamp into the Last_Alert_Sent field for that funnel row. This is the deduplication mechanism — without it, a sustained funnel drop will spam your Teams channel every 4 hours. Also increment a hidden 'Alert_Count_This_Month' field so you can audit whether a funnel is chronically degraded vs. having a one-off incident.
- 8
Add a weekly 'all clear' summary
Create a second Pipedream workflow triggered every Monday at 09:00. Pull all Funnel Baselines rows, hit each API, and compute current vs. baseline for every funnel. Post a single Teams card to your #product channel listing all funnels, their current conversion rates, and a green/yellow/red status. This weekly card gives the team a shared baseline reality check independent of whether any alerts fired — leadership especially appreciates this format over raw dashboard links.
Want me to build this for you instead?
Product Audit and CTO Mode run out of this same thinking. If you’re reading this thinking “I want this, but in my product” — let’s talk.
See servicesMore like this
Google Analytics 4 + HubSpot Lifecycle Stage: Weekly Acquisition-Quality Digest to Slack via Pipedream with Claude Narrative
Stop reporting traffic numbers. Report whether the traffic you paid for last week actually became pipeline — with a one-paragraph executive summary written by Claude.
Gmail Thread Aging + Stripe Invoice Overdue: Unified AR Follow-Up Digest to Slack via Zapier
Surface overdue Stripe invoices and the exact age of your last Gmail thread with that customer — every morning at 8:30, automatically — so AR follow-up stops living in someone's head.
Outlook Calendar Load + HubSpot Deal Velocity: Weekly Ops Digest to Microsoft Teams
Every Monday at 07:30, your revenue team gets one Teams card: last week's deal pipeline movement next to each rep's actual meeting load — so you stop guessing whether low close rates are a pipeline problem or a capacity problem.