Outgoing Webhook 会議履歴の仕様と利用方法

Outgoing Webhook 会議履歴は、設定した URL (Webhook 送信先サーバー) に HTTP リクエストを以下のタイミングで送信できます。

  • 会議履歴の音声分析完了時

開発者は、Webhook を利用して外部システムへ MiiTel 会議履歴情報を連携できます。

📘

この機能を利用するには、 管理者権限 が必要です。

連携を設定する

📘

IMPORTANT

Challenge-Response を以下の方法で確認できます。

  • 設定保存時、設定内容とペイロードに {'challenge':'hex_token'} を付与し、固定 IP アドレスで [URL] に設定したサーバーに Challenge-Response 方式の確認リクエストを送信します。
  • リクエスト送信先サーバーは、ヘッダーを {'Content-Type':'text/plain'} とした 200 OK のレスポンスで 'hex_token' 値を返す必要があります。
    ※ 'hex_token' のみを返却ください。
  1. https://account.miitel.jp/v1/signin にアクセスし、管理者権限があるユーザーで MiiTel Analytics にログインします。
  2. 画面右上の [MiiTel Admin を開く] をクリックします。
  3. [外部連携] > [Outgoing Webhook] をクリックします。
  4. [会議履歴] タブをクリックします。
  5. [連携設定を追加] をクリックします。
  1. 各項目を設定します。

[1] 名前: 作成する設定の名前を入力 (連携先が分かるような名前など)

[2] URL: Webhook 送信先サーバーの URL を入力する

[3] 追加ヘッダー: 追加したいヘッダーを JSON 形式で入力する

BASIC 認証のためのユーザー認証用データや、Bearer トークンなどを追加できます。
例) {"Authorization":"Bearer ACCESSTOKEN"}

🚧

IMPORTANT

'User-Agent''Content-Type' は変更できません。設定した場合、反映されません。

[4] 追加ペイロード: 追加したいペイロードを JSON 形式で入力する

  1. [保存] をクリックします。

📘

NOTE

Challenge-Response方式による確認ができなかった場合、以下のエラーメッセージが表示され設定を保存できません。

  • サーバーから正しい challenge 値が返らなかった場合

  • 一定時間レスポンスが返らなかった場合

設定を編集する

  1. https://account.miitel.jp/v1/signin にアクセスし、管理者権限があるユーザーで MiiTel Analytics にログインします。
  2. 画面右上の [MiiTel Admin を開く] をクリックします。
  3. [外部連携] > [Outgoing Webhook] をクリックします。
  4. 編集したい設定右横の [ ellipsis-v-light__1_.svg ] > [編集] をクリックします。

設定を削除する

  1. https://account.miitel.jp/v1/signin にアクセスし、管理者権限があるユーザーで MiiTel Analytics にログインします。
  2. 画面右上の [MiiTel Admin を開く] をクリックします。
  3. [外部連携] > [Outgoing Webhook] をクリックします。
  4. 削除したい設定右横の [ ellipsis-v-light__1_.svg ] > [削除] をクリックします。
  5. [削除] をクリックします。

HTTP リクエスト送信タイミング

  • 会議履歴の音声分析完了時

HTTP リクエスト

バージョン

  • HTTP/1.1

メソッド

  • POST

ヘッダー

キー
content-typeapplication/json; charset=utf-8
user-agentMiiTel-Webhook/v1

ペイロード(リクエストボディー)の JSON Schema

{
    "$schema": "http://json-schema.org/draft-06/schema#",
    "$ref": "#/definitions/Welcome",
    "definitions": {
        "Welcome": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
                "video": {
                    "$ref": "#/definitions/Video"
                }
            },
            "required": [
                "video"
            ],
            "title": "Welcome"
        },
        "Video": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "id": {
                    "type": "string",
                    "format": "uuid"
                },
                "tenant_code": {
                    "type": "string"
                },
                "title": {
                    "type": "string"
                },
                "platform": {
                    "type": "string",
                    "enum": [
                        "miitel",
                        "zoom",
                        "google_meet",
                        "microsoft_teams",
                        "user_uploads",
                        "rec_pod"
                    ]
                },
                "starts_at": {
                    "type": "string",
                    "format": "date-time"
                },
                "ends_at": {
                    "type": "string",
                    "format": "date-time"
                },
                "access_permission": {
                    "type": "string",
                    "enum": [
                        "HOST",
                        "EVERYONE"
                    ]
                },
                "host": {
                    "$ref": "#/definitions/Host"
                },
                "analysis": {
                    "$ref": "#/definitions/Analysis"
                },
                "participants": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/Participant"
                    }
                },
                "speech_recognition": {
                    "$ref": "#/definitions/SpeechRecognition"
                }
            },
            "required": [
                "access_permission",
                "analysis",
                "ends_at",
                "host",
                "id",
                "participants",
                "platform",
                "speech_recognition",
                "starts_at",
                "tenant_code",
                "title"
            ],
            "title": "Video"
        },
        "Analysis": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "overlap_count": {
                    "type": [
                        "integer",
                        "null"
                    ]
                },
                "silence_count": {
                    "type": [
                        "integer",
                        "null"
                    ]
                }
            },
            "required": [
                "overlap_count",
                "silence_count"
            ],
            "title": "Analysis"
        },
        "Host": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "user_name": {
                    "type": "string"
                },
                "login_id": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "format": "email"
                }
            },
            "required": [
                "login_id",
                "user_name"
            ],
            "title": "Host"
        },
        "ZoomMeeting": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "id": {
                    "type": "string"
                },
                "uuid": {
                    "type": [
                        "string",
                    ],
                    "format": "string"
                }
            },
            "required": [
                "id",
                "uuid"
            ],
            "title": "ZoomMeeting"
        },
        "Participant": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "id": {
                    "type": "string",
                    "format": "uuid"
                },
                "display_name": {
                    "type": "string"
                },
                "miitel_user_name": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "login_id": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "format": "email"
                }
            },
            "required": [
                "display_name",
                "id",
                "login_id",
                "miitel_user_name"
            ],
            "title": "Participant"
        },
        "SpeechRecognition": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "raw": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "summary": {
                    "type": [
                        "string",
                        "null"
                    ]
                }
            },
            "required": [
                "raw",
                "summary"
            ],
            "title": "SpeechRecognition"
        }
    }
}

