Triggers
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 thepolylane.*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.
cronwebhookpolylane.issue.triagedpolylane.change_record.createdpolylane.codebase.syncedpolylane.repository.createdpolylane.integration.connectedIntegration triggers
Fired by connected integrations. Connect the provider to enable its triggers.
github.pushgithub.pull_requestgithub.deploymentgithub.workflow_rungithub.releasegithub.issuesgithub.issue_commentgithub.review_commentslack.messagepolylane.cloud_account.connectedpolylane.cloud_account.syncedpolylane.infra_node.createdcloudflare.deploymentvercel.deploymentrender.deploymentfly.deploymentmodal.deploymentTrigger 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 (incidentorno_incident).polylane.change_record.created: change intelligence recorded a change.polylane.cloud_account.connectedandpolylane.cloud_account.synced: filter by provider.polylane.infra_node.created: a new node appeared in the topology. Filter by provider.polylane.codebase.syncedandpolylane.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:
{
"type": "vercel.deployment",
"filters": {
"environments": ["production"],
"states": ["ERROR"]
}
}
A trigger that runs a weekly review every Monday at 08:00:
{
"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:
{
"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.
Overview
Describe a job in plain English. Polylane builds the trigger, the instructions, and the allowed actions, then runs an agent every time the event fires.
Actions
What an automation agent is allowed to do. Each action declares its required integrations, its compatible triggers, and whether it is high-impact.