8 min leestijdIntegraties

n8n URL-verkorter: HTTP Request of community-node

Bouw een n8n URL-verkorter op de Elido API: HTTP Request-setup, domein- en werkruimte-ID's, drie workflows voor korte links en herhaalpogingen.

Marius Voß
DevRel · edge infra

Om vandaag een n8n URL-verkorter op Elido te bouwen, gebruik je de ingebouwde HTTP Request-node van n8n: POST naar /v1/workspaces/{workspace_id}/links met een Bearer-token, een domain_id en een destination_url, en het antwoord geeft de slug en short_url van de nieuwe link terug. Die route werkt op n8n Cloud en zelf gehost. Er is ook een verpakte community-node, n8n-nodes-elido, gepubliceerd op npm (0.2.0), die dezelfde API in getypeerde velden verpakt voor zelf gehoste instanties.

De meeste zoekopdrachten naar een n8n-korte-link willen die eerste route. De HTTP Request-node vraagt ongeveer vijf minuten setup: één credential, twee ID's uit je werkruimte en een JSON-body. Daarna is het gewoon nog een node.

Ik heb dit geschreven vanuit de API en de broncode van het pakket in plaats van vanuit marketingtekst, omdat een request-body makkelijk exact te noemen is en pijnlijk om te raden. Is de REST API zelf nieuw voor je, dan behandelt de quickstart voor API en SDK's tokens, werkruimtes en de rest van het oppervlak waarop dit artikel steunt.

n8n heeft geen verkorter ingebouwd, dus er zijn twee manieren om Elido te koppelen:

  • HTTP Request-node. Ingebouwd in elke n8n-editie, bereikt elk endpoint en laat je headers zoals Idempotency-Key zelf instellen. Het is het referentiepad.
  • Community-node n8n-nodes-elido. Een verpakte Elido-node met een Link-resource en vier bewerkingen (Create, Get, List, Get Analytics) plus een credentialtype voor de Elido API. Alleen zelf gehost.

De recepten voor Make en IFTTT behandelen n8n als één optie uit vier platforms. Hier krijgt n8n het hele artikel.

De n8n-integratiepagina van Elido met de credentialwaarden en setupstappen voor de HTTP Request-node en de community-node

Een URL verkorten met de HTTP Request-node

Begin met een token. Open in Elido Instellingen, daarna API-tokens, en maak een persoonlijk toegangstoken aan; het begint met elido_ en wordt maar één keer getoond. Maak in n8n een Header Auth-credential met de naam Authorization en de waarde Bearer elido_.... n8n versleutelt het in rust en houdt het buiten de geëxporteerde workflow-JSON, wat beter is dan de header in elke node van elke workflow plakken en ze allemaal opsporen op de dag dat het token roteert. Geef het token de rol editor en een vervaldatum; onze uitleg over API-sleutelrechten voor linktools legt uit waarom een linkworkflow nooit admin nodig heeft.

Daarna twee getallen. Je werkruimte-ID staat in de dashboard-URL direct na /dashboard/. Voor het domein voer je met een wegwerp-HTTP Request-node één GET uit naar /v1/workspaces/{workspace_id}/domains: elk item heeft een id en een hostname, en je hebt beide nodig.

Dan de create-aanroep zelf:

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

Het antwoord is het linkrecord: id, slug, short_url, destination_url, domain_id, tags en tijdstempels. Wijs {{ $json.short_url }} toe aan de volgende node; de hostnaam die je noteerde doet er alleen toe als je met de hand een URL bouwt. Voeg een slug-veld toe voor een eigen staartje (plannen Pro en Business), of laat het weg en Elido genereert er een. De documentatie van de HTTP Request-node van n8n behandelt de overige opties, inclusief ingebouwde paginering voor lijstaanroepen.

Hoe de HTTP Request-node van n8n een korte link van Elido aanmaakt: een Header Auth-credential met een Bearer-token, een POST naar het links-endpoint van de werkruimte met domain_id en destination_url, en een slug uit het antwoord die wordt samengevoegd met de hostnaam van het domein

De Elido-community-node voor zelf gehoste n8n

De verpakte node verkoopt één ding: getypeerde velden. Hij registreert een credential voor de Elido API (Base URL, een API Token dat een API-sleutel van de werkruimte is die met elido_ begint, en de ID van de werkruimte), en de credentialtest leest GET /v1/workspaces/{id}. Daarna is er één Elido-node met een Link-resource. Create neemt een bestemmings-URL plus optioneel een eigen slug, domein-ID, titel, tags, verloop en een redirectstatus 301, 302 of 307. Get haalt één link op via ID. List neemt een limiet van 1 tot 100 en filters voor zoeken, tags en actieve of uitgeschakelde status, en geeft één n8n-item per link. Get Analytics neemt een link-ID en een rapport (klikken in de tijd, of klikken per land, referrer, apparaat of browser), een From- en To-datum die standaard de laatste 30 dagen is, en een interval per dag of uur, met één item per rij. Linkantwoorden bevatten short_url.

