メインコンテンツにスキップ

データコネクタのレスポンスマッピングでJSONオブジェクトと配列をサポート

Intercomでレスポンスマッピングに使用できるオブジェクトと配列を確認してください。

対応者:Beth-Ann Sher

データコネクタは現在、JSONおよびXML APIレスポンスの両方からのマッピングをサポートしています。APIがXMLを返す場合、Intercomはマッピング前に自動的にJSONに変換します。以下に記載のすべてのマッピングルールと制限は変換後のJSON構造に適用されます。

マッピング可能なオブジェクトと配列

注意: カスタムオブジェクトのDatetime属性に日付データをマッピングするには、ISO 8601形式の文字列(例:2008-01-10T11:00:00-05:00)のみをサポートしています。

シンプルなJSONオブジェクト

ルートのAPIオブジェクトをPeople、Conversation、Customオブジェクトにマッピングできます。すべてのAPI属性にアクセス可能です。

{
"type": "admin",
"id": "493881",
"name": "Hoban Washburne",
"email": "wash@serenity.io",
"away_mode_enabled": false,
"away_mode_reassign": false
}

ネストされたJSONオブジェクト

3つのAPIオブジェクト(root、order、client_details)をPeople、Conversation、Customオブジェクトにマッピングできます。すべてのAPI属性にアクセス可能です。

{
"order": {
"id": 450789469,
"admin_graphql_api_id": "gid://shopify/Order/450789469",
"app_id": null,
"browser_ip": "0.0.0.0",
"buyer_accepts_marketing": false,
"cancel_reason": null,
"cancelled_at": null,
"cart_token": "68778783ad298f1c80c3bafcddeea02f",
"checkout_id": 901414060,
"checkout_token": "bd5a8aa1ecd019dd3520ff791ee3a24c",
"client_details": {
"accept_language": null,
"browser_height": null,
"browser_ip": "0.0.0.0",
"browser_width": null,
"session_hash": null,
"user_agent": null
}
}
}

トップレベルの配列

ルートオブジェクトが配列の場合

ルート配列をCustom Objectタイプにマッピングできます。要素のすべてのAPI属性にアクセス可能です(最初の要素が代表として使用されます)。

[
{
"type": "admin",
"id": "493881",
"name": "Hoban Washburne",
"email": "wash@serenity.io",
"away_mode_enabled": false,
"away_mode_reassign": false
},
{
"type": "admin",
"email": "mal@serenity.io",
"id": "646303",
"name": "Malcolm Reynolds ",
"away_mode_enabled": true,
"away_mode_reassign": false
}
]

ネストされた配列

オブジェクト内にネストされた配列(他の配列ではない)にアクセスしてマッピングできます。これらの配列はカスタムオブジェクトにマッピング可能です。

{
"order": {
"id": 450789469,
"discount_codes": [
{
"code": "TENOFF",
"amount": "10.00",
"type": "fixed_amount"
}
],
"note_attributes": [
{
"name": "custom engraving",
"value": "Happy Birthday"
},
{
"name": "colour",
"value": "green"
}
]
}
}


マッピングできない配列

他の配列内にネストされた配列

他の配列の要素内にネストされた配列にはアクセスできません。これはトップレベル配列のどの要素を選ぶべきか分からないためです。以下の例では、order配列はカスタムオブジェクトにマッピングできますが、discount_codes配列はorders配列内にネストされているためマッピングできません。

{
"orders": [
{
"id": 1,
"discount_codes": [
{
"code": "TENOFF",
"amount": "10.00",
"type": "fixed_amount"
}
],
"note_attributes": [
{
"name": "custom engraving",
"value": "Happy Birthday"
},
{
"name": "colour",
"value": "green"
}
]
},
{
"id": 2,
"discount_codes": [
{
"code": "TENOFF",
"amount": "10.00",
"type": "fixed_amount"
}
],
"note_attributes": [
{
"name": "custom engraving",
"value": "Happy Birthday"
},
{
"name": "colour",
"value": "green"
}
]
}
]
}


リクエストでネストされたオブジェクトを送信する場合

データコネクタは現在、リクエストボディでフラットな(キー/値)パラメータのみを送信可能です。ネストされたオブジェクトや配列のパラメータはサポートしていません。

つまり、サードパーティAPIがリクエストの一部としてネストされたオブジェクトを必要とする場合(例:Shopifyの注文キャンセルおよび返金エンドポイントがbuyer_identityオブジェクトを必要とする場合)、データコネクタ経由でのアクションは正常に完了できません。

リクエストボディでのネストされたオブジェクトおよび配列パラメータのサポートは今後の予定です。利用可能になり次第、この記事を更新します。

こちらの回答で解決しましたか?