Skip to content

Глава 2. Ваш первый воркфлоу

Теория без практики — ничто. В этой главе мы построим реальный воркфлоу: будем запрашивать текущую погоду в Москве и отправлять сообщение в Telegram. Никаких API-ключей для погоды не понадобится.

Что мы построим

Manual Trigger → HTTP Request (погода) → Code (форматирование) → Telegram

Четыре ноды, один сценарий, десять минут.

Шаг 1. Создайте новый воркфлоу

Откройте n8n в браузере. На боковой панели нажмите + New Workflow. Откроется пустой холст с одной нодой — Manual Trigger.

TIP

Manual Trigger позволяет запускать воркфлоу вручную — нажатием кнопки. Это удобно для разработки и тестирования.

Шаг 2. Добавьте ноду HTTP Request

Нажмите на кружок справа от Manual Trigger (или кнопку + на холсте). В поиске введите HTTP Request и выберите эту ноду.

Заполните параметры:

ПолеЗначение
MethodGET
URLhttps://api.open-meteo.com/v1/forecast?latitude=55.75&longitude=37.62&current=temperature_2m,relative_humidity_2m,wind_speed_10m,weather_code&timezone=Europe/Moscow

Что такое Open-Meteo?

open-meteo.com — бесплатный API погоды с открытым исходным кодом. Координаты 55.75, 37.62 — это Москва. API-ключ не нужен.

Нажмите Test step — нода выполнится и вернёт JSON с данными о погоде. В разделе Output вы увидите структуру ответа.

Шаг 3. Изучите структуру данных

После выполнения HTTP Request посмотрите на вывод:

json
{
  "latitude": 55.75,
  "longitude": 37.625,
  "timezone": "Europe/Moscow",
  "current": {
    "time": "2024-04-19T12:00",
    "temperature_2m": 14.8,
    "relative_humidity_2m": 54,
    "wind_speed_10m": 11.4,
    "weather_code": 3
  }
}

Поле current содержит текущие показатели. weather_code — числовой код состояния погоды по стандарту WMO (0 = ясно, 3 = облачно, 61 = дождь и т.д.).

Шаг 4. Добавьте ноду Code

Подключите к HTTP Request ноду Code. В ней мы отформатируем данные в читабельное сообщение на русском.

Выберите язык JavaScript и вставьте код:

javascript
const current = $input.first().json.current;

// Таблица кодов WMO для описания погоды
const wmoDesc = {
  0: 'Ясно ☀️', 1: 'Преимущественно ясно 🌤', 2: 'Переменная облачность ⛅',
  3: 'Облачно ☁️', 45: 'Туман 🌫', 48: 'Туман с изморозью 🌫',
  51: 'Лёгкая морось 🌦', 61: 'Небольшой дождь 🌧', 63: 'Дождь 🌧',
  71: 'Небольшой снег 🌨', 73: 'Снег 🌨', 80: 'Ливень 🌦',
  95: 'Гроза ⛈', 99: 'Гроза с градом ⛈'
};

const temp = current.temperature_2m;
const humidity = current.relative_humidity_2m;
const wind = current.wind_speed_10m;
const code = current.weather_code;
const desc = wmoDesc[code] || `Код погоды: ${code}`;

const message = [
  `🌤 Погода в Москве сейчас:`,
  ``,
  `🌡 Температура: ${temp}°C`,
  `${desc}`,
  `💧 Влажность: ${humidity}%`,
  `💨 Ветер: ${wind} км/ч`,
].join("\n");

return [{ json: { message } }];

Нажмите Test step. В выводе появится объект с полем message — готовое текстовое сообщение.

$input.first()

$input.first() возвращает первый элемент из входных данных предыдущей ноды. Подробнее о структуре данных и встроенных переменных — в следующей главе.

Шаг 5. Добавьте ноду Telegram

Нужен Telegram-бот

Для этого шага необходим бот-токен. Создайте бота через @BotFather в Telegram командой /newbot. Скопируйте выданный токен.

Добавьте ноду Telegram и настройте:

  1. Credentials → нажмите Create New → вставьте токен бота в поле Access Token.
  2. Resource: Message
  3. Operation: Send Message
  4. Chat ID: ваш числовой ID (узнать можно через @userinfobot)
  5. Text: нажмите на поле, переключитесь в режим Expression и введите:
{{ $json.message }}

Шаг 6. Запустите воркфлоу

Нажмите кнопку Test workflow вверху холста. Если все ноды подсветились зелёным — воркфлоу выполнился успешно. Проверьте Telegram: там должно быть сообщение с погодой.

Шаг 7. Сохраните и активируйте

Нажмите Save (Ctrl+S), дайте воркфлоу имя, например Погода в Москве.

Если хотите запускать его по расписанию — замените Manual Trigger на Schedule Trigger:

ПолеЗначение
Trigger IntervalDays
Hour9
Minute0

После настройки включите тумблер Active вверху страницы. Теперь воркфлоу будет запускаться автоматически каждый день в 9:00.

Отладка ошибок

Если нода выполнилась с ошибкой, она подсветится красным. Кликните по ней, чтобы увидеть текст ошибки. Чаще всего причина — в неверных credentials или в том, что поле данных называется не так, как ожидалось.

Используйте Pin Data — кликните правой кнопкой по ноде и «заморозьте» вывод. Тогда при повторных запусках нода не будет делать реальный HTTP-запрос, а вернёт сохранённые данные. Очень удобно для разработки.


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

Неофициальная документация. n8n — продукт n8n GmbH.