June 11, 2025
Integrations
- New Integration: Option to specify usage of Privacy Service API with Adobe Experience Platform integration.
- Fixed: Google Spanner integration now works with database enrichment.
- Fixed: Google Spanner integration now works with SQL generation.
Platform
- Fixed: API Key access for the
listReducedRequestsForDataSilofamily of GraphQL queries. - Updated: Addresses PyTorch susceptibility to local Denial of Service and Improper Resource Shutdown or Release vulnerabilities.
Data Inventory
- New: Added a new table to view processing activities.
- Updated: In the Admin Dashboard, under Data Inventory, the submit button in the "Add DataPoints" form modal is disabled until the required fields are filled in.
Structured Discovery
- Fixed: Retrying request enricher jobs automatically reloads the status of the jobs.
DSR Automation
- New: Added Retry All Errors button to Request integration screen.
- Updated: Reorders identifiers table to display the resolution column first and the communication column last.
- Updated: When uploading a file to a DSR, the name of the file is preserved for all custom integration types (prompt a person, server webhook, cron job).
- Updated: The
list-pending-requestsendpoint, used by the Cron Job integration, now exposescountry,countrySubDivision,locale, anddataSubjectType. - Updated: The DSR webhook now includes
extras.pollId: string. ThispollIdcan be useful when implementing async jobs that need to be initiated and then checked back at a later time for completion. This works well in tandem with thePUT /v1/data-silo endpoint.curl -X PUT https://multi-tenant.sombra.transcend.io/v1/data-silo \ -H "Accept: application/json" \ -H "Authorization: Bearer $API_KEY" \ -H "x-transcend-nonce: $NONCE" \ -d '{ "profileStatus": "WAITING", "message": "pending response", "pollId": "abcde", "retryAfterDate": "2025-06-07T00:00:00.000Z" }'You then receive a webhook:{ "type": "ACCESS", "dataSubject": { "type": "customer" }, "isTest": false, "extras": { "pollId": "abcde", "profile": { "identifier": "jane.doe@example.com", "type": "email", "id": "bd955664-611f-4d62-adfe-aa14d4a77608", "RequestDataSiloId": "1aeb5dbd-5003-4880-9db6-c9ab3e408f74" }, "dataSilo": { "id": "12dd1fd8-b310-4712-ba6b-0e2e29ecd2ac", "title": "My Custom Integration", "description": "Our production application backend. Calls a function that exports or deletes a user from our service.", "link": "https://app.transcend.io/infrastructure/connected-services/configuration/12dd1fd8-b310-4712-ba6b-0e2e29ecd2ac" }, "request": { "details": "", "id": "303b8129-70d9-47b9-b408-aa5ddca398e4", "link": "https://app.transcend.io/request/303b8129-70d9-47b9-b408-aa5ddca398e4", "createdAt": "2022-03-04T02:50:42.257Z", "locale": "fr-FR", "origin": "PRIVACY_CENTER", "country": "US", "countrySubDivision": "US-CA", "attributes": [] }, "organization": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "uri": "e-shop-it", "name": "eShopIt" } }, "coreIdentifier": { "value": "jane.doe@example.com" } } - Updated: Adds additional responses to the
PUT /v1/data-siloDSR response endpoint:- ✅ New accepted
profileStatusvalue:ERROR - ✅ Ability to persist a message associated with the profile. This can indicate an error state, a description about the current job status, or details about the completed response.
- ✅ Support for storing a
pollId. This enables asyncronous server webhook responses for custom functions - ✅ Support for
retryAfterDate, with a 10-minute minimum enforced. This allows for scheduling async follow ups. 🧪 Example Requests: Save profile with statusERRORand custom messagecurl -X PUT https://multi-tenant.sombra.transcend.io/v1/data-silo \ -H "Accept: application/json" \ -H "Authorization: Bearer $API_KEY" \ -H "x-transcend-nonce: $NONCE" \ -d '{ "profileStatus": "ERROR", "message": "Something went wrong" }'SaveWAITINGstatus with message and pollIdcurl -X PUT https://multi-tenant.sombra.transcend.io/v1/data-silo \ -H "Accept: application/json" \ -H "Authorization: Bearer $API_KEY" \ -H "x-transcend-nonce: $NONCE" \ -d '{ "profileStatus": "WAITING", "message": "pending response", "pollId": "abcde" }'SaveWAITINGstatus withpollIdandretryAfterDate(7 days out)curl -X PUT https://multi-tenant.sombra.transcend.io/v1/data-silo \ -H "Accept: application/json" \ -H "Authorization: Bearer $API_KEY" \ -H "x-transcend-nonce: $NONCE" \ -d '{ "profileStatus": "WAITING", "message": "pending response", "pollId": "abcde", "retryAfterDate": "2025-06-07T00:00:00.000Z" }'SaveWAITINGstatus with shortretryAfterDate(auto-adjusts to 10+ minutes)curl -X PUT https://multi-tenant.sombra/transcend.io/v1/data-silo \ -H "Accept: application/json" \ -H "Authorization: Bearer $API_KEY" \ -H "x-transcend-nonce: $NONCE" \ -d '{ "profileStatus": "WAITING", "message": "pending response", "pollId": "abcde", "retryAfterDate": "2025-05-31T17:01:00.000Z" }'
- ✅ New accepted
- Fixed: A bug that prevented files from uploading if there were special characters in the file name.
- Fixed: A bug where preflight errors were not being bubbled up to an admin.
Consent Management
- Updated: Tooltip text for Encounters in (under Consent Management > Cookies) is now clearer about the data not being an exhaustive list.
Assessments
- Fixed: Submitting an assessment when the last section is
IN_REVIEWhas been enabled.