Authenticate with a Qualtrics API token in the X-API-TOKEN header against https://{datacenterid}.qualtrics.com/API/v3
POST /API/v3/surveys/{surveyId}/export-responses with format:json and optional startDate/endDate filters to initiate an async export job — receive a progressId
Poll GET /API/v3/surveys/{surveyId}/export-responses/{progressId} until status becomes complete and a fileId is returned
GET /API/v3/surveys/{surveyId}/export-responses/{progressId}/file to download the zipped JSON export and extract response records
Parse each response record — identify detractors (NPS ≤ 6 or low CSAT scores) by reading the response values mapped to survey question IDs
For each detractor response, trigger a downstream action: POST a ticket to your helpdesk API, send a Slack alert to the CX team, or enqueue an outbound call in your dialer
Known gotchas
The data center ID in the API hostname is account-specific (e.g., fra1, iad1) and must match the account's region — using a mismatched data center returns authentication errors even with a valid token
Response exports are asynchronous and can take several minutes for large surveys; polling too aggressively (under 5-second intervals) may be rate-limited — use a 10–15 second polling interval
Question IDs in the export JSON (e.g., QID1, QID2) do not correspond to question display labels — maintain a mapping from question ID to metric type (NPS, CSAT, CES) by fetching the survey definition via GET /API/v3/survey-definitions/{surveyId}
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp