Qualtrics Destination Config Reference
Beta- free
- growth
- enterprise
6 minute read
Qualtrics is a device mode destination for website and app feedback surveys. RudderStack loads Qualtrics’ intercept code in the browser and passes it the names of page and track events. In Android and iOS apps, it loads Qualtrics’ SDK and sets identify traits on it, so your intercepts can target users by what they do and who they are.
In a Qualtrics destination spec:
type: qualtricsdefinition_version: 1
Sample configuration
version: rudder/v1
kind: destination
metadata:
name: qualtrics-prod
spec:
id: qualtrics-prod
display_name: Qualtrics Production
type: qualtrics
definition_version: 1
enabled: true
config:
project_id: "{{ .QUALTRICS_PROJECT_ID }}"
brand_id: acmecorp
enable_generic_page_title:
web: false
event_filtering:
blacklist:
- Product Viewed
connection_mode:
web: device
android: device
ios: device
consent_management:
web:
- provider: oneTrust
consents:
- analyticsThe above example connects web, Android, and iOS sources, all in device mode. enable_generic_page_title and event_filtering affect only the web integration — see Web settings and Event filtering.
Config keys
config accepts only the keys listed below. The shared config key rules cover unknown keys, defaults, and immutability.
Qualtrics runs only indevicemode. On web it acts onpageandtrackcalls, and passes their names to Qualtrics as events your intercepts can target. On Android and iOS it acts only onidentifycalls, and sets their string and number traits as Qualtrics properties for intercept targeting.
Connection
project_id
RequiredSecretType:
string
Description:
ID of the Qualtrics Website/App Feedback project whose intercepts RudderStack loads, such as ZN_blw7AbCTWxCGung. It’s listed under the project’s Project IDs settings, next to the brand ID.
Notes:
- Used on web, Android, and iOS.
- Rudder CLI checks only that it’s present.
Supply it as a {{ .VAR }} reference rather than a literal — see Secrets.
brand_id
RequiredType:
string
Description: ID of your organization’s Qualtrics brand, listed with the project ID.
Notes:
- Used on web, Android, and iOS.
- Rudder CLI checks only that it’s present.
Web settings
enable_generic_page_title
Type:
object
Description:
Send every page call to Qualtrics as Viewed a Page, instead of a name built from the call’s category and name.
Notes:
web— boolean. The dashboard defaults it tofalse; Rudder CLI doesn’t fill it in.- Applies to
websources indevicemode — the Android and iOS integrations ignorepagecalls.webis the only key the object accepts.
When false or unset, a page call is sent as Viewed <category> <name> Page, or Viewed <name> Page when it has no category, so give your page calls a name. The category comes from the call’s category, or from properties.category. A call with neither a name nor a category isn’t sent.
enable_generic_page_title:
web: trueSee Page.
Event filtering
Client-side event filtering is applied by the SDK, and every source connects to Qualtrics in device mode. It changes nothing for Android and iOS sources, though: their Qualtrics integrations act only on identify calls, which aren’t filtered.
event_filtering
Type:
object
Description:
Restricts which track events the SDK passes to Qualtrics, by event name. page calls aren’t filtered.
Notes:
whitelist— array of event names to allow; every othertrackevent is dropped.blacklist— array of event names to drop; every othertrackevent is allowed.- The two are mutually exclusive, and Rudder CLI enforces it — setting both fails validation.
- Each name is at most 100 characters, or a
{{ path || fallback }}template. - Omit the block entirely to filter nothing.
Per-source keys
Both keys are objects keyed by the local source type — the tokens listed under Source types. A key naming a source type this destination doesn’t support fails validation.
connection_mode
Type:
object
Description:
Maps each source type you connect to the mode its events reach Qualtrics in. Qualtrics accepts only device, for web, android, and ios.
Notes:
- An entry is required for each source type you connect — see Connect a source.
- Any other mode fails validation — for example
cloudforweb.
connection_mode:
web: device
android: device
ios: deviceconsent_management
Type:
object
Description:
Consent provider configuration per source type. The entry shape, accepted providers, and the rules on resolution_strategy and consents are shared across all destination types — see Consent management.
Source types
Qualtrics accepts events from these source types in the mentioned connection modes:
| Source type | Connection mode |
|---|---|
web | device |
android | device |
ios | device |
Every source type is device only — RudderStack loads Qualtrics’ own code in the browser or app, and no events pass through RudderStack’s servers. The Kotlin and Swift SDKs — android_kotlin and ios_swift — aren’t supported. See Adding device mode integration.
Connect a source
An event stream connection to this destination is checked against two rules at validate time.
The source’s type must be supported. Qualtrics accepts web, android, and ios — the types JavaScript, Android, and iOS SDK sources resolve to. Every other source resolves to a type it doesn’t accept — an iOS Swift source to ios_swift, an Android Kotlin source to android_kotlin, and webhook and server-side SDK sources to cloud — and reports, for example:
destination 'qualtrics-prod' (type 'qualtrics') does not support source 'my-swift-app':
source type 'ios_swift' is not among supported source types: web, android, iosThe destination config must carry a connection_mode entry for that source type. This lives on the destination spec, not on the connection spec. Without it:
destination 'qualtrics-prod' config has no 'connection_mode' entry for source type 'web'Qualtrics needs no additional config keys to connect a source of any supported type.
Secrets
project_id is the only secret key. Write it as a {{ .VAR }} reference and supply the value at apply time:
config:
project_id: "{{ .QUALTRICS_PROJECT_ID }}"export RUDDER_QUALTRICS_PROJECT_ID="..."
rudder-cli apply
# or
rudder-cli apply --var-file secrets.vars.yamlNote that:
rudder-cli importwrites only the secrets the API returns, as{{ .VAR }}references, and leaves the others out. Add any secret key it leaves out, then supply the variables before you apply — see Secrets.- On web, the project ID is part of the intercept code’s URL in the page, so masking it protects your YAML, not the value itself.
See How to Use Variable Substitution in Rudder CLI.
Changes by release
No changes since this type became available.
For changes across every destination type, see Destination Type Changes by Release.
See more
- Qualtrics Destination for finding the project and brand IDs, and how
page,track, andidentifycalls reach Qualtrics - Destination Type Reference for Rudder CLI for the rules shared across destination types
- Destination YAML Reference for the spec envelope