Jun 11, 2025, 2:59 PM UTC

Local time: Jun 11, 2025, 2:59 PM UTC

  • 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.
  • Fixed: API Key access for the listReducedRequestsForDataSilo family of GraphQL queries.
  • Updated: Addresses PyTorch susceptibility to local Denial of Service and Improper Resource Shutdown or Release vulnerabilities.
  • 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.
  • Fixed: Retrying request enricher jobs automatically reloads the status of the jobs.
  • 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-requests endpoint, used by the Cron Job integration, now exposes country, countrySubDivision, locale, and dataSubjectType.
  • Updated: The DSR webhook now includes extras.pollId: string. This pollId can 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 the PUT /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-silo DSR response endpoint:
    • ✅ New accepted profileStatus value: 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 status ERROR and custom message

      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": "ERROR",
      "message": "Something went wrong"
      }'

      Save WAITING status with message and pollId

      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"
      }'

      Save WAITING status with pollId and retryAfterDate (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"
      }'

      Save WAITING status with short retryAfterDate (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"
      }'
  • 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.
  • Updated: Tooltip text for Encounters in (under Consent Management > Cookies) is now clearer about the data not being an exhaustive list.
  • Fixed: Submitting an assessment when the last section is IN_REVIEW has been enabled.