> Расположение: Боты
> Краткое содержание: Как бот в Пачке общается с сотрудниками в личных сообщениях, беседах, каналах и тредах: как узнаёт о сообщениях, когда отвечать, куда отвечать и что для этого настроить
> Это Markdown-версия конкретной страницы. Для контекста за её пределами (правила API, полный перечень методов, авторизация) ОБЯЗАТЕЛЬНО открой [llms.txt](https://dev.pachca.com/llms.txt) перед ответом — это сэкономит токены и предотвратит неполный ответ.


# Общение с ботом

Бот работает там же, где работает команда: в личных сообщениях, беседах, каналах и тредах. Сотрудник пишет боту в личные сообщения, зовёт его по нику в обсуждении или пишет команду в чате, а бот отвечает там, где его позвали. Здесь — как бот узнаёт о сообщениях, понимает, что обращаются к нему, куда отвечает и что для этого настроить.

![Сотрудница зовёт агента по нику в чате команды, агент отвечает тредом к её сообщению и упоминает разработчика из другой команды, тот заходит в тред из уведомления](/images/ai-agent-kai.webp)

*Агента позвали в чате, он отвечает тредом и зовёт туда коллегу*


## Где бот общается

- **Личные сообщения** — сотрудник пишет боту, или бот пишет первым.
- **Беседы и каналы** — бота добавляют участником, и он получает сообщения чата и всех его тредов.
- **Треды** — бота зовут по нику прямо в обсуждении, и он получает сообщения этого треда.

Так работают и [AI-агенты](/guides/ai-agents/overview): агента зовут по нику в чате или треде, а отвечает он тредом.

Кто может добавить бота или написать ему и что бот видит в каждом случае — в разделе [Доступы к чатам и сообщениям](/guides/bots/access).

## Как бот узнаёт о сообщениях

О новых сообщениях бот узнаёт по [исходящему вебхуку](/guides/webhook/overview) с событием **Новые сообщения** (`message_new`). Какие сообщения приходят, решает режим:

- **Любые сообщения** — все сообщения из чатов и тредов, где состоит бот. Нужен боту, который отвечает в личных сообщениях или на упоминание по нику.
- **Начинающиеся с команд** — только сообщения, первое слово которых есть в списке команд, например `/task`. Подходит боту, которого вызывают командой.

Отдельного режима «только упоминания» нет: бот получает все сообщения и сам решает, обращаются ли к нему. Новый бот слушает только команды, а их список пуст, поэтому режим нужно выбрать. Подробнее о режимах — в разделе [Настройка и типы событий](/guides/webhook/events#soobscheniya).

## Когда отвечать

В личных сообщениях к боту обращаются всегда. В беседах, каналах и тредах сотрудники пишут друг другу, и бот, который отвечает на каждое сообщение, мешает. Обычно бот отвечает:

- **в личных сообщениях** — на каждое сообщение, у них `entity_type` равен `"user"`;
- **на упоминание** — в тексте сообщения (`content`) есть `@ник` бота;
- **на команду** — сообщение начинается с команды бота;
- **на продолжение разговора** — например, в треде, где кроме бота только один сотрудник, можно отвечать и без упоминания. Состав треда показывает метод [Информация о чате](/api/chats/get) с `chat_id` из события.

Свои сообщения бот пропускает: включите **Игнорировать свои сообщения** или сравнивайте `user_id` из события с идентификатором бота.

```typescript title="Обращаются ли к боту"
const BOT_ID = 7890 // id бота
const BOT_NICKNAME = "kai_bot"

function isAddressed(event: { user_id: number; entity_type: string; content: string }) {
  if (event.user_id === BOT_ID) return false // своё сообщение
  if (event.entity_type === "user") return true // личные сообщения
  return event.content.includes(`@${BOT_NICKNAME}`) // позвали по нику
}
```

Свой `id` и ник бот узнаёт методом [Информация о профиле](/api/profile/get) со своим токеном, а `id` есть и на вкладке **API** в карточке бота. Текст в `content` — markdown, который Пачка собирает из сообщения: в нём бывают цитаты и списки. Подробнее — в разделе [Разметка в исходящих вебхуках](/guides/markdown#razmetka-v-ishodyaschih-vebhukah).

## Куда отвечать

Отвечайте там, откуда пришло сообщение. Это видно по `entity_type` и `entity_id` в событии:

| Откуда сообщение | `entity_type` | `entity_id` | Как ответить |
| --- | --- | --- | --- |
| Личные сообщения | `user` | Идентификатор сотрудника | С теми же `entity_type` и `entity_id` |
| Беседа или канал | `discussion` | Идентификатор чата | Тредом к сообщению: методом [Новый тред](/api/threads/add) с `id` сообщения, затем ответ с `entity_type: "thread"` и `id` треда. Можно и прямо в чат — с теми же `entity_type` и `entity_id` |
| Тред | `thread` | Идентификатор треда | С теми же `entity_type` и `entity_id`. `parent_message_id` с `id` сообщения добавит к ответу цитату |

```json title="Событие: бота позвали в треде"
{
  "type": "message",
  "event": "new",
  "id": 1245830,
  "entity_type": "thread",
  "entity_id": 334455,
  "chat_id": 9020,
  "user_id": 2345,
  "content": "@kai_bot собери сводку по релизу",
  "created_at": "2026-09-24T09:30:00.000Z",
  "url": "https://app.pachca.com/chats/9020?message=1245830",
  "thread": { "message_id": 1245817, "message_chat_id": 9012 },
  "webhook_timestamp": 1790242200
}
```

Поле `thread` показывает, к какому сообщению и в каком чате открыт тред. Агенту для ответа обычно нужны история треда и это родительское сообщение — как их прочитать, в разделе [Взаимодействие с агентом](/guides/ai-agents/interaction#kontekst-razgovora).

В беседе или канале ответ тредом не теряется в ленте и не мешает остальным. Если у сообщения тред уже есть, метод [Новый тред](/api/threads/add) вернёт его.

```bash title="Ответ тредом на сообщение из канала"
# Тред к сообщению 1245817: если он уже есть, вернётся он же
curl -X POST https://api.pachca.com/api/shared/v1/messages/1245817/thread \
  -H "Authorization: Bearer $BOT_TOKEN"

# Ответ в тред с id из предыдущего ответа
curl -X POST https://api.pachca.com/api/shared/v1/messages \
  -H "Authorization: Bearer $BOT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "message": {
      "entity_type": "thread",
      "entity_id": 334455,
      "content": "Смотрю, через минуту пришлю сводку"
    }
  }'
```

Пока бот готовит ответ, поставьте на сообщение реакцию методом [Добавление реакции](/api/reactions/add) и снимите её методом [Удаление реакции](/api/reactions/remove) после ответа: сотрудник сразу видит, что бот работает. Для агентов есть реакция `agent-thinking` с таймером — подробнее в разделе [Взаимодействие с агентом](/guides/ai-agents/interaction#reaktsiya-agent-thinking).

К ответу можно приложить [кнопки](/guides/buttons), а по нажатию открыть [форму](/guides/forms/overview). Нажатия и отправленные формы приходят событием, если у бота включено **Нажатие кнопок**.

### Что учесть в ответе

- **Разметка.** Ответ пишут в Markdown, список конструкций — в разделе [Форматирование текста](/guides/markdown). Длинный отчёт удобнее прислать файлом `.md` — подробнее в разделе [Оформление ответов](/guides/ai-agents/markdown).
- **Упоминания.** Сотрудника упоминают в тексте как `@nickname` или `<@user_id>`: по идентификатору Пачка сама подставит ник. Упомянутый в треде сотрудник становится участником треда. Чтобы только сослаться на коллегу, передайте `skip_invite_mentions: true` — подробнее в разделе [Участники треда](/guides/threads#uchastniki-treda).
- **Лимиты.** Отправка сообщений ограничена по частоте и по числу сообщений в один чат за сутки — подробнее в разделе [Лимиты](/api/limits#api).

## Личные сообщения

Кто может написать боту в личные сообщения, зависит от того, публичный ли бот и есть ли у сотрудника с ним общий чат. Подробнее — в разделе [Доступы к чатам и сообщениям](/guides/bots/access#lichnye-soobscheniya).

> **Внимание:** **Личный чат создаётся молча.** Когда сотрудник открывает переписку с ботом, события об этом нет — ни о новом чате, ни о новом участнике. Бот узнаёт о сотруднике только из его первого сообщения, поэтому в личных сообщениях первый ход за сотрудником, если бот не написал сам.


Чтобы начать разговор самому, например поприветствовать нового сотрудника, бот отправляет сообщение методом [Новое сообщение](/api/messages/create) с `entity_type: "user"` и идентификатором сотрудника в `entity_id`.

В личных сообщениях бот просит и доступ, когда ему нужны права самого сотрудника: присылает кнопку авторизации. Это отдельный путь со своими настройками — подробнее в разделах [Авторизация от имени сотрудника](/guides/oauth/overview) и [Чек-лист запуска](/guides/oauth/checklist).

## Что настроить


  ### Шаг 1. Исходящий вебхук с адресом

На вкладке **Исходящий вебхук** нажмите **Включить** и укажите URL своего сервера. Адрес должен быть доступен из интернета: для разработки подойдёт туннель, а без входящих запросов — [поллинг](/guides/webhook/polling) истории событий. Подробнее — в разделе [Настройка и типы событий](/guides/webhook/events#obschie-nastroyki).


  ### Шаг 2. Событие о новых сообщениях и режим

Включите **Новые сообщения** и выберите режим: **Любые сообщения** — боту, которого зовут по нику или которому пишут в личные сообщения, **Начинающиеся с команд** со списком команд — боту с командами.

Если в ответах будут Data-кнопки или формы, включите и событие **Нажатие кнопок**: без него нажатия и отправленные формы до бота не дойдут. Те же настройки через API — в разделе [Через API](/guides/webhook/events#cherez-api).


  ### Шаг 3. Проверка подписи и свои сообщения

Проверяйте подпись каждого запроса по **Signing secret**, чтобы отличать запросы Пачки от чужих. Включите **Игнорировать свои сообщения**, чтобы бот не реагировал на собственные ответы. Подробнее — в разделе [Безопасность и обработчик](/guides/webhook/handler).


  ### Шаг 4. Токен с нужными правами

Отвечать — `messages:create`, отвечать тредом — `threads:create`, ставить реакцию — `reactions:write`. Читать историю и состав чата — `messages:read` и `chats:read`, узнать свой `id` и ник — `profile:read`. Подробнее — в разделе [Токены бота](/guides/bots/tokens).


![Вкладка «Исходящий вебхук»: Webhook URL, Signing secret, включено «Игнорировать свои сообщения», событие «Новые сообщения» в режиме «Любые сообщения» и «Нажатие кнопок»](/images/outgoing-webhook-all-messages.webp)

*Вкладка «Исходящий вебхук» с настройками из шагов выше*



## Связанные разделы

- [Доступы к чатам и сообщениям](/guides/bots/access)
- [Исходящие вебхуки: Настройка и типы событий](/guides/webhook/events)
- [Кнопки в сообщениях](/guides/buttons)
- [AI-агенты: Взаимодействие с агентом](/guides/ai-agents/interaction)
