Latest / Marketing Automation with Fexingo: HubSpot, Marketo, and Automated Customer Journeys / How Marketing Automation Workflows Miss Payment Method Changes
Transcript
- Lucas: Luna, what's a 12 percent monthly recurring revenue leak that most marketing automation setups don't even know they have? Luna: Oof, that's a big number. I'm guessing it's something to do with payment methods? Lucas: Exactly. When a customer's credit card expires — or they switch to a new one — most marketing automation platforms just keep firing billing attempts. They don't adjust the customer journey to reflect the fact that the payment method is dead. Luna: And then the subscription fails, the customer churns, and the automation might send them a 'we miss you' email weeks later. By then it's too late. Lucas: Right. The window to save them is right there — when the card expires or the payment method changes. But the automation platform never gets that signal because the payment data lives inside Stripe or Braintree, not in the marketing database. Luna: I actually ran into this with a client last year. They were a SaaS company, about 20,000 subscribers, and they were losing roughly 12 percent of monthly recurring revenue to what they called 'passive churn.' Lucas: Passive churn — meaning the customer didn't actively cancel. They just let the card expire and the billing failed. The customer might have intended to update the card, but life got in the way. Luna: Exactly. When we dug in, we found that 85 percent of those customers had a new card on file within 30 days — they'd just never gotten around to updating it on the subscription. So the product was still wanted. Lucas: That's the key insight: the intent to continue is still there. The automation just has to bridge the gap between the failed billing and the updated payment method. Lucas: Most marketing automation platforms let you trigger workflows on 'purchase' or 'abandoned cart' but not on something like 'payment_method.updated' — unless you explicitly set up a webhook listener. Luna: And a lot of teams don't even know that's possible. They think of marketing automation as email and SMS, not as a system that can react to payment events. Lucas: So what did you set up for that client? Luna: We built a three-step workflow. First, when Stripe sends a 'payment_method.updated' webhook — meaning the customer added a new card — we trigger a confirmation email: 'Thanks, your payment method is updated.' Luna: Second, if the webhook is 'payment_method.expiring' — that's a 30-day warning — we send an email with a direct link to the billing portal. And third, if the card actually expires and a billing attempt fails, we send an SMS within 48 hours with a one-tap update link. Lucas: And the SMS is key because by that point email might already be getting ignored. Text messages have open rates north of 90 percent. Luna: We saw about 40 percent of at-risk customers update their card within 24 hours of the SMS. The overall passive churn dropped by half in three months. Lucas: That's a huge win. And it didn't require any new software — just connecting two systems that were already in place. Luna: Right. The marketing automation platform had a webhook receiver, and Stripe had webhook events. It was a matter of mapping the events to the right workflow. Lucas: One thing I'd add: you also want to suppress any further billing retry emails or abandon cart type messages while the payment method is stale. Otherwise you're sending mixed signals — 'Hey, your payment failed' and 'Come back and buy something' at the same time. Luna: Yes! That was a mistake we saw in initial audits. Some customers got three different emails: one from billing saying 'card declined,' one from marketing saying 'we miss you,' and one from product saying 'new feature available.' It was confusing. Lucas: So you add a suppression rule: if the contact's last payment method update was more than 60 days ago and the subscription status is 'past_due,' suppress all non-billing communications. Luna: Exactly. And if they update the card, you remove them from the suppression automatically. Lucas: This is the kind of conversation that makes me think about how much we take for granted in our workflows. If these marketing conversations have sparked something you've actually used — a tweak to your own automation, a new trigger you set up — consider supporting the show. It keeps us ad-free and focused on practical stuff like this. Buy me a coffee dot com slash fexingo. Luna: Yeah, even a small contribution helps us keep digging into overlooked revenue leaks like this one. And it means a lot to both of us. Lucas: Alright, back to the topic. Another angle here — what about the data itself? How do you keep the payment method status fresh in your marketing database? Luna: That's a great question. Most systems only receive payment data at the point of purchase. After that, the marketing platform has no idea if the card changed. Lucas: So you need a recurring sync — maybe a daily webhook check or a scheduled import from the payment processor's API. Luna: For the client I mentioned, we set up a daily cron job that queried Stripe for all customers with 'payment_method.expiring' or 'invoice.payment_failed' events, then updated a custom field in the marketing automation platform. Lucas: That 'custom field' part is important. A lot of platforms let you create fields like 'payment_status' or 'card_expiration_date' that the workflows can check. Luna: Right. Then you can use that field as a condition: 'if payment_status equals expired, send SMS.' It's not as real-time as a webhook, but for most businesses, daily is good enough. Lucas: And you can prioritize. For high-value customers — say, those with an annual plan — you might want to escalate faster, maybe within 12 hours. Luna: Exactly. You can segment by lifetime value and adjust the timing. The core workflow stays the same. Lucas: I think the broader lesson here is that marketing automation can't just look at what the customer does on your website. It needs to account for what happens in other systems — payment, shipping, support tickets. Luna: That's where the concept of a customer data platform comes in, but even without one, you can bridge the gap with webhooks and scheduled imports. Lucas: And the fix is relatively simple. Most teams can implement this in a week. The ROI is almost immediate because you're saving revenue you were already counting on. Luna: It's one of those low-hanging fruit improvements that no one thinks about until they see the numbers. Lucas: So here's the concrete takeaway for today: if your marketing automation platform supports webhooks — and most do — set up a listener for the 'payment_method.updated' event from your payment processor. Then build a workflow that sends a confirmation, a reminder before expiration, and an SMS after failure. Suppress other messages while the payment is stale. That's it. Luna: And if you're on a platform that doesn't support webhooks, look for a Zapier or Make integration. There's almost always a way. Lucas: Next episode, we're going to look at another hidden leak: workflows that don't account for address changes — how a customer moving can silently kill their subscription. Luna: Looking forward to it.