I think this is the ideal Stripe and Bubble.io integration flow:
- Display the Stripe Pricing Table in my Pick a Plan page to visitors (NOT signed-in users) to convince people to sign up.
- Have them select a plan and pay Stripe.
- Have them returned to my Bubble app.
- Automatically create a new User with the email that was collected during the purchase.
- Add price and subscription info to the User record.
- Trigger an email to the User to have them login.
- Allow the User to control subscriptions, cancellations, etc. via the Stripe customer portal api.
How to do steps 1,2,3 and 5 are demonstrated in the great demo at Bubble x Stripe: build no-code payments - YouTube and I can confirm 1,2 and 3 are working perfectly for me.
But they did step 4 manually - they had the User already created. I cannot imagine any scenario where I ask people to create an account before they get to see the pricing page.
How can I do step 4? It appears to be my only block as 5, 6 and 7 seem really straightforward after 4 is done.
You can simply use the “Create an account for someone else” action for step 4.
The ideal flow would be achieved using a combination of the Stripe.js plugin and API Connector imo. The Bubble Stripe plugin is a good way to start fast though.
Cheers and happy Bubbling
Ok, it’s a little embarrassing that it was that simple, but wow, what a fantastic setup.
Done and done! Thank you @ambroisedlg !
Curious, how would you change it up in your ideal process?
This looks like a really great workflow, however I would change step 4 to include a Backend Workflow that fires from a Stripe Webhook instead of using “results of step x”. This will give better reliability in case the user maybe closes the browser after completing the Stripe payment and before the returning workflow can run (seems weird, but it will happen), or in high capacity usage scenarios when it might fail. You would maybe want to use the metadata field when sending the user to Stripe to store any additional fields you need to know when storing subscription information locally.
Thanks @flowtron - the demo video used a backend workflow from a webhook from stripe and so that’s where I put the create a new user and matched up all the return data. You’re right that’s much safer.