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

TriggerFires when…
Record createdA contact, company, or deal is created.
Record updatedA specific field changes value.
Stage changedA card enters a specific stage on a specific board.
Field value matchesA filter condition becomes true (evaluated every 5 min).
Time-basedA card has been in a stage for N days.
Due date approachesA 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

ActionEffect
Assign ownerSet owner_id (direct or round-robin).
Move stageMove card to a stage on the same or another board.
Add tag / Remove tagMutate tags array.
Create taskAdds a task with a due date and owner.
Send notificationIn-app + email if Resend is configured.
Set field valueWrite to any field, including custom fields.
Send webhookPOST a JSON payload to a configured URL.
Send email templateUses 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` header

Audit 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.