Пример настройки и использования инструмента «Запуск Python кода»
С новым инструментом «Запуск Python кода» вы можете выполнять любые вычисления и преобразования данных внутри автоматизации:
- форматировать текст;
- чистить HTML;
- работать с датами, числами, JSON;
- создавать собственную логику обработки данных.
Этот шаг выполняет ваш Python-код в изолированной среде и возвращает результаты дальше по связке.
Если вам удобнее работать с JavaScript, используйте инструмент Запуск JavaScript кода.
Как работает инструмент
Чтобы добавить «Запуск Python кода» в связку:
- Добавьте действие (код) и выберите Python.

- Настройте входные данные. Это переменные, которые будут доступны внутри кода.
Каждой переменной нужно: - Задать имя.
- Указать тип данных.
- Выбрать значение из предыдущих шагов.
При необходимости добавляйте новые переменные. Для этого нажмите на кнопку Добавить поле. Это создаст новую строку, в которой можно указать имя новой переменной и настроить её значение. Лишние переменные (поля) можно удалить.
- Далее вам нужно настроить «Выходные данные». Нужно вручную прописать имя переменной, которую необходимо получить на выходе и указать тип переменной. Во всех следующих шагах связки вам будут доступны поля этого шага.
При этом, как и во «Входных данных», можно создавать несколько переменных (полей).
Правило: если в «Выходных данных» есть поле Outputdata, то в коде обязательно должна быть строка: Outputdata = …
Outputdata, то в коде обязательно должна быть строка:Outputdata = ...Без этого шаг не выполнится.Нажмите Сохранить.
- После этого можно написать любой код на языке Python, используя объявленные переменные. Также вы можете создать новые переменные на основе уже существующих.
Пожалуйста, используйте его только в том случае, если вы уверенно работаете с Python.
Код выполняется в изолированной среде (песочнице). Чтобы обеспечить безопасное выполнение кода, мы ограничили внешние запросы и работу с сетью. Например, нельзя использовать библиотеки для HTTP-запросов.
Полный список ограничений и доступных модулей смотрите ниже.
В последующих шагах можно будет увидеть те поля, которые вы настроили в разделе «Выходные данные», и использовать их дальше в связке.
Кроме того, в журнале будет отображаться статус выполнения самого Python-кода.

Ограничения и безопасность
- Версия Python: 3.11
- Таймзона окружения: UTC
- Лимит памяти: 512 мб
- Максимальное время выполнения одного шага (timeout): 10 секунд
Код выполняется в изолированной среде (песочнице).
В рамках текущей реализации:
- Нельзя устанавливать произвольные внешние библиотеки. Доступны только модули из whitelist (см. ниже).
- Запрещены внешние запросы и сеть (например, requests, urllib и socket).
Whitelist модулей (библиотек)
В Python-шаге доступны модули из разрешённого списка (whitelist). Разрешены, например:
collections, collections.abc, functools, itertools, operator,
heapq, bisect, array, copy, json, numpy, csv, base64, binascii,
hashlib, hmac, pprint, textwrap, uuid, typing, dataclasses,
traceback, decimal, fractions
Ошибки и диагностика
Если шаг завершился ошибкой:
- Проверьте, что «Выходные данные» настроены и имена выходных переменных совпадают с тем, что вы присваиваете в коде.
Инструмент «Запуск Python кода» - Проверьте входные данные: достаточно ли строк/структуры. Часто ошибки возникают при split, когда строка не содержит ожидаемых строк.
- Убедитесь, что не используете запрещённые модули/внешние запросы.
Применение инструмента “Запуск Python кода”
Кейс 1. Вычесть из даты и времени начала дату и время окончания и вывести результат в минутах
Такой кейс подходит, когда нужно посчитать длительность времени выполнения заказа, продолжительности звонка или длительности встречи. Часто сервисы отдают две метки времени, но не вычисляют разницу.
С помощью Python можно легко превратить две даты в одно числовое значение и использовать его дальше в автоматизации, например, для фильтрации, создания отчётов, расчётов стоимости, аналитики.
Код:
date_start = datetime.fromisoformat(date_start) # или другой формат, в котором приходит строка
date_end = datetime.fromisoformat(date_end)
dif_minutes = (date_end – date_start).total_seconds() / 60
Кейс 2. Разбивка даты и времени на два параметра + обрезка секунд
Некоторые приложения принимают данные по дате и времени отдельно, а не одним полем. Иногда также нужно записать данные в Google Sheets/CRM в определённом формате, например, без секунд.
Этот кейс полезен, если:
- сервис отдаёт «грязную» дату в unix, ISO или строкой;
- требуется дальнейшее сравнение дат, где важны только часы и минуты;
- нужно привести данные к одному виду для последующих шагов автоматизации.
В этом примере мы разбиваем входной параметр «Дата и время» на два отдельных значения: дату и время. Потом обрезаем секунды, оставляя только формат Часы:Минуты.
Код:
from datetime import datetimedate_time_str = date_time.strip() # вход ВСЕГДА строка
# Определяем формат
if date_time_str.isdigit():
# Если строка содержит только цифры → считаем что это timestamp в миллисекундах
dt = datetime.fromtimestamp(int(date_time_str) / 1000)
else:
# Пробуем ISO 8601
try:
dt = datetime.fromisoformat(date_time_str)
except ValueError:
# Пробуем формат “YYYY-MM-DD HH:MM:SS”
dt = datetime.strptime(date_time_str, “%Y-%m-%d %H:%M:%S”)
def date_edit(arr):
return [(f“0{el}” if el < 10 else str(el)) for el in arr]
date_str = “.”.join(date_edit([dt.day, dt.month, dt.year]))
time_str = “:”.join(date_edit([dt.hour, dt.minute]))
Кейс 3. Очистка писем от тегов
Некоторые сервисы отправляют письма или уведомления в формате HTML: с тегами <br>, <p>, <strong>, с пробелами или с лишними переносами строк.
Если такие данные используются в автоматизации дальше, например, переходят в задачу, Slack, CRM или отправляются клиенту, они выглядят некрасиво и могут “сломать” формат.
Код:
r'<(/?[^>]+)>|(\\n)|(\\s{4,})’,
flags=re.MULTILINE
)html = regexp.sub(”, html).strip()
Теперь вы можете использовать инструмент «Запуск Python кода» для расчётов, преобразования данных, очистки текста внутри вашей автоматизации. Если у вас появились вопросы, вы можете связаться с нашей поддержкой в чате.
Присоединяйтесь к сообществу автоматизаторов в Telegram — делитесь опытом, находите решения и обсуждайте лучшие подходы к автоматизации бизнес-процессов вместе с 1700+ участниками!





