Skip to main content

Overview

Action nodes are the workhorses of your workflows. They execute tasks on target systems via agents and connections — from SSH commands and Kubernetes operations to Slack messages and Jira tickets.

SSH

Remote commands and scripts

Kubernetes

Deployments, pods, and logs

HTTP

API requests to any endpoint

Slack

Messages and reactions

Jira

Issues, comments, transitions

Script

Bash, PowerShell, Python

OS Service

Start, stop, restart services

Email

SMTP email notifications
Every action node has two output handles: Success (bottom-left) and Error (bottom-right). Connect an Error Handler to the error output for automated failure handling.

SSH

Remote command execution and script deployment on Linux/Unix servers via SSH.
Execute a single command on the remote server.Output variables:Example: Restart a service after an incident
Upload and execute a multi-line script on the remote server.Example: Collect diagnostic info
Connection required: SSH (host, port, username, key/password)

Script

Execute scripts locally on the agent machine. No remote connection needed.
Action type: script.bash
Output: stdout, stderr, exitCode (same as SSH)

HTTP

Make HTTP/HTTPS requests to any API endpoint. Useful for interacting with REST APIs, triggering webhooks, and checking service health. Action type: http.request Output variables:
By default, the HTTP executor blocks requests to private IP ranges (127.0.0.0/8, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) to prevent SSRF attacks. To allow private network access, set ALLOW_PRIVATE_NETWORK=true on the agent.

Kubernetes

Manage Kubernetes deployments, pods, and logs directly from your workflow.
Restart a deployment by performing a rolling restart.Output: stdout with rollout status
Scale a deployment to a specific replica count.Output: stdout with scale confirmation
Delete one or more pods (useful for forcing recreation).Output: stdout, pods (list of deleted pod names)
Roll back a deployment to the previous revision.Output: stdout with rollback status
Retrieve logs from one or more pods.Output: stdout (logs), pods (pod list), matchedCount (pods matched)
Connection required: Kubernetes (context, namespace, kubeconfig path)

OS Service

Manage operating system services on the agent host using systemctl (Linux) or sc.exe (Windows). Parameters:
os.restartOS requires ALLOW_OS_RESTART=true in the agent configuration. This is disabled by default to prevent accidental system reboots.

Slack

Send messages and reactions to Slack channels via the Slack Bot API.
Action type: slack.sendMessage
Output: channel, ts (message timestamp), message
Connection required: Slack (bot token xoxb-..., default channel)
Use the channel ID (starts with C), not the channel name. Find it in Slack by right-clicking a channel and selecting “View channel details” — the ID is at the bottom.

Jira

Create and manage Jira issues directly from your workflows.
Create a new Jira issue.Output: issueId, issueKey (e.g., OPS-123), url
Update fields on an existing issue.
Add a comment to an existing issue.
Transition an issue to a different status (e.g., Open → In Progress → Done).
Connection required: Jira (server URL, email, API token)

Email

Send emails via SMTP. Action type: email.sendEmail Connection required: Email (SMTP host, port, TLS, from address, credentials)

Teams

Send messages to Microsoft Teams channels. Parameters: Connection required: Teams (incoming webhook URL)

Database

Execute SQL queries against connected databases. Action type: database.executeQuery Output variables: Connection required: Database (host, port, database, driver, credentials)
Be careful with template variables in SQL queries. While EasyAlert escapes shell commands, SQL queries should use parameterized queries when possible to prevent SQL injection.

WinRM

Execute commands and scripts on Windows servers via WinRM (Windows Remote Management). Parameters: Output: stdout, stderr, exitCode (same as SSH) Connection required: WinRM (host, port, SSL, auth method, credentials)

Notification

Send notifications through EasyAlert’s built-in notification channels without requiring an agent connection. Action type: notification.sendNotification
Notification actions are routed through the SaaS notification service, not through the agent. This means they work even if all agents are offline.

Using Variables in Actions

Template variables ({{variable.path}}) can be used in any action parameter — commands, URLs, message bodies, query strings, and more.

Shell Escaping

When template variables are used in SSH commands or scripts, EasyAlert automatically applies shlex.quote() escaping to prevent command injection. For example:
The semicolon and subsequent command are safely quoted as a literal string.

Chaining Node Outputs

Reference outputs from previous nodes to build data pipelines:
Template variables resolve at execution time. If the referenced node hasn’t executed yet (e.g., it’s in a different branch), the variable resolves to an empty string. Always ensure the data source node is upstream in the execution path.

Quick Reference