Skip to main content
Qualtrics

Qualtrics

Discover Qualtrics experience management data including surveys, responses, projects, and distributions.

  • Entities: Surveys, Responses, Projects, Directories, Distributions
  • Relationships: Links survey data to customers, products, and support systems
  • Discovery: Automated polling-based discovery via API token
  • MCP Support: Query Qualtrics data via Model Context Protocol

Survey definitions and configurations.

Spec fields:

  • id: Survey ID
  • name: Survey name
  • description: Survey description
  • owner_id: Survey owner
  • brand_id: Brand ID
  • is_active: Active status
  • creation_date: Creation timestamp
  • last_modified: Last modified timestamp
  • expiration: Expiration settings

Labels:

  • name: Survey name
  • status: Active/Inactive
  • owner: Owner ID

Projects that organize surveys and data.

Spec fields:

  • id: Project ID
  • name: Project name
  • creation_date: Creation date
  • owner_id: Project owner

Labels:

  • name: Project name
  • owner: Owner ID

Individual survey responses.

Spec fields:

  • id: Response ID
  • survey_id: Associated survey
  • recorded_date: Response timestamp
  • status: Response status (Complete, Partial)
  • progress: Completion percentage
  • duration: Response duration in seconds
  • finished: Completion status
  • response_data: Survey answers (key-value pairs)

Labels:

  • status: Response status
  • survey: Survey ID

Contact directories for survey distribution.

Spec fields:

  • id: Directory ID
  • name: Directory name
  • is_default: Default directory flag

Labels:

  • name: Directory name

Survey distribution campaigns.

Spec fields:

  • id: Distribution ID
  • survey_id: Associated survey
  • owner_id: Distribution owner
  • created_date: Creation date
  • send_date: Scheduled send date
  • method: Distribution method (Email, SMS, Anonymous)
  • message: Distribution message

Labels:

  • method: Distribution method
  • survey: Survey ID
SourceRelationTargetDescription
QualtricsSurveyPART_OFQualtricsProjectSurvey's project
QualtricsResponseFOR_SURVEYQualtricsSurveyResponse's survey
QualtricsDistributionDISTRIBUTESQualtricsSurveyDistribution campaign
QualtricsDistributionUSES_DIRECTORYQualtricsDirectoryContact source
SourceRelationTargetDescription
QualtricsResponseFROM_CUSTOMERSalesforceAccountCustomer feedback
QualtricsResponseABOUT_PRODUCTMetaServiceProduct feedback
QualtricsSurveyTRIGGERED_BYSalesforceCasePost-case survey
QualtricsResponseCREATESJiraIssueNegative feedback → ticket
QualtricsResponseFROM_USERHubSpotContactContact feedback
discovery:
enabled: true
settings:
api_token: "YOUR_QUALTRICS_API_TOKEN"
datacenter: "yourdatacenterid" # e.g., ca1, fra1, syd1

# Optional settings
include_surveys: true
include_projects: true
include_responses: false # Can generate large volumes of data
include_directories: true
include_distributions: true

max_surveys: 100 # 0 = unlimited
max_responses_per_survey: 1000 # 0 = unlimited
mcp:
enabled: true
settings:
api_token: "YOUR_QUALTRICS_API_TOKEN"
datacenter: "yourdatacenterid"
  1. Log into Qualtrics
  2. Click on your profile (top right)
  3. Go to Account Settings → Qualtrics IDs
  4. Click "Generate Token" under API section
  5. Copy the API token

Your datacenter ID is in your Qualtrics URL:

  • https://yourdatacenterid.qualtrics.com
  • Common values: ca1, fra1, syd1, az1, etc.

The API token needs:

  • Read access to Surveys
  • Read access to Responses (if collecting response data)
  • Read access to Projects
  • Read access to Directories
degree discovery run [email protected] --config qualtrics-config.yaml

Query: "Show all negative NPS responses from enterprise customers"

QualtricsResponse[nps_score<7] → FROM_CUSTOMER → SalesforceAccount[type="Enterprise"]

Query: "Which product features have the lowest satisfaction scores?"

QualtricsResponse[satisfaction<3] → ABOUT_PRODUCT → MetaService

Query: "Create Jira tickets for survey responses with negative sentiment"

QualtricsResponse[sentiment="negative"] → CREATES → JiraIssue

