Skip to main content
Kestrel Workflows let you automate incident response, cloud resource provisioning, CI/CD pipelines, developer requests, and more — with AI-powered workflows that build themselves. Chain actions across 15+ integrations, triggered by Kubernetes signals, AWS cloud signals, Slack /kestrel-workflow requests, PagerDuty incidents, PostHog events, Vercel deployment events, custom webhooks, or on-demand runs. Build workflows with the Workflow Agent using natural language, a drag-and-drop canvas, the CLI, SDK, or MCP.

Prerequisites

Create Your First Workflow

1

Navigate to Workflows

From the Kestrel dashboard, go to Workflows → New Workflow.You can start from a blank canvas or choose a template. Templates cover common use cases like incident response, cloud provisioning, and CI/CD automation.
2

Describe your workflow in natural language

Type a plain-English description of what you want automated. The Workflow Agent generates the workflow steps for you.Example:
When a pod crashes in the payments namespace, trigger root cause analysis, send a Slack message with the root cause to #incidents, and create a Jira ticket assigned to the payments team.
The Workflow Agent assembles the trigger, actions, and connections. Review the generated workflow on the canvas and adjust as needed.
You can also build workflows entirely with the drag-and-drop canvas — add trigger and action nodes, connect them, and configure each step manually.
3

Configure the trigger

Every workflow starts with a trigger. Select the event source that kicks off the workflow:
Trigger TypeTrigger Blocks
Kubernetes SignalsDeployment Replicas Failing, Nodes Unavailable, Pod CrashLoopBackOff, Pod ImagePullBackOff, Pod OOMKilled, Pods Failing, Pods Restarting, StatefulSet Replicas Failing, Node Memory Pressure, Node Disk Pressure, DaemonSet Failing, Any Kubernetes Incident
AWS Cloud SignalsIAM Security Event, Root Account Activity, KMS Key Change, Secrets Manager Event, Security Hub Finding, S3 Bucket Change, EC2 Instance Issue, Lambda Function Issue, ECS/EKS Container Issue, RDS Database Issue, DynamoDB Issue, VPC/Network Change, CloudWatch Alarm, Application Log Errors, Config Rule Non-Compliant, AWS Service Health Event, Any AWS Cloud Incident, Cost Anomaly Detected, Budget Threshold Exceeded
Slack RequestsCreate K8s Resource, Edit K8s Resource, General Kubernetes Request, Create AWS Resource, Edit AWS Resource, General Cloud Request, Any Slack /kestrel-workflow Request
PagerDutyIncident Triggered, Incident Acknowledged, Incident Resolved, Any PagerDuty Incident, High Urgency Incident
PostHogSession Error/Exception, Console Error, Rage Click, Any PostHog Event, Log Error Alert
VercelDeployment Failed, Deployment Succeeded, Deployment Created, Error Anomaly, Usage Anomaly, Domain Issue, Firewall Attack Detected, Deployment Checks Failed, Production Rollback
JenkinsBuild Failed, Build Unstable, Build Succeeded, Build Completed, Build Started
CircleCIWorkflow Failed, Workflow Succeeded, Workflow Completed, Job Failed
Terraform CloudRun Created, Run Planning, Run Needs Attention, Run Applying, Run Completed, Run Errored, Drift Detected, Assessment Check Failed
Pulumi CloudUpdate Succeeded, Update Failed, Preview Failed, Destroy Succeeded, Deployment Started, Deployment Succeeded, Deployment Failed, Drift Detected, Drift Run Failed, Policy Violation, Stack Created, Stack Deleted
Custom WebhookAny HTTP POST to your workflow’s unique webhook endpoint with HMAC signature verification
Configure trigger-specific filters to control when the workflow fires — for example, limit a K8s trigger to a specific namespace, cluster, or set of AWS accounts.
4

Configure actions and template variables

Add action steps to your workflow. Each action targets an integration and performs a specific operation — sending a Slack message, creating a Jira ticket, running an RCA, applying a Kubernetes manifest, and so on.Use the variable picker to insert dynamic values from the trigger or from previous action outputs into any field. Variables use the {{variable_name}} syntax and are type-checked at build time.
Actions execute sequentially by default. Use parallel branches on the canvas to run actions concurrently.
5

Set cooldown and save

Configure a cooldown period to prevent the same trigger from firing the workflow repeatedly in a short window. For example, set a 5-minute cooldown so a pod crash-looping every 30 seconds doesn’t generate dozens of duplicate tickets. You can also select “No cooldown” for workflows that should fire on every event.Click Save to activate the workflow.
6

Test the workflow

Use the Test button to simulate a trigger event and trace the workflow execution step by step. Each action shows its input, output, and execution time.
You can also trigger a test run from the CLI with kestrel workflow test <workflow-id>.

Example Workflows

Use CaseTriggerActions
Self-healing K8s incidentPod CrashLoopBackOffRCA → Slack alert → Apply fix → Jira ticket
Cloud provisioning via SlackSlack /kestrel-workflow requestParse request → Provision AWS resource → Confirm in thread
CI/CD automationGitHub PR mergedArgoCD sync → Run tests → Notify Slack on failure
Cost anomaly responseAWS cost spike detectedInvestigate resources → Slack alert to #finops → Linear ticket
Vercel deployment failureVercel Deployment FailedGet build logs → AI investigation → Slack notification
Jenkins build failure RCAJenkins Build FailedGet console log → AI investigation → Slack alert to #ci → Jira ticket
CircleCI flaky-build retryCircleCI Workflow FailedRerun from failed → Wait for pipeline → PagerDuty page if it fails again
Terraform apply approvalTerraform Run Needs AttentionGet run plan summary → Slack approval → Apply or Discard run
Pulumi update failure retryPulumi Update FailedAI investigation → Slack approval → Run deployment (update) → Wait for result
PostHog exception alertPostHog Session ErrorSession summary → Slack alert → Jira ticket if critical

What’s Next