InTouch Hub · Blue Isle Software

Stripe Failed Payment Alert

Check Stripe for recent charges and alert on failed payments.

stripepaymentsfinancealerting

Stripe Failed Payment Alert

Check Stripe for recent charges and alert on failed payments.

Use case

Failed card charges are easy to miss until churn shows up in your MRR. This workflow pulls your most recent Stripe charges, filters out the ones that failed, and sends a single digest notification to your team so someone can follow up before the customer silently lapses — kicking off dunning, asking for an updated card, or retrying the charge manually.

What it does each run

  1. fetch_charges (stripe) — calls the Stripe API list_charges operation (most recent 100 charges). The Stripe connector publishes exactly two outputs: result (the raw Stripe JSON response as a string) and status (the HTTP status code). Note: list_charges does not filter by status — it returns all recent charges, paid and failed alike.
  2. summarize_failures (anthropic) — consumes {{fetch_charges.result}} and {{fetch_charges.status}}, keeps only charges whose status is failed (or paid: false), and produces a concise markdown digest (count, amount, customer email, failure reason). Publishes answer.
  3. alert_team (message) — drops {{summarize_failures.answer}} into the notification body and sends it to all subscribers of the intouch user. If nothing failed, the digest says so and you still get a clean-run confirmation.

The workflow is also wired with an error notification: if the Stripe fetch or the AI step fails (bad credential, API outage, rate limit), the intouch user is alerted via alertOnError.

Required credentials / setup

This workflow's apiKey properties are set to the placeholder <set via credential>. Supply the real values at install time via an InTouch credential (recommended) or a runtime environment variable — never hardcode a key in the YAML.

Stripe API key

Provide your Stripe secret API key (sk_live_... or sk_test_...) for the fetch_charges task's apiKey. A read-only restricted key with access to the Charges resource is sufficient and recommended. Stripe authenticates with a secret API key, not OAuth — no browser consent step is required. Generate the key in the Stripe Dashboard under Developers → API keys.

Anthropic API key

Provide an Anthropic API key for the summarize_failures task's apiKey (used by the anthropic tool to filter and summarize the charge list). Get one from the Anthropic Console.

Subscribers

Make sure at least one contact is attached to the intouch user on a channel you watch (email, Slack, Discord, Telegram, etc.) so the alert lands where the team will see it.

Scheduling

Run it on a daily schedule. To check more frequently, schedule it hourly — the workflow always pulls the most recent 100 charges, so a busy account may want a tighter cadence so failures aren't pushed out of the window.