# Qualtrics MCP

> Qualtrics connects your AI agent directly to your Experience Management (XM) platform. You manage surveys, contacts, distributions, and data exports entirely through natural conversation. List existing surveys or create new ones, run contact directory lookups, and trigger large-scale response data exports—all without touching the Qualtrics UI.

## Overview
- **Category:** data-analytics
- **Price:** Free
- **Tags:** survey-automation, experience-management, data-collection, customer-feedback, xm-directory

## Description

**Qualtrics** hooks your AI agent right into your entire Experience Management (XM) platform. You ditch the clunky menus and complex UI just talking to your client. This server gives you complete control over surveys, contacts, distributions, and data exports—all through natural conversation. 

### Managing Your Surveys

You can manage survey structures entirely from chat. Start by using `list_surveys` to see every survey currently in your account directory. If you need more detail on a specific one, `get_survey` pulls all the metadata for that single survey ID. You'll never have to manually check those settings again because you can call `update_survey` to change its core settings or structure. Need a whole new questionnaire? Just run `create_survey`, and it builds and saves an entirely fresh Qualtrics survey structure for you.

### Handling Contacts and Directories

The server lets you treat the XM Directory like a database through your AI client. You can call `list_directory_contacts` to get a full rundown of every contact member in your system. Need to add someone? Use `create_contact` to build a brand-new user record right into the directory. If a person's details change, you modify them instantly by calling `update_contact`. These tools keep your contact list current without you ever opening the Qualtrics UI.

### Controlling Data Flow and Events

You can control how surveys get out to people and when your system reacts to activity. To send a survey to an audience, you run `create_distribution`, which sets up the method for sending a specific survey to a target group. You can check that setup later by calling `get_distribution` to retrieve the detailed status of any distribution you've started. If you need to monitor what’s happening in your system, you use event subscriptions: running `list_event_subscriptions` shows every webhook subscription you currently have set up. To build a reactive workflow, you call `create_event_subscription`, which builds a webhook that fires when specific activities happen in Qualtrics. You can also see all past and active distribution methods by calling `list_distributions` for any given survey ID.

### Exporting Raw Data

The most important part is getting the data out fast. To start, you call `create_response_export`, which kicks off the process of exporting every response associated with a specific survey ID. You don't know when that’ll be done, so you check its status using `get_export_progress`. Once it says it's finished, you pull the final data file by running `get_export_file`. This gives you the raw CSV or JSON output straight into your analysis environment. Remember to reference a survey ID with `get_survey` if that context is needed for the export commands.

You use these tools together—from listing surveys and managing contacts to kicking off large data exports—all without touching any Qualtrics buttons.

## Tools

### create_contact
Creates a new user record in the XM Directory.

### create_distribution
Sets up a method to send a specific survey to an audience group.

### create_event_subscription
Builds a webhook subscription that fires when a specific activity happens in Qualtrics.

### create_response_export
Starts the process of exporting all responses for a given survey ID.

### create_survey
Builds and saves an entirely new Qualtrics survey structure.

### get_distribution
Retrieves the detailed status of a specific distribution you set up.

### get_export_file
Downloads the final data file for a previously initiated response export.

### get_export_progress
Checks and reports on how far along the response data export process is.

### get_survey
Retrieves all metadata for a single, specific survey by ID.

### list_directory_contacts
Lists every contact member currently held in the XM Directory.

### list_distributions
Gets a list of all active or past survey distributions for a given survey ID.

### list_event_subscriptions
Shows all current webhook event subscriptions you have set up.

### list_surveys
Retrieves a list of every survey available in your account.

### update_contact
Modifies an existing contact's details within the XM Directory.

### update_survey
Changes metadata or settings for an already existing survey.

## Prompt Examples

**Prompt:** 
```
List all my Qualtrics surveys.
```

**Response:** 
```
I've retrieved your surveys. You have 3 active surveys: 'Customer Satisfaction 2024' (ID: SV_123), 'Employee Engagement' (ID: SV_456), and 'Product Feedback' (ID: SV_789).
```

**Prompt:** 
```
Create a new survey named 'Market Research Q3' in English.
```

**Response:** 
```
The survey 'Market Research Q3' has been successfully created with ID: SV_98765. You can now start adding questions or setting up distributions.
```

**Prompt:** 
```
Export the responses for survey SV_12345 in CSV format.
```

**Response:** 
```
I've initiated the export for survey SV_12345. The Export ID is ES_abc123. I will monitor the progress for you.
```

## Capabilities

### Manage Surveys
List, retrieve metadata for, create, or update entire survey structures.