ペイロード(リクエストボディー)の内容

キー 説明
video
会議履歴
  id



会議履歴を識別する ID
MiiTel Analytics 会議履歴 URL の以下
https://<企業ID>.miitel.jp/app/video/<シーケンス ID>
  tenant_code
企業 ID
  title 会議履歴のタイトル
  platform

会議を実施したサービス
zoom: Zoom
google_meet: Google Meet
microsoft_teams: Microsoft Teams
user_uploads: ユーザーアップロード

  starts_at 会議開始時刻 (UTC)
  ends_at 会議終了時刻 (UTC)
  access_permission

閲覧制限
EVERYONE: 組織内の全員がアクセスできる
HOST: ホストのみがアクセスできる
HOST_AND_SELECTED_USER: 会議ホストに加えて特定のユーザーがアクセスできる

  host 会議のホスト
    user_name 会議ホストの MiiTel ユーザー名
    login_id 会議ホストの MiiTel ログイン ID
  zoom_meeting Zoomのmeeting情報
    id Zoomのmeeting番号
    uuid Zoomのmeetingのuuid
  analysis 応対評価
    overlap_count 被り回数
    silence_count 沈黙回数
  participants 参加者
    id 発話者を識別する ID
    display_name 会議参加名 (発話者が特定できない場合は guest<通し番号>)
    miitel_user_name MiiTel ユーザー名 (MiiTel ユーザーと連携していない場合は null)
    login_id MiiTel ログイン ID (MiiTel ユーザーと連携していない場合は null)
  speech_recognition
音声認識
    raw 会議履歴発話順の音声認識 (フィラーを除いた文)
    summary 会議履歴発話順の音声認識 (要約)
追加したペイロードのキー 追加したペイロードの値

ペイロード(リクエストボディー)のサンプル

{
    "video": {
        "id": "018c23b3-52bc-d32d-d8e6-162491d7ee60",
        "tenant_code": "revcomm-test",
        "title": "call_recording_387cf464-2988-43c3-aa2d-cee744368ee4_20230120023041 (1)",
        "platform": "user_uploads",
        "starts_at": "2023-12-01T04:45:00+00:00",
        "ends_at": "2023-12-01T05:01:45.480000+00:00",
        "access_permission": "EVERYONE",
        "host": {
            "user_name": "田中 太郎",
            "login_id": "[email protected]"
        },
        "zoom_meeting": {
            "id": "91615380703",
            "uuid": "HMZmQgWRSYay8t+5HZKtPw=="
        },
        "analysis": {
            "overlap_count": null,
            "silence_count": 27
        },
        "participants": [
            {
                "id": "018c23bf-394d-a6fe-2a73-f9e5143dd905",
                "display_name": "guest01",
                "miitel_user_name": null,
                "login_id": null
            },
            {
                "id": "ad1a0191-5780-4912-a68a-c4b0705824d3",
                "display_name": "guest02",
                "miitel_user_name": null,
                "login_id": null
            },
            {
                "id": "018c23b3-5565-8e41-554d-416458cbbeb8",
                "display_name": "田中 太郎",
                "miitel_user_name": "田中 太郎",
                "login_id": "[email protected]"
            }
        ],
        "speech_recognition": {
            "raw": "0:00 (guest01) そうだよです。コールビングはコールエル。\n0:08 (guest01) お世話になってす。株式会社レブコムの田中と申します。\n0:08 (guest02) サカモトです。お世話になります。",
            "summary": "0:08 (guest01) お世話になってす。株式会社レブコムの田中と申します。\n0:12 (guest02) サカモトです。お世話になります。"
        }
    }
}
{
    "video": {
        "id": "018c23a4-c0b1-45c9-a9b6-e53c1b0a91a8",
        "tenant_code": "revcomm-test",
        "title": "46c1897e-6dab-4beb-ac6a-5861cbaa6d1f",
        "platform": "user_uploads",
        "starts_at": "2023-12-01T04:30:00+00:00",
        "ends_at": "2023-12-01T04:30:02.580000+00:00",
        "access_permission": "EVERYONE",
        "host": {
            "user_name": "田中 太郎",
            "login_id": "[email protected]"
        },
        "zoom_meeting": {
            "id": "91615380703",
            "uuid": "HMZmQgWRSYay8t+5HZKtPw=="
        },
        "analysis": {
            "overlap_count": null,
            "silence_count": null
        },
        "participants": [
            {
                "id": "018c23a4-c353-3a72-4292-036067735557",
                "display_name": "田中 太郎",
                "miitel_user_name": "田中 太郎",
                "login_id": "[email protected]"
            }
        ],
        "speech_recognition": {
            "raw": "",
            "summary": ""
        }
    }
}

うまくいかない場合

フォーラム からご質問ください!