Eén voorwaarde geldt voordat je erop bouwt. n8n Cloud accepteert alleen geverifieerde community-nodes, en deze is niet geverifieerd, dus het is zelf hosten of niets. Het pakket zelf staat op npm als versie 0.2.0:

npm view n8n-nodes-elido version

Op een zelf gehoste instantie kan een eigenaar of admin Instellingen, daarna Community Nodes openen, Install kiezen en n8n-nodes-elido invoeren. In Docker stel je in plaats daarvan N8N_COMMUNITY_PACKAGES="n8n-nodes-elido" in. Er is nog geen Elido-triggernode (er staat er een gepland), dus linkgebeurtenissen komen nog binnen via de Webhook-node van n8n, en acties voor Update en Look Up by slug staan ook gepland. De helppagina over zelf gehoste n8n heeft de setupstappen. De installatiegids voor community-nodes van n8n behandelt de routes via de GUI, handmatig en met omgevingsvariabelen, inclusief de handmatige route die setups in wachtrijmodus nodig hebben.

Dit zijn de flows die ik het eerst zou bouwen, in oplopende volgorde van gepriegel. Elke gebruikt de HTTP Request-aanroep van hierboven plus standaard n8n-nodes, dus geen enkele hangt af van het community-pakket.

RSS naar korte link naar Slack. Een RSS Feed Trigger pollt je blogfeed. De HTTP Request-node post {{ $json.link }} als bestemming en {{ $json.title }} als titel. Een Slack-node post daarna de hostnaam plus {{ $json.slug }} in je aankondigingskanaal. Dat zijn drie nodes, nul bezoeken aan het dashboard. Wil je UTM-tags op die links, bouw ze dan eerst met een Set-node in de bestemming; onze gids over UTM-tracking heeft de naamgevingsconventie.

Nieuwe sheetrij naar korte link en terug. Een Google Sheets-trigger vuurt bij elke nieuwe rij, de create-aanroep verkort de kolom url en een tweede Sheets-node schrijft de klare korte URL terug in dezelfde rij. Het is een zelfgebouwde versie van bulkimport uit Google Sheets, beter als rijen dagelijks binnendruppelen en slechter als je er 5.000 tegelijk plakt.

Nieuwe link naar een auditkanaal. Zet de Webhook-node van n8n eerst en abonneer zijn productie-URL op link.created onder Instellingen, Webhooks in Elido. Zet de optie Raw Body van de Webhook-node aan, omdat de handtekening een HMAC-SHA256 is over timestamp.raw_body en een opnieuw geserialiseerde JSON-body niet overeenkomt. Verifieer in een Code-node en post dan de slug en bestemming naar Slack. Het webhookformulier in het dashboard toont levenscyclus- en werkruimtegebeurtenissen van links, geen gebeurtenissen per klik (een click.created-gebeurtenis staat gepland), dus voor klikrapporten zou ik een geplande pull draaien. Het artikel over webhookgebeurtenissen behandelt herhaalpogingen en headers.

Een n8n URL-verkorterworkflow in drie nodes: de RSS Feed Trigger geeft de itemlink en titel door aan een HTTP Request-node die de Elido-link aanmaakt, en een Slack-node post de hostnaam plus de teruggegeven slug

Moe van elke maandag handmatig links plakken in dezelfde drie tools? Open een gratis werkruimte, maak een token aan en koppel de RSS-flow hierboven in ongeveer de tijd die je nodig hebt om deze sectie te lezen.

Foutafhandeling: herhaalpogingen, duplicaten en mislukte runs

n8n geeft elke node twee instellingen die hier tellen. Retry On Fail draait de node opnieuw bij een fout, met een wachttijd naar keuze, en On Error bepaalt of de workflow stopt, doorgaat of de fout via een aparte foutuitgang laat lopen. Voor een vangnet over de hele workflow laat de gids van n8n over fouten netjes afhandelen zien hoe je elke workflow naar één foutworkflow wijst die begint met een Error Trigger.

Stem de instelling af op de statuscode. Een 429 of elke 5xx is het waard om opnieuw te proberen met een wachttijd van een paar seconden, want de API zet Retry-After bij ratelimieten en het Free-plan staat 10 verzoeken per seconde per werkruimte toe (burst 20). Een 400 wordt niet vanzelf beter, en het is meestal een ontbrekende domain_id of destination_url. Een 409 bij aanmaken betekent dat de eigen slug bezet is, dus laat hem via de foutuitgang lopen en voeg een achtervoegsel toe in plaats van hetzelfde verzoek vijf keer te herhalen.

