9 min de cititIntegrări

Scurtător de URL n8n: HTTP Request sau nod comunitar

Scurtător de URL pe n8n cu API-ul Elido: nodul HTTP Request, ID-uri de domeniu și workspace, trei fluxuri de linkuri scurte și reîncercări.

Marius Voß
DevRel · edge infra

Ca să construiești astăzi un scurtător de URL pe n8n cu Elido, folosește nodul HTTP Request încorporat al n8n: POST către /v1/workspaces/{workspace_id}/links cu un token Bearer, un domain_id și un destination_url, iar răspunsul îți întoarce slug-ul noului link și short_url. Ruta aceasta funcționează la fel pe n8n Cloud și pe instanțe găzduite de tine. Există și un nod de comunitate împachetat, n8n-nodes-elido, publicat pe npm (0.2.0), care învelește același API în câmpuri tipizate pentru instanțele găzduite de tine.

Majoritatea căutărilor pentru un link scurt în n8n vor prima rută. Nodul HTTP Request cere cam cinci minute de configurare: o credențială, două ID-uri din workspace-ul tău și un corp JSON. După aceea este doar încă un nod.

Am scris-o pornind de la API și de la codul sursă al pachetului, nu de la text de marketing, pentru că un corp de cerere este ușor de enunțat exact și dureros de ghicit. Dacă API-ul REST în sine îți este nou, quickstart-ul pentru API și SDK-uri acoperă tokenurile, workspace-urile și restul suprafeței pe care stă acest articol.

Două moduri de a scurta linkuri în n8n

n8n nu are un scurtător încorporat, deci există două moduri de a conecta Elido:

  • Nodul HTTP Request. Încorporat în orice ediție n8n, ajunge la fiecare endpoint și îți lasă să setezi singur antete precum Idempotency-Key. Este calea de referință.
  • Nodul de comunitate n8n-nodes-elido. Un nod Elido împachetat, cu o resursă Link și patru operații (Create, Get, List, Get Analytics), plus un tip de credențială Elido API. Doar pe instanțe găzduite de tine.

Rețetele Make și IFTTT tratează n8n ca o opțiune între patru platforme. Aici n8n primește tot articolul.

Pagina integrării Elido cu n8n, cu valorile credențialelor și pașii de configurare pentru nodul HTTP Request și pentru nodul de comunitate

Scurtarea unui URL cu nodul HTTP Request

Începe cu un token. În Elido, deschide Setări, apoi API Tokens, și creează un token personal de acces; începe cu elido_ și se afișează o singură dată. În n8n, creează o credențială Header Auth cu numele Authorization și valoarea Bearer elido_.... n8n o criptează în repaus și o ține în afara JSON-ului exportat al fluxului, ceea ce bate lipirea antetului în fiecare nod al fiecărui flux și apoi vânarea tuturor în ziua în care se rotește tokenul. Dă tokenului rolul de editor și o dată de expirare; analiza noastră despre permisiunile cheilor API pentru uneltele de linkuri explică de ce un flux de linkuri nu are nevoie niciodată de admin.

Apoi, două numere. ID-ul workspace-ului tău se află în URL-ul dashboardului, imediat după /dashboard/. Pentru domeniu, rulează un GET către /v1/workspaces/{workspace_id}/domains dintr-un nod HTTP Request de unică folosință: fiecare element are un id și un hostname, iar ai nevoie de amândouă.

Apoi apelul de creare propriu-zis:

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"]
                }

Răspunsul este înregistrarea linkului: id, slug, short_url, destination_url, domain_id, taguri și timestampuri. Mapează {{ $json.short_url }} în nodul următor; hostname-ul pe care l-ai notat contează doar dacă construiești un URL manual. Adaugă un câmp slug pentru un final personalizat (planurile Pro și Business) sau omite-l și Elido generează unul. Documentația nodului HTTP Request din n8n acoperă celelalte opțiuni, inclusiv paginarea încorporată pentru apelurile de listare.

Cum creează nodul HTTP Request din n8n un link scurt Elido: o credențială Header Auth cu un token Bearer, un POST către endpoint-ul de linkuri al workspace-ului cu domain_id și destination_url și un slug din răspuns unit cu hostname-ul domeniului

Nodul de comunitate Elido pentru n8n găzduit de tine

Nodul împachetat vinde un singur lucru: câmpuri tipizate. Înregistrează o credențială Elido API (Base URL, un API Token care este o cheie API de workspace ce începe cu elido_ și Workspace ID), iar testul credențialei citește GET /v1/workspaces/{id}. Apoi există un singur nod Elido cu o resursă Link. Create primește un URL de destinație plus, opțional, un slug personalizat, un ID de domeniu, un titlu, taguri, o expirare și un status de redirecționare 301, 302 sau 307. Get preia un link după ID. List primește o limită de la 1 la 100 și filtre pentru căutare, taguri și stare activă sau dezactivată și emite un element n8n per link. Get Analytics primește un ID de link și un raport (clicuri în timp sau clicuri pe țară, referrer, dispozitiv sau browser), o dată From și To care implicit acoperă ultimele 30 de zile și un interval de zi sau de oră, cu un element per rând. Răspunsurile de link includ short_url.

