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.
@indent /automate starts the same thing from the channel you want the automation in:
@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.Indent opens a session, works out with you what the job needs to do, and tries the job once before saving it. Both commands work in a channel rather than a direct message.
A channel can have one automation that runs on its messages at a time. To change what a channel does, edit its automation rather than creating a second one. You can also create and manage automations in the web app under Automations.
To turn a channel’s automation off, post @indent /no-automate and nothing else. You can re-enable
the automation to start it later.
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 organization-visible 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 Sessions tab in the web app, and open any one of them to read it step by step. A session started by an automation shows the automation’s name in its header. Everyone in your organization can open these sessions. Choosing Indent only suppresses the Slack post, not the session or its outputs.
Automation runs use organization-scoped integrations. Connect every service the automation needs for the organization rather than relying on a personal connection.
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.
An automation uses its selected environment when one is set. Otherwise, it uses your organization’s default environment. If neither is set, it runs in a sandbox with no code checked out. To run it in the context of your repository, services, and dependencies, point the automation at one of your development environments.
Choose a model
Choose Model while creating an automation or from its Settings tab. Use your organization’s default model or pin every run to a supported model. You can also ask Indent to set, change, or clear the selection.
Track usage
Open an automation’s Usage tab to see its month-to-date cost. The reporting period uses UTC month boundaries. The tab shows:
- total month-to-date cost and a daily cost chart;
- the number of billed runs and average cost per run, where each run is one top-level automation session and includes delegated subagent costs; and
- the highest-cost sessions, most expensive first, with each session’s time and cost. Select a row to open that session.
Any member of your organization who can open the automation can view this usage. If the automation has no billed usage for the month, the tab shows an empty state.
Values a run reports
Automations can record values across every run. These values are visible in the automation’s Sessions tab.
- Track up to five values per automation.
- Values may be numbers, text, or links.
- Add, change, or remove tracked values by talking to Indent.
- All values are optional and will be reported as empty for any run that doesn’t report them.
Memory across runs
An automation retains its own memory across every run. Indent records durable notes such as a recurring step, what to skip, or 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 remains visible to the organization on the automation’s 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.