upti.my

Workflows

Build automated incident response workflows with a visual flow builder. Connect triggers, processing nodes, and notification destinations to create powerful automation pipelines.

Overview

Workflows are the heart of alerting and automation in upti.my. When an incident condition creates an incident, workflows take over and handle everything that happens next: where notifications go, how messages are formatted, which teams get paged, and what enrichment data is attached. You build all of this with a visual drag-and-drop flow builder.

Each workflow is a directed graph of nodes connected by edges. Data flows from a trigger node through optional processing nodes (filters, delays, enrichment, deduplication) and terminates at one or more destination nodes (Slack, PagerDuty, email, webhooks, and more). You can filter, delay, deduplicate, and enrich data at every step.

ℹ️ Conditions + Workflows = Complete Alerting

Incident conditions decide when to create an incident. Workflows decide what happens after. This clean separation means you can change your notification routing, add new destinations, or tweak message templates without touching your detection logic.

Workflow Templates

To get started quickly, upti.my includes 6 pre-built workflow templates covering common patterns like service down alerts, smart escalation, incident lifecycle notifications, deduplicated PagerDuty alerts, and agent offline alerts. Select a template from the workflow builder and customize it to fit your needs.

Node Categories

The flow builder organizes nodes into three categories: triggers that start the workflow, processing nodes that enrich and shape the data, and destination nodes that deliver notifications and alerts.

Trigger Nodes (Entry Points)

Every workflow begins with exactly one trigger node. The trigger defines when and why the workflow executes.

TriggerDescription
Service DownFires when a healthcheck transitions to a down state. You can filter by specific healthchecks or tags.
Service UpFires when a healthcheck recovers from a down state. Use this to send recovery notifications.
Incident CreatedFires when a new incident is opened, either automatically from incident conditions or manually by a team member.
Agent OfflineFires when a monitoring agent loses connectivity to the control plane. Notify your infrastructure team immediately.
Manual TriggerAllows on-demand execution from the dashboard or API. Ideal for testing workflows or running one-off automations.

💡 Filtering Triggers

Most trigger nodes support filter conditions. For example, you can configure a "Service Down" trigger to fire only when checks tagged with production go down. This prevents unnecessary workflow executions for staging or development environments.

Processing Nodes (Middle)

Processing nodes sit between the trigger and destinations. They let you add logic, delays, data enrichment, and deduplication to your workflow. You can chain multiple processing nodes together.

NodeDescription
FilterFilter the workflow based on severity levels, specific applications, or event types. Uses multi-criteria AND logic. Optionally check whether the incident is still active before proceeding.
DelayWait a specified duration or until a specific time of day before continuing. Useful for escalation chains where you want to give the on-call engineer time to respond.
DeduplicateSuppress duplicate notifications within a configurable time window. Prevents notification floods during major outages where multiple checks fail simultaneously.
EnrichmentAutomatically fetch and attach application context to the workflow payload. Adds relevant metadata so downstream notifications include the information responders need.
AI EnrichmentUse AI to analyze the incident context and generate a severity assessment, probable root cause, impact analysis, and recommended next steps. Powered by OpenAI.
On-CallResolve the current on-call participant from your on-call schedule. Routes the notification to whoever is on duty, so alerts always reach the right person.

Example: Escalation Chain

A common pattern is to notify a Slack channel immediately, then add a Delay node set to 10 minutes. After the delay, add a Filter node that checks whether the incident is still active. If it is, route to PagerDuty for escalation. Build this visually by dragging nodes onto the canvas and connecting them with edges.

💡 AI-Powered Triage

Add an AI Enrichment node early in your workflow to automatically assess severity and suggest root causes. The analysis is included in downstream notifications, giving your team a head start on diagnosis.

Destination Nodes

Destination nodes deliver notifications and data to external services. Each workflow can have multiple destinations, and you can use Filter nodes to route different alerts to different channels based on severity, tags, or time of day.

Slack

Send messages to any Slack channel or direct message. Configure a message template using Handlebars variables from the workflow payload, and optionally use Slack Block Kit for rich formatting. Requires a Slack workspace connection via OAuth.

Discord

Post messages to Discord channels using OAuth. Supports embed templates with custom title, description, color, and fields.

Email

Send email notifications to one or more recipients. Configure the subject line and body using Handlebars templates. Supports HTML email bodies for rich formatting. Emails are sent from noreply@upti.my.

Microsoft Teams

Post messages to Microsoft Teams channels via OAuth. Supports Adaptive Card templates for rich, interactive messages with buttons and sections.

PagerDuty

Create PagerDuty incidents with configurable routing key and severity level (critical, high, medium, low). upti.my sends Events API v2 payloads, so incidents appear in your PagerDuty service with full context.

WhatsApp

Send WhatsApp notifications for critical alerts that need immediate attention. Available on premium plans.

SMS

Send SMS text message alerts for high-priority incidents. Available on premium plans. Ideal for reaching on-call engineers who may not be at their desk.

Status Page

Send notifications to your status page subscribers. When a workflow fires with a Status Page destination, subscribers who opted in to email or webhook notifications are notified. Publishing incidents to status pages is controlled separately from the incident management side.

Custom Webhook

Send HTTP requests to any URL. Configure the HTTP method (GET, POST, PUT, PATCH), custom headers, and a JSON body template. This is the most flexible destination, allowing you to integrate with any service that has an HTTP API.

ℹ️ Handlebars Templates

All destination nodes support Handlebars templating with helpers like if, unless, each, with, eq, ne, gt, and lt. Available variables include event.*, variables.application.*, variables.aiAnalysis.*, onCall.*, and metadata.*. Use the "Test" button in the flow builder to preview rendered templates with sample data.

Workflow Run History

Every workflow execution is tracked with full run history. Each run records the status (completed, failed, or running), total duration, log messages from each node, and any errors encountered. Review run history from the workflow detail page to debug issues and verify that notifications are being delivered correctly.

On-Call Schedules

Create and manage on-call schedules directly in upti.my. Define participants, rotation periods, and escalation rules. The On-Call processing node resolves the current on-call person at execution time, so workflow destinations always notify the right engineer.

Best Practices

  • Start simple. Build a single trigger-to-destination workflow before adding processing nodes.
  • Use the Deduplicate node to prevent notification floods during major outages.
  • Test workflows with the Manual Trigger before connecting them to live alerts.
  • Use Filter nodes to route critical alerts to PagerDuty and low-severity alerts to Slack.
  • Keep escalation delays reasonable. A 5 to 15 minute delay before escalation gives on-call engineers time to respond.
  • Use AI Enrichment nodes to include root cause analysis and severity assessment in your notifications.
  • Review workflow run history regularly to identify failures or misconfigured nodes.
  • Use workflow templates as starting points rather than building from scratch.

⚠️ Execution Limits

The number of workflows you can create is unlimited on all plans. What is limited is the total number of workflow executions per workspace per month: Starter gets 5,000, Growth gets 50,000, Scale gets 250,000, and Enterprise is custom. The counter resets at the start of each billing cycle. Check the pricing page for current limits.