8 хв читанняІнтеграції

URL-скорочувач для n8n: вузол HTTP Request чи community-вузол Elido

Побудуйте n8n URL-скорочувач на базі API Elido: налаштування HTTP Request, ID домену та робочого простору, три робочі процеси для коротких посилань, повторні спроби і community-вузол Elido.

Marius Voß
DevRel · edge infra
Обкладинка у піксель-стилі, що показує робочий процес n8n url shortener, де тригер-вузол надсилає довгу URL-адресу в Elido, а наступний крок отримує відстежуване коротке посилання

Щоб сьогодні побудувати n8n URL-скорочувач на Elido, використовуйте вбудований вузол HTTP Request у n8n: POST на /v1/workspaces/{workspace_id}/links з Bearer-токеном, domain_id і destination_url, а у відповіді повертається slug нового посилання та short_url. Цей шлях працює однаково і на n8n Cloud, і на самостійно розгорнутих інстансах. Є також пакетний community-вузол n8n-nodes-elido, опублікований у npm (0.2.0), який обгортає той самий API в типізовані поля для самостійно розгорнутих інстансів.

Більшість пошуків «n8n short link» хочуть саме цей перший шлях. Вузол HTTP Request потребує близько п'яти хвилин налаштування: одні облікові дані, два ID з вашого робочого простору і JSON-тіло. Після цього це просто ще один вузол.

Я писав цей матеріал на основі API та вихідного коду пакета, а не маркетингових текстів, бо тіло запиту легко описати точно і важко вгадати. Якщо REST API вам ще незнайомий, швидкий старт з API та SDK розповідає про токени, робочі простори та решту поверхні, на якій базується цей матеріал.

Два способи скорочувати посилання в n8n

У n8n немає вбудованого скорочувача, тож підключити Elido можна двома способами:

  • Вузол HTTP Request. Вбудований у кожну редакцію n8n, дістається до будь-якої кінцевої точки і дозволяє самостійно встановлювати заголовки на кшталт Idempotency-Key. Це еталонний шлях.
  • Community-вузол n8n-nodes-elido. Пакетний вузол Elido з ресурсом Link і чотирма операціями (Create, Get, List, Get Analytics) плюс тип облікових даних Elido API. Лише для самостійно розгорнутих інстансів.

Рецепти для Make і IFTTT розглядають n8n як один із варіантів серед чотирьох платформ. Тут же n8n отримує цілий матеріал.

Скорочення URL-адреси за допомогою вузла HTTP Request

Почніть із токена. В Elido відкрийте Settings, потім API Tokens, і створіть персональний токен доступу; він починається з elido_ і показується лише один раз. У n8n створіть облікові дані Header Auth з назвою Authorization і значенням Bearer elido_.... n8n шифрує їх при зберіганні і не включає в експортований JSON робочого процесу, що краще, ніж вставляти заголовок у кожен вузол кожного робочого процесу, а потім шукати їх усі того дня, коли токен ротується. Надайте токену роль редактора й дату завершення дії; у нашому розборі дозволів API для інструментів роботи з посиланнями пояснюється, чому робочому процесу з посиланнями ніколи не потрібні права адміністратора.

Далі - два числа. ID вашого робочого простору знаходиться в URL-адресі дашборду одразу після /dashboard/. Для домену виконайте один GET-запит до /v1/workspaces/{workspace_id}/domains з одноразового вузла HTTP Request: кожен елемент містить id і hostname, і вам потрібні обидва.

Далі - сам виклик створення:

Method:         POST
URL:            https://api.elido.app/v1/workspaces/1/links
Authentication: Generic credential > Header Auth (Authorization: Bearer elido_...)
Headers:        Idempotency-Key: {{ $execution.id }}-{{ $itemIndex }}
Body (JSON):    {
                  "domain_id": 7,
                  "destination_url": "{{ $json.link }}",
                  "title": "{{ $json.title }}",
                  "tags": ["n8n", "rss"]
                }

Відповідь - це запис посилання: id, slug, short_url, destination_url, domain_id, теги та часові мітки. Передайте {{ $json.short_url }} у наступний вузол; записаний вами hostname має значення лише якщо ви будуєте URL-адресу вручну. Додайте поле slug для власного вигляду задньої частини посилання (план Starter і вище), або залиште його порожнім - і Elido згенерує slug сам. Документація вузла HTTP Request в n8n охоплює решту параметрів, включно з вбудованою пагінацією для запитів списків.

Як вузол HTTP Request у n8n створює коротке посилання Elido: облікові дані Header Auth з Bearer-токеном, POST на кінцеву точку links робочого простору з domain_id і destination_url, а slug у відповіді поєднується з hostname домену

Community-вузол Elido для самостійно розгорнутого n8n

Пакетний вузол продає одну річ: типізовані поля. Він реєструє облікові дані Elido API (Base URL, API Token, який є ключем API робочого простору і починається з elido_, та Workspace ID), а перевірка облікових даних читає GET /v1/workspaces/{id}. Далі є один вузол Elido з ресурсом Link. Create приймає цільову URL-адресу плюс опційні власний slug, ID домену, назву, теги, термін дії та статус перенаправлення 301, 302 або 307. Get отримує одне посилання за ID. List приймає ліміт від 1 до 100 і фільтри за пошуком, тегами та активним або вимкненим статусом, а також видає по одному елементу n8n на посилання. Get Analytics приймає ID посилання та звіт (кліки в часі або кліки за країною, джерелом, пристроєм чи браузером), дати From і To, які за замовчуванням охоплюють останні 30 днів, і інтервал дня або години, а також видає по одному елементу на рядок. Відповіді для посилань містять short_url.

Перед тим як на нього розраховувати, діє одна умова. n8n Cloud приймає лише перевірені community-вузли, а цей не перевірений, тож або самостійне розгортання, або нічого. Сам пакет є в npm, версія 0.2.0:

npm view n8n-nodes-elido version

На самостійно розгорнутому інстансі власник або адміністратор може відкрити Settings, потім Community Nodes, обрати Install і ввести n8n-nodes-elido. У Docker замість цього встановіть N8N_COMMUNITY_PACKAGES="n8n-nodes-elido". Тригер-вузла Elido поки немає, його планують, тож події посилань і надалі надходять через вузол Webhook n8n, а дії Update і Look Up by slug також заплановані. Сторінка допомоги n8n для самостійно розгорнутих інстансів містить інструкції з налаштування. Гайд зі встановлення community-вузлів у n8n охоплює шляхи через GUI, вручну і через змінні середовища, включно з ручним шляхом, потрібним для налаштувань у режимі черги.

Три робочі процеси для коротких посилань у n8n, варті побудови

Це процеси, які я побудував би першими, у порядку зростання складності. Кожен використовує наведений вище виклик HTTP Request плюс стандартні вузли n8n, тож жоден не залежить від community-пакета.

RSS у коротке посилання у Slack. RSS Feed Trigger опитує ваш блог-фід. Вузол HTTP Request надсилає {{ $json.link }} як цільову адресу і {{ $json.title }} як назву. Далі вузол Slack публікує hostname плюс {{ $json.slug }} у ваш канал оголошень. Це три вузли і жодного відвідування дашборду. Якщо хочете додати UTM-мітки до цих посилань, побудуйте їх у цільовій адресі спершу за допомогою вузла Set; наш гайд з відстеження UTM містить конвенцію іменування.

Новий рядок у таблиці у коротке посилання і назад. Тригер Google Sheets спрацьовує на кожному новому рядку, виклик створення скорочує стовпець url, а другий вузол Sheets записує готову коротку URL-адресу назад у той самий рядок. Це саморобна версія масового імпорту з Google Sheets, краща, коли рядки надходять потроху щодня, і гірша, коли ви вставляєте одразу 5000 за раз.

Нове посилання у канал аудиту. Поставте вузол Webhook n8n першим і підпишіть його продакшн-URL-адресу на link.created у Settings, Webhooks в Elido. Увімкніть опцію Raw Body вузла Webhook, бо підпис - це HMAC-SHA256 над timestamp.raw_body, і повторно серіалізоване JSON-тіло не збігатиметься. Перевіряйте у вузлі Code, а потім публікуйте slug і цільову адресу в Slack. Форма webhook у дашборді перелічує події життєвого циклу посилань і робочого простору, а не події для кожного кліка окремо (подія click.created запланована), тож для звітів про кліки я б налаштував запланований запит замість цього. Матеріал про події webhook охоплює повторні спроби і заголовки.

Робочий процес n8n url shortener у трьох вузлах: RSS Feed Trigger передає посилання і назву елемента вузлу HTTP Request, який створює посилання Elido, а вузол Slack публікує hostname плюс отриманий slug

Втомилися вручну вставляти посилання в ті самі три інструменти щопонеділка? Відкрийте безкоштовний робочий простір, згенеруйте токен і зберіть наведений вище RSS-процес приблизно за той час, який потрібен, щоб прочитати цей розділ.

Обробка помилок: повторні спроби, дублікати і невдалі запуски

У n8n кожен вузол має два важливі тут налаштування. Retry On Fail повторно запускає вузол при помилці з обраною вами паузою, а On Error визначає, чи зупиниться робочий процес, продовжить роботу, чи спрямує помилку в окремий вихід для помилок. Для мережі безпеки на рівні всього робочого процесу гайд n8n про коректну обробку помилок показує, як спрямувати кожен робочий процес на один спільний робочий процес обробки помилок, що починається з Error Trigger.

Підбирайте налаштування під код статусу. 429 або будь-який 5xx варто повторювати з паузою в кілька секунд, оскільки API встановлює Retry-After при обмеженнях швидкості, а безкоштовний план дозволяє 60 запитів на хвилину. 400 сам собою не покращиться - зазвичай це відсутній domain_id або destination_url. 409 при створенні означає, що власний slug вже зайнятий, тож спрямуйте його у вихід помилок і додайте суфікс, а не повторюйте той самий запит п'ять разів.

