すべてのガイド
Webhooks

Webhooks ガイド

Fast Memo を外部サービスに接続してワークフローを自動化しましょう。ノート、カテゴリ、データが変更されたときにリアルタイム通知を受け取れます。

  • 公開日
  • 約5分で読めます

Webhooks とは?

Fast Memo の Webhooks は、設定した URL に送信されるアウトバウンド HTTP POST 通知です。アプリ内で特定のイベントが発生すると、Fast Memo は何が起きたかの詳細を含む JSON ペイロードをエンドポイントに送信します。

  • HTTP POST リクエスト

    各 Webhook は指定した URL に HTTP POST で JSON ペイロードを送信します。認証ヘッダーは不要です。

  • 14 種類のトリガー

    14 種類のイベントから選択:ノートの作成、更新、削除、カテゴリ変更、データのインポート/エクスポートなど。

  • IoT & 自動化

    IFTTT、Zapier、n8n、Home Assistant、または独自のサーバーに接続してカスタム自動化を構築できます。

設定方法

  1. 設定を開く

    Fast Memo の設定を開き、詳細セクションの Webhooks オプションを見つけます。

  2. トリガーを選択

    14 個の利用可能なトリガーのリストが表示されます。各トリガーは独自の URL で個別に設定できます。

  3. URL を入力して有効化

    テキストフィールドにエンドポイントの URL を入力します。チェックボックスをタップしてトリガーを有効にします。POST ラベルが HTTP メソッドを確認します。

  4. 完了 — 自動的に発火

    アプリ内で対応するイベントが発生するたびに、Fast Memo はイベントを説明する JSON ボディを含む POST リクエストを URL に送信します。

利用可能なトリガー

各トリガーには独自の URL と有効/無効トグルがあります。必要なだけ設定できます。

トリガーカテゴリアクション
テキストノート追加ノートnote/addTextNote
Todoノート追加ノートnote/addTodoNote
カンバンノート追加ノートnote/addKanbanNote
コードノート追加ノートnote/addCodeNote
ノート更新ノートnote/updateNote
一時削除ノートnote/temporaryDeleteNote
ノート削除ノートnote/deleteNote
ノート復元ノートnote/restoreNote
カテゴリ作成カテゴリcategory/createCategory
カテゴリ更新カテゴリcategory/updateCategory
カテゴリ削除カテゴリcategory/deleteCategory
データエクスポートデータgeneric/export
データインポートデータgeneric/import
データ消去データgeneric/wipeData

ペイロードリファレンス

各 Webhook は HTTP POST で JSON ボディを送信します。以下は各トリガーの正確なペイロード形式です。すべてのペイロードには true に設定された "success" フィールドと "action" 文字列が含まれます。

ノート作成

POST — テキストノート追加
{
  "success": true,
  "action": "note/addTextNote",
  "id": "abc123",
  "type": "text",
  "title": "My Note",
  "text": "<p>Hello world</p>",
  "createdAt": 1713700000,
  "updatedAt": 1713700000,
  "important": false,
  "readOnly": false,
  "hidden": false,
  "locked": false,
  "category": { "iconId": "book", "name": "Personal" }
}
POST — Todoノート追加
{
  "success": true,
  "action": "note/addTodoNote",
  "id": "abc123",
  "type": "todo",
  "title": "Shopping List",
  "list": [
    { "id": "item1", "text": "Buy milk", "checked": false },
    { "id": "item2", "text": "Buy eggs", "checked": true }
  ],
  "createdAt": 1713700000,
  "updatedAt": 1713700000,
  "important": false,
  "readOnly": false,
  "hidden": false,
  "locked": false,
  "category": { "iconId": "cart", "name": "Shopping" }
}
POST — カンバンノート追加
{
  "success": true,
  "action": "note/addKanbanNote",
  "id": "abc123",
  "type": "kanban",
  "title": "Sprint Board",
  "columns": [
    {
      "id": "col1",
      "title": "To Do",
      "cards": [
        { "id": "card1", "text": "Design UI" }
      ]
    },
    {
      "id": "col2",
      "title": "Done",
      "cards": []
    }
  ],
  "createdAt": 1713700000,
  "updatedAt": 1713700000,
  "important": false,
  "readOnly": false,
  "hidden": false,
  "locked": false,
  "category": { "iconId": "briefcase", "name": "Work" }
}
POST — コードノート追加
{
  "success": true,
  "action": "note/addCodeNote",
  "id": "abc123",
  "type": "code",
  "title": "API Handler",
  "tabs": [
    {
      "id": "tab1",
      "title": "index.ts",
      "code": "console.log('hello')",
      "language": "typescript"
    }
  ],
  "activeTabId": "tab1",
  "createdAt": 1713700000,
  "updatedAt": 1713700000,
  "important": false,
  "readOnly": false,
  "hidden": false,
  "locked": false,
  "category": { "iconId": "code", "name": "Dev" }
}