O condiție se aplică înainte să planifici în jurul lui. n8n Cloud acceptă doar noduri de comunitate verificate, iar acesta nu este verificat, deci ori găzduit de tine, ori deloc. Pachetul în sine este pe npm ca versiunea 0.2.0:

npm view n8n-nodes-elido version

Pe o instanță găzduită de tine, un proprietar sau un admin poate deschide Setări, apoi Community Nodes, poate selecta Install și poate introduce n8n-nodes-elido. În Docker, setează în schimb N8N_COMMUNITY_PACKAGES="n8n-nodes-elido". Nu există încă un nod declanșator Elido (unul este planificat), așa că evenimentele de link intră în continuare prin nodul Webhook al n8n, iar acțiunile Update și Look Up după slug sunt de asemenea planificate. Pagina de ajutor pentru n8n găzduit de tine are pașii de configurare. Ghidul n8n de instalare a nodurilor de comunitate acoperă variantele prin interfață, manuală și prin variabile de mediu, inclusiv cea manuală de care au nevoie configurațiile în modul coadă.

Trei fluxuri n8n de linkuri scurte care merită construite

Acestea sunt fluxurile pe care le-aș construi primele, în ordinea crescătoare a migalei. Fiecare folosește apelul HTTP Request de mai sus plus noduri n8n standard, deci niciunul nu depinde de pachetul de comunitate.

RSS către link scurt către Slack. Un RSS Feed Trigger interoghează feed-ul blogului tău. Nodul HTTP Request postează {{ $json.link }} ca destinație și {{ $json.title }} ca titlu. Un nod Slack postează apoi hostname-ul plus {{ $json.slug }} în canalul tău de anunțuri. Sunt trei noduri, zero vizite în dashboard. Dacă vrei taguri UTM pe acele linkuri, construiește-le în destinație cu un nod Set mai întâi; ghidul nostru de urmărire UTM are convenția de denumire.

Rând nou din foaie către link scurt și înapoi. Un declanșator Google Sheets se activează la fiecare rând nou, apelul de creare scurtează coloana url, iar un al doilea nod Sheets scrie URL-ul scurt gata făcut înapoi în același rând. Este o versiune făcută de mână a importului în masă din Google Sheets, mai bună când rândurile sosesc picătură cu picătură zilnic și mai slabă când lipești 5.000 deodată.

Link nou către un canal de audit. Pune primul nodul Webhook al n8n și abonează URL-ul lui de producție la link.created în Setări, Webhooks din Elido. Activează opțiunea Raw Body a nodului Webhook, pentru că semnătura este un HMAC-SHA256 peste timestamp.raw_body, iar un corp JSON reserializat nu se va potrivi. Verifică într-un nod Code, apoi postează slug-ul și destinația în Slack. Formularul de webhook din dashboard listează evenimente din ciclul de viață al linkurilor și al workspace-ului, nu evenimente per click (un eveniment click.created este planificat), așa că pentru rapoartele de click aș rula în schimb o extragere programată. Articolul despre evenimentele webhook acoperă reîncercările și antetele.

Un flux de scurtător de URL pe n8n în trei noduri: RSS Feed Trigger transmite linkul și titlul elementului unui nod HTTP Request care creează linkul Elido, iar un nod Slack postează hostname-ul plus slug-ul returnat

Te-ai săturat să lipești linkuri de mână în aceleași trei unelte în fiecare luni? Deschide un workspace gratuit, creează un token și conectează fluxul RSS de mai sus în aproximativ timpul cât citești această secțiune.

Tratarea erorilor: reîncercări, duplicate și rulări eșuate

n8n oferă fiecărui nod două setări care contează aici. Retry On Fail reia nodul la eroare, cu o așteptare pe care o alegi, iar On Error decide dacă fluxul se oprește, continuă sau dirijează eșecul pe o ieșire de eroare separată. Pentru o plasă la nivel de flux, ghidul n8n despre tratarea elegantă a erorilor arată cum îndrepți fiecare flux către un singur flux de erori care pornește cu un Error Trigger.

Potrivește setarea cu codul de status. Un 429 sau orice 5xx merită reîncercat cu o așteptare de câteva secunde, deoarece API-ul setează Retry-After la limitele de rată, iar planul Free permite 10 cereri pe secundă per workspace (burst de 20). Un 400 nu se va îndrepta singur și este de obicei un domain_id sau destination_url lipsă. Un 409 la creare înseamnă că slug-ul personalizat este luat, așa că dirijează-l pe ieșirea de eroare și adaugă un sufix, în loc să reîncerci aceeași cerere de cinci ori.

