Daily repeating workflow for creating invoices

Hi,
I am building a subscription-based app and I need to schedule a daily workflow that checks if users have their billing date > current date -7 days (ie a week in advance ), then it creates a new record in my invoice table and sends the corresponding user an email with info of incoming payment.
I need this to be done in the background, without any user intervention.

I am sure Bubble developers created tons of subscription apps and had to generate regular invoices. Hence any help is appreciated.
I am on the professional paid plan.
Thank you.
Gerard

What payment gateway are you using for your subscriptions?

Hi,
I am using Stripe, but not using their subscription features, just storing CC and charging the CC.
Best

What’s the reasoning behind not using their subscription features?

I need to select from my bubble app the frequency of payment for the subscription (1 time payment, monthly payment, quarterly payment, semi-annual payment and yearly payment). The subscription can have different terms (6 month, 1 year, 2 years up to 5 years).
Price per seat will change depending on number of seats, terms of subscription. I am new to this, but I found that I needed to configure all these permutations in Stripes and this was a huge undertaking. Also, I wanted to create my own invoicing reporting and audit. Hence the decision not to use their subscription.
Best

Sure - although you’ll pay much higher merchant fees on an ‘invoice’ rather than a 'subscription.

It might be worth simplifying your subscription model :slight_smile:

If I may ask: let us suppose I simplify and have a monthly subscription only, but the payment amount is variable (negotiated amount). Can I do that in Stripe?

One way of doing so.

While making the payment, store the next subscription date in the database along with other details (I think you already storing that).

And scheduled a trigger for the next date ( next billing date - 7 days) and do the task (send an email or anything)

You need to schedule one more workflow where you are receiving your subscription successful trigger (for example backend workflows) from the payment gateway.

Make sense? Happy to hop on the call with you if you still find the issue.

2 Likes

Thank you. Sorry, I had to leave yesterday it was late in Austin ;-). I will try and see. I might take your help on this. I appreciate the support.
Gerard

@equibodyapp what do you think about billing vs managing the subscription payment via recursive workflows in Bubble? I don´t even know if it´s possible but something that is on my mind often.

Since Stripe billing adds another fee to the payment.

Thanks a lot.

I tried to create a complex pricing plan and manage via bubble just using stripe to store the CC info and generate the payment. My pb was the invoice automation that needs to run in the background. As I am not an expert in Bubble, this was a nightmare to create for me. I tried recurrent workflow, did not work well. Next, I tried API backend and triggered every day, but you need to be logged in to initiate the trigger, that is a no-go for me. I am trying what ankur1 is suggesting to see if it works. I also tried to create the pricing plans in Stripe upfront and let the user select the one and create their own subscription. This might be the easiest way but the most expensive. Will see!

I haven’t tried this - but there possibly is a way to programmatically pass the price.

Here’s some ideas in their docs. You could work out a set price for your base subscription and then change the quantity for your billing criteria. You could then have monthly or annual and just double or triple etc the base price.

Or look at how metered billing works and find out a way to fit that to your model.

https://stripe.com/docs/billing/subscriptions/quantities

Stripe will automatically send out renewal/upcoming payment reminders

1 Like

You might find my Stripe Integration course helpful. It covers how to set up subscriptions and manage different types (ie: 6 month, 1 year etc) and even to have different pricing for those and even have multiple prices for a single term based on level ( 6 month Gold vs 6 month Platinum etc ).

I found an elegant solution thanks to ankur1. I created a backend event (Createinvoice) to send an early invoice (7 days earlier), run another backend event (stripepayment) to schedule a payment after 7 days, and then schedule itself (Createinvoice) again for the next billing day.

Saying it seems complicated, but it is quite elegant when you look at it.


Thank you all for your support
Gerard

1 Like

Nice job! What are the “only when” in the “Create a new invoice” and in the “Schedule … createinvoice”?

For createnewinvoice, check the count of invoice if it is 0. nothing for schedule creatinvoice, it’s immediate.

2 Likes