
# Продвинутые функции

## Загрузка файлов

![Настройка загрузки файла в узле Pachca](/images/n8n/file-upload.avif)

*Ресурс File с параметрами загрузки*


Ресурс **File** позволяет загружать файлы через двухшаговый S3 upload. n8n автоматически выполняет оба этапа: запрашивает presigned URL через API и загружает файл на S3.

**Два источника файлов:**

| Источник | Описание |
|----------|----------|
| **URL** | Файл загружается по ссылке. Укажите `fileUrl`, `fileName` и `contentType` |
| **Binary Data** | Файл из предыдущего узла workflow (например, из HTTP Request). Укажите `binaryProperty` |

**Пример workflow: загрузка PDF и отправка в чат**

1. **HTTP Request** — скачать файл по URL
2. **Pachca** (File > Create) — загрузить файл, получить `key`
3. **Pachca** (Message > Create) — отправить сообщение с прикреплённым файлом, указав `key` в поле `files`

> Загруженные файлы привязываются к сообщениям через массив `files` при создании или обновлении сообщения. Каждый файл описывается объектом с полями: `key`, `name`, `file_type`, `size`.


Подробнее — в [документации загрузки файлов](/api/file-uploads).

---

## Загрузка аватара

Операции **Update Avatar** для ресурсов **Profile** и **User** позволяют загружать аватар через `multipart/form-data`.

**Как использовать:**

1. **HTTP Request** или **Read Binary File** — загрузите изображение в бинарное свойство (по умолчанию `data`)
2. **Pachca** (Profile > Update Avatar или User > Update Avatar) — в поле **Input Binary Field** укажите имя бинарного свойства

Для удаления аватара используйте операцию **Delete Avatar** — она не требует параметров (для User — только `userId`).

> Операции с аватарами сотрудников (User > Update/Delete Avatar) требуют прав администратора.


---

## Экспорт сообщений

Ресурс **Chat Export** позволяет выгружать сообщения из чатов. Экспорт выполняется асинхронно: вы запрашиваете экспорт, а Пачка присылает уведомление на вебхук, когда архив готов.

**Пример workflow:**


  ### Шаг 1. Настройте приём вебхука

Создайте отдельный workflow с узлом **Webhook** (встроенный в n8n). Он создаст URL, на который Пачка отправит уведомление о готовности экспорта. Скопируйте этот URL — он понадобится на следующем шаге.


  ### Шаг 2. Запросите экспорт

В основном workflow добавьте узел **Pachca** с ресурсом **Chat Export** и операцией **Create**. Укажите период (`startAt`, `endAt`) и вставьте URL вебхука из первого шага в поле `webhookUrl`.


  ### Шаг 3. Обработайте уведомление

Когда экспорт будет готов, Пачка отправит JSON на ваш вебхук:
    ```json
    {
      "type": "export",
      "event": "ready",
      "export_id": 22322,
      "created_at": "2025-03-20T12:33:58Z"
    }
    ```


  ### Шаг 4. Скачайте архив

В workflow с Webhook-узлом добавьте узел **Pachca** с ресурсом **Chat Export** и операцией **Get**. Передайте `export_id` из данных вебхука в поле **ID**. Архив будет скачан автоматически.


**Ограничения:**
- Максимальный период одной выгрузки: 45 дней (366 дней при указании конкретных чатов)
- Максимум 50 чатов при фильтрации по `chatIds`
- Новый запрос можно сделать только после завершения текущего

Подробнее — в [документации экспорта](/guides/export).

---

## Кнопки в сообщениях

![Настройка кнопок в сообщении в узле Pachca](/images/n8n/message-buttons.avif)

*Кнопки в параметрах сообщения*


При создании или обновлении сообщения можно добавить интерактивные кнопки через поле **Buttons**. Кнопки передаются как JSON-строка.

Два типа кнопок:

| Тип | Описание |
|-----|----------|
| **URL-кнопка** | Открывает ссылку в браузере |
| **Data-кнопка** | Отправляет вебхук с `button_pressed` событием |

Пример JSON для одной строки кнопок:

```json
[
  [
    { "text": "Открыть сайт", "url": "https://example.com" },
    { "text": "Подтвердить", "data": "confirm_action" }
  ]
]
```

