レコードの削除作業指示 work-order-endpoint
Data Hygiene APIの/workorder エンドポイントを使用して、Adobe Experience Platformでレコードの削除作業指示を作成、表示、管理します。 作業指示により、データセットをまたいでデータ削除を制御、監視、追跡することができ、データ品質の維持と組織のデータガバナンス基準のサポートに役立ちます。
はじめに
開始する前に、概要を参照して、必要なヘッダー、サンプル API呼び出しの読み取り方法、関連ドキュメントの検索場所について確認してください。
クォータと処理タイムライン quotas
レコードの削除作業指示は、組織のライセンス使用権限によって決定される、毎日および毎月のID送信制限の対象となります。 これらの制限は、UI ベースのレコード削除要求とAPI ベースのレコード削除要求の両方に適用されます。
製品別の月次提出資格 quota-limits
次の表に、製品および使用権限レベル別の識別子の送信制限を示します。 各製品の月間上限は、2つの値のうち小さい方の値です。つまり、固定識別子の上限と、ライセンス済みデータ量に関連付けられたパーセントベースのしきい値です。 実際には、多くの企業では、実際の到達可能なオーディエンスやAdobe Customer Journey Analytics行の使用権限に基づいて、月間制限が低くなっています。
- 割り当ては、各暦月の初日にリセットされます。 未使用の割り当て量は、notが引き継ぎます。
- 割り当て量の使用状況は、送信済みIDに対する組織のライセンス済み月間使用権限に基づいています。 クォータはシステムのガードレールによって適用されませんが、監視およびレビューされる場合があります。
- レコードの削除作業指示の処理能力は 共有サービス です。 毎月の上限は、Real-Time CDP、Adobe Journey Optimizer、Customer Journey Analytics、および該当するShield アドオンで最も高い使用権限を反映します。
識別子の送信に関する処理タイムライン sla-processing-timelines
レコードの削除リクエストは、エンタイトルメント層に基づいて処理され、標準のお客様とShieldのお客様に対して異なるSLAのコミットメントが適用されます。 処理段階とタイムラインの詳細については、 データライフサイクル処理タイムライン を参照してください。
リスト レコードの削除作業指示 list
ページ分割されたレコードのリストを取得し、組織内のデータハイジーン操作の作業指示を削除します。 クエリパラメーターを使用して結果をフィルタリングします。 各作業指示レコードには、アクションタイプ(identity-deleteなど)、ステータス、関連するデータセットとユーザーの詳細、監査メタデータが含まれます。
API 形式
GET /workorder
次の表に、レコードの削除作業指示のリストに使用できるクエリパラメータを示します。
searchtypeidentity-delete)。status列挙:
received、validated、submitted、ingested、completed、failedauthordisplayNamedescriptionworkorderIdsandboxName*を使用してすべてのサンドボックスを含めます。fromDatetoDateを設定する必要があります。toDatefromDateを設定する必要があります。filterDatepagelimitorderBy+または-接頭辞を使用します。 例:orderBy=-datasetName。propertiesリクエスト
次のリクエストは、完成したすべてのレコード削除作業指示を取得します。1 ページにつき2件に制限されます。
curl -X GET \
"https://platform.adobe.io/data/core/hygiene/workorder?status=completed&limit=2" \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
応答
応答が成功すると、ページ分割されたレコード削除作業指示のリストが返されます。
{
"results": [
{
"workorderId": "DI-1729d091-b08b-47f4-923f-6a4af52c93ac",
"orgId": "9C1F2AC143214567890ABCDE@AcmeOrg",
"bundleId": "BN-4cfabf02-c22a-45ef-b21f-bd8c3d631f41",
"action": "identity-delete",
"createdAt": "2034-03-15T11:02:10.935Z",
"updatedAt": "2034-03-15T11:10:10.938Z",
"operationCount": 3,
"targetServices": [
"profile",
"datalake",
"identity",
"ajo"
],
"status": "received",
"createdBy": "a.stark@acme.com <a.stark@acme.com> BD8C3D631F41@acme.com",
"datasetId": "a7b7c8f3a1b8457eaa5321ab",
"datasetName": "Acme_Customer_Exports",
"displayName": "Customer Identity Delete Request",
"description": "Scheduled identity deletion for compliance"
}
],
"total": 1,
"count": 1,
"_links": {
"next": {
"href": "https://platform.adobe.io/workorder?page=1&limit=2",
"templated": false
},
"page": {
"href": "https://platform.adobe.io/workorder?limit={limit}&page={page}",
"templated": true
}
}
}
次の表に、応答のプロパティを示します。
resultsworkorderIdorgIdbundleIdactioncreatedAtupdatedAtoperationCounttargetServices["datalake", "identity", "profile", "ajo"])です。 Customer Journey Analyticsのみの組織の場合(Real-Time Customer Profileの使用権限がない場合)、有効な値は[“datalake”]のみです。statusreceived、validated、submitted、ingested、completedおよびfailedです。createdBydatasetIdALL。 リクエストがプロファイルのみのモードを使用した場合、この値はALLです。datasetNamedisplayNamedescriptiontotalcount_linksnexthref (文字列)とtemplated (ブール値)を持つオブジェクト。pagehref (文字列)とtemplated (ブール値)を持つオブジェクト。レコード削除作業指示の作成 create
1つのデータセット、複数のデータセット、またはすべてのデータセットから1つ以上のIDに関連付けられたレコードを削除するには、/workorder エンドポイントにPOST リクエストを行います。
作業指示は非同期的に処理され、送信後に作業指示リストに表示されます。 2026年3月のExperience Platform リリースでは、すべてのユーザーがマルチデータセットおよびプロファイルのみの(ターゲットサービス)オプションを使用できます。
API 形式
POST /workorder
- データセットスキーマは、プライマリ IDまたはID マップを定義する必要があります。 関連するXDM スキーマがプライマリ IDまたはID マップを定義するデータセットからのみ、レコードを削除できます。
- セカンダリIDはスキャンされません。 データセットに複数のID フィールドが含まれる場合、一致にはプライマリ IDのみが使用されます。 プライマリ以外のIDに基づいて、レコードをターゲティングまたは削除することはできません。
- 入力されたプライマリ IDのないレコードはスキップされます。 レコードにプライマリ ID メタデータが入力されていない場合、削除の対象にはなりません。
- ID設定の前に取り込まれたデータは対象外です。 データ取り込み後にプライマリ ID フィールドがスキーマに追加された場合、以前に取り込んだレコードはレコード削除作業指示で削除できません。
ID ペイロード形式(namespacesIdentitiesまたはidentities)
リクエスト本文には、次のうち1つだけを含める必要があります。
namespacesIdentitiesnamespace (例:{ "code": "email" })およびids (ID文字列の配列)を持つオブジェクトの配列。identitiesnamespace (例:{ "code": "email" })と1つのid (文字列)を持つオブジェクトの配列。両方のプロパティ、両方のプロパティを送信するか、含めるプロパティに 空の配列 を指定すると、APIは HTTP 400 (不正なリクエスト) を次のいずれかのメッセージで返します。
- 両方のプロパティが提供されました:
"Identities and NamespacesIdentities are not allowed at the same time" - リストが提供されていないか、空ではありません:
"Identities are Empty for Delete Identity request."
リクエスト
次のリクエストは、特定のデータセットから、指定されたメールアドレスに関連付けられたすべてのレコードを削除します。 推奨されるnamespacesIdentities形式が使用されます。
curl -X POST \
https://platform.adobe.io/data/core/hygiene/workorder \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'Content-Type: application/json' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d '{
"displayName": "Acme Loyalty - Customer Data Deletion",
"description": "Delete all records associated with the specified email addresses from the Acme_Loyalty_2023 dataset.",
"action": "delete_identity",
"datasetId": "7eab61f3e5c34810a49a1ab3",
"namespacesIdentities": [
{
"namespace": {
"code": "email"
},
"ids": [
"alice.smith@acmecorp.com",
"bob.jones@acmecorp.com",
"charlie.brown@acmecorp.com"
]
}
]
}'
次の表に、レコードの削除作業指示を作成するためのプロパティを示します。
displayNamedescriptionactiondelete_identityを使用します。datasetIdALL、単一のデータセット ID、または2つ以上のデータセット IDのコンマ区切りリスト(例:"id1,id2,id3")のいずれかである必要があります。 ALLを特定のIDと組み合わせることはできません。 単一のデータセット要求は以前と同じように動作し、複数のデータセット要求はリストされている各データセットからIDを削除し、ALLはすべてのデータセットをターゲットにします。 データセットには、プライマリ IDまたはID マップが必要です。 ID マップが存在する場合、そのID マップはidentityMapという名前の最上位フィールドとして存在します。注意: データセット行のIDは多くありますが、プライマリとしてマークできるのは1つだけです。
idがプライマリ IDと強制的に一致させるには、"primary": trueを含める必要があります。プロファイルのみの削除に
targetServicesを使用する場合、datasetIdはALLである必要があります。targetServices["datalake", "identity", "profile", "ajo"])の完全なセットをデフォルトで受け取ります。 Customer Journey Analyticsを使用しているが、Real-Time Customer Profileの使用権限を持たない組織は、[ 「datalake」 ]のみを使用できます。 プロファイル関連のデータのみに削除を制限し、データレイクを変更しないままにするには、これを["identity", "profile", "ajo"]に設定します(順序は問いません)。 このプロファイルのみのモードでは、Real-Time CDPまたはAdobe Journey Optimizerの使用権限が必要です。datasetIdはALLである必要があります。identitiesidentitiesまたはnamespacesIdentitiesのいずれかを正確に使用します。 オブジェクトの配列。各オブジェクトはnamespace (例:code、"email")およびid (単一のID文字列)です。 下位互換性を確保し、変換スクリプトによって生成されます。 サービスは、この形式を内部で正規化します。動作は同じです。 上記のID ペイロード形式を参照してください。namespacesIdentitiesidentitiesまたはnamespacesIdentitiesのいずれかを正確に使用します。 オブジェクトの配列。各オブジェクトはnamespace (例:code、"email")およびids (ID文字列の配列)です。 すべてのペイロードに対して推奨。 namespacesIdentities プロパティは、多くのIDが1つの名前空間を共有する場合に、よりコンパクトになります。 上記のID ペイロード形式を参照してください。 ID名前空間:ID名前空間ドキュメント 、ID サービス API。応答
応答が成功すると、新しいレコードの削除作業指示の詳細が返されます。
{
"workorderId": "DI-95c40d52-6229-44e8-881b-fc7f072de63d",
"orgId": "8B1F2AC143214567890ABCDE@AcmeOrg",
"bundleId": "BN-c61bec61-5ce8-498f-a538-fb84b094adc6",
"action": "identity-delete",
"createdAt": "2035-06-02T09:21:00.000Z",
"updatedAt": "2035-06-02T09:21:05.000Z",
"operationCount": 1,
"targetServices": [
"profile",
"datalake",
"identity",
"ajo"
],
"status": "received",
"createdBy": "c.lannister@acme.com <c.lannister@acme.com> 7EAB61F3E5C34810A49A1AB3@acme.com",
"datasetId": "7eab61f3e5c34810a49a1ab3",
"datasetName": "Acme_Loyalty_2023",
"displayName": "Loyalty Identity Delete Request",
"description": "Schedule deletion for Acme loyalty program dataset"
}
次の表に、応答のプロパティを示します。
workorderIdorgIdbundleIdactioncreatedAtupdatedAtoperationCounttargetServicesstatuscreatedBydatasetIdALL に設定されます。 複数のデータセット要求の場合、値はコンマ区切りのリストまたは送信された単一のIDを反映します。datasetNamedisplayNamedescription応答targetServicesの値は、リクエストを反映するか、省略した場合にデフォルトの設定を完全に表示します(上記の応答表を参照)。
マルチデータセットおよびプロファイルのみ(API) multi-dataset-profile-only
次のオプションはAPIでのみ使用でき、データハイジーン UIではサポートされていません。 削除を処理するデータセットとサービスを制御し、複数のデータセット送信とプロファイルのみのターゲットサービスリクエストを可能にします。
次の表に、各オプションのリクエスト本文と動作の変更方法を示します。
datasetIdでコンマ区切りのリストを使用します(例:"id1,id2,id3")。 単一IDまたはALLが変更されていません。ALL時にすべてのデータセットから)削除されます。targetServicesを正確に["identity", "profile", "ajo"] (注文)に追加します。 datasetIdが必要:"ALL"。複数のデータセットのリクエスト
datasetId フィールドはコンマで分割されます。単一のID (以前と同じ動作)、IDのコンマ区切りリスト、またはリテラル ALLを使用します。 1つの作業指示で複数の特定のデータセットからIDを削除するには、コンマ区切りのリストを指定します。
"datasetId": "6707eb36eef4d42ab86d9fbe,6643f00c16ddf51767fcf780"
その後、リストされた各データセットからIDが削除されます。 単一データセットのリクエストは従来どおり機能します。ALLを使用して、すべてのデータセットをターゲットにします。 値は、ALL、単一のデータセット ID、またはコンマで区切られた2つ以上のデータセット IDのいずれかである必要があります(ALLを特定のIDと組み合わせることはできません)。
プロファイルのみ(ターゲットサービス)
データレイクを変更せずにIDおよびプロファイル関連のデータのみを削除するには、targetServicesを正確に3つの値に含めます:identity、profile、およびajo。 ID、プロファイル、AJOは明示的に含まれ、データレイクは除外されます。 このモードでは、datasetIdはALLである必要があります(ユースケースは、データセットごとのフラグメントではなく、プロファイル全体の削除です)。
次の例では、プロファイルのみのレコード削除作業指示を作成します。
curl -X POST \
"https://platform.adobe.io/data/core/hygiene/workorder" \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'x-sandbox-id: {SANDBOX_ID}' \
-d '{
"action": "delete_identity",
"datasetId": "ALL",
"displayName": "Profile-only delete for specified identity",
"description": "Delete identity, profile, and AJO data only; datalake unchanged.",
"targetServices": ["identity", "profile", "ajo"],
"namespacesIdentities": [
{
"namespace": { "code": "email" },
"ids": ["user@example.com"]
}
]
}'
複数のデータセットまたはプロファイルのみのリクエストに対する正常な応答は、他の作業指示の応答と同じ形状に従います。 返されるdatasetIdとtargetServicesは、リクエストの値(targetServicesが省略された場合の完全なデフォルトのリスト)を反映しているので、送信された内容を確認できます。
identity-deleteです。 APIが異なる値(delete_identityなど)を使用するように変更された場合、このドキュメントは適宜更新されます。レコード削除要求のID リストをJSONに変換(#convert-id-lists-to-json-for-record-delete-requests)
識別子がCSV、TSV、またはTXT ファイルにある場合、/workorder エンドポイントに必要なJSON ペイロードを生成するには、変換スクリプトを使用します。 この方法は、既存のデータファイルを操作する場合に特に役立ちます。 すぐに使用できるスクリプトと手順については、csv-to-data-hygiene GitHub リポジトリ を参照してください。
スクリプトは identities 形式(オブジェクトごとにid個でnamespace個)を出力します。 APIはこの形式をそのまま受け入れます。生成されたJSONをPOST本文で/workorderに直接送信できます。変換は行われません。 推奨される形式は namespacesIdentities です。 レコード削除作業指示の作成およびID ペイロード形式を参照してください。
JSON ペイロードの生成
次のbash スクリプトの例は、PythonまたはRubyで変換スクリプトを実行する方法を示しています。
| code language-bash |
|---|
|
| code language-bash |
|---|
|
次の表に、bash スクリプトのパラメーターを示します。
verbosecolumnnamespaceemail)。 生成されたJSONは、各オブジェクトのnamespace.code プロパティでこれを使用します。dataset-idALL。descriptionoutput-dir以下の例は、CSV、TSV、またはTXT ファイルから変換されたJSON ペイロードの成功を示しています。 指定された名前空間に関連付けられたレコードが含まれており、メールアドレスで識別されたレコードを削除するために使用されます。
{
"action": "delete_identity",
"datasetId": "66f4161cc19b0f2aef3edf10",
"displayName": "output/sample-big-001.json",
"description": "a simple sample",
"identities": [
{
"namespace": {
"code": "email"
},
"id": "1"
},
{
"namespace": {
"code": "email"
},
"id": "2"
}
]
}
次の表に、JSON ペイロードのプロパティを示します。
actiondelete_identityに設定されます。datasetIdALL)。displayNamedescriptionidentitiesオブジェクトの配列。各オブジェクトには
が含まれます
namespace: ID名前空間を指定するcodeプロパティを持つオブジェクト (例:「email」)。id:この名前空間に対して削除するID値。
生成されたJSON データを/workorder エンドポイントに送信します
スクリプト出力は、APIがそのまま受け入れるidentities形式を使用します。 curl POST リクエストを/workorder エンドポイントに送信する場合、変換されたJSON ペイロードをリクエスト本文(-d)として使用します。 完全なリクエストオプションと検証ルールについては、 レコード削除作業指示の作成を参照してください。
特定のレコード削除作業指示の詳細の取得 lookup
/workorder/{WORKORDER_ID}にGET リクエストを行うことで、特定のレコード削除作業指示の情報を取得します。 応答には、アクションタイプ、ステータス、関連するデータセットとユーザー情報、監査メタデータが含まれます。
API 形式
GET /workorder/{WORKORDER_ID}
{WORK_ORDER_ID}リクエスト
curl -X GET \
https://platform.adobe.io/data/core/hygiene/workorder/DI-6fa98d52-7bd2-42a5-bf61-fb5c22ec9427 \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
応答
応答が成功すると、指定されたレコード削除作業指示の詳細が返されます。
{
"workorderId": "DI-6fa98d52-7bd2-42a5-bf61-fb5c22ec9427",
"orgId": "3C7F2AC143214567890ABCDE@AcmeOrg",
"bundleId": "BN-dbe3ffad-cb0b-401f-91ae-01c189f8e7b2",
"action": "identity-delete",
"createdAt": "2037-01-21T08:25:45.119Z",
"updatedAt": "2037-01-21T08:30:45.233Z",
"operationCount": 3,
"targetServices": [
"ajo",
"profile",
"datalake",
"identity"
],
"status": "received",
"createdBy": "g.baratheon@acme.com <g.baratheon@acme.com> C189F8E7B2@acme.com",
"datasetId": "d2f1c8a4b8f747d0ba3521e2",
"datasetName": "Acme_Marketing_Events",
"displayName": "Marketing Identity Delete Request",
"description": "Scheduled identity deletion for marketing compliance"
}
次の表に、応答のプロパティを示します。
workorderIdorgIdbundleIdactioncreatedAtupdatedAtoperationCounttargetServicesstatuscreatedBydatasetIdALL)。datasetNamedisplayNamedescriptionレコード削除作業指示の更新 update
レコード削除作業指示のnameおよびdescriptionを更新するには、/workorder/{WORKORDER_ID} エンドポイントにPUT リクエストを行います。
API 形式
PUT /workorder/{WORKORDER_ID}
次の表に、このリクエストのパラメーターを示します。
{WORK_ORDER_ID}リクエスト
curl -X PUT \
https://platform.adobe.io/data/core/hygiene/workorder/DI-893a6b1d-47c2-41e1-b3f1-2d7c2956aabb \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Content-Type: application/json' \
-d '{
"name": "Updated Marketing Identity Delete Request",
"description": "Updated deletion request for marketing data"
}'
次の表に、更新可能なプロパティを示します。
namedescription応答
応答が成功すると、更新された作業指示リクエストが返されます。
{
"workorderId": "DI-893a6b1d-47c2-41e1-b3f1-2d7c2956aabb",
"orgId": "7D4E2AC143214567890ABCDE@AcmeOrg",
"bundleId": "BN-12abcf45-32ea-45bc-9d1c-8e7b321cabc8",
"action": "identity-delete",
"createdAt": "2038-04-15T12:14:29.210Z",
"updatedAt": "2038-04-15T12:30:29.442Z",
"operationCount": 2,
"targetServices": [
"profile",
"datalake"
],
"status": "received",
"createdBy": "b.tarth@acme.com <b.tarth@acme.com> 8E7B321CABC8@acme.com",
"datasetId": "1a2b3c4d5e6f7890abcdef12",
"datasetName": "Acme_Marketing_2024",
"displayName": "Updated Marketing Identity Delete Request",
"description": "Updated deletion request for marketing data",
"productStatusDetails": [
{
"productName": "Data Management",
"productStatus": "waiting",
"createdAt": "2024-06-12T20:11:18.447747Z"
},
{
"productName": "Identity Service",
"productStatus": "success",
"createdAt": "2024-06-12T20:36:09.020832Z"
},
{
"productName": "Profile Service",
"productStatus": "waiting",
"createdAt": "2024-06-12T20:11:18.447747Z"
},
{
"productName": "Journey Orchestrator",
"productStatus": "success",
"createdAt": "2024-06-12T20:12:19.843199Z"
}
]
}
workorderIdorgIdbundleIdactioncreatedAtupdatedAtoperationCounttargetServicesstatusreceived、validated、submitted、ingested、completedおよびfailedです。createdBydatasetIdALL)。datasetNamedisplayNamedescriptionproductStatusDetailsリクエストのダウンストリームプロセスの現在のステータスをリストする配列。 各オブジェクトには次のものが含まれます。
productName:ダウンストリームサービスの名前。productStatus:下流サービスからの現在の処理ステータス。createdAt:最新のステータスがサービスによって投稿されたタイムスタンプ。
このプロパティは、作業指示が下流サービスに送信された後、処理を開始するために使用できます。