Use an automation for a task you repeat often with a clear trigger and a clear result: triaging an alert, drafting a first reply, researching a new signup, or posting a daily summary. An automation runs a standing instruction on its own, either each time a message lands in a Slack channel or on a schedule you set, and replies when there’s something to say.
Create an automation
The simplest way is to ask Indent. Mention @indent in a channel and describe what you want
automated, including a schedule if you want one:
@indent set up an automation that researches each new signup posted here, looks
up the person and their company, and replies in the thread. Ignore test signups.Indent configures the trigger, pins it to the right environment, and sends you a link to review or change it.
You can also attach a quick instruction to the current channel with the /automate command:
@indent /automate Research each new signup posted in this channel. Look up the
person and their company and reply in the thread. Ignore test and placeholder
signups.To turn a channel’s automation off, post @indent /no-automate; this disables it rather than
deleting it. You can also create and manage automations in the web app under
Automations. A channel can have one message-triggered
automation at a time.
Choose which messages trigger a run
A message-triggered automation reads as a sentence: When a bot posts in #channel. Change the sender to control what starts a run:
- a bot posts — another tool’s messages, such as an alert feed. This is the default.
- a person posts — messages from your teammates.
- a bot or person posts — every new message in the channel.
- @indent is tagged — no run starts on its own. Indent applies the instruction when someone mentions it in the channel.
Only top-level messages start a run. A reply inside a thread doesn’t, unless it mentions @indent.
How a run works
Each automation run gets its own session and computer. For a message-triggered automation, Indent
replies in a thread on the message that triggered it; for a scheduled one, it posts a short notice
in the channel you chose, under the automation’s name and its own clock icon, and works in a thread
on that notice. Mention @indent in that thread to steer the run or ask a follow-up.
Watch runs arrive on the automation’s Recent sessions tab in the web app, and open any one of them to read it step by step. A session started by an automation carries the automation’s name in its header.
To ask Indent something yourself, mention @indent in the channel. Indent answers in a normal
session and can use the automation’s instruction as context.
By default an automation runs in a sandbox with no code checked out, which is the usual reason a first run does nothing useful. To run it in the context of your repository, services, and dependencies, point the automation at one of your development environments.
Memory across runs
An automation keeps its own memory that carries across every run. Indent records durable notes — a recurring step, what to skip, how you want results reported — and reads them on the next run. Ask Indent in the channel to remember or drop something. See Memories.
Change what an automation does
Edit the automation in the web app, or ask Indent in the channel. For example, tell it to stop replying to staging deploys. The change applies to every future run.
Run on a schedule
An automation can run on a schedule instead of waiting for a message. Set one up by asking Indent in Slack (“every weekday at 9am, summarize yesterday’s signups here”), or in the web app under Automations.
A scheduled automation needs:
- A frequency — hourly, daily, weekly, or custom. Daily and weekly run at an hour you pick;
custom takes a cron expression such as
0 9 * * 1-5(every weekday at 9:00). - A timezone, which the schedule is evaluated in.
- Where the result goes — a Slack channel, or Indent only. An Indent-only run posts nothing in Slack and shows up on the automation’s Recent sessions tab.
Missed times aren’t backfilled. If a scheduled run comes due while the automation is disabled, it runs at the next scheduled time.
Examples
- Alert triage —
@indent /automate Triage each Datadog alert posted in this channel. Verify the root cause from the trace and production data, then reply with only the cause, in three sentences or fewer. - Security review —
@indent /automate When a message is posted here, review everything shipped in the last 24 hours using subagents and flag security issues, ranked by severity. - Error triage —
@indent /automate When triggered, pull the day's Sentry issues, surface the top ten, and link each one to the code that caused it and any related Linear ticket.