Automations

Triggers

The events that start an automation. Platform triggers are always available; provider triggers become available when you connect the provider.

A trigger is the event that starts an automation run. Polylane has two kinds:

  • Platform triggers work in every workspace with no integration required: cron, webhook, and the polylane.* events.
  • Provider triggers fire when an event arrives from a connected provider. Connecting a provider enables its triggers automatically.

Each trigger carries an event payload the agent uses as context. Filters on the trigger narrow what the automation matches. An automation can have up to 10 triggers. Each trigger type appears at most once per automation, except cron and webhook, which can repeat.

Platform triggers

Available on every workspace, no integration required.

Croncron
Run on a recurring schedule using standard cron expressions.
Webhookwebhook
Fire from any external system via HTTP POST. Each automation gets a unique URL and token.
Issue triagedpolylane.issue.triaged
Fires when an issue is triaged, with the incident or no incident verdict. Filter by source, severity, and status.
Change record createdpolylane.change_record.created
Fires when change intelligence detects an infrastructure change.
Codebase syncedpolylane.codebase.synced
Fires when a connected repository finishes syncing.
Repository connectedpolylane.repository.created
Fires the moment a repository is connected to Polylane.
Integration connectedpolylane.integration.connected
Fires when any integration is connected to the workspace.

Integration triggers

Fired by connected integrations. Connect the provider to enable its triggers.

GitHub Pushgithub.push
Fires when one or more commits are pushed to a branch on a connected GitHub repository.
From:GitHub
GitHub PRgithub.pull_request
Fires when a pull request is opened, edited, synchronized, reopened, marked ready, closed, merged, labeled, or assigned.
From:GitHub
GitHub Deploygithub.deployment
Fires when a GitHub Deployment is created or transitions to success, failure, pending, or in_progress.
From:GitHub
GitHub Actionsgithub.workflow_run
Fires when a GitHub Actions workflow run starts or completes (with conclusion success, failure, cancelled, or timed_out).
From:GitHub
GitHub Releasegithub.release
Fires when a GitHub Release is published, created, edited, or deleted on a connected repository.
From:GitHub
GitHub Issuegithub.issues
Fires when an issue is opened, edited, closed, reopened, labeled, unlabeled, or assigned.
From:GitHub
GitHub Commentgithub.issue_comment
Fires when a comment is added, edited, or deleted on an issue or PR conversation thread.
From:GitHub
GitHub Review Commentgithub.review_comment
Fires when an inline review comment on a PR diff line is created, edited, or deleted.
From:GitHub
Alertalert
Fires every time a connected observability provider sends an alert webhook to Polylane.
Slack Messageslack.message
Fires when a Slack message is posted in a channel or DM the Polylane Slack bot can see (the bot must be invited to the channel).
From:Slack
Cloud Account Connectedpolylane.cloud_account.connected
Fires once when a user connects a new cloud account to the workspace.
Cloud Account Syncedpolylane.cloud_account.synced
Fires each time a cloud account finishes a full or incremental sync.
Infra Node Createdpolylane.infra_node.created
Fires once per new infrastructure resource discovered during a cloud sync.
Cloudflare Deploycloudflare.deployment
Fires when a Cloudflare deploy lands (Workers script update, Pages deployment, container rollout, or versioned Worker promotion).
Vercel Deployvercel.deployment
Fires when a Vercel deployment finishes (READY, ERROR, or CANCELED).
From:Vercel
Render Deployrender.deployment
Fires when a Render deploy reaches a terminal status (live, deactivated, build_failed, update_failed, or canceled).
From:Render
Fly Deployfly.deployment
Fires when a Fly app rolls out a new image across one or more machines.
From:Fly.io
Modal Deploymodal.deployment
Fires when a Modal app is redeployed, which Modal reports as its deploy version moving on.
From:Modal

Trigger families

Provider events arrive from connected integrations:

  • GitHub: github.push, github.pull_request, github.deployment, github.workflow_run, github.release, github.issues, github.issue_comment, github.review_comment
  • Deployments: cloudflare.deployment, vercel.deployment, render.deployment, fly.deployment, modal.deployment
  • Slack: slack.message

Alerts use the single alert trigger. It fires when a provider alert arrives from Datadog, Honeycomb, Axiom, Sentry, Amazon CloudWatch, Vercel, Render, or Cloudflare. Filter by source and severity (critical, error, warning, info, ok).

Platform events need no integration:

  • polylane.issue.triaged: an issue finished triage. Filter by source, severity, and status (incident or no_incident).
  • polylane.change_record.created: change intelligence recorded a change.
  • polylane.cloud_account.connected and polylane.cloud_account.synced: filter by provider.
  • polylane.infra_node.created: a new node appeared in the topology. Filter by provider.
  • polylane.codebase.synced and polylane.repository.created: repository lifecycle events.
  • polylane.integration.connected: filter by integration type.
  • cron: runs on a schedule. Set a cron expression and an optional timezone.
  • webhook: fires on an inbound request authenticated with the trigger's token.

Filters

Every provider trigger accepts filters. The available fields depend on the trigger:

  • Code events: repository, branch, action (for pull requests: opened, synchronize, closed, merged), workflow run conclusion, user.
  • Deployments: account, plus provider-specific fields: project, service or app, environment, branch, deployment state, or region.
  • Slack messages: channel, channel type, user, keyword, whether the message mentions the bot, and toggles to exclude bot messages and thread replies.

A trigger that alerts you when a production deployment fails on Vercel:

Trigger
{
  "type": "vercel.deployment",
  "filters": {
    "environments": ["production"],
    "states": ["ERROR"]
  }
}

A trigger that runs a weekly review every Monday at 08:00:

Trigger
{
  "type": "cron",
  "expression": "0 8 * * 1",
  "timezone": "Europe/London"
}

A trigger that fires only when an issue from Sentry or CloudWatch is triaged as an incident:

Trigger
{
  "type": "polylane.issue.triaged",
  "filters": {
    "sources": ["sentry", "cloudwatch"],
    "severities": ["critical", "high"],
    "statuses": ["incident"]
  }
}

Configure filters in the console when you build the automation, or pass them on the API payload. See the catalog above for the exact triggers each connected integration exposes. Pair triggers with actions and destinations to complete the automation.