Registra ordini di lavoro di eliminazione work-order-endpoint
Utilizza l'endpoint /workorder nell'API di igiene dei dati per creare, visualizzare e gestire gli ordini di lavoro di eliminazione dei record in Adobe Experience Platform. Gli ordini di lavoro consentono di controllare, monitorare e tenere traccia della rimozione dei dati tra i set di dati per mantenere la qualità dei dati e supportare gli standard di governance dei dati della tua organizzazione.
Introduzione
Prima di iniziare, consulta la panoramica per scoprire le intestazioni richieste, come leggere le chiamate API di esempio e dove trovare la relativa documentazione.
Quote e timeline di elaborazione quotas
Registra gli ordini di lavoro di eliminazione sono soggetti ai limiti di invio giornalieri e mensili degli identificatori, determinati dal diritto di licenza della tua organizzazione. Questi limiti si applicano sia alle richieste di cancellazione dei record basate su API che su UI.
Diritto invio mensile per prodotto quota-limits
La tabella seguente mostra i limiti di invio degli identificatori per prodotto e livello di adesione. Per ogni prodotto, il limite mensile è il minore tra due valori: un limite fisso di identificazione o una soglia basata su percentuale associata al volume di dati concesso in licenza. In pratica, la maggior parte delle organizzazioni ha limiti mensili inferiori in base al pubblico indirizzabile effettivo o ai diritti alle righe di Adobe Customer Journey Analytics.
- Le quote vengono reimpostate il primo giorno di ogni mese di calendario. La quota non utilizzata non viene riportata.
- L'utilizzo della quota si basa sul diritto mensile concesso in licenza dalla tua organizzazione per identificatori inviati. Le quote non vengono applicate dai guardrail di sistema, ma possono essere monitorate e riviste.
- La capacità dell'ordine di lavoro di eliminazione del record è un servizio condiviso. Il limite mensile riflette il diritto più alto tra Real-Time CDP, Adobe Journey Optimizer, Customer Journey Analytics ed eventuali componenti aggiuntivi Shield applicabili.
Elaborazione dei timeline per l’invio degli identificatori sla-processing-timelines
Dopo la sottomissione, gli ordini di lavorazione di eliminazione dei record vengono messi in coda ed elaborati in base al livello di adesione.
Se l’organizzazione richiede limiti più elevati, contatta il rappresentante Adobe per una revisione dell’adesione.
Elenca gli ordini di lavoro di eliminazione record list
Recuperare un elenco impaginato di ordini di lavoro di eliminazione record per le operazioni di igiene dei dati nell'organizzazione. Filtra i risultati utilizzando i parametri di query. Ogni record dell'ordine di lavoro include il tipo di azione (ad esempio identity-delete), lo stato, il set di dati correlato, i dettagli utente e i metadati di controllo.
Formato API
GET /workorder
Nella tabella seguente vengono descritti i parametri di query disponibili per elencare gli ordini di lavorazione per l'eliminazione dei record.
searchtypeidentity-delete).statusEnum:
received, validated, submitted, ingested, completed, failedauthordisplayNamedescriptionworkorderIdsandboxName* per includere tutte le sandbox.fromDatetoDate per essere impostato.toDatefromDate per essere impostato.filterDatepagelimitorderBy+ o - per l'ordine crescente/decrescente. Esempio: orderBy=-datasetName.propertiesRichiesta
La richiesta seguente recupera tutti gli ordini di lavoro di eliminazione record completati, limitati a due per pagina:
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}'
Risposta
In caso di esito positivo, la risposta restituisce un elenco impaginato di ordini di lavoro di eliminazione record.
{
"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
}
}
}
Nella tabella seguente sono descritte le proprietà della risposta.
resultsworkorderIdorgIdbundleIdactioncreatedAtupdatedAtoperationCounttargetServices["datalake", "identity", "profile", "ajo"]). Per le organizzazioni solo Customer Journey Analytics (senza un diritto Profilo cliente in tempo reale), l'unico valore valido è ["datalake"].statusreceived,validated, submitted, ingested, completed e failed.createdBydatasetIdALL. Quando la richiesta utilizzava la modalità di solo profilo, questo valore è ALL.datasetNamedisplayNamedescriptiontotalcount_linksnexthref (stringa) e templated (booleano) per la pagina successiva.pagehref (stringa) e templated (booleano) per la navigazione delle pagine.Crea un ordine di lavoro di eliminazione record create
Per eliminare i record associati a una o più identità da un singolo set di dati, più set di dati o tutti i set di dati, effettuare una richiesta POST all'endpoint /workorder.
Gli ordini di lavoro vengono elaborati in modo asincrono e vengono visualizzati nell'elenco degli ordini di lavoro dopo l'invio. Le opzioni per più set di dati e solo profilo (servizi mirati) sono generalmente disponibili per tutti i clienti a partire dalla versione di marzo 2026 di Experience Platform.
Formato API
POST /workorder
- Lo schema del set di dati deve definire una mappa di identità o identità primaria. È possibile eliminare record solo da set di dati il cui schema XDM associato definisce una mappa di identità primaria o di identità.
- Le identità secondarie non vengono analizzate. Se un set di dati contiene più campi di identità, per la corrispondenza viene utilizzata solo l'identità primaria. I record non possono essere indirizzati o eliminati in base a identità non primarie.
- I record senza un'identità primaria compilata vengono ignorati. Se un record non ha metadati di identità primaria compilati, non è idoneo per l'eliminazione.
- I dati acquisiti prima della configurazione dell'identità non sono idonei. Se il campo di identità principale è stato aggiunto a uno schema dopo l'acquisizione dei dati, i record precedentemente acquisiti non possono essere eliminati tramite ordini di lavoro di eliminazione dei record.
Formati payload identità (namespacesIdentities o identities)
Il corpo della richiesta deve includere esattamente uno dei seguenti elementi.
namespacesIdentitiesnamespace (ad esempio, { "code": "email" }) e ids (array di stringhe di identità).identitiesnamespace (ad esempio, { "code": "email" }) e un singolo id (stringa).Se si inviano entrambe le proprietà, nessuna proprietà o si fornisce un array vuoto per la proprietà inclusa, l'API restituisce HTTP 400 (richiesta non valida) con uno dei messaggi seguenti:
- Entrambe le proprietà fornite:
"Identities and NamespacesIdentities are not allowed at the same time" - Elenco vuoto o fornito:
"Identities are Empty for Delete Identity request."
Richiesta
La richiesta seguente elimina tutti i record associati a indirizzi e-mail specifici da un particolare set di dati. Utilizza il formato namespacesIdentities consigliato.
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"
]
}
]
}'
Nella tabella seguente vengono descritte le proprietà per la creazione di un ordine di lavoro di eliminazione record.
displayNamedescriptionactiondelete_identity.datasetIdALL, un singolo ID set di dati o un elenco separato da virgole di due o più ID set di dati (ad esempio "id1,id2,id3"). Impossibile combinare ALL con ID specifici. Le richieste di set di dati singolo si comportano come prima, le richieste di set di dati multipli eliminano le identità da ciascun set di dati elencato e ALL eseguono il targeting di ogni set di dati. I set di dati devono avere una mappa di identità primaria o di identità. Se esiste una mappa di identità, questa sarà presente come campo di primo livello denominato identityMap.Nota: una riga di set di dati può avere molte identità nella relativa mappa di identità, ma solo una può essere contrassegnata come primaria.
"primary": true deve essere incluso per forzare id a corrispondere a un'identità primaria.Quando si utilizza
targetServices per l'eliminazione solo del profilo, datasetId deve essere ALL.targetServices["datalake", "identity", "profile", "ajo"]). Le organizzazioni che dispongono di Customer Journey Analytics ma non di Real-Time Customer Profile possono utilizzare solo ["datalake"]. Per limitare l'eliminazione solo ai dati relativi al profilo e lasciare inalterato il data lake, impostarlo su ["identity", "profile", "ajo"] (in qualsiasi ordine). Questa modalità solo profilo richiede un diritto Real-Time CDP o Adobe Journey Optimizer e datasetId deve essere ALL.identitiesidentities o namespacesIdentities. Array di oggetti, ciascuno con namespace (oggetto con code, ad esempio "email") e id (singola stringa di identità). Accettato per compatibilità con le versioni precedenti e prodotto dagli script di conversione. Il servizio normalizza questo formato internamente; il comportamento è identico. Consulta Formato payload identità qui sopra.namespacesIdentitiesidentities o namespacesIdentities. Array di oggetti, ciascuno con namespace (oggetto con code, ad esempio "email") e ids (array di stringhe di identità). Consigliato per tutti i payload. La proprietà namespacesIdentities è più compatta quando molte identità condividono uno spazio dei nomi. Consulta Formato payload identità qui sopra. Spazi dei nomi identità: documentazione spazio dei nomi identità, API servizio identità.Risposta
In caso di esito positivo, la risposta restituisce i dettagli del nuovo ordine di lavoro di eliminazione record.
{
"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"
}
Nella tabella seguente sono descritte le proprietà della risposta.
workorderIdorgIdbundleIdactioncreatedAtupdatedAtoperationCounttargetServicesstatuscreatedBydatasetIdALL. Per le richieste con più set di dati, il valore riflette l’elenco separato da virgole o il singolo ID inviato.datasetNamedisplayNamedescriptionIl valore targetServices della risposta fa eco alla richiesta o mostra il set predefinito completo quando omesso (vedi la tabella delle risposte precedente).
Set di dati multiplo e solo profilo (API) multi-dataset-profile-only
Le seguenti opzioni sono disponibili solo tramite l’API e non sono supportate nell’interfaccia utente di igiene dei dati. Essi controllano quali set di dati e quali servizi elaborano l’eliminazione, consentendo l’invio di più set di dati e richieste di servizi mirate solo per il profilo.
La tabella seguente riepiloga le modifiche apportate al corpo e al comportamento della richiesta per ciascuna opzione.
datasetId (esempio: "id1,id2,id3"). ID singolo o ALL non modificato.ALL).targetServices con esattamente ["identity", "profile", "ajo"] (qualsiasi ordine). Richiede datasetId: "ALL".Richieste di set di dati multipli
Il campo datasetId è suddiviso in virgole: utilizza un singolo ID (lo stesso comportamento di prima), un elenco separato da virgole di ID o il valore letterale ALL. Per eliminare identità da più set di dati specifici in un unico ordine di lavoro, fornisci un elenco separato da virgole:
"datasetId": "6707eb36eef4d42ab86d9fbe,6643f00c16ddf51767fcf780"
Le identità vengono quindi eliminate da ciascuno dei set di dati elencati. Le richieste di set di dati singoli funzionano come sempre; utilizza ALL per eseguire il targeting di ogni set di dati. Il valore deve essere esattamente uno dei seguenti: ALL, un singolo ID set di dati o due o più ID set di dati separati da virgole (senza combinare ALL con ID specifici).
Solo profilo (servizi mirati)
Per rimuovere solo i dati relativi all'identità e al profilo lasciando intatto il data lake, includere targetServices con esattamente questi tre valori in qualsiasi ordine: identity, profile e ajo. Identità, profilo e AJO sono inclusi esplicitamente; il data lake è escluso. In questa modalità, datasetId deve essere ALL (il caso d'uso è l'eliminazione completa del profilo, non frammenti per set di dati).
Nell'esempio seguente viene creato un ordine di lavoro di eliminazione record solo profilo:
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"]
}
]
}'
Le risposte riuscite per richieste con più set di dati o solo profilo seguono la stessa forma delle altre risposte dell’ordine di lavoro. I valori restituiti datasetId e targetServices riflettono i valori nella richiesta (o l'elenco predefinito completo quando targetServices viene omesso), quindi puoi confermare ciò che è stato inviato.
identity-delete nelle risposte API. Se l'API cambia per utilizzare un valore diverso (ad esempio delete_identity), la documentazione verrà aggiornata di conseguenza.Converti elenchi ID in JSON per richieste di cancellazione record (#convert-id-lists-to-json-for-record-delete-requests)
Utilizza gli script di conversione per produrre i payload JSON richiesti per l'endpoint /workorder quando gli identificatori sono in file CSV, TSV o TXT. Questo approccio è particolarmente utile quando si lavora con file di dati esistenti. Per istruzioni e script pronti all'uso, consulta l'archivio GitHub csv per l'igiene dei dati.
Gli script restituiscono il formato identities, ovvero un id per oggetto con namespace. L'API accetta questo formato così com'è; è possibile inviare il JSON generato direttamente nel corpo del POST a /workorder senza alcuna conversione. Il formato consigliato è namespacesIdentities. Vedere Creare un ordine di lavoro di eliminazione record e Formato payload identità.
Generare payload JSON
I seguenti esempi di script di base mostrano come eseguire gli script di conversione in Python o Ruby:
| code language-bash |
|---|
|
| code language-bash |
|---|
|
La tabella seguente descrive i parametri degli script di base.
verbosecolumnnamespaceemail). Il JSON generato lo utilizza nella proprietà namespace.code di ciascun oggetto.dataset-idALL per tutti i set di dati.descriptionoutput-dirL’esempio seguente mostra un payload JSON convertito correttamente da un file CSV, TSV o TXT. Contiene record associati allo spazio dei nomi specificato e viene utilizzato per eliminare i record identificati dagli indirizzi e-mail.
{
"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"
}
]
}
La tabella seguente descrive le proprietà nel payload JSON.
actiondelete_identity dallo script di conversione.datasetIdALL.displayNamedescriptionidentitiesMatrice di oggetti, ciascuno contenente:
namespace: oggetto con una proprietàcodeche specifica lo spazio dei nomi dell'identità (ad esempio, "email").id: valore di identità da eliminare per questo spazio dei nomi.
Invia i dati JSON generati all'endpoint /workorder
L'output dello script utilizza il formato identities, che l'API accetta così com'è. Utilizza il payload JSON convertito come corpo della richiesta (-d) quando invii la richiesta POST curl all'endpoint /workorder. Per le opzioni di richiesta complete e le regole di convalida, vedere Creare un ordine di lavoro di eliminazione record.
Recuperare i dettagli per un ordine di lavoro di eliminazione record specifico lookup
Recuperare le informazioni per un ordine di lavoro di eliminazione record specifico effettuando una richiesta GET a /workorder/{WORKORDER_ID}. La risposta include tipo di azione, stato, set di dati e informazioni utente associati e metadati di audit.
Formato API
GET /workorder/{WORKORDER_ID}
{WORK_ORDER_ID}Richiesta
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}'
Risposta
In caso di esito positivo, la risposta restituisce i dettagli dell’ordine di lavoro di eliminazione del record specificato.
{
"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"
}
Nella tabella seguente sono descritte le proprietà della risposta.
workorderIdorgIdbundleIdactioncreatedAtupdatedAtoperationCounttargetServicesstatuscreatedBydatasetIdALL).datasetNamedisplayNamedescriptionAggiornare un ordine di lavoro di eliminazione record update
Aggiornare name e description per un ordine di lavoro di eliminazione record effettuando una richiesta PUT all'endpoint /workorder/{WORKORDER_ID}.
Formato API
PUT /workorder/{WORKORDER_ID}
Nella tabella seguente viene descritto il parametro per questa richiesta.
{WORK_ORDER_ID}Richiesta
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"
}'
Nella tabella seguente sono descritte le proprietà che è possibile aggiornare.
namedescriptionRisposta
In caso di esito positivo, la risposta restituisce la richiesta dell’ordine di lavoro aggiornato.
{
"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).datasetNamedisplayNamedescriptionproductStatusDetailsArray che elenca lo stato corrente dei processi a valle della richiesta. Ogni oggetto contiene:
productName: nome del servizio downstream.productStatus: lo stato di elaborazione corrente dal servizio downstream.createdAt: la marca temporale in cui il servizio ha pubblicato lo stato più recente.
Questa proprietà è disponibile dopo l’invio dell’ordine di lavoro ai servizi a valle per iniziare l’elaborazione.