Automations
Track has a built-in automation runner so your team doesn't have to pay per-task Zapier fees for the common cases. Automations run on your Supabase via a scheduled Edge Function.
How automations work
Every automation is:
WHEN <trigger>
[IF <conditions>]
THEN <action(s)>
Triggers fire immediately when the matching event happens (stage-change triggers) or on a cron (time-based triggers). The runner evaluates conditions and queues actions.
Triggers
| Trigger | Fires when… |
|---|---|
| Record created | A contact, company, or deal is created. |
| Record updated | A specific field changes value. |
| Stage changed | A card enters a specific stage on a specific board. |
| Field value matches | A filter condition becomes true (evaluated every 5 min). |
| Time-based | A card has been in a stage for N days. |
| Due date approaches | A date field is N days away. |
Conditions
Stack filters to narrow when an automation runs:
- Record belongs to a specific board
- Field equals / contains / is empty
- Owner matches / doesn't match
- Tag applied / not applied
- Created within last N days
Actions
| Action | Effect |
|---|---|
| Assign owner | Set owner_id (direct or round-robin). |
| Move stage | Move card to a stage on the same or another board. |
| Add tag / Remove tag | Mutate tags array. |
| Create task | Adds a task with a due date and owner. |
| Send notification | In-app + email if Resend is configured. |
| Set field value | Write to any field, including custom fields. |
| Send webhook | POST a JSON payload to a configured URL. |
| Send email template | Uses a saved template + record substitutions. |
Authoring automations
Settings → Automations → New Automation.
The builder is form-based — pick a trigger from a dropdown, stack conditions, pick actions. No JavaScript required.
For more complex logic, use Send webhook to hand off to n8n, Make, or your own Edge Function.
Templates
One-click templates for the most common cases:
- Round-robin assign new deals
- Remind owner after 3 days of no activity
- Move stale leads to an Archive stage
- Slack the team on deal won
- Email customer after contract signed
Templates are a starting point — you can edit and save as your own.
Runner schedule and health
Time-based triggers are evaluated every 5 minutes by the
track-automation-runner Edge Function (see
Installation for the cron SQL).
Settings → Automations shows the runner's health: last-run timestamp, success rate, and any failed executions in the last 24 hours. Red dot = the cron isn't firing.
Webhook outputs
Webhook actions POST JSON payloads to configured URLs. Each payload
is HMAC-signed with TRACK_WEBHOOK_SIGNING_SECRET. Downstream
services verify with:
const hmac = crypto
.createHmac("sha256", process.env.TRACK_SIGNING_SECRET)
.update(rawBody)
.digest("hex");
// compare with `x-track-signature` headerAudit log
Every automation run is logged to automation_runs — trigger,
record id, actions taken, duration, success/failure. Admins can
replay failed runs from Settings → Automations → Runs.