Query: "Link support cases to follow-up satisfaction surveys"

SalesforceCase[status="Closed"] → TRIGGERED → QualtricsSurvey → FOR_SURVEY → QualtricsResponse

Query: "Which distribution methods have the highest response rates?"

QualtricsDistribution → DISTRIBUTES → QualtricsSurvey ← FOR_SURVEY ← QualtricsResponse
(calculate response rate by distribution method)

Query: "Track customer feedback across their entire lifecycle"

HubSpotContact → SUBMITTED → QualtricsResponse → FOR_SURVEY → QualtricsSurvey[survey_type=X]

Qualtrics API rate limits (by plan):

  • Standard: 20 requests per minute
  • Enterprise: 60 requests per minute
  • Burst: Up to 200 requests per minute (temporary)

The molecule implements:

  • Automatic rate limiting with backoff
  • Efficient pagination for large datasets
  • Request queuing to stay within limits
MATCH (s:QualtricsSurvey {is_active: true})
RETURN s
MATCH (s:QualtricsSurvey)<-[:FOR_SURVEY]-(r:QualtricsResponse)
RETURN s.name, COUNT(r) AS response_count
ORDER BY response_count DESC
MATCH (r:QualtricsResponse {status: "Complete"})
WHERE r.recorded_date > date() - duration({days: 30})
RETURN COUNT(r) AS recent_responses
MATCH (d:QualtricsDistribution)-[:DISTRIBUTES]->(s:QualtricsSurvey)
MATCH (s)<-[:FOR_SURVEY]-(r:QualtricsResponse)
RETURN d.method, COUNT(r) AS responses
ORDER BY responses DESC

Match by email or custom field:

MATCH (r:QualtricsResponse)
MATCH (a:SalesforceAccount)
WHERE r.customer_email IN [contact emails for account]
CREATE (r)-[:FROM_CUSTOMER]->(a)

Match by survey metadata:

MATCH (s:QualtricsSurvey)
MATCH (svc:MetaService)
WHERE s.name CONTAINS svc.name
CREATE (s)-[:ABOUT_PRODUCT]->(svc)
  • Verify API token is valid and not expired

  • Check that datacenter ID matches your Qualtrics URL

  • Ensure token hasn't been revoked

  • Check include_* settings are enabled

  • Verify API token has required permissions

  • Ensure entities exist in your Qualtrics account

  • Reduce discovery frequency

  • Use max_surveys and max_responses_per_survey limits

  • Disable response collection if not needed (include_responses: false)

  • Upgrade to higher Qualtrics plan tier

  • Set max_responses_per_survey to reasonable limit

  • Consider filtering responses by date range

  • Use incremental sync for recurring discoveries

┌──────────────────┐
│ Qualtrics API │
│ (REST v3) │
└────────┬─────────┘

│ HTTPS
│ API Token

┌────────▼─────────┐
│ Qualtrics │
│ Molecule │
│ - Surveys │
│ - Responses │
│ - Projects │
│ - Distributions │
└────────┬─────────┘

│ gRPC

┌────────▼─────────┐
│ SixDegree │
│ Knowledge Graph │
└──────────────────┘
  1. Link to Salesforce: Connect survey responses to CRM data
  2. Connect to Jira: Auto-create tickets from negative feedback
  3. Integrate with Products: Track feature satisfaction scores
  4. Link to HubSpot: Sync contact feedback data
  5. Add Custom Questions: Map custom survey questions to graph properties

If you have hundreds of surveys:

  • Set max_surveys to focus on active or recent surveys
  • Consider filtering by project or brand
  • Use survey name patterns to select relevant surveys

Survey responses can be very large:

  • Set include_responses: false if you only need survey metadata

  • Use max_responses_per_survey to limit volume

  • Consider storing only aggregate metrics instead of individual responses

  • Filter responses by completion status or date range

  • Disable entity types you don't need

  • Focus on completed responses only

  • Run discovery during off-peak hours for large datasets

Qualtrics responses include:

  • Metadata: Response ID, timestamp, status, duration
  • Survey answers: Question responses as key-value pairs
  • Embedded data: Custom data passed during distribution
  • Location data: IP-based location (if enabled)
  • User agent: Browser/device information

You can extract specific question responses and map them to graph properties for analysis.