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

# Auto Responders

> Reply automatically when someone says a trigger word.

## Overview

Pick a word or phrase, pair it with a response, and confine posts it whenever someone says the trigger. Useful for FAQ answers, canned links, or self-serve verification.

<Info>
  Every command here requires the **Manage Server** permission.
</Info>

## Creating a responder

The trigger and the response are separated by a comma.

<CodeGroup>
  ```javascript Syntax theme={null}
  ,autoresponder add (trigger), (response)
  ```

  ```javascript Example theme={null}
  ,autoresponder add welc, welcome to the server!
  ```
</CodeGroup>

<Tip>
  Responses accept full embed syntax. Start with `{embed}` to build a rich embed instead of plain text — see [Embed Scripting](/resources/scripting).
</Tip>

### Triggering on a prefix

If your trigger itself starts with a comma, confine handles it — the first comma is treated as part of the trigger rather than the separator.

```javascript theme={null}
,autoresponder add ,welc, welcome to the server!
```

## Flags

Flags go after the response and start with `$`.

<AccordionGroup>
  <Accordion title="$not_strict">
    By default the message has to match your trigger exactly. This flag matches the trigger anywhere inside a message, so `hello` also fires on `hello there`.
  </Accordion>

  <Accordion title="$self_destruct">
    Deletes confine's response after a set number of seconds. Both `$self_destruct 10` and `$self_destruct=10` work.

    <Warning>
      Must be between **6** and **60** seconds.
    </Warning>
  </Accordion>

  <Accordion title="$delete">
    Deletes the member's trigger message once the response goes out.
  </Accordion>

  <Accordion title="$reply">
    Sends the response as a reply to the trigger message instead of a standalone one.
  </Accordion>

  <Accordion title="$ignore_command_check">
    Lets the responder fire even when the message looks like a confine command. `$ignore_command` is accepted as shorthand.
  </Accordion>
</AccordionGroup>

```javascript theme={null}
,autoresponder add welc, welcome to the server! $self_destruct 10 $reply
```

## Variables

Run `,autoresponder variables` for the full list in Discord.

| Variable                    | Resolves to           |
| --------------------------- | --------------------- |
| `{user}` / `{user.mention}` | Mention of the member |
| `{user.name}`               | Their username        |
| `{user.display_name}`       | Their display name    |
| `{user.id}`                 | Their user ID         |
| `{user.avatar}`             | Their avatar URL      |
| `{guild.name}`              | Your server's name    |
| `{guild.id}`                | Your server's ID      |
| `{guild.count}`             | Member count          |
| `{channel.name}`            | Channel name          |
| `{channel.mention}`         | Channel mention       |
| `{date.now}`                | Current date          |
| `{time.now}`                | Current time          |

## Editing and removing

### Updating a response

<CodeGroup>
  ```javascript Syntax theme={null}
  ,autoresponder update (trigger), (response)
  ```

  ```javascript Example theme={null}
  ,autoresponder update welc, welcome back!
  ```
</CodeGroup>

### Removing one

<CodeGroup>
  ```javascript Syntax theme={null}
  ,autoresponder remove (trigger)
  ```

  ```javascript Example theme={null}
  ,autoresponder remove welc
  ```
</CodeGroup>

### Removing all of them

`,autoresponder reset` clears every responder in the server behind a confirmation prompt. Buttons only respond to whoever ran the command and expire after 30 seconds.

## Restricting where it fires

Lock a responder to specific channels or roles.

<CodeGroup>
  ```javascript Syntax theme={null}
  ,autoresponder exclusive (role or channel) (trigger)
  ```

  ```javascript Example theme={null}
  ,autoresponder exclusive #general welc
  ```
</CodeGroup>

<Info>
  This toggles. Running it again on the same target removes the restriction.
</Info>

Check what's restricted with `,autoresponder exclusive list (trigger)`.

## Handing out roles

A responder can add or strip roles when someone says the trigger — handy for self-verification.

<CodeGroup>
  ```javascript Syntax theme={null}
  ,autoresponder role (add or remove) (role) (trigger)
  ```

  ```javascript Example theme={null}
  ,autoresponder role add @Verified verify
  ```
</CodeGroup>

<Warning>
  These toggle as well. Running the same command twice undoes it — the second run removes the role action rather than adding another.
</Warning>

To see what a trigger is wired up to, add `list`:

```javascript theme={null}
,autoresponder role add list verify
,autoresponder role remove list unverify
```

## Viewing your responders

`,autoresponder list` pages through every responder with its active flags.
