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

# HTTP-запрос

> Вызывайте любой внешний API из рабочего процесса

<Tip>
  Мы настоятельно рекомендуем создавать Автоматизации с помощью действия «Запустить скрипт», поскольку оно поддерживает все варианты поведения действий, включая те, которые иначе пришлось бы создавать вручную. Просто опишите свои требования ИИ в чате.

  Обратите внимание: если вы добавите действия вручную, ИИ не сможет распознать или изменить их позднее.
</Tip>

## Создание с помощью ИИ

Откройте ИИ-чат на правой боковой панели Таблицы и опишите, что вам нужно.

ИИ сделает всё сам: выберет подходящий триггер и нужные действия, сопоставит Поля и автоматически настроит весь рабочий процесс.

Достаточно один раз описать цель — и рабочий процесс будет готов без ручной настройки.

Отправляет HTTP-запрос на любой URL-адрес и возвращает ответ. Используйте это действие для вызова REST API, отправки уведомлений в Slack или Discord, передачи данных в CRM либо взаимодействия с любым сервисом, у которого есть HTTP API.

## Конфигурация

| Настройка    | Обязательно | Описание                                                                                   |
| ------------ | ----------- | ------------------------------------------------------------------------------------------ |
| URL          | Да          | Целевая конечная точка. Поддерживает динамические переменные, добавляемые с помощью **+**  |
| Метод        | Да          | GET, POST, PUT, PATCH, DELETE или HEAD                                                     |
| Заголовки    | Нет         | Пользовательские HTTP-заголовки в виде пар «ключ — значение»                               |
| Content-Type | Нет         | Формат тела запроса (см. ниже)                                                             |
| Тело         | Нет         | Полезная нагрузка запроса — текст или пары «ключ — значение» в зависимости от Content-Type |

## Как настроить

1. Добавьте действие **HTTP-запрос** в рабочий процесс.
2. Введите **URL** конечной точки API. С помощью **+** можно вставить динамические значения (например, включить идентификатор Записи в путь URL).
3. Выберите **Метод**:
   * **GET** — получение данных.
   * **POST** — отправка данных для создания объекта.
   * **PUT / PATCH** — обновление существующих данных.
   * **DELETE** — удаление данных.
4. Добавьте **Заголовки**, если они нужны API (например, токены авторизации или пользовательские заголовки).
5. При необходимости выберите **Content-Type** и укажите **Тело** (для POST, PUT, PATCH).
6. Сохраните действие.

## Описание вариантов Content-Type

| Content-Type                        | Когда использовать                                      | Формат тела                                              |
| ----------------------------------- | ------------------------------------------------------- | -------------------------------------------------------- |
| `application/json`                  | Большинство REST API. Отправка структурированных данных | Текст JSON (например, `{"key": "value"}`)                |
| `application/x-www-form-urlencoded` | Традиционная отправка форм и некоторые устаревшие API   | Пары «ключ — значение» с автоматическим URL-кодированием |
| `multipart/form-data`               | Загрузка файлов или смешанные данные                    | Пары «ключ — значение» с поддержкой файлов               |
| `text/plain`                        | Простая текстовая полезная нагрузка                     | Строка обычного текста                                   |

<Tip>Если вы не уверены, какой Content-Type выбрать, используйте `application/json`. Большинство современных API используют JSON.</Tip>

Если вы не уверены, что выбрать, для большинства современных API подойдёт `application/json`.

## Примеры аутентификации

Многим API требуется аутентификация. Ниже приведены распространённые схемы, которые можно настроить в разделе «Заголовки»:

### Токен Bearer

Добавьте заголовок:

* **Ключ:** `Authorization`
* **Значение:** `Bearer your-api-token-here`

Эта схема работает с API таких сервисов, как Slack, GitHub, Notion и многих других.

### Ключ API в заголовке

Добавьте заголовок:

* **Ключ:** `X-API-Key` (или другое значение, ожидаемое API, например `api-key`, `x-api-token`)
* **Значение:** `your-api-key`

### Базовая аутентификация

