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.