Чтобы построить URL-шортенер для n8n на Elido уже сегодня, используйте встроенный узел HTTP Request n8n: отправьте POST на /v1/workspaces/{workspace_id}/links с Bearer-токеном, domain_id и destination_url, и в ответе вернутся slug новой ссылки и short_url. Этот путь работает одинаково и в n8n Cloud, и в self-hosted версии. Есть также готовый community-узел, n8n-nodes-elido, опубликованный в npm (0.2.0), который оборачивает тот же API в типизированные поля для self-hosted инстансов.
Большинство поисковых запросов про короткие ссылки в n8n хотят именно этот первый путь. Узлу HTTP Request нужно около пяти минут настройки: одни учетные данные, два ID из вашего рабочего пространства и JSON-тело. После этого это просто еще один узел.
Я написала это по исходникам API и пакета, а не по маркетинговым текстам, потому что тело запроса легко указать точно и мучительно угадывать. Если сам REST API для вас в новинку, быстрый старт по API и SDK разбирает токены, рабочие пространства и остальную поверхность, на которой строится этот пост.
Два способа сокращать ссылки в n8n
У n8n нет встроенного шортенера, так что есть два способа подключить Elido:
- Узел HTTP Request. Встроен в каждую редакцию n8n, обращается к любому endpoint и позволяет самостоятельно задавать заголовки вроде
Idempotency-Key. Это эталонный путь. - Community-узел
n8n-nodes-elido. Готовый узел Elido с ресурсом Link и четырьмя операциями (Create, Get, List, Get Analytics) плюс тип учетных данных Elido API. Только для self-hosted.
Рецепты для Make и IFTTT рассматривают n8n как один вариант из четырех платформ. Здесь n8n получает весь пост целиком.
Сокращение URL узлом HTTP Request
Начните с токена. В Elido откройте Settings, затем API Tokens, и создайте персональный токен доступа; он начинается с elido_ и показывается один раз. В n8n создайте учетные данные Header Auth с именем Authorization и значением Bearer elido_.... n8n шифрует их на хранении и не включает в экспортированный JSON workflow, что лучше, чем вставлять заголовок в каждый узел каждого workflow, а потом разыскивать их все в день, когда токен ротируется. Назначьте токену роль редактора и укажите срок действия; в нашем разборе разрешений 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 }} в следующий узел; записанное вами имя хоста важно только в том случае, если вы собираете URL вручную. Добавьте поле slug для настраиваемой второй половины ссылки (тариф Starter и выше), либо оставьте его пустым, и Elido сгенерирует его сам. Документация узла HTTP Request в n8n описывает остальные опции, включая встроенную пагинацию для списочных вызовов.
Community-узел Elido для self-hosted 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-узлы, а этот не проверен, так что либо self-hosted, либо ничего. Сам пакет опубликован в npm в версии 0.2.0:
npm view n8n-nodes-elido version
На self-hosted-инстансе владелец или администратор может открыть Settings, затем Community Nodes, выбрать Install и ввести n8n-nodes-elido. В Docker вместо этого задайте N8N_COMMUNITY_PACKAGES="n8n-nodes-elido". Триггер-узла Elido пока нет, он запланирован, поэтому события ссылок по-прежнему поступают через узел Webhook n8n, а действия Update и Look Up by slug тоже запланированы. В справочнике n8n по self-hosted описаны шаги настройки. Руководство по установке community-узлов n8n описывает пути через GUI, вручную и через переменные окружения, включая ручной путь, который нужен для настроек в режиме очереди.
Три workflow с короткими ссылками в n8n, которые стоит построить
Вот потоки, которые я бы построила первыми, в порядке возрастания хлопотности. Каждый использует вызов HTTP Request сверху плюс стандартные узлы n8n, так что ни один не зависит от community-пакета.
RSS в короткую ссылку в Slack. RSS Feed Trigger опрашивает фид вашего блога. Узел HTTP Request отправляет {{ $json.link }} как назначение и {{ $json.title }} как заголовок. Затем узел Slack публикует имя хоста плюс {{ $json.slug }} в ваш канал анонсов. Это три узла, ноль заходов в дашборд. Если хотите UTM-теги на этих ссылках, соберите их в целевом адресе заранее узлом Set; в нашем руководстве по отслеживанию UTM есть соглашение об именовании.
Новая строка таблицы в короткую ссылку и обратно. Триггер Google Sheets срабатывает на каждую новую строку, вызов создания сокращает колонку url, а второй узел Sheets записывает готовый короткий URL обратно в ту же строку. Это самодельная версия массового импорта из Google Sheets, лучше подходит, когда строки приходят понемногу каждый день, и хуже, когда вы вставляете 5000 сразу.
Новая ссылка в канал аудита. Поставьте сначала узел Webhook в n8n и подпишите его production-URL на link.created в Settings, Webhooks в Elido. Включите опцию Raw Body у узла Webhook, потому что подпись - это HMAC-SHA256 по timestamp.raw_body, и пересериализованное JSON-тело не совпадет. Проверьте в узле Code, затем опубликуйте slug и назначение в Slack. Форма webhook в дашборде перечисляет события жизненного цикла ссылок и рабочего пространства, а не события по каждому клику (событие click.created запланировано), так что для отчетов по кликам я бы вместо этого запускала запланированный опрос. Статья о событиях webhook разбирает повторы и заголовки.
Устали вставлять ссылки вручную в одни и те же три инструмента каждый понедельник? Откройте бесплатное рабочее пространство, создайте токен и соберите описанный выше RSS-поток примерно за то время, что уйдет на чтение этого раздела.
Обработка ошибок: повторы, дубликаты и неудачные запуски
n8n дает каждому узлу две важные здесь настройки. Retry On Fail перезапускает узел при ошибке с выбранной вами паузой, а On Error решает, остановится ли workflow, продолжит работу или направит сбой в отдельный выход ошибки. Для защиты на уровне всего workflow руководство n8n по изящной обработке ошибок показывает, как направить каждый workflow на один workflow ошибок, начинающийся с 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 Request | Community-узел Elido | |
|---|---|---|
| Работает в n8n Cloud | Да | Нет, только self-hosted |
| Endpoint | Все | Create, Get, List, Get Analytics |
| Заголовок Idempotency-Key | Добавляете сами | Не доступен |
| Настройка | Учетные данные Header Auth плюс JSON-тело | Типизированные поля и учетные данные Elido API |
| Лучше всего для | Продакшен-потоков и всего нестандартного | Простых потоков, которые поддерживает не разработчик |
Мое эмпирическое правило: стройте по умолчанию на HTTP Request, потому что он работает в любой редакции n8n и вы контролируете каждый заголовок, а к community-узлу обращайтесь на self-hosted инстансе, когда workflow будет вести кто-то, кто не читает JSON, и когда четырех его операций достаточно для задачи. Полный список endpoint - на странице функции API и SDK, а если модель push подходит лучше, чем опрос, webhook Elido покрывают исходящую сторону. Взвешиваете вместо этого готовые инструменты? Прочитайте также разбор Zapier.
Прочитайте опорную статью → быстрый старт по API и SDK URL-шортенера
По теме в блоге
- Автоматизация коротких ссылок с Make и IFTTT - те же задачи на двух готовых платформах автоматизации.
- Автоматизация URL-шортенера через Zapier - нативное приложение Zapier, без self-hosting.
- Webhook для событий ссылок - payload, подписи и поведение повторов.
- Лимиты запросов API и идемпотентность - повторы без дублирования ссылок.
- Бот и алерты для сокращения ссылок в Slack - когда сторона Slack заслуживает собственного приложения.
- Self-hosted автоматизация ссылок с n8n - Docker, реверс-прокси и подписанные webhook на вашем собственном сервере.
Частые вопросы
Есть ли у n8n встроенный узел URL-шортенера?
Нет. n8n не поставляет собственный шортенер, так что вы вызываете REST API шортенера из встроенного узла HTTP Request или устанавливаете community-узел. Для Elido узел HTTP Request - путь, который сегодня работает в любой редакции n8n, а опубликованный в npm пакет n8n-nodes-elido - типизированный вариант для self-hosted инстансов.
Можно ли установить community-узел Elido в n8n Cloud?
Нет. n8n Cloud предлагает только проверенные community-узлы, а n8n-nodes-elido не входит в проверенный список, так что ему нужен self-hosted инстанс. В 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 новой ссылки и готовый short_url.
Где найти domain_id для короткой ссылки Elido?
Вызовите GET /v1/workspaces/{workspace_id}/domains с теми же учетными данными. У каждого элемента в ответе есть id и hostname, так что выберите домен, на котором должны жить ссылки, и зафиксируйте его id в вызове создания. Сохраните и hostname на случай, если когда-нибудь будете собирать короткий URL вручную, хотя в ответах уже есть short_url.
Почему API Elido возвращает в n8n 401 или 403?
401 означает, что токен отсутствует, неверно введен или отозван, так что пересоздайте его в Settings, API Tokens и вставьте заново в учетные данные Header Auth. 403 означает, что токен действителен, но у него нет прав в этом рабочем пространстве, что обычно указывает на неверный ID рабочего пространства в URL, а не на плохой токен.
Может ли n8n создавать собственные slug или короткие ссылки с истечением срока?
Да. Добавьте поле slug в тело создания для настраиваемой второй половины ссылки на тарифах Starter и выше, либо оставьте его пустым, и Elido сгенерирует slug сам. Чтобы задать срок действия, добавьте метку времени expires_at в то же тело создания или отправьте PATCH на URL существующей ссылки с ней.
Попробуйте Elido
Вставьте URL - получите короткую ссылку
Без регистрации. Ссылка живёт 30 дней. Зарегистрируйтесь, чтобы оставить её навсегда.
Бесплатно, без регистрации · 2 в день