Webhookを使ってお気に入りのアプリを接続することで、airfocusから自動かつリアルタイムのアップデートを受けられます。
ウェブフック使用の利点
Webhook を使用すると、airfocus と他のアプリを簡単にリアルタイムで連携させることができます。つまり、追加のアプリや複雑なコーディングを必要とせずに、更新と通知が迅速に行われるということです。
新しいウェブフックの初期設定
AirFocusで新しいワークスペースを作成するか、新しいウェブフックを作りたいワークスペースを選択してください。
要件:
- Webhookを設定したいワークスペースに対して「完全な」権限を割り当てます。
- プロフェッショナルまたはエンタープライズプランの有料サブスクリプション。
- 適切な構成のための技術的知識。
複数のウェブフックを特定のワークスペースに追加できます(例:異なるステークホルダーのオーディエンス向けに異なるSlackチャンネルに)。
その手順は、ワークスペース内の拡張機能セクションに行き、Webhookの「 Add integlation」 と 「Connect」 をクリックしてください。
次に、ウェブフックに 名前 (任意)を付け、どの イベント でリクエストをトリガーするかを選択します。
リクエストオプションで プレースホルダー形式とメソッド を選択し、 ウェブフックのURL をURLフィールドに貼り付けます。必要に応じてリクエストに ヘッダー を追加することもできます。
オプションで、リクエストの本文を上記で選択したプレースホルダー形式で設定することもできます。
{
「ブロック」:[
{
"type": "divider"
},
{
「type」: 「section」
「テキスト」:{
「type」:「mrkdwn」
「テキスト」:「{{title|esc}}」
},
「アクセサリー」:{
「type」: 「ボタン」、
「テキスト」: {
"type": "plain_text",
"text": "Open in airfocus",
"emoji": true
},
「値」:「click_me_123」
"URL": "{{url}}",
「action_id」:「ボタンアクション」
}
},
{
「type」: 「section」
「テキスト」:{
「type」:「mrkdwn」
「テキスト」:「{{details|esc}}」
}
}
]
}ウェブフックのカスタマイズオプションの詳細ドキュメントについては、以下のセクションをお読みください。
ユースケース - AirFocusのアップデートに関するSlack通知を受け取る
このユースケースでは、Webhookを設定したワークスペースのアイテムがステータス更新されるたびに、Slackメッセージを選択したチャネルに送信するWebhookを設定することが目標です。
そのためには、ウェブフックのURLを生成する Slack アプリを設定し、その後、残りのインテグレーションをAirFocusで設定する必要があります。
Slack チャンネルへの Webhook URL を作成する方法:
-
airfocus 通知を受信する Slack ワークスペースに新しい Slack アプリを作成します。
- 機能ページから「 着信Webhooksの有効化 」オプションをオンにしてください。
-
「ワークスペースに新しい Webhook を追加」をクリックします。
- アプリが投稿するチャンネルを選んでから 「許可」をクリックします。
-
webhookのURLをコピー し、アップデートを設定したいairfocusワークスペースを開きます。
Slack にイベント更新通知を送信するために、airfocus で webhook を設定する方法:
- 拡張機能のポップオーバーで「Add インテグレーション」をクリックしてください。
- インテグレーションの概要で、「Webhooks」インテグレーションの下の「Connect」をクリックしてください。
- ウェブフックに名前(任意)を付け、どのイベントでリクエストをトリガーするかを選択します。このユースケースでは「ステータス更新済み」→。
- リクエストオプションで、プレースホルダー形式として「Slack markdown」を選び、「POST」をメソッドとして選択します。次に、SlackからコピーしたウェブフックのURLをURLフィールドに貼り付けます。
- 正しくフォーマットされたSlackメッセージを受け取るには、以下のテンプレートを本文欄に貼り付けて「更新」を押してください。
-
{
「ブロック」:[
{
"type": "divider"
},
{
「type」: 「section」
「テキスト」:{
「type」:「mrkdwn」
「テキスト」:「{{title|esc}}」
},
「アクセサリー」:{
「type」: 「ボタン」、
「テキスト」: {
"type": "plain_text",
"text": "Open in airfocus",
"emoji": true
},
「値」:「click_me_123」
"URL": "{{url}}",
「action_id」:「ボタンアクション」
}
},
{
「type」: 「section」
「テキスト」:{
「type」:「mrkdwn」
「テキスト」:「{{details|esc}}」
}
}
]
}
-
- ワークスペース内のアイテムのステータスが変更された際に、選択したチャンネルにSlackメッセージが届きます。
airfocus最新情報をお届けMicrosoft Teams
注: Microsoft Teamsのウェブフックコネクタ機能は2026年4月末をもって廃止されます。以下のガイドには、業務フロー機能を代替手段として活用する方法の手順が含まれています。
Microsoft Teams 業務フロー機能は、特定のairfocusワークスペース内のアイテムが更新された際に指定されたチャネルにチームメッセージを送信するウェブフックを設定できます。これを行うには、 Microsoft Teams でウェブフックURLを作成し、その後インテグレーションの残りを設定する必要があります airfocus。
Microsoft TeamsでウェブフックURLを作成する
Microsoft TeamsでウェブフックURLを生成するには、以下の手順をフォローしてください:
- Microsoft Teamsにログインしてください。
- 左側のナビゲーション メニューで 3 ドットメニューをクリックします。
- Select 業務フロー.
- 検索バーに「webhook」と入力して検索してください。
- 「Webhookリクエストを受信したときにチャネルに投稿する」を選択します。
- 業務フローの名前を入力します (例: 「Airfocus アップデート」)。
- [次へ] をクリックします。
- 「詳細」で、更新情報を表示させたい特定のチームとチャネルを選択してください。
- 「業務フローの追加」をクリックします。
- 確認画面で、POST URLをコピーしてください。
- これは、 airfocusに貼り付ける必要があるウェブフック URL です。
- 「完了」をクリックして設定を完了してください。
ウェブフックを設定 airfocus
airfocusでウェブフックを設定するには、以下の手順をフォローしてください:
- アップデートを送信したいプラットフォーム airfocus を開きます Microsoft Teams。
- ワークスペースの右上から 拡張機能 をクリックします。
- 「 Add インテグレーション」を選択します。
- 「Webhooks」の下から 「Connect」をクリックします。
- ウェブフックの名前を入力してください。
- 「イベント」で、Microsoft Teamsに送る更新の種類を選択してください。
- 「プレースホルダーフォーマット」で Markdownを選択してください。
- 「メソッド」で POST を選択し、Microsoft Teamsで作成したURLを「URL」の下に貼り付けます。
- + ヘッダーを追加を選択します。
- 「ヘッダー名」の下に「Content-Type」と入力してください。
- 「ヘッダー値」の下に「アプリケーション/json」と入力してください。
- 適切なフォーマットのMicrosoft Teamsメッセージを受け取るには、以下のテンプレートを本文欄に貼り付けてください。
{ 「タイプ」:「AdaptiveCard」 「$schema」:「http://adaptivecards.io/schemas/adaptive-card.json」 「バージョン」:「1.4」「ボディ」:[ { 「type」:「TextBlock」、 「テキスト」:「{{title}}」、 「サイズ」:「ミディアム」 「重さ」:「より大胆」 「ラップ」:真 }, { 「type」:「TextBlock」、 「テキスト」:「{{details}}」、 「ラップ」:真 } ], 「行動」:[ { "type": "Action.OpenUrl", 「タイトル」:「 airfocusに開け」 "URL": "{{url}}" } ] }
- ページ右下から 「アップデート 」をクリックしてください。
これから、最初のセクションで設定したMicrosoft Teamsチャンネルの更新情報を受け取ることができます。
HTTPリクエストの設定 - 技術文書
方法
デフォルトではPOSTに設定されていますが、GETやPUTに変更することも可能です。他の方法はサポートされていません。
URL
- 空っぽであってはいけません
- https:// でしかスタートできません(他のスキームや空スキームはサポートされません)
- パブリックドメイン名と 、よく知られたトップレベルドメイン (IPはサポートされていません)を持つべきです。
ヘッダー
- 承認は支持されています
- コンテンツタイプはサポートされています
- スタートをx-で行うカスタムヘッダーもサポートされています
- それ以外のヘッダーはサポートされていません
本文
Webhook のリクエスト本文を定義します。
最大2000文字までの任意のテキストを含めることができます。
リクエスト本体に意味のあるイベントデータを埋めるために、サーバーがリクエストを送信する前にそれらをイベントデータに置き換える多数のプレースホルダーを提供しています。
プレースホルダー形式
RichTextタイプのプレースホルダーをサーバーで事前レンダリングする方法を指定します。例えば、プレースホルダー {{title}} 「John updated field Labels on item Fix the button」のような文字列を含めることができ、これは太字や斜体などのリッチテキスト書式を含むため、プレースホルダー形式はどの構文で変換すべきかを指定します。 利用可能なフォーマット:
| 名前 | 説明 | 例 |
| 値下げ | デフォルトのマークダウン | ジョンは フィールドを更新 アイテムの ラベル ボタンを直す |
| HTML | <b>John</b> 項目<b> Fix the button</bのフィールド</b> <i>Labels を更新しました></i> |
|
| テキスト | フォーマットが削除されました | ジョンはフィールドを更新 アイテムのラベル ボタンを直す |
| Slack | 特別版Slack mrkdwn | *ジョン* 項目のラベル*を更新した*ボタンを直せ* |
プレースホルダー
| プレースホルダー | タイプ | 説明 | 例 |
{{type}} |
String | イベントの種類 | 更新された項目 |
{{title}} |
文字列(RichText) | イベントアクションを記述します | ジョンはフィールドを更新 アイテムのラベル ボタンを直す |
{{details}} |
文字列(RichText) | 追加のイベント詳細(例:変更点) | 古い価値⇒新しい価値 |
{{url}} |
String | 各イベントごとのコール・トゥ・アクションURL(例:ワークスペースやアイテムへのリンク) |
https://myteam.airfocus.com/w/workspaceId?item=itemId *米国またはAPAC地域にお住まいで、アカウントが2025年9月以降に作成された場合は airfocus.com を airfocus.app に置き換えてください |
{{event}} |
JSON | 現在のイベントに関する完全なJSONデータ | 以下のイベントペイロードモデルを参照してください |
{{title|esc}} |
文字列(RichText) |
{{title}}と同じですが、すべてのダブルクォートは抜けます |
「ダブル」クォート付きの文字列を、\「ダブル」クォート付きの文字列に変換します |
{{details|esc}} |
文字列(RichText) |
{{details}}と同じですが、すべてのダブルクォートは抜けます |
「ダブル」クォート付きの文字列を、\「ダブル」クォート付きの文字列に変換します |
データモデル
イベントペイロードモデル
各イベントごとに生成されるトップレベルのオブジェクト。このイベントに関するデータと、このイベントに関連するすべての実体に関する基本的な埋め込みデータが含まれています。
| フィールド | タイプ | 必須 | 説明 |
| イベント | 事象 (Event) | はい | イベントの基本データ |
| 埋め込み | イベント埋め込み | はい | イベントに関する追加データ - 主にこのイベントに関連するアイテム名やワークスペース名、フィールド名などです |
| matchedFilter | イベントフィルター | はい | インテグレーションの設定で選んだイベントフィルターの一つで、現在のイベントに対応したものだ |
イベントモデル
イベントに関する基本データ
| フィールド | タイプ | 必須 | 説明 |
| ID | UUID | はい | イベントの一意ID |
| 開始した人 | イベントイニシエーター | はい | このイベントを始めた人物に関する情報 |
| データ | イベントデータ | はい | イベントの実際のデータ。イベントの種類ごとに異なります |
| 作成日時 | タイムスタンプ | はい | 出来事が起きたとき |
イベントイニシエータモデル
このイベントを開始した人に関する情報。ほとんどの場合、userId が定義されます。userId とintegrationId の両方が定義される可能性もあります。たとえば、ユーザーが「同期統合」ボタンを押してイベントが生成された場合などです。
| フィールド | タイプ | 必須 | 説明 |
| ユーザー ID | UUID | いいえ | このイベントがユーザーによって開始された場合に定義されます |
| appid | UUID | いいえ | このイベントがアプリによって開始された場合に定義されます |
| integrationId | UUID | いいえ | このイベントがインテグレーションによって開始された場合に定義されます |
| イベントID | UUID | いいえ | このイベントが別のイベントによって開始された場合に定義されます |
| requestId | UUID | いいえ | このイベントがHTTPリクエスト内で開始された場合に定義されます |
EventEmbed モデル
イベントに関する追加データ、主にこのイベントに関連するアイテム名、ワークスペース名、フィールド名などです。
| フィールド | タイプ | 必須 | 説明 |
| チーム | {UUID: TeamInfo} | いいえ | チームIDからチームのデータへのハッシュマップ |
| ユーザー | {UUID: UserInfo} | いいえ | ユーザーIDからユーザーデータへのハッシュマップ |
| アプリ | {UUID: AppInfo} | いいえ | アプリIDとアプリデータのハッシュマップ |
| ワークスペース | {UUID: WorkspaceInfo} | いいえ | ワークスペースIDからワークスペースデータへのハッシュマップ |
| インテグレーション | {UUID: IntegrationInfo} | いいえ | インテグレーションIDをインテグレーションデータにまとめたハッシュマップ |
| フィールド | {UUID: FieldInfo} | いいえ | フィールドIDからフィールドデータへのハッシュマップ |
| 現状 | {UUID: StatusInfo} | いいえ | ステータスIDとステータスデータのハッシュマップ |
| 項目 | {UUID: ItemInfo} | いいえ | アイテムIDからアイテムデータへのハッシュマップ |
TeamInfo モデル
| フィールド | タイプ | 必須 | 説明 |
| 氏名 | String | はい | チーム名 |
| ナメクジ | String | はい | チーム URL slug |
| ベースURL | String | はい | 例: https://myteam.airfocus.com *米国またはAPAC地域にお住まいで、アカウントが2025年9月以降に作成された場合は airfocus.com を airfocus.app に置き換えてください |
ユーザー情報モデル
| フィールド | タイプ | 必須 | 説明 |
| チームID | UUID | はい | このユーザーが所属しているチームのID |
| フルネーム | String | はい | ユーザーのフルネーム |
AppInfo モデル
| フィールド | タイプ | 必須 | 説明 |
| チームID | UUID | はい | このアプリが所属するチームのID |
| typeId(タイプID) | String | はい | どれかの一つ:フォーム、インサイト、ミラー、ポータル、優先順位付け |
WorkspaceInfo モデル
| フィールド | タイプ | 必須 | 説明 |
| チームID | UUID | はい | このワークスペースが所属するチームのID |
| 氏名 | String | はい | ワークスペース名 |
IntegrationInfo モデル
| フィールド | タイプ | 必須 | 説明 |
| workspaceId | UUID | はい | このインテグレーションが属するワークスペースのID |
| typeId(タイプID) | String | はい | どれか:Asana、Azure DevOps、Clubhouse、GitHub、Intercom、Jira、Planner、Trello |
StatusInfo モデル
| フィールド | タイプ | 必須 | 説明 |
| workspaceId | UUID | はい | このステータスが属するワークスペースのID |
| 氏名 | String | はい | 状態の名称 |
| カテゴリー | String | はい | 1つ:ドラフト、アクティブ、クローズド |
ItemInfo モデル
| フィールド | タイプ | 必須 | 説明 |
| workspaceId | UUID | はい | このアイテムが属するワークスペースのID |
| ステータスID | UUID | はい | アイテムの状態の識別 |
| 氏名 | String | はい | アイテム名 |
EventData モデル
EventDataはユニオン型であり、指定されたタイプのいずれかに分類できます。
作成されたアイテム
| フィールド | タイプ | 必須 | 説明 |
| itemId | UUID | はい | 作成されたアイテムのID |
更新済みアイテム
| フィールド | タイプ | 必須 | 説明 |
| itemId | UUID | はい | 更新されたアイテムのID |
| ステータス | {prev: UUID, next: UUID} | いいえ | ステータスの旧IDと新しいID(変更された場合) |
| 色 | {prev: String, next: String} | いいえ | アイテムの色の旧IDと新しいID(変更された場合) |
| assigneeUserIds | {prev: UUID[], next: UUID[]} | いいえ | 割り当てられたユーザーIDの古いリストと新しいリスト(変更された場合) |
| 氏名 | {prev: String, next: String} | いいえ | 古いアイテム名と新しいアイテム名(変更された場合) |
| 説明 | {prev: RichText, next: RichText} | いいえ | 古いアイテムと新しいアイテムの説明(変更された場合) |
| 説明 | { UUID: { prev: JSON, next: JSON } } | いいえ | フィールドIDから変更された値までのハッシュマップで、各値はフィールドタイプに依存するJSON |
| アーカイブ済み | {prev: Boolean, next: Boolean} | いいえ | 古いものと新しいものがアーカイブされています(変更された場合) |
この記事へのフィードバックをお寄せください
この記事に関するフィードバックはありますか?体験の内容についてこちらから教えてください。