Iată partea pe care mi-aș fi dorit s-o aud de la cineva. Fără un Idempotency-Key, un apel de creare care depășește timpul după ce serverul a scris deja linkul este reîncercat într-un duplicat. De aceea exemplul de mai sus trimite unul construit din ID-ul execuției și indexul elementului: o reîncercare a aceluiași element reia răspunsul original în loc să creeze un al doilea link. Ghidul despre limite de rată și idempotență explică fereastra de reluare.

Nodul de comunitate vs HTTP Request: pe care îl folosești

Nodul împachetat și nodul HTTP Request ajung la același API, deci aceasta este mai degrabă o alegere de întreținere decât una de capabilități.

Nodul HTTP RequestNodul de comunitate Elido
Rulează pe n8n CloudDaNu, doar găzduit de tine
EndpointuriToateCreate, Get, List, Get Analytics
Antetul Idempotency-KeyÎl adaugi tuNeexpus
ConfigurareCredențială Header Auth plus un corp JSONCâmpuri tipizate și o credențială Elido API
Cel mai bun pentruFluxuri de producție și tot ce e neobișnuitFluxuri simple întreținute de un non-dezvoltator

Regula mea de bază: construiește implicit pe HTTP Request, pentru că rulează pe orice ediție n8n și controlezi fiecare antet, și alege nodul de comunitate pe o instanță găzduită de tine când fluxul va fi deținut de cineva care nu citește JSON și când cele patru operații ale lui acoperă treaba. Pentru lista completă de endpointuri, vezi pagina funcționalității API și SDK-uri, iar dacă un model push se potrivește mai bine decât interogarea periodică, webhook-urile Elido acoperă partea de ieșire. Cântărești în schimb unelte găzduite? Citește și ghidul Zapier.

Citește articolul de referință → Quickstart pentru API-ul și SDK-urile scurtătorului de URL

Articole conexe

Întrebări frecvente

Are n8n un nod de scurtare a URL-urilor încorporat?

Nu. n8n nu livrează un scurtător propriu, așa că apelezi API-ul REST al unui scurtător din nodul HTTP Request încorporat sau instalezi un nod de comunitate. Pentru Elido, nodul HTTP Request este ruta care funcționează astăzi pe orice ediție n8n, iar pachetul n8n-nodes-elido, publicat pe npm, este opțiunea tipizată pentru instanțele găzduite de tine.

Pot instala nodul de comunitate Elido pe n8n Cloud?

Nu. n8n Cloud oferă doar noduri de comunitate verificate, iar n8n-nodes-elido nu este pe lista celor verificate, deci cere o instanță găzduită de tine. Pe Cloud, folosește nodul HTTP Request cu o credențială Header Auth, care ajunge la același API Elido.

Cum scurtez un URL în n8n fără un nod de comunitate?

Adaugă un nod HTTP Request, setează metoda POST și URL-ul https://api.elido.app/v1/workspaces/{workspace_id}/links, atașează o credențială Header Auth care poartă tokenul tău Bearer și trimite un corp JSON cu domain_id și destination_url. Răspunsul returnează slug-ul noului link și un short_url gata făcut.

Unde găsesc domain_id pentru un link scurt Elido?

Apelează GET /v1/workspaces/{workspace_id}/domains cu aceeași credențială. Fiecare element din răspuns are un id și un hostname, deci alege domeniul pe care vrei să locuiască linkurile și scrie-i id-ul direct în apelul de creare. Păstrează și hostname-ul dacă vei construi vreodată manual un URL scurt, deși răspunsurile conțin deja short_url.

De ce returnează API-ul Elido 401 sau 403 în n8n?

Un 401 înseamnă că tokenul lipsește, este greșit scris sau a fost revocat, așa că recreează-l la Setări, API Tokens și lipește-l din nou în credențiala Header Auth. Un 403 înseamnă că tokenul este valid, dar nu are permisiune în acel workspace, ceea ce indică de obicei un ID de workspace greșit în URL, nu un token defect.

Poate n8n să creeze slug-uri personalizate sau linkuri scurte cu expirare?

Da. Adaugă un câmp slug în corpul de creare pentru un final personalizat pe planurile Pro și Business sau omite-l și Elido generează unul. Pentru expirare, adaugă un timestamp expires_at în același corp de creare sau trimite PATCH către URL-ul unui link existent cu unul.

Încearcă Elido

Lipește un URL, obții un link scurt funcțional

Fără înregistrare. Linkul este activ timp de 30 de zile. Înregistrează-te ca să-l păstrezi pentru totdeauna.

Fără înregistrare. Creează un cont gratuit pentru 50 linkuri pe lună.

Încearcă Elido

Scurtător de URL-uri găzduit în UE, cu domenii personalizate, analiză avansată și un API deschis. Nivel gratuit - fără card bancar.

Etichete
n8n url shortener
n8n short link
n8n community node
workflow automation
http request node
self-hosted n8n

Continuă lectura