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",
            "incoming_webhook"
          ]
        },
        "calendar_platform": {
          "type": "string",
          "enum": ["google", "microsoft"]
        },
        "starts_at": {
          "type": "string",
          "format": "date-time"
        },
        "ends_at": {
          "type": "string",
          "format": "date-time"
        },
        "access_permission": {
          "type": "string",
          "enum": ["HOST", "EVERYONE"]
        },
        "crm_type": {
          "type": "string",
          "enum": ["salesforce"]
        },
        "host": {
          "$ref": "#/definitions/Host"
        },
        "analysis": {
          "$ref": "#/definitions/Analysis"
        },
        "participants": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Participant"
          }
        },
        "speech_recognition": {
          "$ref": "#/definitions/SpeechRecognition"
        },
        "zoom_meeting": {
          "$ref": "#/definitions/ZoomMeeting"
        },
        "google_meet_meeting": {
          "$ref": "#/definitions/GoogleMeetMeeting"
        },
        "google_calendar_event": {
          "$ref": "#/definitions/GoogleCalendarEvent"
        },
        "microsoft_calendar_event": {
          "$ref": "#/definitions/MicrosoftCalendarEvent"
        },
        "salesforce_crm_data": {
          "$ref": "#/definitions/SalesforceCrmData"
        }
      },
      "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"
    },
    "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"
    },
    "ZoomMeeting": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": ["string", "null"]
        },
        "uuid": {
          "type": ["string", "null"],
          "format": "uuid"
        }
      },
      "title": "ZoomMeeting"
    },
    "GoogleMeetMeeting": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "meetingCode": {
          "type": ["string", "null"]
        }
      },
      "title": "GoogleMeetMeeting"
    },
    "GoogleCalendarEvent": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "eventId": {
          "type": ["string", "null"]
        },
        "iCalUId": {
          "type": ["string", "null"]
        }
      },
      "title": "GoogleCalendarEvent"
    },
    "MicrosoftCalendarEvent": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "eventId": {
          "type": ["string", "null"]
        },
        "iCalUId": {
          "type": ["string", "null"]
        }
      },
      "title": "MicrosoftCalendarEvent"
    },
    "SalesforceCrmData": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "activity_id": {
          "type": ["string", "null"]
        },
        "related_id": {
          "type": ["string", "null"]
        }
      },
      "title": "SalesforceCrmData"
    }
  }
}

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

キー 説明
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: ユーザーアップロード

  calendar_platform

連携しているカレンダーサービス
google: Google Calendar
microsoft: Microsoft Outlook Calendar
(連携していない場合は null)

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

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

  crm_type CRM タイプ
salesforce
  host 会議のホスト
    user_name 会議ホストの MiiTel ユーザー名
    login_id 会議ホストの MiiTel ログイン ID
  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 会議履歴発話順の文字起こし (要約)
  zoom_meeting
zoom 会議情報 (platform に zoom を設定した時に設定する)
    id zoom 会議 id (定期予約されている会議は、同じ id になります)
    uuid zoom 会議 uuid
  google_meeting
Google Meet 会議情報 (platform に google を設定した時に設定する)
    meetingCode ミーティングコード
(例) https://meet.google.com/abc-defg-hij -> abc-defg-hij
  google_calendar_event
Google カレンダーイベント (calendar_platform が google の時に設定する)
    id 繰り返しイベントの各インスタンス間で一意となるイベントの ID
    iCalUId 繰り返しイベントの各インスタンス間で一意ではないイベントの ID
  microsoft_calendar_event
Microsoft Outlook カレンダーイベント (calendar_platform が microsoft の時に設定する)
    id 会議シリーズの各インスタンス間で一意ではないイベントの ID
    iCalUId 会議シリーズの各インスタンス間で一意となるイベントの ID
  salesforce_crm_data
Salesforce CRM データ (crm_type が salesforce の時に設定する)
    activity_id Salesforce の活動オブジェクトの ID
    related_id 活動が紐づいている関連先の ID
追加したペイロードのキー 追加したペイロードの値

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

{
    "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": ""
        }
    }
}

うまくいかない場合

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