Ось частина, про яку я хотів би, щоб мені хтось розповів заздалегідь. Без Idempotency-Key виклик створення, що обривається за таймаутом після того, як сервер уже записав посилання, при повторі створює дублікат. Саме тому наведений вище приклад надсилає ключ, побудований з ID виконання та індексу елемента: повтор того самого елемента відтворює початкову відповідь замість того, щоб створити друге посилання. Гайд про ліміти швидкості та ідемпотентність пояснює вікно повтору.

Community-вузол проти HTTP Request: що обрати

Пакетний вузол і вузол HTTP Request звертаються до того самого API, тож це радше питання підтримки, ніж можливостей.

Вузол HTTP RequestCommunity-вузол Elido
Працює на n8n CloudТакНі, лише самостійне розгортання
Кінцеві точкиУсіCreate, Get, List, Get Analytics
Заголовок Idempotency-KeyДодаєте саміНе доступний
НалаштуванняОблікові дані Header Auth плюс JSON-тілоТипізовані поля та облікові дані Elido API
Найкраще підходить дляПродакшн-процесів і будь-чого нестандартногоПростих процесів, які підтримує людина без досвіду розробки

Моє емпіричне правило: за замовчуванням будуйте на HTTP Request, бо він працює в будь-якій редакції n8n і ви контролюєте кожен заголовок, а до community-вузла звертайтеся на самостійно розгорнутому інстансі, коли робочий процес підтримуватиме людина, яка не читає JSON, і коли чотирьох його операцій достатньо для завдання. Повний перелік кінцевих точок - на сторінці функцій API та SDK, а якщо модель push підходить краще за опитування, вебхуки Elido охоплюють вихідний бік. Розглядаєте натомість готові інструменти? Прочитайте також огляд Zapier.

Прочитайте наріжний матеріал → Швидкий старт з API та SDK для URL-скорочувача

Пов'язане в блозі

Поширені запитання

Чи має n8n вбудований вузол для скорочення URL?

Ні. n8n не постачається з власним скорочувачем, тому ви викликаєте REST API скорочувача через вбудований вузол HTTP Request або встановлюєте community-вузол. Для Elido вузол HTTP Request - це шлях, який працює на будь-якій редакції n8n вже сьогодні, а пакет n8n-nodes-elido, опублікований у npm, - типізований варіант для самостійно розгорнутих інстансів.

Чи можна встановити community-вузол Elido на n8n Cloud?

Ні. n8n Cloud пропонує лише перевірені community-вузли, а n8n-nodes-elido немає в списку перевірених, тож потрібен самостійно розгорнутий інстанс. На Cloud використовуйте вузол HTTP Request з обліковими даними Header Auth, які звертаються до того самого API Elido.

Як скоротити URL у n8n без community-вузла?

Додайте вузол HTTP Request, встановіть метод POST і URL-адресу https://api.elido.app/v1/workspaces/{workspace_id}/links, приєднайте облікові дані Header Auth з вашим Bearer-токеном і надішліть JSON-тіло з domain_id і destination_url. У відповіді повертається slug нового посилання та готова коротка URL-адреса short_url.

Де знайти domain_id для короткого посилання Elido?

Викличте GET /v1/workspaces/{workspace_id}/domains з тими самими обліковими даними. Кожен елемент у відповіді має id і hostname, тож оберіть домен, на якому мають жити посилання, і захардкодьте його id у виклику створення. Збережіть і hostname, якщо коли-небудь будуватимете коротку URL-адресу вручну, хоча відповіді вже містять short_url.

Чому API Elido повертає 401 або 403 у n8n?

401 означає, що токен відсутній, введений з помилкою або відкликаний, тож перестворіть його в Settings, API Tokens і вставте знову в облікові дані Header Auth. 403 означає, що токен дійсний, але не має прав у цьому робочому просторі - зазвичай це вказує на неправильний workspace ID в URL-адресі, а не на поганий токен.

Чи може n8n створювати власні slug або короткі посилання з терміном дії?

Так. Додайте поле slug у тіло запиту на створення для власного вигляду задньої частини посилання на планах Starter і вище, або залиште його порожнім - і Elido згенерує slug сам. Для терміну дії додайте мітку часу expires_at до того самого тіла запиту на створення або надішліть PATCH для наявного посилання з нею.

Спробуйте Elido

Вставте URL - отримайте коротке посилання

Без реєстрації. Посилання живе 30 днів. Зареєструйтесь, щоб зберегти назавжди.

Безкоштовно, без реєстрації · 2 на день

Спробуйте Elido

URL-скорочувач із хостингом у ЄС: власні домени, глибока аналітика, відкритий API. Безкоштовний тариф - без кредитної картки.

Теги
n8n url shortener
n8n short link
n8n community node
workflow automation
http request node
self-hosted n8n

Читати далі