Webhook外部URL呼び出し

Webhook外部URL呼び出しとは、ObotAIへ質問があった際に、外部のWebhook URLを呼び出す仕組みです。

Webhookのサーバー側で回答文を生成したい場合や、質問内容を外部データベースに記録したい場合などに使用します。

  • Endpoint: Webhook URL(インターネット経由で接続可能なエンドポイントをご用意ください)

  • Method: POST

  • ContentType: application/json

リクエスト

リクエストデータ(JSON)

リクエスト内容の例です。

{
    "responseId": "...",
    "queryResult": {
        "queryText": "質問内容",
        "parameters": {},
        "intent": {
            "name": "projects/[project_id]/agent/intents/[intent_id]",
            "displayName": "インテント名"
        },
        "languageCode": "言語"
    },
    "originalDetectIntentRequest": {
        "payload": {}
    },
    "session": "..."
}

レスポンス

回答文をWebhookで生成する場合、レスポンスはContentTypeを application/json とし、JSONの内容を返却してください。

レスポンスデータ(Data)

TEXT

{
    "fulfillmentMessages":[{
        "text": {
			"text": ["text"]
		},
		"platform": "プラットフォーム"
    }]
}

Card

{  
    "fulfillmentMessages":[{
        "image_url":"image url",
        "type":"card",
        "buttons":[
          {
              "text":"text",
              "postback":"postback"
          }, ...
        ],
        "subtitle":"subtitle",
        "title":"title",
        "platform": "プラットフォーム"
    }]
}

Quick Replies

{  
    "fulfillmentMessages":[{
        "replies":[  
          "reply message",
          "reply message"
          ...
        ],
        "title":"quick_replies",
        "type":"quick_replies"
        "platform": "プラットフォーム"
    }]
}

Image

{  
    "fulfillmentMessages":[{
        "image_url":"image url",
        "type":"image"
        "platform": "プラットフォーム"
    }]
}

Payload

{
    "fulfillmentMessages":[{
        "payload":{
            "各プラットフォーム名": {※1}
        },
        "platform": "プラットフォーム"
    }]
}
※1 プラットフォーム毎のpayload形式.

Webhookログ管理

Webhookの利用状況をまとめています。

上部メニュー ウェブフック ログ管理 より確認ができます。

ログ検索

日付とSessionIDでデータの絞り込みができます。

日付

日付欄にオンマウスでカレンダーが表示されます。開始日・終了日の順にクリックすると日付の範囲を指定できます。

リセットする場合はページを更新してください。

SessionID

部分検索が可能です。

ログ項目

  • 日付:日本時間(YYYY-MM-DD hh:mm:ss)

  • アクション

  • アクションパラメータ

  • ステータス:ステータスコード

  • Jsonデータ

  • Session ID

JSONデータ

リクエストとレスポンスの内容をJSON形式で確認できます。

プラットフォーム毎のpayload形式については上記(※1プラットフォーム毎のpayload形式.)参照

{
    "request": {
        "responseId": "",
        "queryResult": {},
        "originalDetectIntentRequest": {
            "payload":{
                "session_id": "",
                "platform": "どのプラットフォームからのリクエストか"
            }
        },
        "session": "",
        "webhookParameter": {
            ※アクションによってパラメータの項目は異なります
        },
        "action": "Webhookアクション名"
    },
    "response": {
        "fulfillmentMessages": [
            プラットフォーム毎のpayload形式
            {
                "payload": {
                    "各プラットフォーム名": {
                            response内容
                        }
                    },
                    "action_type": "Webhookアクション名"
                },
                "platform": "プラットフォーム"
            }
        ],
        "outputContexts": [
            {
                "name": "",
                "parameters": {}
            }
        ]
    }
}

Webhookシナリオ連携

webhookを利用して、シナリオで得たデータをエクセルシートに保存することができます。 (詳しい設定方法はCMSマニュアルver4 '46.3.シナリオとwebhook連携' をご参照下さい。)

収集したデータにキーワードを対応させることで、データに名前をつけることができます(Alias Name)。 この名前はエクセル化した際にカラム名として使用されます。

このAlias Nameの一覧はシナリオエディタで確認できます。

上部メニュー シナリオ 対象シナリオ 内のAliasボタンをクリックすると一覧が表示されます。