I’m building a subscription service app and want to make sure I’m including all of the necessary workflows. Here is how I structured my app:
Each user has the following fields:
- Subscription type
- Trial end date
Below are some important workflows:
Sign Up
- User signs up > set subscription type to ‘trial’ > set trial end date to ‘today + 14 days’
Trial Ends
- Backend workflow > check daily for users whose trial has ended > set user subscription to ‘no subscription’ > send email to user
Subscribe
- User subscribes to stripe plan > add credit card > change user subscription type to ‘subscribedplan1’ > send invoice to user
Change Subscription Plan
- User subscribes to stripe plan > change user subscription type to ‘subscribedplan2’ > send invoice to user
Cancel Plan
- Change user’s trial end date to ‘subscription ending date’ > cancel stripe subscription > Delete credit card
- Backend workflow > receive webhook ‘customer.subscription.deleted’ > change user’s subscription type to ‘trial’ > Send email
This part feels sloppy. I’m trying to allow the user to have access to the app for the remainder of the period they have paid for by giving them an additional trial period.
Are there any other important workflows I’m missing or can improve?