Flows require the Flows feature on your plan. See Billing if the page is locked.
Open Flows
- Go to Flows in the dashboard sidebar.
- Check status first (active flows, failed runs, drafts).
- Work failed runs first, then prioritize flows and recent activity.
- Use insights for recommendations (fix failures, connect Discord, activate a template).

Flows overview
Build a flow
- Start from a template, or create a blank workflow.
- Set a Trigger (an event, or a time schedule with presets / advanced cron), optional Only if conditions, and one or more Then actions. New schedules default to the organization timezone.
- Save as a draft, or save and activate so it runs on live events or at the next scheduled time.

Flow builder — Trigger, Only if, Then
Visual builder vs code
The builder has two modes:- Visual — pick trigger, filters, and actions from forms.
- Code — edit the flow definition as JSON (
triggerEventType,conditions,actions) for faster bulk edits.
Templates
Templates are ready-made starting points. Installing a template creates a workflow you can edit and activate. Common patterns:- New Team Setup — Discord role, category, and channels when a team is created.
- Player Joined / Left — assign or remove the mapped Discord role and post a join/leave embed in the team channel.
- Availability Reminder — ask for availability when a training is scheduled (Discord, immediately). Overlaps the in-app event created Discord post if that is already going to the team channel.
- Training Availability Follow-up — 24 hours before training, remind the team to submit remaining availability in Discord. Overlaps the built-in RSVP nudge (default 24h). You can change the product reminder on the team workspace.
- Scrim Prep Brief — post a prep checklist when a scrim is created.
- Scrim Starting Soon — ping the roster one hour before a scrim. The product also sends a starting-soon alert (default 2 hours, in-app, push, Discord team channel) which you can change per team.
- Tryout → Team — assign the Discord role and welcome accepted applicants.
- New Application Alert — notify Discord when a tryout application comes in.
- Tryout Rated / Ready for Decision / Feedback Needed / Stale Shortlist — recruiting reminders in Discord (stale reminder waits 7 days; ignore if already decided).
- Tryout Declined — notify Discord when an application is declined.
- Discord Sync Failed — alert the log channel when Discord sync fails.
Variables
Action configs support{{path}} placeholders filled from the event payload and earlier steps.
Examples:
{{team.name}},{{player.discordUserId}}{{steps.0.roleId}}— output from step index0(first action){{steps.1.discordMentions}}— roster pings from Get team players{{team.name|upper}},{{team.name|lower}},{{team.name|slug}}— transform the value (trimalso works)
{{eventTitle}}, {{when}}, {{type}}, and {{hours}}.
Lookups before side effects
Whenever a flow has a team in context (join/leave, calendar event with team, tryout, team updated, …), the payload includes Discord team settings when linked:{{team.discordRoleId}}/{{team.discordRoleMention}}{{team.teamChannelId}}
squadvault.get_team) with a teamId — same fields come back as step outputs.
For roster pings and other lookups:
Example Discord message:
discordMentions.
Activity
- Activity lists recent runs and opens step logs, errors, and outputs in one place.
- Use preview/dry-run when testing Discord changes safely.
- Confirm the workflow is active.
- Confirm the trigger matches what you did (for example editing team players fires
player.joined_team/player.left_team). - Check Activity for errors (Discord not connected, missing IDs, invalid templates).
Tips
- Prefer templates for Discord provisioning, then tweak channels and copy.
- Put lookups early so later Discord actions can use
{{steps.N.*}}. - Enable continue on error on non-critical steps (for example welcome messages).
- Keep Discord connected and role/channel mappings in sync — see Discord.