Outgoing Webhook

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

  • 応対履歴の音声分析完了時
  • MiiTel に設定した IVR の番号を発信元が入力した時
  • 不在着信時
  • 不在発信時
  • プレディクティブコールの不在発信時
  • 自動転送先が不在時

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

目次

連携を設定する

  IMPORTANT

Challenge-Response 確認

  •   設定保存時、設定内容とペイロードに {'challenge':'hex_token'} を付与し、固定 IP アドレスで [URL] に設定したサーバーに Challenge-Response 方式の確認リクエストを送信します。
  •   リクエスト送信先サーバーは、ヘッダーを {'Content-Type':'text/plain'} とした 200 レスポンスで 'hex_token' 値を返す必要があります。 
  1. https://account.miitel.jp/v1/signin にアクセスし、管理者権限があるユーザーで MiiTel Analytics にログインします。
  2. 画面右上の cog-light.svg をクリックします。

  3. [外部連携] > [Outgoing Webhook] をクリックします。
  4. [連携設定を追加] をクリックします。

OutgoindWebhook1%2B%2B.png

  1. 各項目を設定します。

outgoing_webhook_2023Jan.png

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

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

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

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

  IMPORTANT

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

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

5音声認識フレーズ: 音声認識結果のフレーズをペイロードに含めない場合はチェックを入れる

6音声認識キーワード: 音声認識結果のキーワードをペイロードに含めない場合はチェックを入れる

7送信元 IP アドレス: 送信元 IP アドレスを固定する場合はチェックを入れる

  • MiiTel がリクエスト送信に利用する送信元 IP アドレスは以下のいずれかです。
    • 18.177.83.94/32
    • 35.73.236.241/32
  • 固定した場合、毎時 0, 10, 20, 30, 40, 50 分に過去 10 分間の応対履歴のリクエストを一括送信します。
  1. [保存] をクリックします。

  NOTE

  •   Challenge-Response方式による確認ができなかった場合、以下のエラーメッセージが表示され設定を保存できません。
    • サーバーから正しい challenge 値が返らなかった場合
      outgoingwebhook_challenge1.PNG
    • 一定時間レスポンスが返らなかった場合
      outgoingwebhook_challenge2.PNG

設定を編集する

  1. https://account.miitel.jp/v1/signin にアクセスし、管理者権限があるユーザーで MiiTel Analytics にログインします。
  2. 画面右上の cog-light.svg をクリックします。

  3. [外部連携] > [Outgoing Webhook] をクリックします。
  4. 編集したい設定右横の [ ellipsis-v-light__1_.svg ] > [編集] をクリックします。
  5. 編集後、[保存] をクリックします。

OutgoindWebhook3%2B%2B.PNG

設定を削除する

  1. https://account.miitel.jp/v1/signin にアクセスし、管理者権限があるユーザーで MiiTel Analytics にログインします。
  2. 画面右上の cog-light.svg をクリックします。

  3. [外部連携] > [Outgoing Webhook] をクリックします。
  4. 削除したい設定右横の [ ellipsis-v-light__1_.svg ] > [削除] をクリックします。
  5. [削除] をクリックします。

OutgoindWebhook4%2B%2B.PNG

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

  • 応対履歴の音声分析完了時
  • MiiTel に設定した IVR の番号を発信元が入力した時
  • 不在着信時
  • 不在発信時
  • プレディクティブコールの不在発信時
  • 自動転送先が不在時

HTTP リクエスト

バージョン

  • HTTP/1.1

メソッド

  • POST

ヘッダー

キー 説明
content-type application/json; charset=utf-8
user-agent MiiTel-Webhook/v1

ペイロード

キー 説明
call
応対履歴
  id



応対履歴を識別する ID
MiiTel Analytics 応対履歴 URL の以下
https://<企業ID>.miitel.jp/app/calls/<シーケンス ID>
  tenant_code
企業 ID
  
details
応対履歴の詳細
    id
応対履歴を識別する ID
     dial_starts_at
ダイヤル開始時刻
     dial_answered_at
通話開始時刻
     dial_ends_at
通話終了時刻
     queueing_starts_at
着信がキューに入った時刻
     queueing_answered_at
キューに入っていた着信にユーザーが応答した時刻。または、プレディクティブコールの発信先が応答した時刻
     queueing_ends_at
キューに入っていた着信が切れた時刻、または、通話終了した時刻
       call_type


通話種別
OUTGOING_CALL: 外線発信
OUTGOING_TRANSFER: 外線転送
INCOMING_CALL: 外線着信
QUEUEING_CALL: キューイング着信
EXTENSION: ユーザー宛内線
EXTENSION_GROUP: グループ宛内線
EXTENSION_TRANSFER: ユーザー宛内線転送
EXTENSION_GROUP_TRANSFER: グループ宛内線転送

