What's in a flow
Every flow has three main parts that work together to automate your business. Think of it like this: "When this happens, if these conditions are met, then do these actions."
Let's break down each piece so you can start building flows that actually work for your business.
Triggers - the "when"
Triggers are what kick off your flow - they're the events that say "hey, something just happened, time to get to work!" You've got tons of options here, from basic app events to custom stuff you track in your app.
Example: "When a customer installs my app..."
Here's the full list of available triggers, organized by category:
Category | Triggers | Resource types |
|---|---|---|
App events |
• Customer installs, uninstalls, or reinstalls app | Customer |
Subscription events |
• Subscription is activated, cancelled, or re-activated | Customer |
Billing events |
• Invoice is finalized (Stripe) | Customer |
Ticket events |
• Ticket is created, updated, closed, or re-opened | Ticket |
Deal events |
• Deal is created | Deal |
Task events |
• Task is created | Customer |
Affiliate events |
• Affiliate requests to join, is approved, denied, or joins | Affiliate |
Contact events |
• Contact is created, updated, or deleted | Contact |
List events |
• Customer or contact is added to a list | Customer, Contact |
Checklist events |
• Checklist completed | Customer |
Notification events |
• Notification CTA is clicked | Customer |
Usage events |
Trigger flows based on any custom event you track in your app. This allows for unlimited flexibility in responding to user actions specific to your business. | Customer (requires setup) |
Scheduled |
Run flows on a schedule - one-time, daily, weekly, or monthly. Target specific segments or filters. Learn more about scheduling. | All resource types |
Time delay |
Wait a set amount of time (hours, days, weeks) before continuing the flow. Used between steps in multi-step flows. | All resource types |
Conditions - the "if"
Conditions are optional, but they're super handy when you want to get specific about when your flow runs. Think of them as filters - they let you say "only run this flow if the customer also meets these criteria."
Example: "...and they have a tag of 'New customer'..."
Here's what you can filter on:
Condition type | Examples | Resource types |
|---|---|---|
App attributes |
• App install date and status | Customer |
Customer attributes |
• Name, email, country, industry | Customer |
Subscription conditions |
• Active, cancelled, frozen status | Customer |
Custom fields |
• Any custom field value | Customer (requires setup) |
Usage & engagement |
• Usage metrics (page views, orders, etc.) | Customer (requires setup) |
Ticket conditions |
• Message content (keyword matching) | Ticket |
Contact conditions |
• Name, email, type, source | Contact |
Affiliate conditions |
• Referred by specific affiliate | Customer, Affiliate |
Customer segments |
• Customer belongs to a specific segment | Customer |
Custom script |
Write custom JavaScript that returns true or false to create any condition logic you need. | All resource types |
Actions - the "then"
Actions are where the magic happens - they're the actual tasks your flow performs when everything lines up. This is the "doing" part of your automation.
Example: "...then send a welcome email and tag them as 'new customer'."
Here's the full list of what your flows can do:
Category | Actions | Requirements |
|---|---|---|
Customer management |
• Add or remove customer tags | Ready to use |
Email & notifications |
• Send email to customer | Email requires Mantle Email. Slack requires Slack integration |
AI & automation |
• Run AI agent (with custom prompt and structured response) | |
Ticket management |
• Tag ticket | Available in ticket flows |
Sales & deals |
• Create deal (with stage, name, amount, owner) | Available in customer and deal flows |
Contact management |
• Tag or untag contact | Available in contact flows |
Subscription |
• Extend trial (add additional trial days) | Ready to use |
Integration |
• Send HTTP request (GET, POST, PUT, DELETE with custom headers and body) | Ready to use |
Many actions support Liquid variables so you can personalize content with customer data like names, subscription details, and custom fields.
Putting it all together
When you combine these three pieces, you get a complete automation that runs itself:
"When [Trigger] happens, if [Condition] is met, then do [Action]."
For example:
When a customer installs my app
If they're on a trial plan
Then send a welcome email and tag them as "trial user"
Or get more complex:
When a customer's trial expires in 3 days
If their usage is below 10 page views
Then send a re-engagement email, assign them to the support team, and post a Slack notification
Or automate support:
When a new support ticket is created
If the ticket priority is urgent
Then assign to the on-call agent, generate an AI response suggestion, and send a Slack alert
The beauty of flows is they work 24/7 in the background. Set them up once, and they handle all the repetitive stuff while you focus on growing your business.
Ready to build your first flow? Check out our step-by-step creation guide, or browse our FAQ for answers to common questions.