Daily Braintree declined-payment recovery digest to Slack

By General Input

Every weekday at 8am, your billing team gets a Slack rundown of yesterday's failed Braintree charges, the revenue at risk, and who to chase first.

Integrations

  • Braintree
  • Slack Bot

Type

Agentic Task

Categories

  • Finance
  • Operations

Every weekday at 8am, run a declined-payment recovery digest so our billing team can chase failed Braintree charges the same morning. This runs on a schedule (cron), Monday through Friday at 8am.

Start with Braintree Search Transactions to pull every transaction created in the last 24 hours whose status is a failure: processor declined, gateway rejected, failed, or authorization expired. Skip anything in test mode, and skip any charge that has already been recovered (for example, a later successful charge to the same customer for the same amount or order). For each qualifying transaction, read the amount, currency, status, and the specific decline or rejection reason.

For each remaining failed transaction, use Braintree Search Customers to look up the customer by their ID or email and pull their name and email address so the billing team knows exactly who to contact. If a customer cannot be matched, still include the charge and note that contact details are missing.

Then build the digest. Total up the revenue at risk across all failed charges (amounts are decimal strings in each transaction's currency, so keep currencies separate if there is more than one). List each affected customer with the amount, the specific decline reason, and a short suggested outreach note tailored to that reason (for example, an expired card reads differently from an insufficient-funds decline). Order the list so the largest recoverable amounts come first.

Post the finished digest to our billing channel with Slack, Send a Message. Lead with the total revenue at risk and the number of affected customers, then the prioritized customer list with amounts, decline reasons, and the suggested notes. Use clear Slack formatting so it is easy to skim on a phone.

If there were no qualifying declined payments in the last 24 hours, post a brief all-clear to the same channel (for example, "No declined Braintree payments in the last 24 hours") instead of staying silent, so the team knows the check ran.

Related prompts

Explore more prompts
A brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasonLiveChat coverage board for planning next week's shiftsPhone routing control panel for LiveKit voice agentsLinkedIn Ads budget pacing dashboard for every client accountGive your team Looker numbers without buying more seatsPause marketing emails to escalated customers, then restore them