MONITORING: モニタリング
PREDICTIVE_DIAL: プレディクティブコール
AUTOMATIC_TRANSFER: 自動転送
AUTOMATIC_RECORD: 留守番電話
PLAY_SOUND: サウンド再生
READ_DTMF: IVR プッシュ番号

     circuit_number
回線番号
     circuit_name
回線名
    from_number
発信元電話番号
発信の場合は null、発信時は circuit_number を確認
     to_number
発信先電話番号
     previous_id
直前のアクションのシーケンス ID (直前のアクションがない場合は null)
     dtmf
IVR で選択された番号
     analysis
応対評価
      score
全体スコア
      tlr

Talk : Listen 比率

       rally_count
ラリー回数
      overlap_count
被り回数
      silence_count
沈黙回数
    participants
発話者
       id
発話者を識別する ID
      from_to

FROM: 発信元
TO: 発信先

      name
発話者名
MiiTel ユーザー名
または、MiiTel 連絡先に登録されている取引先担当者名 (連絡先に登録ない場合は null)
      company_name
取引先会社名
       analysis
音声評価
        f0 基本周波数
        speechrate 話速
        variance 抑揚の強弱
        filler_count フィラー回数
        positive_score 感情認識 ポジティブスコア
0 ~ 1 の値 (1が最大値)
        negative_score 感情認識 ネガティブスコア
0 ~ 1 の値 (1が最大値)
    tags
応対メモ
      created_by
応対メモを登録した MiiTel ユーザー
      creator_type
TENANT_USER: 応対メモ
SYSTEM: 自動応対メモ
      value
応対メモ項目 (登録応対メモの値)
    comments
コメント
      created_at
コメント登録日
      created_by
コメント登録ユーザー
      value
コメントの内容
    keywords
キーワード出現
      starts_at
キーワード出現時刻  (通話開始からの経過時間 (秒) )
      participant_id
キーワードの発話者の発話者 ID (participant > id)
      value
キーワードの値
    phrases
音声認識結果 (フィラーを除く)
      participant_id
発話者 ID (participant > id)
      raw
発話者の発話音声認識 (原文)
         order 発話の通し番号 (0~)
        phrase 発話の音声認識 (原文)
        phrase_nofiller

発話の音声認識 (フィラーを除いた文)

        start_at 発話開始時の時刻 (通話開始からの経過時間 (秒))
        end_at 発話終了時の時刻 (通話開始からの経過時間 (秒))
        filler_num 発話音声認識からフィラー除去した文字数
      summary 音声認識 (要約文)
設定されているキーは details > phrases > raw と同じ
    speech_recognition
音声認識
      raw
応対履歴音声順の音声認識 (原文)
      summary
応対履歴音声順の音声認識 (要約)

リクエストサンプル

リクエストサンプル (以下のリクエストサンプルをダウンロードできます)

