Package Information
Available Nodes
Documentation generating…
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, seedocs/adr/adr-0029-workflow-integrations.md.
Installation
n8n Cloud / self-hosted (UI)
- Open Settings -> Community Nodes.
- Click Install.
- Enter
n8n-nodes-elidoand confirm. - 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
- In Elido, go to Settings -> API keys and create a key with the
Editor role (or Viewer for read-only workflows). The key starts withelido_and is shown once. It belongs to the workspace it was created
in. - 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).
- Base URL:
- 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:
- Add a Webhook node, copy its production URL.
- In Elido, go to Settings -> Webhooks and create an endpoint for
link.created,link.updated,link.deleted,link.expired,link.cap_reachedorlink.broken. Aclick.createdevent is
planned (backlog #11) and is not emitted yet. - 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/
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 (onlyrefs/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.