Action steps reference
About this reference
Steps are the actions an automation performs, run in order from top to bottom. This article lists every step type, grouped by area, with the key values each one needs. To add a step, click a + button on the builder canvas and choose from the step picker.
The slug in parentheses (for example http_call) is the step's identifier in an exported or template definition.
Network
- HTTP request (
http_call) — a generic outbound HTTP call. Needs aurl; optionalmethod,headers, andbody. Any 2xx response counts as success. - Send signed webhook (
send_webhook) — an HMAC-signed POST that matches the AppGram webhook signature, so the receiver can verify it. Needs aurl; optionalsecret,headers, andpayload_template.
Messaging
- Post to Slack (
post_slack) — posts a message to a Slack channel through your connected Slack integration. Needschannelandtext. - Send email (
send_email) — sends mail through your organization's configured transport. Needstoandsubject, plusbody_htmlorbody_text. - Send to Discord (
send_discord) — posts a message via a Discord webhook. Needswebhook_urlandcontent. - Send to Teams (
send_teams) — posts a message via a Microsoft Teams webhook. Needswebhook_urlandtext. - Send to Telegram (
send_telegram) — sends a message via a Telegram bot. Needsbot_token,chat_id, andtext.
AI
- AI chat (
ai_chat) — calls any OpenAI-compatible chat completion API. Needsapi_key,model, anduser_prompt. - AI classify (
ai_classify) — picks one of several categories for an input. Needsapi_key,model,input, and a list ofcategories. - AI extract (
ai_extract) — pulls structured fields out of unstructured text. Needsapi_key,model,input, and aschemadescribing the fields. - AI translate (
ai_translate) — translates text into a target language. Needsapi_key,model,input, andtarget_lang. - RAG chat (
rag_chat) — answers aqueryagainst your project's Help Center knowledge base.
Data and storage
- Set variables (
set) — writes computedvaluesinto the run'svarsnamespace for later steps to read. - Compute (
function) — evaluates anexpressionagainst the run context, optionally storing the result under anoutput_key. - KV set (
kv_set) — stores avalueunder akeyin your organization's key-value store, with an optionalttl_seconds. - KV get (
kv_get) — reads akeyfrom the key-value store. Always succeeds, and reports whether the key was found. - KV delete (
kv_delete) — removes akeyfrom the key-value store.
Flow control
- If / else (
if) — runs thethensteps when aconditionis true, otherwise theelsesteps. - Stop if false (
branch) — ends the run cleanly when aconditionis false; the remaining steps are skipped. - For each (
foreach) — loops a nested list ofstepsonce over each item initems. - Wait (
wait) — pauses the run forduration_seconds(1 second to 7 days) before the next step. - Fail run (
fail) — stops the run immediately and marks it failed, with amessageyou write. - Run automation (
run_automation) — invokes another automation byautomation_id; optionallywaitfor it to finish and passinput.
Wishboard actions
- Create wish (
create_wish) — files a new feature request. Needsproject_idandtitle. - Update wish status (
update_wish_status) — moves a wish to a newstatus. Needswish_id. - Update wish category (
update_wish_category) — re-files a wish under acategory_id. Needswish_id. - Add wish comment (
add_wish_comment) — posts abodycomment on a wish. Needswish_id.
Support actions
- Reply to ticket (
reply_to_ticket) — posts abodyreply on a support ticket. Needsticket_id. - Set ticket status (
set_ticket_status) — changes a ticket'sstatus. Needsticket_id. - Assign ticket (
assign_ticket) — assigns a ticket to a teammate. Needsticket_idandassignee_user_id.
Status and monitoring actions
- Publish status incident (
publish_status_incident) — opens an incident on a status page. Needspage_id,title, andseverity. - Update status incident (
update_status_incident) — posts an update to an existing incident. Needsupdate_id. - Pause monitor (
pause_monitor) — pauses an uptime monitor. Needsmonitor_id. - Resume monitor (
resume_monitor) — resumes a paused monitor. Needsmonitor_id.
Engagement and content actions
- Send notification (
send_notification) — raises an in-app notification. Needstitleandbody; org-wide unless auser_idis set. - Send push (
send_push) — sends a mobile push via the project's connected Firebase app. Needsaudience,title, andbody. - Create changelog entry (
create_changelog_entry) — adds a changelog entry. Needsproject_id,title, andcontent. - Add to roadmap (
add_to_roadmap) — adds a card to a roadmap. Needsroadmap_id,column_id, andtitle. - Tag user (
tag_user) — attaches atagto a user. Needsuser_id. - Create Linear issue (
create_linear_issue) — opens an issue in Linear. Needsteam_idandtitle. - Post to Reddit (
post_reddit) — submits a post to a subreddit through a connected Reddit account. Needsaccount_id,subreddit, andtitle.
Referencing data in a step
Almost any field above accepts ${...} template expressions — ${event.…} for event data, ${steps.…} for an earlier step's output, and ${vars.…} for variables. See Using dynamic values for the full picture.
Limits
An automation definition can hold up to 50 steps, and a condition expression is capped at 2000 characters.