[Beta]{class="badge informative"} [Beta]{class="badge informative"}
Work order endpoint work-order-endpoint
The /workorder
endpoint in the Data Hygiene API allows you to programmatically manage record delete requests in Adobe Experience Platform.
Getting started
The endpoint used in this guide is part of the Data Hygiene API. Before continuing, please review the overview for links to related documentation, a guide to reading the sample API calls in this document, and important information regarding required headers that are needed to successfully make calls to any Experience Platform API.
Create a record delete request create
You can delete one or more identities from a single dataset or all datasets by making a POST request to the /workorder
endpoint.
A single record delete request through the UI allows you to submit 10,000 IDs at one time. The API method to delete records allows for the submission of 100,000 IDs at one time.
It is best practice to submit as many IDs per request as possible, up to your ID limit. When you intend to delete a high volume of IDs, submitting a low volume, or a single ID per record delete request should be avoided.
API format
POST /workorder
Request
Depending on the value of the datasetId
provided in the request payload, the API call will delete identities from all datasets or a single dataset that you specify. The following request deletes three identities from a specific dataset.
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 '{
"action": "delete_identity",
"datasetId": "c48b51623ec641a2949d339bad69cb15",
"displayName": "Example Record Delete Request",
"description": "Cleanup identities required by Jira request 12345.",
"identities": [
{
"namespace": {
"code": "email"
},
"id": "poul.anderson@example.com"
},
{
"namespace": {
"code": "email"
},
"id": "cordwainer.smith@gmail.com"
},
{
"namespace": {
"code": "email"
},
"id": "cyril.kornbluth@yahoo.com"
}
]
}'
action
delete_identity
for record deletes.datasetId
ALL
.If you are specifying a single dataset, the dataset’s associated Experience Data Model (XDM) schema must have a primary identity defined. If the dataset does not have a primary identity, then it must have an identity map in order to be modified by a Data Lifecycle request.
If an identity map exists, it will be present as a top-level field named
identityMap
.Note that a dataset row may have many identities in its identity map, but only one can be marked as primary.
"primary": true
must be included to force the id
to match a primary identity.displayName
description
identities
An array containing the identities of at least one user whose information you would like to delete. Each identity is comprised of an identity namespace and a value:
namespace
: Contains a single string property,code
, which represents the identity namespace.id
: The identity value.
If datasetId
specifies a single dataset, each entity under identities
must use the same identity namespace as the schema’s primary identity.
If datasetId
is set to ALL
, the identities
array is not constrained to any single namespace since each dataset might be different. However, your requests are still constrained the namespaces available to your organization, as reported by Identity Service.
Response
A successful response returns the details of the record delete.
{
"workorderId": "a15345b8-a2d6-4d6f-b33c-5b593e86439a",
"orgId": "{ORG_ID}",
"bundleId": "BN-35c1676c-3b4f-4195-8d6c-7cf5aa21efdd",
"action": "identity-delete",
"createdAt": "2022-07-21T18:05:28.316029Z",
"updatedAt": "2022-07-21T17:59:43.217801Z",
"status": "received",
"createdBy": "{USER_ID}",
"datasetId": "c48b51623ec641a2949d339bad69cb15",
"displayName": "Example Record Delete Request",
"description": "Cleanup identities required by Jira request 12345."
}
workorderId
orgId
bundleId
action
identity-delete
.createdAt
updatedAt
status
createdBy
datasetId
ALL
.Retrieve the status of a record delete lookup
After you create a record delete request, you can check on its status using a GET request.
API format
GET /workorder/{WORK_ORDER_ID}
{WORK_ORDER_ID}
workorderId
of the record delete you are looking up.Request
curl -X GET \
https://platform.adobe.io/data/core/hygiene/workorder/BN-35c1676c-3b4f-4195-8d6c-7cf5aa21efdd \
-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}'
Response
A successful response returns the details of the delete operation, including its current status.
{
"workorderId": "a15345b8-a2d6-4d6f-b33c-5b593e86439a",
"orgId": "{ORG_ID}",
"bundleId": "BN-35c1676c-3b4f-4195-8d6c-7cf5aa21efdd",
"action": "identity-delete",
"createdAt": "2022-07-21T18:05:28.316029Z",
"updatedAt": "2022-07-21T17:59:43.217801Z",
"status": "received",
"createdBy": "{USER_ID}",
"datasetId": "c48b51623ec641a2949d339bad69cb15",
"displayName": "Example Record Delete Request",
"description": "Cleanup identities required by Jira request 12345.",
"productStatusDetails": [
{
"productName": "Data Management",
"productStatus": "success",
"createdAt": "2022-08-08T16:51:31.535872Z"
},
{
"productName": "Identity Service",
"productStatus": "success",
"createdAt": "2022-08-08T16:43:46.331150Z"
},
{
"productName": "Profile Service",
"productStatus": "waiting",
"createdAt": "2022-08-08T16:37:13.443481Z"
}
]
}
workorderId
orgId
bundleId
action
identity-delete
.createdAt
updatedAt
status
createdBy
datasetId
ALL
.productStatusDetails
An array that lists the current status of downstream processes related to the request. Each array object contains the following properties:
productName
: The name of the downstream service.productStatus
: The current processing status of the request from the downstream service.createdAt
: A timestamp of when the most recent status was posted by the service.
Update a record delete request
You can update the displayName
and description
for a record delete by making a PUT request.
API format
PUT /workorder{WORK_ORDER_ID}
{WORK_ORDER_ID}
workorderId
of the record delete you are looking up.Request
curl -X PUT \
https://platform.adobe.io/data/core/hygiene/workorder/BN-35c1676c-3b4f-4195-8d6c-7cf5aa21efdd \
-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}' \
-d '{
"displayName" : "Update - displayName",
"description" : "Update - description"
}'
displayName
description
Response
A successful response returns the details of the record delete.
{
"workorderId": "DI-61828416-963a-463f-91c1-dbc4d0ddbd43",
"orgId": "{ORG_ID}",
"bundleId": "BN-aacacc09-d10c-48c5-a64c-2ced96a78fca",
"action": "identity-delete",
"createdAt": "2024-06-12T20:02:49.398448Z",
"updatedAt": "2024-06-13T21:35:01.944749Z",
"operationCount": 1,
"status": "ingested",
"createdBy": "{USER_ID}",
"datasetId": "666950e6b7e2022c9e7d7a33",
"datasetName": "Acme_Dataset_E2E_Identity_Map_Schema_5_1718178022379",
"displayName": "Updated Display Name",
"description": "Updated Description",
"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"
}
]
}
workorderId
orgId
bundleId
action
identity-delete
.createdAt
updatedAt
status
createdBy
datasetId
ALL
.productStatusDetails
An array that lists the current status of downstream processes related to the request. Each array object contains the following properties:
productName
: The name of the downstream service.productStatus
: The current processing status of the request from the downstream service.createdAt
: A timestamp of when the most recent status was posted by the service.