Максимум 100 кнопок на сообщение, до 8 в одной строке.

Подробнее о кнопках, их внешнем виде в чате и обработке нажатий — в [документации кнопок](/guides/buttons).

---

## Формы

Ресурс **Form** позволяет открывать модальные формы (представления) для пользователей.

**Как это работает:**

1. Пользователь нажимает Data-кнопку в сообщении бота
2. Бот получает вебхук с `trigger_id`
3. Бот вызывает [Открытие представления](POST /views/open) с `trigger_id` и описанием формы
4. Пользователь видит модальное окно с полями

**Ключевые параметры:**

| Параметр | Описание |
|----------|----------|
| `triggerId` | Уникальный ID из вебхука кнопки (действителен 3 секунды) |
| `title` | Заголовок модального окна |
| `type` | Тип представления (по умолчанию `modal`) |
| `blocks` | JSON-массив блоков формы |
| `submitText` | Текст кнопки отправки |
| `closeText` | Текст кнопки закрытия |

**Пример workflow:**

1. **Pachca Trigger** — событие `Button Pressed`
2. **Pachca** (Form > Create) — открыть форму с `trigger_id` из триггера
3. **Pachca Trigger** — событие `Form Submitted` (в отдельном workflow)
4. Обработка данных формы

Подробнее о формах, типах полей и внешнем виде модального окна в интерфейсе Пачки — в [документации форм](/guides/forms/overview).

---

## AI-агент

![Pachca как инструмент AI Agent в n8n](/images/n8n/ai-agent-tool.avif)

*Pachca Tool в панели инструментов AI Agent*


Оба узла (Pachca и Pachca Trigger) поддерживают `usableAsTool: true` — их можно использовать как инструменты для **AI Agent** в n8n.

**Что это значит:**

- AI Agent может вызывать операции Pachca для выполнения задач
- Примеры: поиск сообщений, отправка ответов, создание задач
- Agent автоматически выбирает подходящую операцию на основе запроса

**Пример: AI-помощник для команды**


  ### Шаг 1. Добавьте AI Agent

Создайте новый workflow. Добавьте узел **AI Agent** и подключите LLM-модель (OpenAI, Anthropic и др.) через соответствующие Credentials.


  ### Шаг 2. Подключите инструменты Pachca

Нажмите **+** на входе **Tool** узла AI Agent и добавьте узел **Pachca**. Выберите нужную операцию — например, **Search > Get Many Messages** для поиска по сообщениям. Добавьте ещё один узел Pachca для **Message > Create** — отправки ответов.


  ### Шаг 3. Настройте триггер

Добавьте **Pachca Trigger** с событием `New Message` на вход workflow. AI Agent будет автоматически отвечать на сообщения пользователей, используя поиск по истории чатов.


AI Agent самостоятельно выбирает подходящий инструмент на основе запроса пользователя — ищет информацию, создаёт задачи или отправляет сообщения.

> Для использования AI Agent необходимо настроить LLM-провайдер (OpenAI, Anthropic и др.) в Credentials n8n.


---

## Разворачивание ссылок

Ресурс **Link Preview** позволяет формировать кастомные превью для ссылок в сообщениях бота.

Когда бот отправляет сообщение со ссылкой, Пачка может запросить у бота данные для превью. Бот может ответить через [Создание превью ссылки](POST /messages/{id}/link_previews) с заголовком, описанием и изображением.

Подробнее — в [документации разворачивания ссылок](/guides/link-previews).

---

## Журнал безопасности

Ресурс **Security** предоставляет доступ к журналу аудита — списку событий безопасности в пространстве.

**Доступные фильтры:**

| Фильтр | Описание |
|--------|----------|
| `eventKey` | Тип события (login, message_created, user_deleted и др.) |
| `actorId` | ID пользователя, совершившего действие |
| `actorType` | Тип актора (user или bot) |
| `entityId` | ID сущности, над которой совершено действие |
| `entityType` | Тип сущности |
| `startTime` | Начало временного диапазона |
| `endTime` | Конец временного диапазона |

Подробнее — в [документации журнала аудита](/guides/audit-events).
