Webhook
Webhook は、構成が保存されるたびに POST 要求を受信できるエンドポイントです。
ServiceNow CPQ は、構成の保存時に POST 要求を受信できるエンドポイントである Webhook をサポートしています。Webhook が構成されると、保存構成アクションのたびに呼び出されます。
Webhook を有効にするには、サポートにケースを記録してください。Logik 環境ごとに作成できる Webhook は 1 つだけです。
Webhook のユースケース
Webhook を使用して、 ServiceNow CPQ から他のダウンストリームシステムにデータを統合できます。ユースケースには次のようなものがあります。
- 直接 URL を介した ServiceNow CPQ ネイティブ UI の表示 Webhook を介して構成結果をサードパーティの宛先に送信します。
- 構成データを見積もりシステムまたは注文管理システムに直接送信します。
- データを操作して下流のシステムに渡すことができるミドルウェアに構成結果をプッシュします。
Webhook セットアップ
- Webhook を有効にすると、Webhook は [ ServiceNow CPQ アドミン] 画面の [ユーティリティ] メニューの [Webhook] にあります。
- 概要:Webhook の構成は外部接続と似ており、[名前]、[説明]、および [統合タイプ] をすべて定義できます。
- 認証:Webhook は、認証なし (None) とベアラートークン認証 (ベアラートークン) の両方をサポートしています
- Webhook の詳細:Webhook のその他の詳細を指定して、動作を制御することもできます
Webhook 詳細
- URL:構成の保存時に Logik からデータを受信するエンドポイントを指定します。HTTP POST 要求を受信できる必要があります。
- 非同期:有効にすると、エンドユーザーは構成が完了するとすぐにリダイレクトされ、終了する前にサーバーからの応答を待たなくなります。これにより、保存プロセスが「非同期」になります。
無効にすると、ユーザーをリダイレクトする前に Webhook プロセスが解決されます。つまり、保存プロセスは「同期」になります。
- コンテンツ:Logik がエンドポイントに送信するデータを決定します。
- 「構成データ」:アドミンが作成したすべての構成フィールドとその入力値
- 「BOM フィールドとシステムフィールド」:すべてのシステム構成フィールドとその値。部品表 (すぐ下の BOM タイプ入力で指定)
- BOM タイプ:要求で送信する BOM タイプを指定します
- タイムアウト:タイムアウト値 (ミリ秒単位)。
- 追加ヘッダー:要求とともに送信する必要がある追加のヘッダーは、引用符で囲まれたキーと値のペアの形式でここで設定できます。例:"X-header1": "value1"
Webhook 本文の例
Webhook が外部リソースに送信する本文は、ハンドラーを作成する際に参照するために、次のようになります。この例では、環境の製品ピッカーとビルトインシステムフィールドについて説明します。
{
"uuid": "8014a955-49c4-4d63-a15a-8c91cef6f6f4",
"fields": [
{
"userEdited": false,
"dataType": "array",
"visibilityState": "visible",
"editable": "true",
"variableName": "pp",
"uniqueName": "pp",
"value": ["alpha"],
"optionSet": {
"selectedOptions": [
{
"label": "alpha",
"state": "visible",
"value": "alpha",
"imageUrl": null,
"orderNumber": 10
}
],
"options": [
{
"label": "alpha",
"state": "visible",
"value": "alpha",
"imageUrl": null,
"orderNumber": 10
},
{
"label": "beta",
"state": "visible",
"value": "beta",
"imageUrl": null,
"orderNumber": null
}
]
},
"rows": {
"content": [
{
"index": 0,
"fields": [
{
"userEdited": false,
"dataType": "text",
"visibilityState": "visible",
"editable": "false",
"variableName": "pp.value",
"uniqueName": "pp-0-pp.value",
"value": "alpha",
"set": "pp",
"index": 0
},
{
"userEdited": true,
"dataType": "boolean",
"visibilityState": "visible",
"editable": "true",
"variableName": "pp.select",
"uniqueName": "pp-0-pp.select",
"value": true,
"optionSet": {
"options": [
{
"label": "true",
"state": "visible",
"value": "true",
"imageUrl": null,
"orderNumber": null
},
{
"label": "false",
"state": "visible",
"value": "false",
"imageUrl": null,
"orderNumber": null
}
]
},
"set": "pp",
"index": 0
},
{
"userEdited": false,
"dataType": "number",
"visibilityState": "visible",
"editable": "true",
"variableName": "pp.quantity",
"uniqueName": "pp-0-pp.quantity",
"value": 1,
"set": "pp",
"index": 0
},
{
"userEdited": false,
"dataType": "text",
"visibilityState": "visible",
"editable": "true",
"variableName": "pp.data",
"uniqueName": "pp-0-pp.data",
"value": "",
"set": "pp",
"index": 0
}
],
"label": "alpha",
"state": "visible",
"value": "alpha",
"imageUrl": null,
"orderNumber": 10,
"productDetails": {}
},
{
"index": 1,
"fields": [
{
"userEdited": false,
"dataType": "text",
"visibilityState": "visible",
"editable": "false",
"variableName": "pp.value",
"uniqueName": "pp-1-pp.value",
"value": "beta",
"set": "pp",
"index": 1
},
{
"userEdited": false,
"dataType": "boolean",
"visibilityState": "visible",
"editable": "true",
"variableName": "pp.select",
"uniqueName": "pp-1-pp.select",
"value": false,
"optionSet": {
"options": [
{
"label": "true",
"state": "visible",
"value": "true",
"imageUrl": null,
"orderNumber": null
},
{
"label": "false",
"state": "visible",
"value": "false",
"imageUrl": null,
"orderNumber": null
}
]
},
"set": "pp",
"index": 1
},
{
"userEdited": false,
"dataType": "number",
"visibilityState": "visible",
"editable": "true",
"variableName": "pp.quantity",
"uniqueName": "pp-1-pp.quantity",
"value": 0,
"set": "pp",
"index": 1
},
{
"userEdited": false,
"dataType": "text",
"visibilityState": "visible",
"editable": "true",
"variableName": "pp.data",
"uniqueName": "pp-1-pp.data",
"value": "",
"set": "pp",
"index": 1
}
],
"label": "beta",
"state": "visible",
"value": "beta",
"imageUrl": null,
"orderNumber": null,
"productDetails": {}
}
],
"pageable": "INSTANCE",
"last": true,
"totalPages": 1,
"totalElements": 2,
"size": 2,
"number": 0,
"sort": { "empty": true, "sorted": false, "unsorted": true },
"numberOfElements": 2,
"first": true,
"empty": false
}
},
{
"userEdited": false,
"dataType": "text",
"visibilityState": "visible",
"editable": "true",
"variableName": "sys.productCode",
"uniqueName": "sys.productCode",
"value": "CC-LGK"
},
{
"userEdited": false,
"dataType": "text",
"visibilityState": "visible",
"editable": "true",
"variableName": "partner.quote.pricebookId",
"uniqueName": "partner.quote.pricebookId",
"value": ""
},
{
"userEdited": false,
"dataType": "text",
"visibilityState": "visible",
"editable": "true",
"variableName": "partner.quote.currencyIsoCode",
"uniqueName": "partner.quote.currencyIsoCode",
"value": "USD"
},
{
"userEdited": false,
"dataType": "text",
"visibilityState": "visible",
"editable": "true",
"variableName": "sys.productFamily",
"uniqueName": "sys.productFamily",
"value": ""
},
{
"userEdited": false,
"dataType": "text",
"visibilityState": "visible",
"editable": "true",
"variableName": "sys.productDescription",
"uniqueName": "sys.productDescription",
"value": ""
},
{
"userEdited": false,
"dataType": "text",
"visibilityState": "visible",
"editable": "true",
"variableName": "partner.quote.id",
"uniqueName": "partner.quote.id",
"value": ""
},
{
"userEdited": false,
"dataType": "text",
"visibilityState": "visible",
"editable": "true",
"variableName": "sys.productUOM",
"uniqueName": "sys.productUOM",
"value": ""
},
{
"userEdited": false,
"dataType": "number",
"visibilityState": "visible",
"editable": "true",
"variableName": "sys.productPrice",
"uniqueName": "sys.productPrice",
"value": 0
},
{
"userEdited": false,
"dataType": "text",
"visibilityState": "visible",
"editable": "true",
"variableName": "sys.productName",
"uniqueName": "sys.productName",
"value": "CheckConfig"
},
{
"userEdited": false,
"dataType": "text",
"visibilityState": "visible",
"editable": "true",
"variableName": "partner.quote.lineId",
"uniqueName": "partner.quote.lineId",
"value": ""
},
{
"userEdited": false,
"dataType": "number",
"visibilityState": "visible",
"editable": "false",
"variableName": "pp.aggregates.quantity_sum",
"uniqueName": "pp.aggregates.quantity_sum",
"value": 1
},
{
"userEdited": false,
"dataType": "text",
"visibilityState": "visible",
"editable": "true",
"variableName": "sys.productId",
"uniqueName": "sys.productId",
"value": "CC-LGK"
},
{
"userEdited": false,
"dataType": "text",
"visibilityState": "visible",
"editable": "true",
"variableName": "sys.actionContext",
"uniqueName": "sys.actionContext",
"value": ""
},
{
"userEdited": false,
"dataType": "text",
"visibilityState": "visible",
"editable": "true",
"variableName": "sys.currentDate",
"uniqueName": "sys.currentDate",
"value": "2023-08-04"
}
],
"products": [
{
"id": "alpha",
"quantity": 1,
"bomType": "SALES",
"type": "accessory",
"extended": { "data": "" },
"pricing": {
"productSellingModelId": "OneTime_OneTime_2023_07_05",
"endDate": null,
"startDate": null,
"ProductId": "01tHr000007i4B5IAI",
"StartingUnitPriceSource": "System",
"ListPrice": 99.99,
"TotalLineAmount": 99.99,
"ListPriceTotal": 99.99,
"StartingPriceTotal": 99.99,
"Quantity": 1.0,
"PricingTermCount": 1,
"NetUnitPrice": 99.99,
"StartingUnitPrice": 99.99,
"PricebookEntryId": "01uHr00000FYKDUIA5",
"TotalAdjustmentDistAmount": 0,
"TotalAdjustmentAmount": 0,
"TotalPrice": 99.99,
"SalesItemType": "Product"
},
"name": "alpha",
"partnerId": "01tHr000007i4B5IAI",
"productCode": "alpha",
"externalId": "",
"productFamily": "",
"description": "",
"uom": "",
"price": 99.99,
"extPrice": 99.99,
"level": 0,
"rollUpPrice": 99.99
}
],
"total": 99.99
}