Registrar ordens de serviço de exclusão work-order-endpoint
Use o ponto de extremidade /workorder na API de higiene de dados para criar, exibir e gerenciar ordens de trabalho de exclusão de registro no Adobe Experience Platform. As ordens de trabalho permitem controlar, monitorar e rastrear a remoção de dados entre conjuntos de dados para ajudar você a manter a qualidade dos dados e dar suporte aos padrões de governança de dados de sua organização.
Introdução
Antes de começar, consulte a visão geral para saber mais sobre os cabeçalhos necessários, como ler exemplos de chamadas de API e onde encontrar a documentação relacionada.
Cotas e cronogramas de processamento quotas
As ordens de serviço de exclusão de registro estão sujeitas a limites diários e mensais de envio de identificador, determinados pelo direito de licença da organização. Esses limites se aplicam às solicitações de exclusão de registros com base na interface do usuário e na API.
Direito de envio mensal por produto quota-limits
A tabela a seguir mostra os limites de envio de identificador por produto e nível de direito. Para cada produto, o limite mensal é o menor de dois valores: um limite de identificador fixo ou um limite baseado em porcentagem vinculado ao volume de dados licenciado. Na prática, a maioria das organizações tem limites mensais mais baixos com base em seu público-alvo endereçável real ou direitos de linha do Adobe Customer Journey Analytics.
- As cotas são redefinidas no primeiro dia de cada mês. Cota não utilizada não é transferida.
- O uso da cota é baseado no direito mensal licenciado de sua organização para identificadores enviados. As cotas não são aplicadas por medidas de proteção do sistema, mas podem ser monitoradas e revisadas.
- A capacidade da ordem de trabalho de exclusão do registro é um serviço compartilhado. Seu limite mensal reflete os direitos mais altos no Real-Time CDP, Adobe Journey Optimizer, Customer Journey Analytics e em qualquer complemento do Shield aplicável.
Processamento de cronogramas para envios de identificadores sla-processing-timelines
Após a submissão, as ordens de serviço de deleção de registro são enfileiradas e processadas com base no seu nível de direito.
Se sua organização exigir limites mais altos, entre em contato com o representante da Adobe para obter uma revisão de direito.
Listar ordens de trabalho de exclusão de registro list
Recupere uma lista paginada de ordens de serviço de exclusão de registro para operações de higiene de dados em sua organização. Filtrar resultados usando parâmetros de consulta. Cada registro de ordem de trabalho inclui o tipo de ação (como identity-delete), o status, o conjunto de dados relacionado, os detalhes do usuário e os metadados de auditoria.
Formato da API
GET /workorder
A tabela a seguir descreve os parâmetros de consulta disponíveis para listar ordens de serviço de deleção de registro.
searchtypeidentity-delete).statusEnumeração:
received, validated, submitted, ingested, completed, failedauthordisplayNamedescriptionworkorderIdsandboxName* para incluir todas as sandboxes.fromDatetoDate seja definido.toDatefromDate seja definido.filterDatepagelimitorderBy+ ou - para crescente/decrescente. Exemplo: orderBy=-datasetName.propertiesSolicitação
A solicitação a seguir recupera todas as ordens de serviço de deleção de registro concluídas, limitadas a duas por página:
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}'
Resposta
Uma resposta bem-sucedida retorna uma lista paginada de ordens de serviço de deleção de registro.
{
"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
}
}
}
A tabela a seguir descreve as propriedades na resposta.
resultsworkorderIdorgIdbundleIdactioncreatedAtupdatedAtoperationCounttargetServices["datalake", "identity", "profile", "ajo"]). Para organizações exclusivas da Customer Journey Analytics (sem um direito ao Perfil de Cliente em Tempo Real), o único valor válido é ["datalake"].statusreceived,validated, submitted, ingested, completed e failed.createdBydatasetIdALL. Quando a solicitação usou o modo somente de perfil, esse valor é ALL.datasetNamedisplayNamedescriptiontotalcount_linksnexthref (cadeia de caracteres) e templated (booleano) para a próxima página.pagehref (cadeia de caracteres) e templated (booleano) para navegação de página.Criar uma ordem de serviço de exclusão de registro create
Para excluir registros associados a uma ou mais identidades de um único conjunto de dados, vários conjuntos de dados ou todos os conjuntos de dados, faça uma solicitação POST para o ponto de extremidade /workorder.
As ordens de serviço são processadas de forma assíncrona e são exibidas na lista de ordens de serviço após o envio. As opções de vários conjuntos de dados e somente de perfil (serviços direcionados) estão disponíveis para todos os clientes a partir da versão de março de 2026 do Experience Platform.
Formato da API
POST /workorder
- O esquema do conjunto de dados deve definir uma identidade primária ou um mapa de identidade. Só é possível excluir registros de conjuntos de dados cujo esquema XDM associado define uma identidade primária ou mapa de identidade.
- As identidades secundárias não foram verificadas. Se um conjunto de dados contiver vários campos de identidade, somente a identidade principal será usada para correspondência. Os registros não podem ser direcionados ou excluídos com base em identidades não primárias.
- Os registros sem uma identidade principal preenchida são ignorados. Se um registro não tiver metadados de identidade primários preenchidos, ele não estará qualificado para exclusão.
- Dados assimilados antes da configuração de identidade não são qualificados. Se o campo de identidade principal foi adicionado a um esquema após a assimilação de dados, os registros assimilados anteriormente não poderão ser excluídos por meio de ordens de trabalho de exclusão de registro.
Formatos de carga de identidade (namespacesIdentities ou identities)
O corpo da solicitação deve incluir exatamente um dos itens a seguir.
namespacesIdentitiesnamespace (por exemplo, { "code": "email" }) e ids (matriz de sequências de identidade).identitiesnamespace (por exemplo, { "code": "email" }) e um único id (string).Se você enviar ambas as propriedades, nenhuma propriedade ou fornecer uma matriz vazia para a propriedade incluída, a API retornará HTTP 400 (Solicitação inválida) com uma destas mensagens:
- Ambas as propriedades fornecidas:
"Identities and NamespacesIdentities are not allowed at the same time" - Lista não fornecida ou vazia:
"Identities are Empty for Delete Identity request."
Solicitação
A solicitação a seguir exclui todos os registros associados a endereços de email especificados de um conjunto de dados específico. Ele usa o formato namespacesIdentities recomendado.
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"
]
}
]
}'
A tabela a seguir descreve as propriedades para criar uma ordem de serviço de deleção de registro.
displayNamedescriptionactiondelete_identity.datasetIdALL, uma única ID de conjunto de dados ou uma lista separada por vírgulas de duas ou mais IDs de conjunto de dados (por exemplo, "id1,id2,id3"). Você não pode combinar ALL com IDs específicas. As solicitações de um único conjunto de dados se comportam como antes, as solicitações de vários conjuntos de dados excluem as identidades de cada conjunto de dados listado e ALL direciona cada conjunto de dados. Os conjuntos de dados devem ter uma identidade primária ou mapa de identidade. Se existir um mapa de identidade, ele estará presente como um campo de nível superior chamado identityMap.Observação: uma linha de conjunto de dados pode ter muitas identidades em seu mapa de identidades, mas apenas uma pode ser marcada como primária.
"primary": true deve ser incluído para forçar id a corresponder a uma identidade principal.Ao usar
targetServices para exclusão somente de perfil, datasetId deve ser ALL.targetServices["datalake", "identity", "profile", "ajo"]) por padrão. Organizações com Customer Journey Analytics, mas sem um direito de Perfil de Cliente em Tempo Real, só podem usar ["datalake"]. Para limitar a exclusão somente a dados relacionados ao perfil e deixar o data lake intacto, defina como ["identity", "profile", "ajo"] (em qualquer ordem). Este modo somente de perfil requer um direito de Real-Time CDP ou Adobe Journey Optimizer e datasetId deve ser ALL.identitiesidentities ou namespacesIdentities. Matriz de objetos, cada uma com namespace (objeto com code, por exemplo, "email") e id (cadeia de caracteres de identidade única). Aceito para compatibilidade com versões anteriores e produzido pelos scripts de conversão. O serviço normaliza esse formato internamente; o comportamento é idêntico. Consulte Formato de carga da identidade acima.namespacesIdentitiesidentities ou namespacesIdentities. Matriz de objetos, cada uma com namespace (objeto com code, por exemplo, "email") e ids (matriz de cadeias de caracteres de identidade). Recomendado para todas as cargas. A propriedade namespacesIdentities é mais compacta quando muitas identidades compartilham um namespace. Consulte Formato de carga da identidade acima. Namespaces de identidade: documentação de namespace de identidade, API do Serviço de Identidade.Resposta
Uma resposta bem-sucedida retorna os detalhes da nova ordem de serviço de exclusão de registro.
{
"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"
}
A tabela a seguir descreve as propriedades na resposta.
workorderIdorgIdbundleIdactioncreatedAtupdatedAtoperationCounttargetServicesstatuscreatedBydatasetIdALL. Para solicitações de vários conjuntos de dados, o valor reflete a lista separada por vírgulas ou a ID única enviada.datasetNamedisplayNamedescriptionO valor de resposta targetServices ecoa sua solicitação ou mostra o conjunto padrão completo quando omitido (consulte a tabela de resposta acima).
Conjunto de dados múltiplos e somente perfil (API) multi-dataset-profile-only
As seguintes opções estão disponíveis somente por meio da API e não são compatíveis com a interface da higiene de dados. Eles controlam quais conjuntos de dados e quais serviços processam a exclusão, permitindo envios de vários conjuntos de dados e solicitações de serviço direcionadas somente por perfil.
A tabela a seguir resume como o corpo da solicitação e o comportamento mudam para cada opção.
datasetId (ex.: "id1,id2,id3"). ID única ou ALL inalterada.ALL).targetServices com exatamente ["identity", "profile", "ajo"] (qualquer pedido). Exige datasetId: "ALL".Solicitações de vários conjuntos de dados
O campo datasetId é dividido em vírgulas: use uma única ID (o mesmo comportamento de antes), uma lista de IDs separada por vírgulas ou o literal ALL. Para excluir identidades de vários conjuntos de dados específicos em uma ordem de trabalho, forneça uma lista separada por vírgulas:
"datasetId": "6707eb36eef4d42ab86d9fbe,6643f00c16ddf51767fcf780"
As identidades são excluídas de cada um dos conjuntos de dados listados. As solicitações de um único conjunto de dados funcionam como sempre funcionam; use ALL para direcionar cada conjunto de dados. O valor deve ser exatamente um de: ALL, uma única ID de conjunto de dados ou duas ou mais IDs de conjunto de dados separadas por vírgulas (sem combinar ALL com IDs específicas).
Somente perfil (serviços direcionados)
Para remover apenas dados de identidade e relacionados ao perfil sem alterar o data lake, inclua targetServices com exatamente estes três valores em qualquer ordem: identity, profile e ajo. Identidade, Perfil e AJO são explicitamente incluídos; o data lake é excluído. Neste modo, datasetId deve ser ALL (o caso de uso é a exclusão completa do perfil, não fragmentos por conjunto de dados).
O exemplo a seguir cria uma ordem de serviço de deleção de registro somente de perfil:
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"]
}
]
}'
As respostas bem-sucedidas para solicitações de vários conjuntos de dados ou somente de perfil seguem a mesma forma que outras respostas de ordem de trabalho. Os datasetId e targetServices retornados refletem os valores na solicitação (ou na lista padrão completa quando targetServices é omitido), para que você possa confirmar o que foi enviado.
identity-delete nas respostas da API. Se a API mudar para usar um valor diferente (como delete_identity), esta documentação será atualizada adequadamente.Converter listas de ID em JSON para solicitações de exclusão de registro (#convert-id-lists-to-json-for-record-delete-requests)
Use scripts de conversão para produzir as cargas JSON necessárias para o terminal /workorder quando seus identificadores estiverem em arquivos CSV, TSV ou TXT. Essa abordagem é especialmente útil ao trabalhar com arquivos de dados existentes. Para obter scripts e instruções prontos para uso, consulte o repositório GitHub de csv para higiene de dados.
Os scripts geram o formato identities — um id por objeto com um namespace. A API aceita esse formato como está; você pode enviar o JSON gerado diretamente no corpo da POSTAGEM para /workorder sem conversão. O formato recomendado é namespacesIdentities; consulte Criar uma ordem de trabalho de exclusão de registro e Formato de carga de identidade.
Gerar cargas JSON
Os exemplos de script bash a seguir demonstram como executar os scripts de conversão no Python ou Ruby:
| code language-bash |
|---|
|
| code language-bash |
|---|
|
A tabela abaixo descreve os parâmetros nos scripts bash.
verbosecolumnnamespaceemail). O JSON gerado usa isso na propriedade namespace.code de cada objeto.dataset-idALL para todos os conjuntos de dados.descriptionoutput-dirO exemplo abaixo mostra uma carga JSON bem-sucedida convertida de um arquivo CSV, TSV ou TXT. Ele contém registros associados ao namespace especificado e é usado para excluir registros identificados por endereços de email.
{
"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"
}
]
}
A tabela a seguir descreve as propriedades na carga JSON.
actiondelete_identity pelo script de conversão.datasetIdALL.displayNamedescriptionidentitiesUma matriz de objetos, cada um contendo:
namespace: um objeto com uma propriedadecodeespecificando o namespace de identidade (por exemplo, "email").id: O valor de identidade a ser excluído para este namespace.
Enviar os dados JSON gerados para o ponto de extremidade /workorder
A saída do script usa o formato identities, que a API aceita como está. Use a carga JSON convertida como o corpo da solicitação (-d) ao enviar sua solicitação POST curl para o ponto de extremidade /workorder. Para obter opções completas de solicitação e regras de validação, consulte Criar uma ordem de trabalho de exclusão de registro.
Recuperar detalhes de uma ordem de trabalho de exclusão de registro específica lookup
Recupere informações para uma ordem de trabalho de exclusão de registro específica fazendo uma solicitação GET para /workorder/{WORKORDER_ID}. A resposta inclui tipo de ação, status, conjunto de dados associado, informações do usuário e metadados de auditoria.
Formato da API
GET /workorder/{WORKORDER_ID}
{WORK_ORDER_ID}Solicitação
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}'
Resposta
Uma resposta bem-sucedida retorna os detalhes da ordem de serviço de exclusão de registro especificada.
{
"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"
}
A tabela a seguir descreve as propriedades na resposta.
workorderIdorgIdbundleIdactioncreatedAtupdatedAtoperationCounttargetServicesstatuscreatedBydatasetIdALL).datasetNamedisplayNamedescriptionAtualizar uma ordem de serviço de exclusão de registro update
Atualize o name e o description de uma ordem de serviço de exclusão de registro fazendo uma solicitação PUT para o ponto de extremidade /workorder/{WORKORDER_ID}.
Formato da API
PUT /workorder/{WORKORDER_ID}
A tabela a seguir descreve o parâmetro para essa solicitação.
{WORK_ORDER_ID}Solicitação
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"
}'
A tabela a seguir descreve as propriedades que você pode atualizar.
namedescriptionResposta
Uma resposta bem-sucedida retorna a solicitação de ordem de serviço atualizada.
{
"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 e failed.createdBydatasetIdALL).datasetNamedisplayNamedescriptionproductStatusDetailsUma matriz que lista o status atual dos processos downstream para a solicitação. Cada objeto contém:
productName: O nome do serviço downstream.productStatus: o status de processamento atual do serviço downstream.createdAt: O carimbo de data/hora quando o status mais recente foi postado pelo serviço.
Essa propriedade fica disponível depois que a ordem de serviço é enviada aos serviços downstream para iniciar o processamento.