今すぐElido上でn8n URL短縮を構築するなら、n8nの組み込みHTTP Requestノードを使ってください。/v1/workspaces/{workspace_id}/linksにBearerトークン、domain_id、destination_urlを添えてPOSTすると、レスポンスに新しいリンクのスラッグとshort_urlが返ってきます。この方法はn8n Cloudでもセルフホストでも同様に動作します。パッケージ化されたコミュニティノードn8n-nodes-elidoもnpmで公開されており(0.2.0)、セルフホストインスタンス向けに同じAPIを型付きフィールドでラップします。
n8nの短縮リンクに関する検索のほとんどは、最初の方法を求めています。HTTP Requestノードのセットアップには5分ほどかかります。認証情報がひとつ、ワークスペースから取得する2つのID、そしてJSONボディです。それさえ済めば、あとはただのノードのひとつです。
この記事はマーケティング資料ではなく、APIとパッケージのソースコードをもとに書きました。リクエストボディは正確に示すのは簡単ですが、推測するのはつらいものだからです。REST APIそのものが初めての場合は、API・SDKクイックスタートでトークン、ワークスペース、その他この記事が前提とする仕様全体を解説しています。
n8nでリンクを短縮する2つの方法
n8nには短縮機能が組み込まれていないため、Elidoを組み込む方法は2つあります。
- HTTP Requestノード。 すべてのn8nエディションに組み込まれており、あらゆるエンドポイントに到達でき、
Idempotency-Keyのようなヘッダーも自分で設定できます。これが基準となる方法です。 - コミュニティノード
n8n-nodes-elido。 Linkリソースと4つの操作(Create、Get、List、Get Analytics)、そしてElido API認証情報タイプを持つ、パッケージ化されたElido専用ノードです。セルフホストのみ対応です。
MakeとIFTTTのレシピでは、n8nは4つのプラットフォームのうちのひとつとして扱われています。ここではn8nだけを丸ごと扱います。
HTTP RequestノードでURLを短縮する
まずトークンを用意します。Elidoで、Settings、次にAPI Tokensを開き、個人アクセストークンを作成してください。elido_で始まり、一度だけ表示されます。n8nでは、名前をAuthorization、値をBearer elido_...としたHeader Auth認証情報を作成します。n8nはこれを保存時に暗号化し、エクスポートしたワークフローのJSONには含めません。これは、すべてのワークフローのすべてのノードにヘッダーを貼り付けて、トークンがローテーションする日にそれらをすべて探し回るよりもはるかに優れています。トークンには編集者ロールと有効期限を設定してください。リンクツールのAPIキー権限の解説では、リンクワークフローに管理者権限が必要ない理由を説明しています。
次に、2つの数値が必要です。ワークスペースIDは、ダッシュボードのURLの/dashboard/の直後にあります。ドメインについては、使い捨てのHTTP Requestノードから/v1/workspaces/{workspace_id}/domainsに対してGETを1回実行してください。各項目には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が自動生成します。残りのオプション(一覧取得の組み込みページネーションを含む)については、n8nのHTTP Requestノードのドキュメントを参照してください。
セルフホストn8n向けのElidoコミュニティノード
パッケージ化されたノードが提供する価値はひとつ、型付きフィールドです。Elido API認証情報(Base URL、elido_で始まるワークスペースAPIキーのAPI Token、Workspace ID)を登録し、GET /v1/workspaces/{id}を呼び出す認証情報テストを行います。次に、Linkリソースを持つひとつのElidoノードがあります。Createは遷移先URLに加えて、任意のカスタムスラッグ、ドメインID、タイトル、タグ、有効期限、301、302、307のリダイレクトステータスを受け付けます。GetはIDでリンクを1件取得します。Listは1から100までのlimitと、検索、タグ、アクティブまたは無効のステータスによるフィルターを受け付け、リンクごとに1つのn8nアイテムを出力します。Get AnalyticsはリンクIDとレポート(時間経過によるクリック、または国、リファラー、デバイス、ブラウザー別のクリック)、デフォルトで過去30日間となるFromとToの日付、日または時間単位の間隔を受け付け、行ごとに1つのアイテムを出力します。リンクのレスポンスにはshort_urlが含まれます。
これを前提に計画を立てる前に、条件がひとつあります。n8n Cloudは検証済みのコミュニティノードしか受け付けず、これはまだ検証されていないため、セルフホストでなければ使えません。パッケージ自体はnpmでバージョン0.2.0として公開されています。
npm view n8n-nodes-elido version
セルフホストインスタンスでは、オーナーまたは管理者がSettings、次にCommunity Nodesを開き、Installを選択してn8n-nodes-elidoと入力できます。Dockerでは代わりにN8N_COMMUNITY_PACKAGES="n8n-nodes-elido"を設定してください。Elidoのトリガーノードはまだなく(計画中)、リンクイベントは引き続きn8nのWebhookノードで受け取ります。UpdateとスラッグによるLook Upアクションも計画中です。セルフホストn8nヘルプページにセットアップ手順があります。n8nのコミュニティノードのインストールガイドでは、GUI、手動、環境変数の各方法を扱っており、キューモードの構成で必要になる手動の方法も含まれています。
構築する価値のある3つのn8n短縮リンクワークフロー
以下は、私が最初に構築するフローです。手間のかかる順に並んでいます。どれも上記のHTTP Request呼び出しと標準のn8nノードを使うため、コミュニティパッケージには依存しません。
RSSから短縮リンクを経てSlackへ。 RSS Feed Triggerがブログのフィードをポーリングします。HTTP Requestノードが{{ $json.link }}を遷移先として、{{ $json.title }}をタイトルとしてPOSTします。その後Slackノードが、ホスト名と{{ $json.slug }}をお知らせチャンネルに投稿します。ノード3つで、ダッシュボードを開く必要はゼロです。これらのリンクにUTMタグを付けたい場合は、先にSetノードで遷移先に組み込んでください。命名規則についてはUTM計測ガイドを参照してください。
新しいシート行から短縮リンクへ、そして書き戻す。 Google Sheetsのトリガーが新しい行ごとに発火し、作成呼び出しがurl列を短縮し、2つ目のSheetsノードが完成した短縮URLを同じ行に書き戻します。これはGoogleスプレッドシートからの一括インポートの手作り版で、行が毎日少しずつ増える場合には適していますが、一度に5,000行を貼り付ける場合には向いていません。
新しいリンクを監査チャンネルへ。 まずn8nのWebhookノードを配置し、その本番URLをElidoのSettings、Webhooks配下でlink.createdに購読させます。WebhookノードのRaw Bodyオプションを有効にしてください。署名はtimestamp.raw_bodyに対するHMAC-SHA256であり、再シリアライズされたJSONボディでは一致しません。Codeノードで検証し、スラッグと遷移先をSlackに投稿します。ダッシュボードのwebhookフォームに一覧表示されるのはリンクのライフサイクルイベントとワークスペースイベントであり、クリック単位のものではありません(click.createdイベントは計画中です)。そのため、クリックのレポートについては代わりにスケジュール実行のプルを使うことをお勧めします。webhookイベントの記事がリトライとヘッダーについて解説しています。
毎週月曜日、同じ3つのツールに手作業でリンクを貼り付けるのに疲れましたか。無料のワークスペースを開設し、トークンを発行して、この記事のこのセクションを読み終える程度の時間で上記のRSSフローを組んでみてください。
エラーハンドリング: リトライ、重複、失敗した実行
n8nは、ここで重要になる2つの設定をすべてのノードに提供しています。Retry On Failは、任意の待機時間を設定してエラー発生時にノードを再実行し、On Errorはワークフローを停止するか、続行するか、失敗を別のエラー出力に流すかを決めます。ワークフロー全体のセーフティネットとしては、n8nのエラーを適切に処理するガイドが、すべてのワークフローをError Triggerから始まる1つのエラーワークフローに向ける方法を示しています。
設定はステータスコードに合わせてください。429や任意の5xxは、数秒の待機を挟んでリトライする価値があります。APIはレート制限時にRetry-Afterを設定し、無料プランは1分あたり60リクエストまで許可しています。400は自然には改善せず、たいていはdomain_idまたはdestination_urlの欠落が原因です。作成時の409はカスタムスラッグがすでに使われていることを意味するため、同じリクエストを5回リトライするのではなく、エラー出力に流してサフィックスを追加してください。
これは、誰かに前もって教えてほしかった部分です。Idempotency-Keyがないと、サーバーがすでにリンクを書き込んだ後にタイムアウトした作成呼び出しをリトライすると、重複が生まれてしまいます。上記のサンプルが実行IDと項目インデックスから組み立てたキーを送っているのはそのためです。同じ項目のリトライは、2つ目のリンクを新規作成する代わりに、元のレスポンスを再生します。再生のウィンドウについてはレート制限と冪等性ガイドで説明しています。
コミュニティノード対HTTP Request: どちらを使うべきか
パッケージ化されたノードとHTTP Requestノードは同じAPIに到達するため、これは機能面というよりメンテナンス面での選択です。
| HTTP Requestノード | Elidoコミュニティノード | |
|---|---|---|
| n8n Cloudで動作するか | する | しない、セルフホストのみ |
| エンドポイント | すべて | Create、Get、List、Get Analytics |
| Idempotency-Keyヘッダー | 自分で追加する | 公開されていない |
| セットアップ | Header Auth認証情報とJSONボディ | 型付きフィールドとElido API認証情報 |
| 向いている用途 | 本番フローと特殊な用途全般 | 開発者ではない人が保守するシンプルなフロー |
私の経験則はこうです。デフォルトではHTTP Requestで構築してください。あらゆるn8nエディションで動作し、すべてのヘッダーを自分で制御できます。セルフホストインスタンスで、JSONを読まない人がワークフローを保守することになり、かつその4つの操作で用が足りる場合には、コミュニティノードを選んでください。エンドポイントの全リストはAPI・SDK機能ページを、ポーリングよりプッシュ型が合う場合はElido webhookがアウトバウンド側をカバーしています。ホスト型ツールも比較検討しているなら、Zapierのウォークスルーもあわせてお読みください。
コーナーストーン記事を読む → URL短縮API・SDKクイックスタート
関連記事
- MakeとIFTTTによる短縮リンク自動化 - 同じ作業を2つのホスト型自動化プラットフォームで行う方法。
- Zapier URL短縮自動化 - ネイティブのZapierアプリ、セルフホスト不要。
- リンクイベント向けWebhook - ペイロード、署名、リトライの挙動。
- APIレート制限と冪等性 - リンクを重複させずにリトライする方法。
- Slackリンク短縮ボットとアラート - Slack側専用のアプリを用意する価値があるとき。
- n8nによるセルフホスト型リンク自動化 - Docker、リバースプロキシ、自分のサーバー上での署名付きwebhook。
よくある質問
n8nにはURL短縮の機能が内蔵されていますか?
内蔵されていません。n8nは自前の短縮機能を持たないため、組み込みのHTTP Requestノードから短縮サービスのREST APIを呼び出すか、コミュニティノードをインストールする必要があります。Elidoの場合、HTTP Requestノードは現時点であらゆるn8nエディションで動作する方法で、npmに公開されているn8n-nodes-elidoパッケージはセルフホストインスタンス向けの型付きの選択肢です。
n8n CloudにElidoコミュニティノードをインストールできますか?
できません。n8n Cloudは検証済みのコミュニティノードしか提供しておらず、n8n-nodes-elidoは検証済み一覧に載っていないため、セルフホストインスタンスが必須です。Cloud上では、Header Auth認証情報を使ったHTTP Requestノードを使えば、同じElido APIに到達できます。
コミュニティノードなしでn8nでURLを短縮するにはどうすればいいですか?
HTTP Requestノードを追加し、メソッドをPOSTに、URLをhttps://api.elido.app/v1/workspaces/{workspace_id}/linksに設定し、Bearerトークンを持つHeader Auth認証情報を付け、domain_idとdestination_urlを含むJSONボディを送信してください。レスポンスには新しいリンクのスラッグと、すぐに使えるshort_urlが含まれます。
Elido短縮リンクのdomain_idはどこで確認できますか?
同じ認証情報でGET /v1/workspaces/{workspace_id}/domainsを呼び出してください。レスポンスの各項目にはidとhostnameが含まれるので、リンクを配置したいドメインを選び、そのidを作成呼び出しにハードコードしてください。手動で短縮URLを組み立てる場合に備えてhostnameも控えておくとよいですが、レスポンスにはすでにshort_urlが含まれています。
n8nでElido APIが401や403を返すのはなぜですか?
401は、トークンが存在しない、誤って入力されている、または失効していることを意味します。Settings、API Tokensの下で再作成し、Header Auth認証情報に貼り直してください。403は、トークン自体は有効だがそのワークスペースでの権限がないことを意味し、多くの場合はトークンの不備ではなく、URL内のワークスペースIDが間違っています。
n8nでカスタムスラッグや期限付き短縮リンクを作成できますか?
できます。Starterプラン以上であれば、作成用のボディにslugフィールドを追加すれば独自の後半部分を指定でき、省略すればElidoが自動生成します。有効期限については、同じ作成用ボディにexpires_atのタイムスタンプを追加するか、既存のリンクのURLにそれを添えてPATCHを送ってください。
Elidoを試す
URLを貼り付けて短縮リンクを取得
登録不要。リンクは30日間有効。永久に保存するには登録してください。
Free、登録不要 · 1日あたり2件