{
"call": {
"id": "0184f502-8b5f-b967-10c1-625c89785630",
"tenant_code": "miitel-test",
"details": [
{
"id": "0184f502-8b5f-b967-10c1-625c89785630",
"dial_starts_at": "2022-12-09T03:41:48+00:00",
"dial_answered_at": "2022-12-09T03:41:54+00:00",
"dial_ends_at": "2022-12-09T03:42:17+00:00",
"queueing_starts_at": null,
"queueing_answered_at": null,
"queueing_ends_at": null,
"call_type": "OUTGOING_CALL",
"circuit_number": "050-0000-0000",
"circuit_name": "050-0000-0000",
"from_number": null,
"to_number": "050-9999-9999",
"previous_id": null,
"dtmf": "0",
"analysis": {
"score": 313.3515187539091,
"tlr": 0.8095,
"rally_count": 5,
"overlap_count": 0,
"silence_count": 0
},
"participants": [
{
"id": "0184f502-8b66-4ab1-10d3-34c0049a9100",
"from_to": "FROM",
"name": "鈴木 太郎",
"company_name": null,
"analysis": {
"f0": 116.8819,
"speechrate": 8.8416,
"variance": 22.803,
"filler_count": 2,
"positive_score": 0,
"negative_score": 0
}
},
{
"id": "0184f502-8b66-1a28-3896-550ac23b8e34",
"from_to": "TO",
"name": null,
"company_name": null,
"analysis": {
"f0": 234.0116,
"speechrate": 6.3676,
"variance": null,
"filler_count": 5,
"positive_score": 0,
"negative_score": 0
}
}
],
"tags": [
{
"created_by": "鈴木 太郎",
"creator_type": "TENANT_USER",
"value": "大項目①"
},
{
"created_by": "鈴木 太郎",
"creator_type": "TENANT_USER",
"value": "詳細項目①"
}
],
"comments": [
{
"created_at": "2022-12-09T04:45:13.732021+00:00",
"created_by": "鈴木 太郎",
"value": "コメント"
}
],
"keywords": [
{
"starts_at": 2,
"participant_id": "0184f502-8b66-1a28-3896-550ac23b8e34",
"value": "みーてる"
},
{
"starts_at": 2,
"participant_id": "0184f502-8b66-1a28-3896-550ac23b8e34",
"value": "でんわ"
}
],
"phrases": [
{
"participant_id": "0184f502-8b66-1a28-3896-550ac23b8e34",
"raw": [
{
"order": 1,
"phrase": "お世話になります。IP電話ミーテルの鈴木と申します。",
"phrase_nofiller": "お世話になります。IP電話ミーテルの鈴木と申します。",
"start_at": 2.16,
"end_at": 5.345,
"filler_num": 0
},
{
"order": 3,
"phrase": "恐れ入ります、高橋様お手すきでいらっしゃいますか。",
"phrase_nofiller": "恐れ入ります、高橋様お手すきでいらっしゃいますか。",
"start_at": 6.835,
"end_at": 9.425,
"filler_num": 0
},
{
"order": 4,
"phrase": "あっそうだったんですね。わかりました。また来週改めさしていただきます。",
"phrase_nofiller": "そうだったんですね。わかりました。また来週改めさしていただきます。",
"start_at": 13.39,
"end_at": 17.935,
"filler_num": 1
},
{
"order": 6,
"phrase": "はい、よろしくお願いいたしますー。",
"phrase_nofiller": "よろしくお願いいたしますー。",
"start_at": 18.85,
"end_at": 20.745,
"filler_num": 1
}
],
"summary": [
{
"order": 1,
"phrase": "お世話になります。IP電話ミーテルの鈴木と申します。",
"phrase_nofiller": "お世話になります。IP電話ミーテルの鈴木と申します。",
"start_at": 2.16,
"end_at": 5.345,
"filler_num": null
},
{
"order": 3,
"phrase": "恐れ入ります、高橋様お手すきでいらっしゃいますか。",
"phrase_nofiller": "恐れ入ります、高橋様お手すきでいらっしゃいますか。",
"start_at": 6.835,
"end_at": 9.425,
"filler_num": null
},
{
"order": 4,
"phrase": "あっそうだったんですね。わかりました。また来週改めさしていただきます。",
"phrase_nofiller": "そうだったんですね。わかりました。また来週改めさしていただきます。",
"start_at": 13.39,
"end_at": 17.935,
"filler_num": null
}
]
},
{
"participant_id": "0184f502-8b66-4ab1-10d3-34c0049a9100",
"raw": [
{
"order": 0,
"phrase": "はい。結構ですー。",
"phrase_nofiller": "結構ですー。",
"start_at": 0.545,
"end_at": 2.025,
"filler_num": 1
},
{
"order": 2,
"phrase": "はい。お世話になります。",
"phrase_nofiller": "お世話になります。",
"start_at": 5.555,
"end_at": 7.05,
"filler_num": 1
},
{
"order": 5,
"phrase": "あっ、はい。お願いしまーす。",
"phrase_nofiller": "お願いしす。",
"start_at": 17.07,
"end_at": 19.03,
"filler_num": 3
}
],
"summary": [
{
"order": 0,
"phrase": "はい。結構ですー。",
"phrase_nofiller": "結構ですー。",
"start_at": 0.545,
"end_at": 2.025,
"filler_num": null
},
{
"order": 2,
"phrase": "はい。お世話になります。",
"phrase_nofiller": "お世話になります。",
"start_at": 5.555,
"end_at": 7.05,
"filler_num": null
},
{
"order": 5,
"phrase": "あっ、はい。お願いしまーす。",
"phrase_nofiller": "お願いしす。",
"start_at": 17.07,
"end_at": 19.03,
"filler_num": null
}
]
}
],
"speech_recognition": {
"raw": "0:00 (ユーザー) 結構ですー。\n0:02 (取引先) お世話になります。IP電話ミーテルの鈴木と申します。\n0:05 (ユーザー) お世話になります。\n0:06 (取引先) 恐れ入ります、高橋様お手すきでいらっしゃいますか。\n0:13 (取引先) そうだったんですね。わかりました。また来週改めさしていただきます。\n0:17 (ユーザー) お願いしす。\n0:18 (取引先) よろしくお願いいたしますー。",
"summary": "0:00 (ユーザー) 結構ですー。\n0:02 (取引先) お世話になります。IP電話ミーテルの鈴木と申します。\n0:05 (ユーザー) お世話になります。\n0:06 (取引先) 恐れ入ります、高橋様お手すきでいらっしゃいますか。\n0:13 (取引先) そうだったんですね。わかりました。また来週改めさしていただきます。\n0:17 (ユーザー) お願いしす。"
}
}
]
},
"params_key": "z&aH+&Kz8saC"
}

この記事は役に立ちましたか?