Notion URL 短縮ツールのインテグレーションは、接続自体については2026年6月4日に Beta から Live になりました。OAuth のワンクリックだけで、シークレットの貼り付けは不要です。その上に構築されるデータベース同期は計画段階であり、まだ利用できません。リリースされれば、Elido は選択した任意のデータベース内の URL を読み取り、自分のドメインでブランド化された短縮リンクを発行し、テーブルに書き戻し、行き先の編集を監視するようになります。フィールドマップはデータベースごとに設定可能になる予定です。
この記事では、すでに利用可能な OAuth 接続ステップを説明し、続いて計画されている6列構造と競合解決付きの双方向編集フローを扱います。以前のNotion 短縮リンクの手順解説を読んだことがあるなら、こちらはより深く掘り下げた内容になります。
ワンクリック OAuth: Connect を押すと実際に何が起きるか
以前のトークン貼り付け方式では、Notion の内部インテグレーショントークンを生成し、それを貼り付け、さらに各データベースを手作業でインテグレーションに共有する必要がありました。その方式はもうありません。新しいフローは3クリックです。Elido で Connect を押す、Notion の同意画面でワークスペースとデータベースを選ぶ、それで完了です。OAuth のやり取りはNotion API 認証ドキュメントの標準に従います。Notion は PKCE をサポートしていないため、交換は state パラメータで保護された通常の認可コードフローになります。
Notion には認可時にスコープを個別に選択する仕組みがありません。権限はインテグレーションの Elido 側で設定されており、どのページとデータベースを見せるかはユーザーが選びます。権限は意図的に絞られています。
- read_content - 選択したデータベースの Destination、Tags、Title プロパティを読み取る。
- insert_content - Zap、webhook、CSV などの外部ソースから Elido にリンクを発行させたときに新しい行を作成する。
- update_content - Short URL、Clicks、QR、Last Synced のプロパティを書き戻す。
Elido はワークスペース全体の読み取りや、チェックしなかったページへのアクセスを求めることはありません。Notion もサーバー側でこれを強制しており、許可範囲外のデータベースへのクエリは403を返します。Notion API のデータベース操作リファレンスには、このインテグレーションが使う操作がまとめられています。
同意が完了すると、ブラウザは認可コードを付けて api.elido.app/v1/oauth/notion/callback にアクセスします。api-core はそのコードをアクセストークンと交換し、トークンを暗号化して(ADR-0036 に従い)external_oauth_connections に保存します。平文のトークンがディスクやログに触れることはありません。さらに監査ログにも1行記録され、どの管理者がいつどの Notion ワークスペースを接続したかを確認できます。
Connect ボタンは、インテグレーションカタログにある他のすべてのベンダーと同様に、ワークスペースごとの Integrations タブにあります。Notion インテグレーションページには同意画面のスクリーンショットが掲載されています。権限は Notion の Settings、Connections パネルから取り消せます。Elido 側で Disconnect すると、Elido 側で接続が取り消し済みとしてマークされます。
2つのモード: アタッチと作成
アタッチモードでは、URL プロパティを持つ既存のデータベースを Elido に指定します。Elido は必要な列だけを追加し、既存の列名は変更しません。作成モードでは、選択したページの中に新しい「Elido Links」データベースを Elido がプロビジョニングします。多くのチームは、キャンペーンテーブルにすでに数四半期分の履歴があるためアタッチを選びます。どちらの場合でも、以下のスキーマは同一です。
フィールドマッピング: 6つの列とその理由
ここからセットアップの手順解説までの内容は、今日リリースされているものではなく、計画されている同期を説明しています。今日の時点では、この接続によって Elido は共有されたデータベースを一覧表示し、API クライアント経由でそこに行を作成できます。
以下が、このインテグレーションで使われる列のレイアウトです。名前はデフォルトのものであり、Settings、Notion、Field map からデータベースごとに変更できます。
| 列 | Notion のタイプ | 方向 | 補足 |
|---|---|---|---|
| Short URL | URL | Elido が書き込み | ユーザー側からは読み取り専用。編集しても何も起きません。 |
| Destination | URL | Notion が書き込み | 短縮リンクの行き先。編集可能。 |
| Tags | Multi-select | 双方向 | 競合時はタグを集合の和でマージします。 |
| Clicks | Number | Elido が書き込み | 5分ごとにポーリング。読み取り専用。 |
| QR | Files | Elido が書き込み | 短縮 URL の QR コードの1024px PNG。 |
| Last Synced | Date | Elido が書き込み | 直近の同期タイミングの UTC タイムスタンプ。 |
いくつか触れておく価値のある設計判断があります。
Clicks は意図的にリアルタイムではありません。 Notion にはストリーミングの仕組みがなく、クリックのたびにエンドポイントを叩くとレート制限をすぐに使い切ってしまいます。5分という間隔は、多くの運用チームが必要とする鮮度に合っています。リアルタイム性が必要な場合、クリックごとの webhook イベントはロードマップに載っていますが、リリースされるまでは analytics API からクリック数を取得してください。Notion はキャンペーンのビューであり、analytics フィードはファイアホースです。
QR は URL ではなく Files プロパティです。 Notion はテーブル内で外部の画像 URL を描画しませんが、添付されたファイルはサムネイルとして表示します。Elido は初回同期時に PNG をアップロードし、短縮 URL が変わった場合のみ再アップロードします。QR コード機能ページとGS1 QR ガイドも参照してください。
Tags は集合の和による双方向同期です。 両側が書き込む唯一の列です。Notion で行に「launch-2026」タグを付け、Elido 側には Zap から「winter-promo」タグが付いている場合、次の同期で両方のタグが両側に存在するようになります。削除も伝播します。すべての変更は監査ログに記録されます。
UTM パラメータについては、UTM テンプレートガイドがフォルダにテンプレートを紐付ける方法を説明しており、すべてのリンクが正しい utm_source を継承するようになります。Destination 列はそのままきれいに保たれ、Elido はスマートリンクルールを通じてクリック解決時にパラメータを付加します。
双方向編集フロー: Notion と Elido が食い違ったときにどちらが勝つか
同期ツールにはサイレントな上書きをしてきた歴史があるため、これはチームが最も気にする部分です。以下がその契約です。
計画されている api-core 内のワーカーは、接続された各データベースを5分ごとにポーリングし、直近の last_edited_time のウォーターマーク以降の変更を確認します。プロパティが変更されると、フィールドマップを読み込んで所有権を判断します。ルールは固定です。
- Notion が所有: Destination、Tags(書き込み側)、Title。
- Elido が所有: Short URL、Clicks、QR、Last Synced。
- 共有: Tags(読み取り側。両側でマージされた集合が見えます)。
Notion が所有するフィールドが Notion 側で変更された場合、Elido は内部状態を更新し integration.notion.sync イベントを発行します。Elido が所有するフィールドが変更された場合(クリック数の増加など)、Elido は次の同期で書き戻します。
興味深いのは競合が起きたケースです。14:02:10に Notion で Destination を変更し、同じ5分間のウィンドウ内の14:02:30に Zap が Elido に新しい Destination を書き込んだとします。Destination は Notion が所有しているため、Notion が勝ちます。Elido は Zap の書き込みを破棄し、行に("Destination conflict at 14:02:30, kept Notion value, see audit log")というコメントを投稿し、webhook経由で購読できる競合イベントを発行します。Zap 側はそれを受け取り、リトライするかアラートを出すかを判断します。
どこにもサイレントな上書きはありません。すべての書き込みはログに記録されます。すべての競合には行コメントが付きます。恒久的な記録として残したい場合は、ClickHouse エクスポートガイド経由で監査ストリームをデータウェアハウスに流すか、GraphQL APIを直接叩いてください。
行き先の変更を伝播させるべきでないとき
行き先を下書きとして編集したい場合もあります。2つのパターンが役立ちます。
ガードとしてのステータスプロパティ。 Draft、Live、Paused の値を持つ「Sync」という Select プロパティを追加します。インテグレーションは Sync = Live の行だけを同期します。まず Draft の状態で作業し、Live に切り替えると、次のティックで取り込まれます。ほとんどのマーケティングチームは最終的にこの方法を使うようになります。
データベース全体を一時停止する。 Settings、Notion からデータベースごとに一時停止できます。移行や一括編集の際に便利です。
セットアップの手順解説: ゼロから最初の同期行まで4分
ステップ1は今日から利用できます。ステップ2から5は、計画されている同期とともに提供されます。
- Notion を接続する。 Workspace settings、Integrations、Notion、Connect の順に進みます。ワークスペースを選び、データベースにチェックを入れ、Allow を押します。
- データベースを選ぶ。 Settings、Notion、「Add database」。ドロップダウンには許可したすべてのデータベースが表示されます。1つ選びます。
- フィールドをマッピングする。 Destination、Title、その他のフィールドを確認します。プロパティが不足している場合、Elido が作成を提案します。
- ドメインを選ぶ。 短縮リンク用のブランドドメインを選びます。まだカスタムドメインがない場合は、デフォルトを選んでください。移行は後でワンクリックで行えます。
- 保存してバックフィルする。 Elido はすべての行を読み取り、Destination はあるが Short URL がない行に対して短縮リンクを生成し、書き戻します。既存の Short URL はそのままにされます。
実際の所要時間は、200行でおよそ4分です。より大きなバックフィルでは、無料ワークスペースにおける Notion の秒間3リクエストという上限に達します。5,000行のデータベースは約30分でバックフィルが完了します。ワーカーはバッチ処理を行い、レート制限にかかった場合は自動的に再開します。
このインテグレーション、Zapier、API を直接使う場合の使い分け
3つの道があり、互いに排他的ではありません。
作業が Notion で行われているなら、ネイティブインテグレーションが適切なデフォルトです。OAuth、競合解決、監査ログ、フィールドマップがあり、コードは不要です。
Zap は、複数ステップのワークフロー(「行が追加され、かつ Slack のリアクションが付いたら、リンクを作成する」など)に適しています。行とリンクを1対1でマッピングするだけなら、ネイティブインテグレーションの方が速く、コストも低く済みます。Zapier 自動化の記事を参照してください。
Elido の上にカスタムワークフローを構築しているなら、REST API が適切です。プロダクトのインテグレーションを構築する開発者向けに、services/api-core/internal/integrations/notion/ 以下のソースコードは一度に読み切れるくらいコンパクトです。
Bitly や Rebrandly と比較すると、執筆時点ではどちらもネイティブの Notion インテグレーションを持っていません。両者とも Zapier かカスタムスクリプトが必要です。違いについてはvs Bitlyページを、どのプランが無制限の Notion データベースを含むかは料金ページを参照してください。
トラブルシューティング: Beta で発生した4つの問題
Beta 期間中に、4種類の問題が発生しました。そのうちいくつかは、現在利用できる接続そのものではなく、計画されている同期に関するものですが、何に注意すべきかを知っておくと役立ちます。
ワークスペース名の変更後に「Database not found」となる。 Notion の管理者がワークスペース名を変更した場合、ワークスペース ID 自体は変わりませんが、こちら側でキャッシュしているメタデータが最大1時間古いままになることがあります。対処法は、Settings、Notion から「Force re-sync」を実行することです。本番環境ではキャッシュの TTL は15分に設定されているため、これは主に Beta 特有の現象です。
大規模なバックフィル中のレート制限。 Notion のインテグレーションごとの制限は秒間3リクエストです。5,000行のデータベースは、初回のバックフィル中にこの制限に大きく引っかかります。ワーカーは指数バックオフ(250ms、500ms、1秒、2秒、上限8秒)を行い、処理を再開します。アクティビティログに「Throttled by Notion, resuming」と表示されますが、これは正常な動作です。
プロパティタイプの不一致。 Beta で最もよく見られたバグです。ユーザーが Destination 用に「URL」ではなく「Text」タイプの Notion 列を選んでしまうケースです。現在は、フィールドマップのバリデーターが保存時にこれを検出し、処理を拒否します。「Destination must be a URL property」と表示された場合は、まず Notion 側で列のタイプを変更してください。
複数ワークスペースに所属するユーザーと共有データベース。 同じ人物が2つの Notion ワークスペースのメンバーで、両方を Elido に接続したい場合、各ワークスペースはそれぞれ独自の OAuth 許可が必要です。トークンはユーザー単位ではなくワークスペース単位です。接続フローはこれを正しく処理するので、Connect を2回クリックすることになると考えておいてください。
このリストにない問題については、お問い合わせページからインテグレーションチームに直接連絡できます。一般的なサポート窓口より、そちらの方が問題に早く気づけます。
次に予定されていること
ロードマップには2つのフォローアップがあります。フォームの送信からトラッキング付きリンクを発行する「Notion form to short link」レシピ。そして、行をデータベース間で移動させたときにリンクが追従する、Workspace プロパティの双方向同期です。どちらも第3四半期に予定通り進んでおり、変更履歴で告知します。
効果を測定するには、短縮リンク分析の入門記事が、実際に重要な指標と、正しい問いに答えられるように Notion のダッシュボード行を設定する方法を説明しています。
よくある質問
Notion インテグレーションはどのスコープをリクエストしますか?
Elido は、OAuth の同意ステップで選択したページやデータベースに対して insert_content、update_content、read_content をリクエストします。これだけで、新しい行の追加、短縮 URL とクリック数の書き戻し、行き先の編集の読み取りには十分です。Elido はワークスペース全体へのアクセスを求めることは決してなく、権限は Notion の同意画面でチェックした範囲に限定されます。
Notion 内で行き先の URL を編集すると、Elido はそれに追従しますか?
それは計画されている挙動であり、まだ実装されていません。フィールドウォッチャーが Destination プロパティの変更を5分ごとにポーリングする予定です。URL が変更されると、Elido は api-core 内のリンクの行き先を更新し、監査ログに新しい行を書き込み、下流のシステムに知らせるために webhook を発火します。短縮 URL 自体は変わらないため、既存の QR コードや印刷物はそのまま機能します。
両側が同時に編集した場合、競合解決はどのように機能しますか?
これは計画されている同期ルールです。Notion は Destination、Tags、Title の信頼できる情報源であり、Elido は Short URL、Clicks、QR、Last Synced の信頼できる情報源です。同期ウィンドウ内でプロパティが競合した場合、そのフィールドを所有する側が優先され、負けた側には何が起きたかを説明するコメントが行に付きます。サイレントな上書きは発生しません。
このインテグレーションは Notion の無料プランでも動作しますか?
はい、動作します。ただし2つ注意点があります。Notion の無料ワークスペースには秒間3リクエストという API レート制限があるため、非常に大きなデータベース(5,000行以上)は少しのバックオフを挟みながら100件ずつのバッチで同期されます。2つ目に、初回は Notion ワークスペースの管理者が OAuth の許可を承認する必要があります。その後は、データベースの編集権限を持つ人なら誰でも手動での再同期を実行できます。
インテグレーションを切断するとどうなりますか?
Elido は自分の側で接続を取り消し済みとしてマークします。Notion にはトークンの取り消しエンドポイントがないため、Notion 側の Settings、Connections からも Elido の接続を削除してください。既存の行はデータベースに残り、短縮 URL もそのままですが、Clicks と Last Synced の更新は止まります。後で再接続すると、中断したところから再開し、切断されていた間に蓄積したクリック数を後から埋め合わせます。
Elidoを試す
URLを貼り付けて短縮リンクを取得
登録不要。リンクは30日間有効。永久に保存するには登録してください。
Free、登録不要 · 1日あたり2件