---
title: "Creating automations in Slack"
description: "Attach a standing instruction to a Slack channel or a schedule, and Indent runs it on its own: on each new message, or at the times you set."
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.indent.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Creating automations in Slack

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**](https://app.indent.com/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](/getting-started/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](/learning/memory).

## 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.`

Source: https://docs.indent.com/automating/automations/index.mdx
