> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mavera.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Qualtrics

> Integrate Mavera with Qualtrics — enterprise survey persona libraries, brand tracker enrichment, employee experience personas, and CX focus groups

## Overview

Pull data from **Qualtrics** (Survey Responses, Brand Tracker Data, Employee Experience, CX Surveys) → analyze with **Mavera** (Custom Personas, Focus Groups, Mave Agent, Chat) → build enterprise-grade persona libraries from survey exports, enrich brand tracking with competitive intelligence, create internal personas from engagement data, and diagnose CX pain points with synthetic focus groups.

<Info>
  **Qualtrics API** — Base URL: `https://{datacenterid}.qualtrics.com/API/v3/`. Auth: API Token via `X-API-TOKEN` header or OAuth 2.0. Rate limits: **\~60 req/min** (varies by license tier). Response exports use an async pattern (create → check → download).
</Info>

***

## Prerequisites

<Steps>
  <Step title="Qualtrics API token">Generate an API token from [Account Settings → Qualtrics IDs](https://www.qualtrics.com/support/integrations/api-integration/overview/). Note your **Datacenter ID** (e.g., `ca1`, `iad1`, `fra1`).</Step>
  <Step title="Mavera API key">Get your key from [Mavera dashboard](https://app.mavera.io/settings/api-keys).</Step>

  <Step title="Environment variables">
    ```bash theme={"dark"}
    export QUALTRICS_TOKEN="your_api_token"
    export QUALTRICS_DC="ca1"
    export MAVERA_API_KEY="mvra_live_xxxxx"
    ```
  </Step>
</Steps>

***

## Jobs

| # | Job                                                                   | Qualtrics Data               | Mavera Surface          | Output                        |
| - | --------------------------------------------------------------------- | ---------------------------- | ----------------------- | ----------------------------- |
| 1 | [Enterprise Survey → Persona Library](enterprise-persona-library)     | Full response export (async) | Mave + Personas         | Comprehensive persona library |
| 2 | [Brand Tracker Data → Competitive Analysis](brand-tracker-analysis)   | Brand tracking survey        | Mave (web search)       | Market dynamics research      |
| 3 | [Employee Experience → Internal Personas](employee-internal-personas) | eNPS + engagement            | Personas + Focus Groups | Internal comms testing        |
| 4 | [CX Survey → Product Focus Group](cx-product-focus-group)             | CX scores by touchpoint      | Focus Groups            | Touchpoint improvement plan   |

***

***

## Priority Ranking

1. **Onboarding (5.8/10)** — Fix first. Drives 64% of low scores.
   Downstream impact: poor onboarding correlates with -15 NPS at renewal.
2. **Billing (6.3/10)** — Fix second. 48% dissatisfied, but lower
   downstream churn impact than onboarding.

## Quick Wins (2 weeks)

1. Create 5-step onboarding checklist (interactive, in-product)
2. Add 3 pre-built templates for top use cases
3. Auto-schedule 1:1 onboarding call at signup
4. Simplify billing page — remove jargon, add cost calculator

## Medium-Term (1-3 months)

1. Build guided product tour (interactive, context-aware)
2. Implement onboarding health score (trigger CS intervention)
3. Redesign invoice format based on billing complaints

## Estimated NPS Impact

Fixing onboarding to 8/10: +8-12 NPS points
Fixing billing to 8/10: +3-5 NPS points
Combined: +11-17 NPS points (est.)

```

### Error Handling

<AccordionGroup>
  <Accordion title="Touchpoint column naming">CX surveys use custom column names for each touchpoint. Set via env vars (`COL_ONBOARDING`, etc.) or update the `TOUCHPOINTS` dict. Default names assume `CX_` prefix.</Accordion>
  <Accordion title="Comment columns">The code looks for `{column}_Comment` fields. If your survey uses a different naming pattern, adjust the comment column lookup.</Accordion>
  <Accordion title="All touchpoints above threshold">If all scores are above 7/10, the focus group step is skipped. Adjust `THRESHOLD` to target your desired improvement level.</Accordion>
  <Accordion title="Sequential focus groups per touchpoint">Each low-scoring touchpoint gets its own focus group (separate call). With 3 low touchpoints × 6 questions, expect 3-5 minutes. Parallelize with `asyncio`/`Promise.all` if needed.</Accordion>
</AccordionGroup>

---

## Rate Limits & Production Notes

| Endpoint | Limit | Strategy |
|----------|-------|----------|
| Survey details | ~60 req/min | Cache locally |
| Response exports (create) | ~60 req/min | One at a time |
| Export polling | ~60 req/min | 5s intervals |
| File download | No specific limit | Single call per export |

<Warning>
Qualtrics rate limits vary by license tier. Enterprise plans may have higher limits. The async export pattern is the only way to retrieve large response sets — direct `/responses` endpoints are limited to 100 at a time. Always use exports for surveys with 500+ responses.
</Warning>

**Production checklist:**

- Store `QUALTRICS_TOKEN`, `QUALTRICS_DC`, and `MAVERA_API_KEY` in a secrets manager.
- Note your **Datacenter ID** — using the wrong one returns 404 on all calls.
- Cache exported CSV files locally. Qualtrics exports are expensive (rate-limited, slow for large surveys). Don't re-export data that hasn't changed.
- For CX jobs, configure touchpoint column names via env vars to match your survey structure.
- JavaScript implementations need `jszip` (`npm install jszip`) for ZIP decompression.
- Monitor Mavera credits at [Dashboard](https://app.mavera.io/settings/usage).

---

<CardGroup cols={3}>
  <Card title="All Integrations" icon="plug" href="/integrations" />
  <Card title="Qualtrics API" icon="building-columns" href="https://api.qualtrics.com/" />
  <Card title="Personas" icon="user" href="/features/personas" />
  <Card title="Focus Groups" icon="users" href="/features/focus-groups" />
  <Card title="Mave Agent" icon="brain" href="/features/mave-agent" />
  <Card title="Generate" icon="wand-magic-sparkles" href="/features/generate" />
</CardGroup>
```
