How to send automated renewal reminder emails with Stripe Billing
Stripe is a fantastic service for taking card payments. Their billing and subscription management options make Stripe a great choice for recurring card payments too, such as membership fees.
I recently started working with an association who are using Stripe for collecting annual dues from members.
They moved to Stripe a little over a year ago. We are just starting to see the first wave of renewal payments being collected automatically.
An issue with automated renewals in Stripe
The automation is great but not perfect. A small – yet significant – number of queries started coming in from members asking why their card had been billed. Automatically sending the member a notification ahead of collecting the payment had been on their todo list but was a challenge they’d been unable to solve.
Everything had been set up correctly. Members had been informed when they provided their card details that they were signing up to an annual recurring plan. The challenge is people don’t always remember what they agreed to – especially with longer payment intervals like annual payments.
The first they knew of their renewal payment was the charge on their card statement. It does not matter that this is what the member agreed to. This was unexpected and clearly fails one of my guiding principles: ‘no nasty surprises’.
As we know, the solution is to send a message to the member advising them of the upcoming payment before it is taken. This is also a great opportunity to remind members of their benefits and how to extract maximum value from their membership.
Frustratingly, sending renewal reminder emails isn’t an option provided by Stripe.
Finding a solution
Stripe does provide a webhook event for renewal reminders. Webhooks are when one service (Stripe in this case) calls another service when something happens.
One idea was to connect Stripe’s
invoice.upcoming webhook event to a transactional email service. This would receive the pre-charge notification from Stripe and send an email to the member advising them of the upcoming payment.
Sadly that doesn’t work. The data Stripe sends with its webhook only includes a reference to the customer. It doesn’t include their name or email address.
This approach makes sense from a technical viewpoint but makes sending the reminder email much harder. The receiving service has to go back and make a second call to Stripe to get the member’s name and email address.
Making these additional calls rules out simple webhook integration options. It requires custom development work that, while possible, is costly to deliver and maintain. I double-checked with Stripe support to confirm this is indeed the case.
Sheep recently added transactional email support. Or more specifically, email templates. Templated emails can be sent manually and/or connected up to specific triggers for automated sending.
I discussed the situation and desired outcomes with the Sheep team. We then worked together to expand Sheep’s email triggers to include responding to a webhook call and making the webhook data available in the email template.
The bonus is that Sheep already integrates with Stripe to pull in contact and payment data. Sheep’s Stripe integration means contact records in Sheep already exist for all Stripe customers and contain their Stripe customer IDs, eliminating the need for a second call to Stripe.
The email template in Sheep then has access to the webhook data from Stripe containing information such as the amount to be billed and the payment date, plus all the additional data about the contact in Sheep. This makes it easy to create and send the required notification emails.
- A nicely formatted email goes out automatically to each member 15 days before their recurring card payment is taken – avoiding any nasty surprises and subsequent queries.
- The email is used to remind the member of their benefits – increasing member value and reducing churn.
- A copy of the email sent is included in the contact’s journal in Sheep, providing valuable additional information to the operations team in the event of any query.
This is a great example of why I embrace Sheep as the heart of membership digital platforms. It is a solid SaaS product with the rare ability to quickly expand its feature set to solve previously unsatisfied use cases.