Dit is het deel dat ik zelf graag gehoord had. Zonder Idempotency-Key wordt een create-aanroep die in een time-out loopt nadat de server de link al heeft weggeschreven, opnieuw geprobeerd tot een duplicaat. Daarom stuurt het voorbeeld hierboven er een mee, opgebouwd uit het uitvoerings-ID en de itemindex: een herhaalpoging voor hetzelfde item speelt het oorspronkelijke antwoord opnieuw af in plaats van een tweede link te maken. De gids over ratelimieten en idempotentie legt het afspeelvenster uit.

Community-node versus HTTP Request: wat gebruik je

De verpakte node en de HTTP Request-node bereiken dezelfde API, dus dit is meer een onderhoudskeuze dan een kwestie van mogelijkheden.

HTTP Request-nodeElido-community-node
Draait op n8n CloudJaNee, alleen zelf gehost
EndpointsAlleCreate, Get, List, Get Analytics
Idempotency-Key-headerVoeg je zelf toeNiet beschikbaar
SetupHeader Auth-credential plus een JSON-bodyGetypeerde velden en een Elido API-credential
Het best voorProductieflows en alles wat ongewoon isSimpele flows die een niet-ontwikkelaar onderhoudt

Mijn vuistregel: bouw standaard op HTTP Request, omdat die in elke n8n-editie draait en je elke header beheert, en grijp op een zelf gehoste instantie naar de community-node als iemand die geen JSON leest de workflow gaat beheren en de vier bewerkingen de klus dekken. Voor de volledige endpointlijst zie de featurepagina over API en SDK's, en past een pushmodel beter dan polling, dan dekken de webhooks van Elido de uitgaande kant. Overweeg je liever gehoste tools? Lees dan ook de Zapier-walkthrough.

Lees de cornerstone → Quickstart voor de URL-verkorter-API en SDK's

Gerelateerd op de blog

Veelgestelde vragen

Heeft n8n een ingebouwde URL-verkorternode?

Nee. n8n levert geen eigen verkorter mee, dus je roept de REST API van een verkorter aan vanuit de ingebouwde HTTP Request-node of installeert een community-node. Voor Elido is de HTTP Request-node de route die vandaag in elke n8n-editie werkt, en het pakket n8n-nodes-elido, gepubliceerd op npm, is de getypeerde optie voor zelf gehoste instanties.

Kan ik de Elido-community-node installeren op n8n Cloud?

Nee. n8n Cloud biedt alleen geverifieerde community-nodes, en n8n-nodes-elido staat niet op de lijst van geverifieerde, dus hij vraagt om een zelf gehoste instantie. Gebruik op Cloud de HTTP Request-node met een Header Auth-credential, die dezelfde Elido API bereikt.

Hoe verkort ik een URL in n8n zonder community-node?

Voeg een HTTP Request-node toe, stel de methode in op POST en de URL op https://api.elido.app/v1/workspaces/{workspace_id}/links, koppel een Header Auth-credential met je Bearer-token en stuur een JSON-body met domain_id en destination_url. Het antwoord geeft de slug van de nieuwe link en een kant-en-klare short_url.

Waar vind ik de domain_id voor een korte link van Elido?

Roep GET /v1/workspaces/{workspace_id}/domains aan met hetzelfde credential. Elk item in het antwoord heeft een id en een hostname, dus kies het domein waarop de links moeten leven en codeer de id vast in de create-aanroep. Bewaar ook de hostname als je ooit met de hand een korte URL bouwt, al bevatten antwoorden al short_url.

Waarom geeft de Elido API een 401 of 403 in n8n?

Een 401 betekent dat het token ontbreekt, verkeerd is getypt of is ingetrokken, dus maak het opnieuw aan onder Instellingen, API-tokens en plak het opnieuw in het Header Auth-credential. Een 403 betekent dat het token geldig is maar geen rechten heeft in die werkruimte, wat meestal wijst op het verkeerde werkruimte-ID in de URL in plaats van een slecht token.

Kan n8n eigen slugs of verlopende korte links maken?

Ja. Voeg een slug-veld toe aan de create-body voor een eigen staartje op de plannen Pro en Business, of laat het weg en Elido genereert er een. Voor verloop voeg je een tijdstempel expires_at toe aan dezelfde create-body, of stuur je PATCH naar de URL van een bestaande link met er een.

Probeer Elido

Plak een URL, krijg een werkende korte link

Geen aanmelding nodig. Link blijft 30 dagen actief. Meld je aan om hem voor altijd te bewaren.

Geen account nodig. Meld je gratis aan voor 50 links per maand.

Probeer Elido

In de EU gehoste URL-shortener met aangepaste domeinen, uitgebreide analyses en een open API. Gratis abonnement - geen creditcard nodig.

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

Verder lezen