Lou recovers your failed payments.
Lou recovers failed Stripe payments. When a payment_intent fails, Lou reads the customer's full history — tenure, MRR, prior issues, lifecycle stage — and drafts a contextual recovery email matched to the failure cause. The founder reviews and sends with one click, or sets a configurable auto-send threshold. Every recovery is logged, every email is auditable, every action is explainable.
What Lou does.
Every SaaS loses 5–10% of monthly revenue to failed payments. Stripe's smart retries help, but the email layer — the nudge that gets the customer to update their card — is the part most founders don't have time to do well. Generic dunning emails feel robotic and damage relationships. Manual recovery emails take time the founder doesn't have.
Lou is the back-office agent that handles this. Stripe fires a webhook on payment_intent.payment_failed; Lou pulls the customer's full record, identifies the failure cause (decline code, expired card, insufficient funds, fraud block), and drafts an email that matches the cause and the customer's history. A long-tenure customer gets a different tone than a first-month one. A high-MRR customer gets a different cadence than a $20/mo trial-converted one. The draft lands in the founder's inbox; one click sends.
Lou doesn't replace your judgment. Lou removes the work between knowing a payment failed and a tactful, contextual recovery email going out.
What sets it off, what it reads, what it writes.
- Triggers
- Stripe webhook payment_intent.payment_failed
- Stripe webhook invoice.payment_failed
- Manual /run command from the founder
- Inputs
- Customer record (Stripe)
- MRR and tenure on the platform
- Prior failure history
- Decline code from Stripe
- Lifecycle stage (trial, active, late)
- Outputs
- Drafted recovery email (subject + body)
- Stripe-side dunning event log
- Audit trail entry
- Optional Slack notification
The playbook in plain English.
When Stripe fires a payment_intent.payment_failed webhook, Lou starts by reading the customer's full record — not just the payment that failed, but tenure, MRR, prior support tickets, last-7-days usage, and any past recovery attempts. This is the customer-graph view, and it's why the recovery email reads like the customer matters.
Lou then identifies the failure cause from the Stripe decline code: hard decline (card closed, fraud), soft decline (insufficient funds, temporary), or expired (card update needed). Each has a different tactical response. A hard decline gets a no-pressure “something happened with your card” note with a payment-update link. A soft decline gets a friendly “try again in a few hours” nudge. An expired card gets a clear walkthrough of how to update without canceling the subscription.
The draft lands in the founder's inbox via the porchops dashboard. The founder reviews — most of the time it's just hitting send — or sets up an auto-send threshold (for instance, auto-send for amounts under $500 if the customer has been around for 90+ days and there are no escalations on file).
Every recovery is logged with full context: the email Lou drafted, what the founder edited (if anything), when it sent, whether it succeeded. Six weeks later, that audit trail is what tells you whether your dunning approach is actually working.
The guardrails are yours.
- Auto-send threshold — dollar amount below which Lou sends without founder review (default off; recommended starting point $500 for established customers).
- Customer-tenure threshold — minimum months on the platform before auto-send is allowed (default 3).
- Escalation rules — customers with open support tickets, recent refunds, or specific tags never get auto-sent.
- Daily volume cap — max recovery emails per day (default 25; protects sender reputation).
- Approved domains — which inbound customer domains Lou will draft for (default all).
- Tone profile — the founder's voice samples Lou learns from, so the drafts read like the founder.
What Lou has shipped for porchops.
- $4,200
Recovered for porchops in March 2026 across 9 failed-payment events.
- 312 ms
Average response time from Stripe webhook arrival to drafted email.
- 73%
Founder approval rate without edits. When Travis edits a draft, Lou learns from the diff.
- 0
False-positive recoveries (no email sent when the payment actually succeeded on retry).
Real quotes.
Lou is the agent I'd hire for this job if I had a hire to spare. The recovery emails read like I wrote them. Mostly because Lou learned from the ones I actually did write.
Travis · cofounder, Porchops
Lou on the Revenue Post.
Lou is the lead Op on the Revenue Post. Failed-payment recovery is the wedge Lou owns; expansion-revenue and renewal preparation are Cleo's territory. Together they cover the Revenue Post end-to-end.
Read the revenue canon →Last few times the playbook ran.
- apr 28Pegasus · $487 recovered · approved by Travis · 12 min after webhook
- apr 22Bramble · $2,340 recovered (annual renewal failure) · auto-sent · 3 min after webhook
- apr 18Telos · $90 recovered · approved by Jake · 1.2 hours after webhook (Jake was on a flight)
Common questions about Lou.
How does Lou classify failure causes?
Decline codes from Stripe map to four buckets: expired_card, insufficient_funds, lost_card_or_stolen_card, and generic_decline. Lou drafts different copy for each. The mapping is configurable; defaults are conservative and based on what works for $5K–$500K ARR SaaS recoveries we've seen.
Does Lou retry the payment automatically?
No. Stripe handles retry logic via smart retries; Lou handles the email layer. Stripe and Lou are complementary — you'd use both, not one or the other. Lou's value is the contextual email after the retries have done their job.
What languages does Lou support?
English at MVP. Spanish, French, and German are on the roadmap once we have customer demand. Lou will not invent a language; if a customer's preferred language is unsupported, Lou hands the draft to the founder with a flag.
Can I see exactly what Lou drafted before it sent?
Yes. The audit log shows the original draft, any founder edits, and the final version sent. You can replay any recovery from the dashboard. Every action Lou takes is auditable and explainable — that's a hard rule.
What happens if Lou's draft is rejected?
Founder edits the draft, sends. Lou notes the diff and adjusts subsequent drafts toward the founder's voice. Three to five rejections is usually enough for Lou's drafts to align with the founder's voice closely. The corrections themselves are training for next time.
Does Lou ever send without founder review?
Only if the founder configures an auto-send threshold and the recovery falls within it. Default is off. Even with auto-send on, a copy of every email lands in the founder's inbox. You always see what went out under your name.
What if my Stripe failure rate is unusually high?
Lou flags abnormal patterns and pauses auto-send when failure rate exceeds 2× the trailing 30-day average. The founder gets a notification with the suspected cause (payment-processor outage, mass-card-replacement event, fraud spike) and a recommendation.
Closing
Lou's the agent I'd hire if I could hire one for this. — Travis