### Handle Contacts and Directories
Create new contacts, read directory listings, or modify existing contact records in the XM Directory.

### Control Data Distribution
Generate survey distributions for specific channels and manage webhook event subscriptions.

### Export Response Data
Initiate a response data export, check its status, and download the final CSV/JSON file.

## Use Cases

### Need to Audit Contact Records
The CS lead needs to verify if the Marketing team updated the contact database. Instead of clicking through the Directory, they ask their agent to run `list_directory_contacts`. The agent instantly returns a list, allowing the lead to confirm records are current.

### Launching a New Research Campaign
A market researcher needs to launch 'Q3 Product Feedback'. They first use `create_survey` to build the structure. Then, they call `list_directory_contacts` to pull in the target list and finally run `create_distribution` to send it out immediately.

### Pulling Raw Data for a Dashboard
The data analyst needs all responses from 'Employee Engagement' (ID: SV_456). They tell the agent to execute `create_response_export`. The agent initiates the job, and later they check status using `get_export_progress` until it’s ready for download via `get_export_file`.

### Setting up Automated Triggers
The product manager wants to know when a survey is completed so the system can send a follow-up email. They use `create_event_subscription` to set up a webhook listener, making their workflow react automatically without any manual intervention.

## Benefits

- Stop manually navigating the Qualtrics UI to check status. Use `list_surveys` or `get_survey` to get all survey metadata instantly, right in your chat window.
- You can automate contact maintenance. Instead of logging into a directory panel, just tell your agent to run `create_contact` or update records with `update_contact`.
- Data exports used to take multiple clicks and manual downloads. Now, use `create_response_export`, monitor progress with `get_export_progress`, and grab the file using `get_export_file`. It's a clean sequence.
- Need to build a reactive workflow? Use `create_event_subscription` to set up webhooks based on survey activities. This hooks your system into Qualtrics without custom coding.
- Managing multiple audiences is simple. You can list available distributions (`list_distributions`) or create entirely new ones using `create_distribution` in a single flow.

## How It Works

The bottom line is: you manage complex XM workflows by talking to your AI client instead of clicking through web interfaces.

1. Subscribe to the server and enter your Qualtrics API Token and Datacenter ID.
2. Use your AI client to issue a command (e.g., 'List all surveys').
3. The agent calls the appropriate tool, retrieves the data, and reports it back in plain text.

## Frequently Asked Questions

**How do I list all my surveys using list_surveys?**
You just ask your agent to run `list_surveys`. It retrieves every survey in your account and lists their IDs, titles, and statuses. This is the quickest way to get a full inventory.

**Is there a tool for updating contacts after listing directory contacts?**
Yes. After you use `list_directory_contacts` to see who's in your directory, you can then pass those IDs and the new data points to `update_contact`.

**What is the sequence for getting an export file?**
First, run `create_response_export`. Then, periodically check progress using `get_export_progress`. Once it says 'complete', call `get_export_file` to download the data.

**Can I create a survey without knowing its ID first?**
Yes. You use `create_survey`. This tool handles the entire build process and returns the new survey's unique ID immediately, letting you reference it for distributions or exports.

**How do I use `create_event_subscription` to build a reactive workflow?**
It establishes a webhook endpoint that triggers based on specific survey activities. You define the desired event (e.g., completion or response change) and payload data. This lets your agent react immediately when an action happens, bypassing manual monitoring.

**How can I check the status of multiple campaigns using `list_distributions`?**
It pulls a list of all current distributions linked to a survey ID. For each entry, you'll see the channel, start date, and completion status. This lets you track which groups received the survey without needing individual IDs.

**What happens if I need to correct a contact record using `update_contact`?**
It overwrites the existing data for that specific contact ID in the directory. Be careful: ensure you supply all necessary fields, or parts of their profile might get wiped out accidentally.

**Before I use `update_survey`, how do I preview the current metadata using `get_survey`?**
`get_survey` pulls a full snapshot of the survey's details, including questions and settings. This is key for verifying structure before you modify it with `update_survey`. It prevents accidental loss or change to critical fields.

**How can I export survey responses using the AI?**
You can use the `create_response_export` tool to start the process. Then, use `get_export_progress` to check when it's ready, and finally `get_export_file` to retrieve the data.

**Can I create a new survey directly through the agent?**
Yes! Use the `create_survey` tool by providing a name, and optionally the language and project category. The agent will return the new Survey ID for you.

**Is it possible to manage my XM Directory contacts?**
Absolutely. You can use `list_directory_contacts` to see existing members and `create_contact` or `update_contact` to modify your directory information.