Send a Slack alert when a PayWhirl charge fails
When PayWhirl declines a payment on an invoice, this workflow posts an alert to a Slack channel so whoever handles billing can contact the customer about it.
PayWhirl
Slack2 steps Setup ~5 min Used on 2.0k sites Free to import

What this workflow does
A declined payment in a subscription business is easy to miss. PayWhirl records it, but unless someone is watching the dashboard, the customer may not hear from you until their subscription is at risk. This workflow puts each failed charge in front of your team in Slack.
The PayWhirl Charge Failed trigger fires when an invoice payment is declined for any reason. Payments held for review don't count as failed, so they don't start a run. FlowMattic passes the charge data to Slack, where Send Channel Message posts the alert to a channel. You write the text and add values from the failed charge, such as the customer and amount you see in a test run.
Each declined payment posts one message, including repeat attempts on the same invoice if PayWhirl reports each one as failed. The workflow doesn't contact the customer or retry the payment; it only tells your team. For a private finance channel, switch to Slack's Send Private Channel Message action.
Billing channel for a subscription box
Each declined renewal shows up in #billing, and the person on duty emails the customer to update their card before the next shipment.
Small team without a finance role
A founder who handles payments alongside other work sees declined charges in Slack, where they already spend the day, instead of checking PayWhirl.
Spotting a pattern of declines
Several failed charges appearing in the channel within a short time is a sign to check your payment gateway connection.
How this workflow runs
What happens at each step once the workflow is on, and what you need before you import it.
PayWhirl Charge FailedFires when PayWhirl declines an invoice payment for any reason. Payments held for review are not included. The charge details are passed to the Slack step for mapping.
Slack Send Channel MessagePosts the failed-charge alert to a Slack #channel. Write the message and insert details from the PayWhirl charge, then send a test to check how it reads.
What you need
- FlowMatticCore
- PayWhirl AccountAccount
- Slack AccountAccount
After importing, map your own data. To keep the template universal, not every step is pre-filled. Open each step in the builder and connect your accounts and fields (channels, lists, sheets, recipients) before you switch the workflow on.
Make it yours
Changes worth making after you import it.
- Swap in Slack's Send Private Channel Message action if your billing channel is private, since Send Channel Message isn't meant for private channels.
- Add a Filter after the trigger on the charge amount if your team only wants alerts above a certain value. Amounts compare as whole numbers, so 19.99 counts as 19.
- Add a Google Sheets Add New Row step after the Slack message to keep a log of declined charges you can review each month.
Questions about this workflow
Does this workflow retry the failed PayWhirl charge?
No. It only posts a message in Slack. Retrying the payment or contacting the customer is left to your team or to PayWhirl's own settings.
Are PayWhirl payments held for review reported as failed?
No. The Charge Failed trigger covers declined invoice payments, not those held for review, so held payments don't send an alert.
Will I get a Slack alert for every declined attempt on the same invoice?
Each time PayWhirl reports a declined payment, the workflow runs once, so repeated declines on one invoice can give several messages.
What Slack setup do PayWhirl failed-charge alerts need?
You connect your Slack account to FlowMattic when you set up the Send Channel Message step after import. The connection is what posts the message.
More Notifications & Alerts workflows
Other ready-to-import templates from the same category.
Import this workflow into your WordPress site
Download the JSON, import it from the Workflows screen and connect your accounts. Every run stays on your server, with no per-task fees.
30-day money-back guarantee Unlimited workflows and runs Self-hosted


