Generic “upgrade now” emails get ignored. Specific ones (“you sent 950 of your 1000 monthly emails”) convert. This recipe fires an upsell Workflow only when a user hits a usage threshold that a paid plan would remove, personalized to what they actually did.Documentation Index
Fetch the complete documentation index at: https://loops.so/docs/llms.txt
Use this file to discover all available pages before exploring further.
What you need
- An event from your app when the user approaches a plan limit
- A way to pass the usage context as event properties
- A Stripe integration is handy but not required
Send the signal from your app
When a free-plan user hits 80% of any plan limit, fire an event via the Send event endpoint:approachingPlanLimit event is specific to your app’s usage tracking. The Stripe integration covers subscription, invoice, checkout, quote, and dispute events (see the full list in the integration doc), but usage-limit events still need to come from your own backend.
Build the workflow
Trigger on Event received
In the Workflow builder, pick Event received and select
approachingPlanLimit.Filter on plan
Add an audience filter to your workflow so you only send to
free-plan users:
planName = Free. Set the filter scope to All following nodes.Personalize the email
Use event properties directly in the email. In the
editor, click the
⚡️ icon above the editor or type { and then the event property name:Why event-triggered beats scheduled
Scheduled “here is our pro plan” campaigns hit people who aren’t close to a limit and who did nothing to prompt the message. Event triggers mean every send goes to a user with a concrete reason to upgrade right now.Measuring success
- Open rate: should be higher than a generic upsell because the subject can cite the specific resource
- Upgrade conversion: track via your existing billing system, not in Loops
- Unsubscribe rate: watch this closely, over-sending upsells is a fast way to lose users

