Overview
To submit a GDPR request in Khoros Care, you must provide the user’s authorUUID (this is the same value as lswUuid returned from other Khoros Care APIs). [6]
Many teams resolve an authorUUID by exporting author records and matching on an email address. [4]
If you use the Care Analytics Raw Author Export for this lookup, keep in mind that you can export up to the last 18 months of data, but you can request/download only up to 90 days of data per export request. [7]
This article explains how to safely retrieve an authorUUID for older time periods by running multiple Raw Author exports in 90-day windows and combining the results. [7]
Key points
- The “90 days per export” limit is a per-request export window limit; you can still export up to the last 18 months by running multiple exports. [7]
- The Raw Author Export includes authors who sent a post during the reporting period and whose conversations match the selected Smart View/work queue. [7]
- Analytics Reports API download URLs are valid for 24 hours, so you should download completed exports promptly. [5]
Prerequisites
- If you plan to run exports via API, Analytics Reports endpoints require HTTP Basic Authentication, and you must use your instance’s Analytics API URL and companyKey from the app’s Analytics API Settings. [5]
- To use the GDPR API endpoints, the calling user must have the
api_restrictedrole. [6]
Solution
Step 1: Confirm you are using the Care Analytics Raw Author Export (and understand its scope)
- Confirm you are using the Care Analytics export called Raw Author Export. [7]
- Understand the scope: Raw Author Export includes all authors that sent a post during the reporting period that is in a conversation that matched the selected Smart View/work queue. [7]
Step 2: Plan your export windows (90 days per request, up to 18 months total)
- You can export up to the last 18 months of data, but each export request can cover only up to 90 days. [7]
- Break the timeframe you need into consecutive 90-day windows (for example: Jan–Mar, Apr–Jun, Jul–Sep). [7]
- If you are unsure when the user last posted, start with the most recent window and work backward until you find the matching record (or until you reach the 18-month boundary). [7]
Step 3: Run the Raw Author Export for each window
You can run the export from the Care Analytics UI or via the Analytics Reports API. [7]
Option A: Run exports from the Care Analytics UI
- In Care, go to Analytics and select the work queue/Smart View that contains the conversations you want included in the export. [7]
- Set your date/time range for a single 90-day window. [7]
- Use Export and select Raw Author Export. [7]
- Repeat for each additional 90-day window until you cover the needed timeframe. [7]
Option B: Run exports via the Analytics Reports API
Analytics Reports API endpoints require HTTP Basic Authentication, and you should use the Analytics API URL shown in your app’s Analytics API Settings. [5]
The Analytics API URL differs depending on where your data is hosted (US: analytics-api.app.lithium.com, EMEA: analytics-api-emea.app.lithium.com). [5]
When generating an export via API, the request includes query parameters such as companyKey, startTime, and endTime. [3]
The startTime and endTime values must be in epoch milliseconds. [3]
If you use timezoneOffset to format dates, it controls how dates are formatted in the export output; if you provide both timezone and timezoneOffset, the system preferentially uses timezone. [1]
Example (single request for one 90-day window): [3]
curl --user "API.user@email.com:password" -X POST "https://ANALYTICS_API_HOST/api/public/reports/report/author?reportFormat=csv&locale=en_US&companyKey=YOUR_COMPANY_KEY&startTime=1735689600000&endTime=1743379199000&timezoneOffset=0"
Run additional requests for each subsequent 90-day window by changing startTime and endTime. [7]
Step 4: Download, merge, and deduplicate your export files
- Download each completed export promptly; Analytics Reports API download URLs are valid for 24 hours. [5]
- Combine (merge) the exported CSV files into a single dataset for searching. [7]
- Deduplicate records by
authorUUID/lswUuidso you keep one record per author. [6]
Step 5: Find the authorUUID and submit the GDPR request
- In your merged dataset, search for the requester’s email address using the Raw Author export’s email field (for example, Email Address(es)). [4]
- Copy the matching author’s
authorUUIDvalue;authorUUIDis the same identifier aslswUuidreturned by other Care APIs. [6] - Create a GDPR request using
POST /api/v2/gdpr/requestsand passauthorUUIDin the request body asapplication/x-www-form-urlencoded. [6] - If you want to delete brand responses within the conversations with that author, include
includeResponses=true. [6]
Example (GDPR request): [6]
curl --user "API.user@email.com:password" -X POST "https://YOUR_TENANT_HOST/api/v2/gdpr/requests" -H "Content-Type: application/x-www-form-urlencoded" --data-urlencode "authorUUID=AUTHOR_UUID_FROM_EXPORT" --data-urlencode "includeResponses=true"
Important: The api_restricted role is required to call the GDPR endpoints. [6]
Step 6: Check the status of the GDPR request
To retrieve the status of the request, call GET /api/v2/gdpr/requests/<GDPR requestID>. [6]
The status field can include values such as QUEUED, RUNNING, COMPLETED, and INCOMPLETE. [6]
Operational safeguards (recommended)
- A single user can have a maximum of 2 exports actively running and up to 5 total export jobs queued (running or waiting). [2]
- A single company across all users can have a maximum of 4 exports actively running and up to 50 export jobs queued. [2]
- When running exports via the API, queue no more than 2 exports at a time and wait for completion before starting more. [2]
- Use the
statusUrlreturned by the report request to check the status of an individual export request. [2]
Notes and limitations
- You can export up to the last 18 months of data, but you can request/download only up to 90 days of data at a time. [7]
- The Raw Author Export includes authors who sent a post during the reporting period that is in a conversation that matched the selected Smart View/work queue. [7]
- Analytics Reports API download URLs are valid for 24 hours from the time they are generated. [5]
Summary
If you need to resolve an authorUUID for a user whose last activity is older than a single export window, run multiple Raw Author exports in 90-day windows (up to the last 18 months), merge the results, and then map the email address to the author’s authorUUID/lswUuid. [7] [6]
Then submit the GDPR request using POST /api/v2/gdpr/requests with the authorUUID in an application/x-www-form-urlencoded payload. [6]
FAQ
Q1: Does the 90-day limit mean older authors are deleted?
A1: No. You can export up to the last 18 months of data, but you can request/download only up to 90 days per export request, so you may need multiple exports to cover an older period within the 18-month boundary. [7]
Q2: Why can’t I find a specific user in my Raw Author Export?
A2: Raw Author Export includes authors who sent a post during the reporting period and whose conversations match the selected Smart View/work queue, so the time window and Smart View/work queue selection both affect which authors appear in the export. [7]
Q3: What identifier do I need for the GDPR request?
A3: The GDPR request requires authorUUID, which is the same value as the lswUuid returned by other Khoros Care APIs. [6]
Q4: How do I submit the GDPR request?
A4: Use POST /api/v2/gdpr/requests and pass authorUUID in the request body as application/x-www-form-urlencoded. [6]
References
Priyanka Bhotika
Comments