Что такое внешние действия и как с их помощью отправить письмо или запрос в API

Время чтения - 4 мин.
Дата публикации 03.07.2026

В обычной веб-разработке, чтобы отправить письмо клиенту после смены статуса заказа, нужно писать отдельный контроллер, настраивать SMTP, обрабатывать исключения. Это десятки строк кода. В Falcon Space мы сделали проще — внешние действия. Вы пишете одну строчку в SQL-процедуре, и платформа отправляет письмо, SMS, запрос в Telegram или вызывает API.

Расскажу, что это за механизм, какие действия доступны «из коробки» и как вы можете его использовать для интеграций.

Что такое внешние действия простыми словами

Внешние действия — это специальные команды, которые вы добавляете в результат хранимой процедуры. Платформа «видит» эти команды и выполняет их после того, как процедура завершилась. Например, вы написали процедуру, которая изменила статус заказа, и добавили в конец строку «отправить письмо клиенту». Платформа сначала изменит статус, а потом отправит письмо.

Преимущество: не нужно писать внешний код на C#, PHP или Java. Всё внутри SQL, всё в одном месте. Код процедуры легко читается и поддерживается.

Какие внешние действия доступны в Falcon Space

1. Отправка email

Команда: send_email. Параметры: to, subject, body, from (опционально), attachment (путь к файлу). Платформа использует настроенный SMTP-сервер. Не нужно подключать библиотеки.

2. Отправка SMS

Команда: send_sms. Параметры: phone, message, provider (например, smsc). Нужна предварительная настройка провайдера в админке.

3. HTTP-запрос (вызов API)

Команда: send_http. Параметры: url, method (GET/POST), body (JSON/XML), headers. Позволяет интегрироваться с любым внешним API: отправить данные в 1С, дёрнуть сервис расчёта доставки, позвать Telegram-бота.

4. Отправка push-уведомления (через OneSignal или Firebase)

Команда: send_push. Параметры: user_id, title, body. Пользователь должен быть подписан на push.

5. Генерация PDF

Команда: generate_pdf. Параметры: html_content, filename. Создаёт PDF-файл и возвращает ссылку на него.

6. Генерация QR-кода

Команда: generate_qr. Параметры: data (текст или URL). Возвращает изображение в формате base64.

7. Логирование (запись в системный лог)

Команда: log. Параметры: message, level (info, error). Полезно для отладки.

Все эти действия можно комбинировать в одной процедуре. Например, при создании заказа: изменить остатки, отправить письмо клиенту, отправить SMS менеджеру, вызвать API транспортной компании.

Пример: отправка письма при регистрации нового клиента

В процедуре регистрации добавьте в конец:

SELECT 'send_email' AS action,
       @email AS to,
       'Добро пожаловать!' AS subject,
       'Спасибо за регистрацию. Начните работу в личном кабинете.' AS body;

Платформа сама подставит email из переменной. Письмо уйдёт асинхронно, не замедляя регистрацию.

Это избавляет от необходимости писать отдельный обработчик на C#. Всё в одном месте, в одной процедуре.

Пример: вызов API расчёта доставки

В процедуре расчёта доставки (вызывается при нажатии кнопки) можно отправить запрос к API транспортной компании и вернуть результат пользователю:

SELECT 'send_http' AS action,
       'POST' AS method,
       'https://api.cdek.ru/calculator' AS url,
       '{"city_from":"Moscow","city_to":"SPb","weight":5}' AS body,
       'application/json' AS content_type;

Ответ от API приходит во временную таблицу, её можно прочитать и показать пользователю. Внешнее действие сработает синхронно (если нужно получить результат), но не будет блокировать другие операции.

Этот механизм мы использовали для интеграции с доставкой в маркетплейсе вин. Всё работает без единого внешнего скрипта.

Настройка внешних действий в административной панели

Для некоторых действий нужно предварительно настроить провайдеров:

  • Email: указать SMTP-сервер (например, Yandex или корпоративная почта).
  • SMS: выбрать провайдера и ввести API-ключ.
  • Push: настроить OneSignal или Firebase.

Всё это делается через административный интерфейс Falcon Space без программирования.

После настройки вы можете использовать соответствующие команды в любой SQL-процедуре.

Безопасность и ограничения

  • Не допускайте, чтобы пользователь мог вставлять произвольные параметры во внешнее действие (через поля ввода). Всегда экранируйте.
  • Внешние действия не должны быть единственным способом валидации. Проверяйте данные до вызова.
  • Для отладки включите логирование внешних действий — вы будете видеть, какие запросы были отправлены.

В Falcon Space есть встроенная защита от рекурсивных вызовов (если внешнее действие вызывает процедуру, которая снова вызывает внешнее действие, оно будет прервано).

Когда внешние действия лучше не использовать

  • Сложные цепочки последовательных вызовов с зависимостью от результатов. Лучше написать отдельный скрипт.
  • Если нужна гарантированная доставка сообщения (например, письмо с паролем). Внешние действия не имеют очереди повторов.
  • Если внешний API требует сложной предобработки (шифрование, подпись).

Для 90% сценариев (уведомления, простые интеграции) внешних действий более чем достаточно.

Внешние действия — одна из самых любимых возможностей наших клиентов. Они экономят время на доработках и позволяют менять логику уведомлений без изменения кода приложения. Попробуйте — и вы оцените.

Насколько полезной была статья?
Falcon Space, автор блога

Автор статьи - Руслан Раянов

Cоздатель платформы Falcon Space
Запрос расчета стоимости веб-проекта на базе Falcon Space
Если видео Youtube плохо грузится, то попробуйте найти видео в ВК видео на канале Falcon Space
Сайт использует Cookie, Яндекс Метрику. Используя сайт, вы соглашаетесь с правилами сайта. См. Правила конфиденциальности и Правила использования сайта OK