ノートライフサイクル

POST — ノート更新(単一)
{
  "success": true,
  "action": "note/updateNote",
  "id": "abc123",
  "type": "text",
  "title": "Updated Note",
  "text": "<p>New content</p>",
  "createdAt": 1713700000,
  "updatedAt": 1713800000,
  "important": true,
  "readOnly": false,
  "hidden": false,
  "locked": false,
  "category": { "iconId": "book", "name": "Personal" }
}
POST — ノート更新(一括)
{
  "success": true,
  "action": "note/updateNote",
  "extra": "multiple",
  "ids": ["abc123", "def456"],
  "property": "important"
}
POST — 一時削除(単一)
{
  "success": true,
  "action": "note/temporaryDeleteNote",
  "id": "abc123"
}
POST — 一時削除(一括)
{
  "success": true,
  "action": "note/temporaryDeleteNote",
  "extra": "multiple",
  "ids": ["abc123", "def456"]
}
POST — ノート削除(単一)
{
  "success": true,
  "action": "note/deleteNote",
  "id": "abc123"
}
POST — ノート削除(一括)
{
  "success": true,
  "action": "note/deleteNote",
  "extra": "multiple",
  "ids": ["abc123", "def456"]
}
POST — ノート削除(全て)
{
  "success": true,
  "action": "note/deleteNote",
  "extra": "all"
}
POST — ノート復元(単一)
{
  "success": true,
  "action": "note/restore",
  "id": "abc123"
}
POST — ノート復元(一括)
{
  "success": true,
  "action": "note/restoreNote",
  "extra": "multiple",
  "ids": ["abc123", "def456"]
}
POST — ノート復元(全て)
{
  "success": true,
  "action": "note/restoreNote",
  "extra": "all"
}

カテゴリ操作

POST — カテゴリ作成
{
  "success": true,
  "action": "category/createCategory",
  "iconId": "book",
  "name": "Personal"
}
POST — カテゴリ更新
{
  "success": true,
  "action": "category/updateCategory",
  "prevCategory": { "iconId": "book", "name": "Personal" },
  "nextCategory": { "iconId": "star", "name": "Favorites" }
}
POST — カテゴリ削除
{
  "success": true,
  "action": "category/deleteCategory",
  "iconId": "book"
}

データ操作

POST — データエクスポート
{
  "success": true,
  "action": "generic/export"
}
POST — データインポート
{
  "success": true,
  "action": "generic/import"
}
POST — データ消去
{
  "success": true,
  "action": "generic/wipeData",
  "cloud": false
}

制限事項と注意点

  • HTTP メソッドは常に POST です — GET、PUT、その他のメソッドに変更できません。
  • リクエストごとに 5 秒のタイムアウトがあります。エンドポイントが 5 秒以内に応答しない場合、リクエストは破棄されます。
  • リトライなし — リクエストが失敗した場合、サイレントに破棄されます。
  • トリガーごとに 1 つの URL — 同じイベントに複数のエンドポイントを設定できません。
  • カスタムヘッダーや認証トークンなし — 標準の JSON content-type ヘッダーのみ送信されます。
  • この機能は BETA 段階です。ペイロードと動作は将来のバージョンで変更される可能性があります。