Добавьте заголовок:

* **Ключ:** `Authorization`
* **Значение:** `Basic base64encoded(username:password)`

Учётные данные потребуется закодировать в Base64 вне Teable либо использовать действие «Скрипт» для создания значения заголовка.

## Конкретный пример: отправка уведомления в Slack

Цель: опубликовать сообщение в канале Slack при создании новой Записи.

1. **Триггер:** При создании Записи.
2. **Действие:** HTTP-запрос со следующими параметрами:
   * **URL:** `https://hooks.slack.com/services/T00/B00/xxxx` (URL вебхука Slack)
   * **Метод:** POST
   * **Content-Type:** `application/json`
   * **Тело:**
     ```json theme={null}
     {
       "text": "Создана новая задача: {{Task Name}} — Приоритет: {{Priority}}"
     }
     ```
   Замените `{{Task Name}}` и `{{Priority}}` динамическими переменными триггера, нажав **+**.

## Использование данных ответа на последующих шагах

После выполнения HTTP-запроса ответ становится доступен последующим действиям:

* **Код состояния** — код состояния HTTP (200, 201, 404 и т. д.).
* **Тело ответа** — данные, возвращённые API и, если применимо, разобранные как JSON.

На последующих шагах можно обращаться к отдельным Полям ответа с помощью средства выбора переменных **+**. Например, если API возвращает `{"id": "abc123", "status": "created"}`, можно отдельно обратиться к `id` и `status`. Вставляя динамические значения с помощью **+**, также можно использовать пути Полей и параметры форматирования, если внешний API требует определённый формат запроса.

Это удобно для объединения вызовов API в цепочку: например, создать объект через POST, получить его идентификатор, а затем использовать этот идентификатор в последующем действии «Обновить Запись» или другом HTTP-запросе.

## Когда использовать

* **Публикация сообщений в Slack или Discord.** Отправляйте уведомления в каналы через URL-адреса входящих вебхуков.
* **Синхронизация данных с CRM или ERP.** Передавайте новые или обновлённые Записи в Salesforce, HubSpot или любую систему с API.
* **Вызов любого стороннего API.** Взаимодействуйте с платёжными системами, службами доставки, аналитическими инструментами или пользовательскими внутренними API.
* **Запуск внешних рабочих процессов.** Вызывайте вебхуки Zapier, сценарии Make (Integromat) или другие платформы автоматизации.
* **Получение данных из внешних источников.** Используйте запросы GET, чтобы загружать в рабочий процесс курсы валют, данные о погоде или данные любого общедоступного API.

## Советы

* Всегда сверяйтесь с документацией API, чтобы узнать необходимые заголовки, способ аутентификации и ожидаемый формат тела.
* Для большинства современных API используйте `application/json` в качестве Content-Type. Если API ожидает данные формы, переключитесь на `x-www-form-urlencoded`.
* Если API возвращает ошибку (состояние 4xx или 5xx), действие всё равно завершается, но последующие шаги получат ответ с ошибкой. Если нужна условная обработка, проверяйте код состояния в рабочем процессе.
* Если API возвращает большой ответ, на последующих шагах обращайтесь только к нужным Полям.
* Объедините действие с [циклом (пакетной обработкой)](/ru/basic/automation/actions/logic/loop-run), чтобы выполнять несколько вызовов API — по одному для каждой Записи. Учитывайте ограничения скорости внешнего API.
* Используйте функцию [«Массив в теле HTTP-запроса»](/ru/basic/automation/actions/logic/loop-run), когда нужно отправить несколько элементов одним запросом, а не отдельный запрос для каждого элемента.

## Связанные материалы

* [Цикл (пакетная обработка)](/ru/basic/automation/actions/logic/loop-run) — выполнение HTTP-запросов для каждого элемента массива
* [При получении вебхука](/ru/basic/automation/trigger/external/webhook-received) — обратная операция: получение HTTP-запросов от внешних систем
* [Запустить скрипт](/ru/basic/automation/ai/scripting/runscript) — более сложные взаимодействия с API с помощью пользовательского кода
