Adopt webhook inbox pattern for Stripe events
Status
Status
Status
PARTIAL SUPERSEDE 2026-05-02: the FuneralWiseAI setup amounts proposed here ($949 USD / $1,295 CAD) were revised to $745 USD / $995 CAD in decisions/2026-05-02-vertical-setup-pricing-revision.md. Recurring monthly amounts ($199/$249) are unchanged. The broader CAD-introduction strategy (round per-currency Stripe prices, not FX auto-conversion; geo-IP default; toggle UI) still stands.
Handle subscription cancellation via Stripe CLI — immediate cancellation vs end-of-period, DB access revocation, voice agent deactivation, and the lifecycle email win-back sequence
Coordinated pricing change runbook — update pricing.yaml, run pnpm derive, create new Stripe prices in live mode, update env vars, and verify all downstream targets are consistent
Stripe checkout session creation, payment handling, and post-checkout webhook processing for ChurchWiseAI, PewSearch, and ITW subscriptions
Diagnose and fix a failed Stripe webhook — find the event in Stripe CLI, check Vercel logs for the error, fix the handler, and replay the event safely without duplicates
Status
Supabase Auth login/signup flow for ITW, how premium subscription status gates illustration access, and the Stripe checkout + webhook path that unlocks Premium
End-of-month reconciliation of Stripe revenue against expected MRR — catches failed payments, subscription discrepancies, and DB/Stripe drift before they compound
Verify automated onboarding completed after checkout — check premium_churches record, confirm chatbot/voice provisioning, send magic link, and run manual fallback if webhook failed
Source of truth for all Stripe payment flows. Payment-first principle — no DB writes until checkout.session.completed webhook confirms payment.
Issue a full or partial refund via Stripe CLI in live mode — look up the charge, apply the refund, verify in Stripe, and send the customer a confirmation email
Supabase SQL queries for product metrics — chatbot conversation counts, voice call volume, ITW page views, premium church counts, and cross-property revenue summary
Stripe billing setup across all three products — one account with test and live modes, webhook processing, checkout session flow, and subscription lifecycle management
Decision
Review active subscriptions, current MRR, and subscription health in both Stripe and Supabase to identify at-risk accounts or billing inconsistencies
Summary
How Stripe subscription events (created, updated, deleted, payment_failed) are handled across all three codebases — DB updates, access provisioning, and MailerLite sync
Index of technical ops runbooks — DB migrations, performance, embedding regeneration, error triage, security incidents, Stripe webhook debugging, view refresh, cost audit, backup verification, and running tests
Step-by-step guide to provisioning a new church on the voice agent — church_voice_agents DB row, Twilio number setup, demo church configuration, and what is automated vs manual