JSONイベント
このページの内容
Qtip:JSONイベントは、クアルトリクスAPIへのアクセスを購入したユーザーのみが利用できます。この機能にご興味のある方は、営業担当またはアカウントサービスにご相談ください。
JSONイベントについて
ウェブサイトで行ったリクエストをクアルトリクスでチケットのトリガーにしたいと思ったことはありませんか?クアルトリクスと社内システムのシームレスな統合を実現したいと思ったことはありませんか?ワークフロータブでタスクをトリガーしたいが、クアルトリクスの外部で発生したイベントをトリガーしたいと思ったことはありませんか?
JSONイベントにより、外部ソフトウェアがHTTPリクエスト経由でワークフローを開始することができます。クアルトリクスでイベントが発生し、プラットフォームでさらなるアクションがトリガーされるのを待つ代わりに、JSONイベントを設定するだけで、サードパーティーからのリクエストを受け取ることができます。
Qtip:この機能を利用するには、事前にAPIトークンを生成する必要があります。すでにAPIトークンをお持ちの場合は、新たに生成する必要はありません。
注意: JSONイベントを設定するには、高度なプログラミング知識が必要です。私たちのサポートチームは、イベントに情報を入れる基本的なことについては喜んでお手伝いいたしますが、プログラミングの面についてはサポートいたしかねます。ただし、コミュニティの経験豊かなユーザーに尋ねてみることは可能です(英語)。
制約
JSONイベントは、以下のセットアップやコンフィギュレーションとは互換性がありません:
- HTTP以外のもの(メッセージキュー、SMSなど)。
- アウトバウンドHTTPコール。
- XMLを処理する(XMLリクエストボディは無視される)。
- JSON以外を処理する。
- X-API-トークン・ヘッダ、またはHTTPベーシック認証以外の方法で自分らしくいられることを認証してください。 Qtip:OAuthやその他の認証機能はJSONイベントと互換性がありません。
- JSONボディのJSONPathクエリを使用しても満たされないJSONパース。
- 1分あたり3,000のAPIレート制限を超える通話。
- 100KBを超えるペイロード。
- 10個の手動入力フィールド。 Qtip:イベント・キャプチャで情報が取り込まれると、それはJSONボディに追加される。イベントキャプチャは、10以上のフィールドを追加する唯一の方法です。
対応する認証の種類
トークン・ベース認証/ヘッダー認証
リクエストのヘッダーにX-API-TOKENとしてAPIトークンを渡すことで、自分らしくいられることを認証することができます。
例: 以下のPOSTの例では、cURLでBase URL、Content-Type、Tokenをヘッダーで指定している。アンケートの ID とエクスポートのフォーマットは body
.curl -X POST -H 'X-API-TOKEN: yourapitokenhere' -H 'Content-Type: application/json' -d '{
”
surveyId":"SV_012345678912345",
"format":"csv"
}' 'https://yourdatacenterid.qualtrics.com/API/v3/responseexports'.
HTTPベーシック認証
Basic Authは通常、username:passwordをBase64エンコードしたものです。ただし、クアルトリクスではセキュリティ向上のため、username:x-Api-tokenをBase64エンコードした文字列を使用しています。
Basic Authを使用するには、HTTPリクエストにヘッダーを設定する必要があります。特定のヘッダーはAuthorizationである。
例: クアルトリクスのユーザー名がdemo@qualtrics.com、APIトークンがf8gIK7G6GFH985Y4だとします。まず、こう書くだろう、
demo@qualtrics.com:f8gIK7G6GFH985Y4そして、Base64エンコード後は次のように表示される、
ベーシック ZGVtb0BxdWFsdHJpY3MuY29tOmY4Z0lLN0c2R0ZIOTg1WTQ=したがって、HTTPリクエストに追加するAuthorizationヘッダーの値は、Basic ZGVtb0BxdWFsdHJpY3MuY29tOmY4Z0lLN0c2R0ZIOTg1WTQ=となる。
qtip:base64エンコードとbase64デコードのためのツールをチェックしてください。
JSONイベントの設定
Qtip:パラメータとJSONフィールドを変更するには、JSONイベントをクリックしてください。
注意: JSONイベントは、イベントを作成したのと同じアカウントからのみ、API経由で発生させることができます。異なるアカウントを使用してJSONイベントのAPIを起動した場合でも、202-success APIレスポンスが返される場合がありますが、これは有効なリクエストに有効なApIトークンが使用されたことを意味し、必ずしも正しいAPIトークンが使用されたこと、またはJSONイベントが正しくトリガーされたことを意味するものではありません。202-success APIメッセージを受け取った場合、正しいAPIが使用されたことを確認するためにプラットフォームをチェックしたい。
イベントの捕捉
外部APIイベントを作成する際、post bodyからデータを解析する必要があるかもしれません。しかし、このデータを解析するのは時として難しい。外部APIが何を送信しているかを知りたい場合は、以下の手順に従ってください。
JSONPathの構文
以下の表は、JSONPath構文の基本を示したものである。これらはクアルトリクスによって確立されたものではなく、JSONで使用される標準であることに注意してください。
注意: JSONイベントを設定するには、高度なプログラミング知識が必要です。私たちのサポートチームは、イベントに情報を入れる基本的なことについては喜んでお手伝いいたしますが、プログラミングの面についてはサポートいたしかねます。その代わりに、私たちの熱心なユーザー・コミュニティに尋ねてみることもできます。
| JSONPath | 説明 | 例 |
|---|---|---|
| $ | ルート・オブジェクト/要素 | $.stores[0].name |
| @ | 現在のオブジェクト/要素 | .stores[?(@.name====”ACMEストア”)]. |
| を選択します。 | 子オペレーター | イベント説明 |
| .. | 再帰的子孫演算子 | $.stores[0].価格 |
| * | ワイルドカード | $.stores[*].name |
| [] | 添え字演算子 | $.stores[0].name |
| [,] | ユニオン・オペレーター | $.stores[0,1] |
| [開始:終了:ステップ] | 配列スライス演算子 | $.stores[0:10:2]である。 |
| ?() | フィルター適用 | .stores[?(@.name==”ACMEストア”)]. |
| () | スクリプト表現 | .stores[(@.length-1)]。 |
JSONPath構文の例
この例では、JSONオブジェクトが与えられた場合、JSONPathテーブルをどのように使用できるかを示します。
これがJSONオブジェクトだ:
{
"eventDescription":"Monthly Revenue",
"stores":[
{
"name":"Acme Store",
"total": 1000000,
"topItem":
{ "price":「50", "description":"Anvil" }
},
{
"name":"The Banana Stand",
"total": 250000,
"topItem":
{ "price":"4", "description":"The Gob" }
},
{
"name":"Pizza Planet",
"total": 80000,
"topItem":
{ "price":「15", "description":"Pepperoni" }
}
]
}.
ここで、JSONPathテーブルで見た戻り値を追加して、より明確にしよう。
$ -> Acme Store
@ -> [
{
"name":"Acme Store",
"total": 1000000,
"topItem":
{ "price":「50", "description":"Anvil" }
}
]
. -> 月収
. -> 50
-> ["Acme Store", "The Banana Stand", "Pizza Planet"]
[] -> Acme Store
[,] -> [
Unknown macro: { "name"}
,
Unknown macro: { "name"}
]
**[start:end:step]のExampleを「$.stores[1:3:1]"
[start:end:step] -> [
{
"name":"The Banana Stand",
"total": 250000,
"topItem":
{ "price":"4", "description":"The Gob" }
},
{
"name":"Pizza Planet",
"total": 80000,
"topItem":
{ "price":「15", "description":"Pepperoni" }
}
]
?() -> [{
"name":"Acme Store",
"total": 1000000,
"topItem":
{ "price":「50", "description":"Anvil" }
}]
() -> [
{
"name":"Pizza Planet",
"total": 80000,
"topItem":
{ "price":「15", "description":"Pepperoni" }
}
]. Node JavascriptでのAPI例
以下の例は、イベントデータをフォーマットする際に従うことができる基本的なテンプレートです。
注意: JSONイベントを設定するには、高度なプログラミング知識が必要です。私たちのサポートチームは、イベントに情報を入れる基本的なことについては喜んでお手伝いいたしますが、プログラミングの面についてはサポートいたしかねます。その代わりに、私たちの熱心なユーザー・コミュニティに尋ねてみることもできます。
var request = require('request-promise');
var surveyId = "SV_XXXXXXXXXX";
var triggerId = "OC_XXXXXXXXX";
var brandId = "YOUR_BRAND_ID";
var userId = "UR_XXXXXXXXXXXX";
var datacenter = "xx1";
var apiToken = "YOUR_QUALTRICS_API_TOKEN";
var url = "https://" + datacenter + ".qualtrics.com/inbound-event/v1/event/JSON/triggers" +
"?contextId=" + surveyId + "&userId=" + userId + "&brandId=" + brandId + "&triggerId=" + triggerId;
var payload = {
"text":"This is some text",
"object":{
"number":4
},
"array":["a", "b", "c", "d"]
};
var options = {
url: url,
json: true,
body: payload,
headers:{
"Content-Type":"application/json", // 必須!!!!
"X-API-TOKEN": apiToken
}
};
request.post(options).then(function (ret) {
console.log("success:", url, payload);
}).catch(function (err) {
console.log("error: ", url);
}); 例Freshdeskとの統合
Qtip:これはFreshdeskタスクとは別のものです。
JSONイベントは、Dispatch’rのWebhookルールとしてFreshdeskと統合するために使用できます。つまり、Freshdeskのイベントは、チケットの作成やアンケートの配信など、クアルトリクスでのタスクをトリガーすることができます。
Qtip:クアルトリクスサポートでは、JSONイベントを設定し、Freshdeskを通じて接続するお手伝いをいたします。しかし、Freshdeskの機能に関する質問で答えられないものもあるかもしれません。Freshdesk側について質問がある場合は、Dispatch’r Rulesに関するドキュメントをチェックしてみてください。
Qtip:Freshdesk のWebhooks については、サポートサイトのリンク先のドキュメントを参照してください。
例ServiceNowとの統合
Qtip:これはServiceNowタスクとは別のものです。
JSONイベントは、ServiceNowと統合するために使用することができます。つまり、ServiceNowのイベントは、チケットの作成やアンケートの配信など、クアルトリクスでのタスクをトリガーすることができます。
Qtip:クアルトリクスサポートでは、JSONイベントのセットアップとServiceNow経由での接続をサポートします。しかし、ServiceNowの機能に関する質問には答えられないこともあるでしょう。ServiceNow開発者インスタンスへのログインおよびアクティベーション方法についてご質問がある場合は、個人開発者インスタンスに関するドキュメントをご覧ください。
例Microsoft FlowによるMicrosoft Dynamicsとの統合
Qtip:これはMicrosoft Dynamicsタスクとは別のものです。
JSONイベントを利用することで、Microsoft Dynamicsのイベントをトリガーとして、チケットの作成やアンケートの配信など、クアルトリクスのタスクを実行することができます。例えば、マイクロソフトのアカウントレコードを削除するたびに、クアルトリクスアンケートをアカウント所有者に配信し、退職に関する質問をすることができます。(例:お名残惜しいです!私たちとの時間はいかがでしたか?
JSONイベントをMicrosoft Dynamicsで発生するアクションと統合するには、DynamicsではなくMicrosoft Flow内でセットアップを行う必要があります。Microsoft FlowはMicrosoft Dynamicsアカウントに無料で付属していますので、Dynamicsの情報を使ってFlowにログインできます。
Qtip:クアルトリクスサポートでは、JSONイベントの設定やMicrosoft Flow、Microsoft Dynamicsとの接続をサポートいたします。しかし、マイクロソフトの機能に関する質問には答えられないこともあるだろう。マイクロソフト側について質問がある場合は、FlowのドキュメントやDynamicsのリソースをチェックしてみてください。
qtip:Microsoft Flowは、JSON Bodyにより多くの情報をクアルトリクスに送信できるため、これらの手順にはMicrosoft Flowを使用することを推奨します。FlowではなくMicrosoft Dynamics内で設定した場合、Dynamicsイベント中に変更されたフィールドのみがクアルトリクスに送信されます。たとえば、レコードの更新に基づいてトリガーを選択し、「メール」フィールドだけが変更された場合、本文でそれらのフィールドを特に要求しても、「名前」と「住所」はクアルトリクスに送信されません。Flowは、トリガーイベントでそのフィールドが変更されたかどうかに関係なく、要求されたすべてをクアルトリクスに送信します。
例Genesys PureCloudとの統合
Qtip:このインテグレーションをセットアップするには、Genesys Cloud ArchitectとGenesys Web Service Data Actionsにアクセスする必要があります。
JSONイベントを使用して、Genesys PureCloudと統合し、電話やチャットでのサポート対応完了後に顧客にフォローアップ調査を送信できます。
FAQs
JSONイベントによって、_と連携することはできますか?
JSONイベントによって、_と連携することはできますか?
- アウトバウンドのHTTP POSTコールを行うように設定可能(例:Webhooks、カスタムアプリケーション)
- ヘッダートークンを渡すことで認証が可能
- Content-Type ヘッダを "application/json" に設定し、リクエストボディを有効な JSON としてフォーマットする(Event Data ではオプション)。
JSONイベント(op_start)に対して、スロットルされる前に、1分間にいくつのイベントを作ることができますか?
JSONイベント(op_start)に対して、スロットルされる前に、1分間にいくつのイベントを作ることができますか?
JSONイベントのワークフローが失敗した場合、どのようにすれば分かりますか?
JSONイベントのワークフローが失敗した場合、どのようにすれば分かりますか?
ワークフローとは何ですか?/ アクションはどこですか?
ワークフローとは何ですか?/ アクションはどこですか?
今回のアップデートでは、ワークフロー機能に変更はありません。
素晴らしい! フィードバックありがとうございます!
フィードバックありがとうございます!