elido

n8n community node for Elido — shorten links, list links, and pull link analytics from inside n8n workflows.

Package Information

Released: this month
Downloads: 0 weekly / 0 monthly
Latest Version: 0.2.0
Author: Elido

Documentation

n8n-nodes-elido

Community node for n8n that lets you shorten links,
list workspace links, and pull link analytics from
Elido inside any n8n workflow.

This package is published to npm as n8n-nodes-elido. Install it via
n8n's Settings -> Community Nodes screen (Cloud / self-hosted) or
add it as a dependency in a custom n8n image.

Why this node?

n8n already has a generic HTTP Request node, and it can absolutely call
the Elido REST API directly. This node exists to:

  • give you a typed UI for the three most common operations (no more
    "what's the field name again?"),
  • handle authentication once via a credential type instead of pasting
    the bearer header into every node,
  • show up in the node picker with the Elido icon so workflows are
    self-documenting.

For the rationale on why we built an n8n custom node but documentation
for Zapier/Make, see
docs/adr/adr-0029-workflow-integrations.md.

Installation

n8n Cloud / self-hosted (UI)

  1. Open Settings -> Community Nodes.
  2. Click Install.
  3. Enter n8n-nodes-elido and confirm.
  4. Reload — the Elido node now appears in the node picker.

Self-hosted (Docker)

Add to your custom n8n image:

FROM n8nio/n8n:latest
RUN cd /home/node/.n8n && npm install n8n-nodes-elido

Or set the env var on a vanilla image:

docker run -e N8N_COMMUNITY_PACKAGES="n8n-nodes-elido" n8nio/n8n

Setup

  1. In Elido, go to Settings -> API keys and create a key with the
    Editor role (or Viewer for read-only workflows). The key starts with
    elido_ and is shown once. It belongs to the workspace it was created
    in.
  2. In n8n, add a new credential of type Elido API:
    • Base URL: https://api.elido.app (default), or your
      self-hosted Elido API root.
    • API Token: paste the elido_... key.
    • Workspace ID: numeric id of the key's workspace (used for
      analytics).
  3. Click Test. n8n reads GET /v1/workspaces/{workspace_id}, which
    fails if the key, the base URL or the workspace id is wrong.

Operations

All operations live under the Link resource. Links go through the
flat /v1/links API (ADR-0052): the key picks the workspace, and a
create without domain_id uses the workspace's default Elido domain.

Create

POST /v1/links — shortens a destination URL.

Field Required Description
Destination URL yes The long URL to shorten (destination_url)
Custom Slug no Vanity slug; Starter plan and above
Domain ID no Custom domain id; default is the workspace's domain
Title no Dashboard label
Tags no Comma-separated; split into a string array
Expires At no ISO-8601; the link stops redirecting after this
Redirect Status no 301, 302 (default) or 307

Output: the created link, including id, slug and short_url.

Get

GET /v1/links/{id} — one link by id.

List

GET /v1/links — up to 100 links, newest first. One n8n item per link.

Field Description
Limit 1-100, default 50
Search q: matches slug, title and destination URL
Tags tags: comma-separated, links with any of them
Status status: active or disabled

Get Analytics

GET /v1/workspaces/{workspace_id}/analytics/{report}?link_id= — the
api-core proxy to analytics-api (needs the analytics.view permission,
which Viewer and Editor keys have). One n8n item per row.

Field Description
Link ID Numeric link id
Report Clicks Over Time, or Clicks by Country / Referrer / Device / Browser
From, To YYYY-MM-DD; default is the last 30 days
Interval day (default) or hour, Clicks Over Time only

Triggers

A dedicated Elido Trigger node is planned. Until then, use n8n's
built-in Webhook trigger:

  1. Add a Webhook node, copy its production URL.
  2. In Elido, go to Settings -> Webhooks and create an endpoint for
    link.created, link.updated, link.deleted, link.expired,
    link.cap_reached or link.broken. A click.created event is
    planned (backlog #11) and is not emitted yet.
  3. Verify X-Elido-Signature: v1=<hex>: HMAC-SHA256 over
    {X-Webhook-Timestamp}.{raw body} with the endpoint secret, in a
    downstream Code node.

Tests

npm test builds the package and runs test/node.test.js, which pins
every request the node can send to a route api-core serves.

Local development

This package is not part of the pnpm workspace at the repository
root — it has its own dependency tree (n8n-workflow peer dep) and
its own publish lifecycle. Run commands from this directory directly:

cd packages/integrations/n8n-elido
npm install
npm run build       # tsc + copy SVG and codex JSON to dist/
npm test            # build + contract tests
npm run lint        # eslint with eslint-plugin-n8n-nodes-base
npm run format      # prettier --write
npm run dev         # tsc --watch for live rebuilds

To exercise the node locally, link it into a local n8n:

# in this package
npm run build
npm link

# in your local n8n install
cd ~/.n8n/custom         # create if missing
npm init -y
npm link n8n-nodes-elido

Restart n8n; the Elido node appears in the picker.

Publishing

Manual publish (current path). The monorepo's origin is on
Bitbucket, so the GitHub Actions workflow below never runs and
--provenance (GitHub/GitLab CI only) is unavailable. From this
directory, logged in to npm as an owner of n8n-nodes-elido:

npm ci
npm test && npm run lint
npm pack --dry-run          # expect dist/, README.md, package.json only
npm publish --access public

The repository field is omitted on purpose: the source lives in a private
repository, and a dead link fails n8n's community-node review worse than none.

GitHub Actions (if the repo is mirrored to GitHub).

Publishing is automated via .github/workflows/n8n-publish.yml. Tag a
commit with n8n-elido-v<version> and push the tag:

# bump the version in package.json first (commit it)
npm version patch  # or minor / major
git push origin main

# create + push the matching tag
git tag n8n-elido-v$(node -p "require('./package.json').version")
git push origin --tags

The workflow runs npm install && npm run build && npm publish --provenance from this directory. It requires a repository secret
named NPM_TOKEN with publish rights for the n8n-nodes-elido
package (Automation token type — generate at
https://www.npmjs.com/settings//tokens). Do not commit the
token
— configure it under
Settings → Secrets and variables → Actions → New repository secret.

--provenance mints a sigstore attestation linking the tarball back to
this commit + workflow run; verifiable with npm view n8n-nodes-elido --json | jq .dist. Pull-request builds do not trigger the workflow (only
refs/tags/n8n-elido-v* does), so contributors can iterate on the node
without bumping the npm version.

License

MIT — see the repository LICENSE for details.

Discussion