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

# Survey & CX Platforms

> Connect Qualtrics, Medallia, SurveyMonkey, Intercom, Salesforce, Zendesk and more for automatic daily sync

Connect your survey or CX platforms directly to Caplena to import feedback automatically. These integrations use authenticated API access to pull new responses daily, so you can analyze open-ended feedback without manual exports.

## Brandwatch

Our Brandwatch integration allows you to seamlessly import social media query results directly into Caplena for analysis.

<Steps>
  <Step title="Open Integrations Settings">
    Log in to your Caplena account. Navigate to **Account Settings → Integrations**. Select **Brandwatch** from the available options.

    <Note>
      [Here](/settings-administration/general-settings/general-settings-overview) you can find more info on the Settings page
    </Note>
  </Step>

  <Step title="Add Your Brandwatch Account">
    Click **Add Account** and fill in the following fields:

    <Frame>
      <img src="https://mintcdn.com/caplena-32172960/yBqlMChyrXLf7sRV/images/Screenshot-2026-05-26-at-08.39.23.png?fit=max&auto=format&n=yBqlMChyrXLf7sRV&q=85&s=d86300564fc955d5b148796ac64d7daa" alt="Screenshot 2026 05 26 At 08 39 23" className="mx-auto" style={{ width:"53%" }} width="604" height="572" data-path="images/Screenshot-2026-05-26-at-08.39.23.png" />
    </Frame>

    * **Connection name** – Give your connection a unique name
    * **Username** – Your Brandwatch username
    * **Password** – Your Brandwatch password
    * **Project name** – You can find this in your Brandwatch account
  </Step>

  <Step title="Connect the Account">
    Click **Add Integration** to authorize.
  </Step>

  <Step title="Import Brandwatch Data">
    Go to **Projects → Import Data → Brandwatch**. Choose the account and specific survey you'd like to import.

    <Frame>
      <img src="https://mintcdn.com/caplena-32172960/yBqlMChyrXLf7sRV/images/Screenshot-2026-05-26-at-08.38.17.png?fit=max&auto=format&n=yBqlMChyrXLf7sRV&q=85&s=36411afa8777d1088ad782ba5430fe7f" alt="Screenshot 2026 05 26 At 08 38 17" width="2494" height="1700" data-path="images/Screenshot-2026-05-26-at-08.38.17.png" />
    </Frame>
  </Step>
</Steps>

## Qualtrics

<Steps>
  <Step title="Access Integration Settings">
    Log in to your Caplena account. Navigate to **Account Settings → Integrations → Qualtrics**.

    <Note>
      [Here](/settings-administration/general-settings/general-settings-overview) you can find more info on the Settings page
    </Note>
  </Step>

  <Step title="Set Up OAuth in Qualtrics">
    Create an OAuth client in Qualtrics following the [official guide](https://api.qualtrics.com/). You'll receive a **Client ID** and **Client Secret**. Required scopes: `read:users`, `read:surveys`, `read:survey_responses`.
  </Step>

  <Step title="Fill in Connection Details">
    Click **Add Account** and complete:

    <Frame>
      <img src="https://mintcdn.com/caplena-32172960/yBqlMChyrXLf7sRV/images/Screenshot-2026-05-26-at-08.42.12.png?fit=max&auto=format&n=yBqlMChyrXLf7sRV&q=85&s=5901074f603e8f735c594d2f4a864d3c" alt="Screenshot 2026 05 26 At 08 42 12" className="mx-auto" style={{ width:"62%" }} width="1680" height="1600" data-path="images/Screenshot-2026-05-26-at-08.42.12.png" />
    </Frame>

    * **Connection Name** – A custom label (e.g. "Client A – Q Feedback")
    * **Client ID** – From your Qualtrics OAuth setup
    * **Client Secret** – From your Qualtrics OAuth setup
    * **Datacenter** – Found in Account Settings → Qualtrics IDs → User
  </Step>

  <Step title="Connect and Import">
    Click **Add Integration**. Then go to **Projects → Import Data → Qualtrics** and select the desired account and survey.

    <Frame>
      <img src="https://mintcdn.com/caplena-32172960/yBqlMChyrXLf7sRV/images/Screenshot-2026-05-26-at-08.48.34.png?fit=max&auto=format&n=yBqlMChyrXLf7sRV&q=85&s=039b9e1643baccc8e04f692071de6473" alt="Screenshot 2026 05 26 At 08 48 34" width="2578" height="1630" data-path="images/Screenshot-2026-05-26-at-08.48.34.png" />
    </Frame>
  </Step>
</Steps>

## Medallia

<Steps>
  <Step title="Access Integration Settings">
    Log in to your Caplena account. Navigate to **Account Settings → Integrations → Medallia**.

    <Note>
      [Here](/settings-administration/general-settings/general-settings-overview) you can find more info on the Settings page
    </Note>
  </Step>

  <Step title="Fill in Connection Details">
    Click **Add Integration** and complete:

    <Frame>
      <img src="https://mintcdn.com/caplena-32172960/yBqlMChyrXLf7sRV/images/Screenshot-2026-05-26-at-08.50.54.png?fit=max&auto=format&n=yBqlMChyrXLf7sRV&q=85&s=4bc6c84b9ea5fad5475e5e43012d895a" alt="Screenshot 2026 05 26 At 08 50 54" className="mx-auto" style={{ width:"68%" }} width="1376" height="1680" data-path="images/Screenshot-2026-05-26-at-08.50.54.png" />
    </Frame>

    * **Connection Name** – e.g. `Medallia_NPS_Q4_2025`
    * **Client ID** – Provided by your Medallia administrator
    * **Client Secret** – A secure key that works with your Client ID
    * **Token URL** – e.g. `https://login.medallia.com/oauth/token`
    * **Query** – The specific API endpoint to retrieve your feedback data

    If unsure about any values, contact your Medallia administrator.
  </Step>

  <Step title="Connect and Import">
    Click **Add Integration**. Then go to **Projects → Import Data → Medallia** and select the account.

    <Frame>
      <img src="https://mintcdn.com/caplena-32172960/LBtLOhisYGqoR6Y3/images/Screenshot-2026-05-26-at-09.34.22.png?fit=max&auto=format&n=LBtLOhisYGqoR6Y3&q=85&s=9cd9dc7717298fbe1ee63e59190a0e43" alt="Screenshot 2026 05 26 At 09 34 22" width="2366" height="1630" data-path="images/Screenshot-2026-05-26-at-09.34.22.png" />
    </Frame>
  </Step>
</Steps>

## QuestionPro

<Steps>
  <Step title="Get your API Key and User ID">
    Generate your API key using [QuestionPro's instructions](https://www.questionpro.com/help/customer-experience/generate-api-key-in-cx.html). Find your User/Customer ID under **My Account → Partner License**.

    <Frame>
      <img src="https://mintcdn.com/caplena-32172960/LBtLOhisYGqoR6Y3/images/Screenshot-2026-05-26-at-09.36.09.png?fit=max&auto=format&n=LBtLOhisYGqoR6Y3&q=85&s=5813f77282ebfa9f4b91bf1974bf9823" alt="Screenshot 2026 05 26 At 09 36 09" width="3274" height="1566" data-path="images/Screenshot-2026-05-26-at-09.36.09.png" />
    </Frame>
  </Step>

  <Step title="Connect in Caplena">
    Go to **Settings → Integrations → Add Integration → QuestionPro**. Fill in:

    <Frame>
      <img src="https://mintcdn.com/caplena-32172960/NehxgAej6tfGHgbW/images/Screenshot-2026-05-26-at-16.49.50.png?fit=max&auto=format&n=NehxgAej6tfGHgbW&q=85&s=afefab9d841f2759a51f7c9a65385993" alt="Screenshot 2026 05 26 At 16 49 50" className="mx-auto" style={{ width:"62%" }} width="600" height="584" data-path="images/Screenshot-2026-05-26-at-16.49.50.png" />
    </Frame>

    * **Connection name** – Any name to help you recognize the integration
    * **API key** – Paste the API key you generated
    * **User ID** – Paste your QuestionPro Customer ID
    * **Environment** – Choose Production unless using a sandbox

    Click **Add Integration**.
  </Step>
</Steps>

## SurveyMonkey

<Steps>
  <Step title="Create an App in SurveyMonkey">
    Go to the [SurveyMonkey Developer Portal](https://developer.surveymonkey.com/apps/). Click **Create App**, give it a name (e.g. "Caplena Integration"), and choose **Private App**.

    <Frame>
      <img src="https://mintcdn.com/caplena-32172960/NehxgAej6tfGHgbW/images/Screenshot-2026-05-26-at-16.55.24.png?fit=max&auto=format&n=NehxgAej6tfGHgbW&q=85&s=84e9cb3f27fc6017dfba99bc1b5f1065" alt="Screenshot 2026 05 26 At 16 55 24" width="2098" height="1724" data-path="images/Screenshot-2026-05-26-at-16.55.24.png" />
    </Frame>
  </Step>

  <Step title="Configure Scopes">
    Open the app settings and under **Scopes**, enable at minimum the required read scopes.

    <Frame>
      <img src="https://mintcdn.com/caplena-32172960/NehxgAej6tfGHgbW/images/Screenshot-2026-05-26-at-16.56.47.png?fit=max&auto=format&n=NehxgAej6tfGHgbW&q=85&s=263c903e624bb84962452d77149599ed" alt="Screenshot 2026 05 26 At 16 56 47" width="2134" height="180" data-path="images/Screenshot-2026-05-26-at-16.56.47.png" />
    </Frame>
  </Step>

  <Step title="Generate and Copy Your Access Token">
    In the app menu, go to **Credentials → Generate Access Token**. Copy the token — you'll need it in Caplena.

    <Frame>
      <img src="https://mintcdn.com/caplena-32172960/NehxgAej6tfGHgbW/images/Screenshot-2026-05-26-at-16.57.56.png?fit=max&auto=format&n=NehxgAej6tfGHgbW&q=85&s=3b7c75df7b046d3a799399ace5c51b89" alt="Screenshot 2026 05 26 At 16 57 56" width="3198" height="1300" data-path="images/Screenshot-2026-05-26-at-16.57.56.png" />
    </Frame>
  </Step>

  <Step title="Connect in Caplena">
    Go to **Integrations → SurveyMonkey**, paste the Access Token, and save.

    <Frame>
      <img src="https://mintcdn.com/caplena-32172960/NehxgAej6tfGHgbW/images/Screenshot-2026-05-26-at-16.59.39.png?fit=max&auto=format&n=NehxgAej6tfGHgbW&q=85&s=20171b5de2b61ab358adef3a56af9758" alt="Screenshot 2026 05 26 At 16 59 39" width="3242" height="1196" data-path="images/Screenshot-2026-05-26-at-16.59.39.png" />
    </Frame>
  </Step>
</Steps>

## SurveySparrow

<Steps>
  <Step title="Generate an API Key in SurveySparrow">
    Create a private app in your SurveySparrow account to get an API key — follow the [official guide](https://developers.surveysparrow.com/rest-apis/OAuth). Required scopes: `view_survey`, `view_questions`.<br /><br />

    <img src="https://mintcdn.com/caplena-32172960/vD5wIO6psbVZnfmn/images/Screenshot-2026-09-15-at-16.05.10-1.png?fit=max&auto=format&n=vD5wIO6psbVZnfmn&q=85&s=1df1fb45c8e64cf6fbba152075cffd1a" alt="Screenshot 2026 09 15 At 16 05 10 1" width="1840" height="1604" data-path="images/Screenshot-2026-09-15-at-16.05.10-1.png" />
  </Step>

  <Step title="Connect in Caplena">
    Go to **Settings → Integrations → Add Integration → SurveySparrow**. Fill in:

    <Frame>
      <img src="https://mintcdn.com/caplena-32172960/vD5wIO6psbVZnfmn/images/Screenshot-2026-09-15-at-16.06.27.png?fit=max&auto=format&n=vD5wIO6psbVZnfmn&q=85&s=1dd97d757d7828a0831300fe15c607d8" alt="SurveySparrow connection form" className="mx-auto" style={{ width:"62%" }} width="954" height="764" data-path="images/Screenshot-2026-09-15-at-16.06.27.png" />
    </Frame>

    * **Connection name** – Any name to help you recognize this connection
    * **API key** – The key generated in your SurveySparrow private app
    * **Datacenter** – Your SurveySparrow account's region (e.g. `us`)

    Click **Add Integration**.
  </Step>

  <Step title="Import Data">
    Go to **Projects → Import Data → SurveySparrow** and select the survey to import.

    <img src="https://mintcdn.com/caplena-32172960/vD5wIO6psbVZnfmn/images/Screenshot-2026-09-15-at-16.37.52.png?fit=max&auto=format&n=vD5wIO6psbVZnfmn&q=85&s=34b74ac832742b91ec9e58431e03dd12" alt="Screenshot 2026 09 15 At 16 37 52" width="2116" height="1550" data-path="images/Screenshot-2026-09-15-at-16.37.52.png" />
  </Step>
</Steps>

## Google Cloud Storage (GCS)

Connect a file stored in GCS so your project refreshes automatically overnight.

<Steps>
  <Step title="Set Up Google Cloud Storage">
    Complete the following in Google Cloud:

    * [Create a bucket](https://cloud.google.com/storage/docs/creating-buckets)
    * [Create a Service Account and JSON Key](https://cloud.google.com/iam/docs/service-accounts-create)
    * [Grant the Service Account access to your bucket](https://cloud.google.com/storage/docs/access-control/using-iam-permissions)
    * Copy your file's GCS URI (e.g. `gs://your-bucket-name/path/to/file.csv`)

    Supported formats: `.csv` and `.parquet`. Your file must include an identifier column and a date column.
  </Step>

  <Step title="Set Up Google Cloud Storage">
    Complete the following in Google Cloud:

    * [Create a bucket](https://cloud.google.com/storage/docs/creating-buckets)
    * [Create a Service Account and JSON Key](https://cloud.google.com/iam/docs/service-accounts-create)
    * [Grant the Service Account access to your bucket](https://cloud.google.com/storage/docs/access-control/using-iam-permissions)
    * Copy your file's GCS URI (e.g. `gs://your-bucket-name/path/to/file.csv`)

    Supported formats: `.csv` and `.parquet`. Your file must include an identifier column. On each sync, Caplena scans the full file and imports any new rows.
  </Step>

  <Step title="Connect in Caplena">
    Go to **Integrations → Add Integration → Google Storage File (GStorageFile)**. Fill in:

    <Frame>
      <img src="https://mintcdn.com/caplena-32172960/NehxgAej6tfGHgbW/images/Screenshot-2026-05-26-at-17.00.35.png?fit=max&auto=format&n=NehxgAej6tfGHgbW&q=85&s=9e0d439caa44a306f846e55772aae946" alt="Screenshot 2026 05 26 At 17 00 35" className="mx-auto" style={{ width:"67%" }} width="814" height="498" data-path="images/Screenshot-2026-05-26-at-17.00.35.png" />
    </Frame>

    * **Connection name** – Any name to help you recognize this connection
    * **Credentials** – Paste the entire JSON content of your service account key (do not upload a file — paste the JSON text)

    Click **Add Integration**.
  </Step>

  <Step title="Configure Data Import">
    <Frame>
      <img src="https://mintcdn.com/caplena-32172960/NehxgAej6tfGHgbW/images/Screenshot-2026-05-26-at-17.02.32.png?fit=max&auto=format&n=NehxgAej6tfGHgbW&q=85&s=36f1ba9c8b8e24d1185c66245c27e6ba" alt="Screenshot 2026 05 26 At 17 02 32" width="2192" height="1714" data-path="images/Screenshot-2026-05-26-at-17.02.32.png" />
    </Frame>

    * **Account** – Select the integration you just created
    * **File URL** – Paste your `gs://` file URI
    * **Identifier column name** – The column that uniquely identifies each row (e.g. `id`, `response_id`)
    * **Date column name** – The date/timestamp column used to detect new data (e.g. `created_at`)
    * **Source name** (optional) – A label that will appear in your project
  </Step>

  <Step title="Configure Data Import">
    <Frame>
      <img src="https://mintcdn.com/caplena-32172960/NehxgAej6tfGHgbW/images/Screenshot-2026-05-26-at-17.02.32.png?fit=max&auto=format&n=NehxgAej6tfGHgbW&q=85&s=36f1ba9c8b8e24d1185c66245c27e6ba" alt="Screenshot 2026 05 26 At 17 02 32" width="2192" height="1714" data-path="images/Screenshot-2026-05-26-at-17.02.32.png" />
    </Frame>

    * **Account** – Select the integration you just created
    * **File URL** – Paste your `gs://` file URI
    * **Identifier column names** – One or more columns that together uniquely identify each row (e.g. `id`, `response_id`). Caplena uses these to detect new rows on each sync. To use multiple columns, enter them as a comma-separated list (e.g. `respondent_id, submitted_at`).
    * **Source name** (optional) – A label that will appear in your project
  </Step>
</Steps>

## Azure Blob Storage

Connect a file stored in Azure Blob Storage so your project refreshes automatically overnight.

<Steps>
  <Step title="Generate a Connection String in Azure">
    In the [Azure Portal](https://portal.azure.com), open your **Storage account → Containers** and select the container that holds your file. Open **Shared access tokens** and configure:

    * **Permissions** – Enable **Read**
    * **Allowed protocols** – Select **HTTPS only**
    * **Expiry** – Set an expiration date that fits your sync schedule
    * Click **Generate SAS token and URL**

    From the result, build a connection string in the form:

    ```text theme={null}
    BlobEndpoint=https://<your-account>.blob.core.windows.net/;SharedAccessSignature=<sas-token>
    ```

    Use the **Blob service SAS URL** for the `BlobEndpoint` value (without the SAS query string) and the **SAS token** (without the leading `?`) for `SharedAccessSignature`.

    Supported formats: `.csv` and `.parquet`. Your file must include an identifier column. On each sync, Caplena scans the full file and imports any new rows.
  </Step>

  <Step title="Connect in Caplena">
    Go to **Integrations → Add Integration → Azure Blob**. Fill in:

    * **Connection name** – Any name to help you recognize this connection
    * **Connection string** – Paste the `BlobEndpoint=...;SharedAccessSignature=...` string built in the previous step

    Click **Add Integration**.
  </Step>

  <Step title="Configure Data Import">
    Go to **Projects → Import Data → Azure Blob** and fill in:

    * **Account** – Select the integration you just created
    * **Blob URL** – The full URL to your blob (e.g. `https://<your-account>.blob.core.windows.net/<container>/path/to/file.csv`)
    * **Identifier column names** – One or more columns that together uniquely identify each row (e.g. `id`, `response_id`). Caplena uses these to detect new rows on each sync. To use multiple columns, enter them as a comma-separated list (e.g. `respondent_id, submitted_at`).
    * **Source name** (optional) – A label that will appear in your project
  </Step>
</Steps>

## Amazon S3

Connect a file stored in Amazon S3 so your project refreshes automatically overnight.

<Steps>
  <Step title="Set Up Amazon S3">
    Complete the following in AWS:

    * [Create a bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html)
    * [Create an IAM user](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html) with a policy that grants read access to your bucket (e.g. `s3:GetObject` and `s3:ListBucket` scoped to the bucket ARN)
    * [Create an access key](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html) for that IAM user — under the user's **Security credentials** tab, choose **Create access key**, then **Third-party service** as the use case
    * Copy your file's S3 URI (e.g. `s3://your-bucket-name/path/to/file.csv`)

    Supported formats: `.csv` and `.parquet`. Your file must include an identifier column. On each sync, Caplena scans the full file and imports any new rows.

    <Warning>
      The secret access key is only shown once, at creation time, copy it immediately, since AWS won't display it again.
    </Warning>
  </Step>

  <Step title="Connect in Caplena">
    Go to **Integrations → Add Integration → Amazon S3**. Fill in:

    * **Connection name** – Any name to help you recognize this connection
    * **Access Key ID** – From the access key you created
    * **Secret Access Key** – From the access key you created
    * **Region** – The AWS region your bucket is in (e.g. `us-east-1`)

    <img src="https://mintcdn.com/caplena-32172960/q8XOFwQhNe4cGVz0/images/Screenshot-2026-09-15-at-17.53.41-1.png?fit=max&auto=format&n=q8XOFwQhNe4cGVz0&q=85&s=b138cfeb5dced736676adc95300a041f" alt="Screenshot 2026 09 15 At 17 53 41 1" title="Screenshot 2026 09 15 At 17 53 41 1" className="mr-auto" style={{ width:"75%" }} width="956" height="924" data-path="images/Screenshot-2026-09-15-at-17.53.41-1.png" />

    Click **Add Integration**.
  </Step>

  <Step title="Configure Data Import">
    Go to **Projects → Import Data → Amazon S3** and fill in:

    * **Account** – Select the integration you just created
    * **File URL** – Paste your `s3://` file URI
    * **Identifier column names** – One or more columns that together uniquely identify each row (e.g. `id`, `response_id`). Caplena uses these to detect new rows on each sync. To use multiple columns, enter them as a comma-separated list (e.g. `respondent_id, submitted_at`).
    * **Source name** (optional) – A label that will appear in your project

          <img src="https://mintcdn.com/caplena-32172960/q8XOFwQhNe4cGVz0/images/Screenshot-2026-09-15-at-17.57.10-1.png?fit=max&auto=format&n=q8XOFwQhNe4cGVz0&q=85&s=d4f8f9978f62e1369068be7c3cc45a6d" alt="Screenshot 2026 09 15 At 17 57 10 1" width="1944" height="1424" data-path="images/Screenshot-2026-09-15-at-17.57.10-1.png" />
  </Step>
</Steps>

## Decipher

<Steps>
  <Step title="Generate Your Decipher API Key">
    In your Decipher account, open the user menu (top right) → **API Access → Create API key**.

    <Frame>
      <img src="https://mintcdn.com/caplena-32172960/NehxgAej6tfGHgbW/images/Screenshot-2026-05-26-at-17.05.07.png?fit=max&auto=format&n=NehxgAej6tfGHgbW&q=85&s=4ab2a5fc5b7aeffe0ca7dcf21fce4df7" alt="Screenshot 2026 05 26 At 17 05 07" width="3252" height="868" data-path="images/Screenshot-2026-05-26-at-17.05.07.png" />
    </Frame>

    <Frame>
      <img src="https://mintcdn.com/caplena-32172960/NehxgAej6tfGHgbW/images/Screenshot-2026-05-26-at-17.06.16.png?fit=max&auto=format&n=NehxgAej6tfGHgbW&q=85&s=13f0c6e47de891e8741a5fa09c61cdf3" alt="Screenshot 2026 05 26 At 17 06 16" width="3228" height="806" data-path="images/Screenshot-2026-05-26-at-17.06.16.png" />
    </Frame>
  </Step>

  <Step title="Connect in Caplena">
    Navigate to **Account Settings → Integrations → Decipher**. Click **Add Account** and fill in:

    <Frame>
      <img src="https://mintcdn.com/caplena-32172960/ifJRCNAegqKy0Iq0/images/Screenshot-2026-05-26-at-17.07.26.png?fit=max&auto=format&n=ifJRCNAegqKy0Iq0&q=85&s=7985e2e18fea5aa782f79ff1e91c2f15" alt="Screenshot 2026 05 26 At 17 07 26" className="mx-auto" style={{ width:"67%" }} width="806" height="682" data-path="images/Screenshot-2026-05-26-at-17.07.26.png" />
    </Frame>

    * **Connection name** – e.g. "Decipher – US Surveys"
    * **Decipher API key** – Paste the key generated above
    * **Query URL** – Your Decipher instance URL

    Click **Add Integration**.
  </Step>

  <Step title="Import Data">
    Go to **Projects → Import Data → Decipher** and choose the survey to import.
  </Step>
</Steps>

## Intercom

<Steps>
  <Step title="Add Your Intercom Account">
    Navigate to **Account Settings → Integrations → Intercom**. Click **Add Account** and fill in:

    <Frame>
      <img src="https://mintcdn.com/caplena-32172960/ifJRCNAegqKy0Iq0/images/Screenshot-2026-05-26-at-17.15.19.png?fit=max&auto=format&n=ifJRCNAegqKy0Iq0&q=85&s=d0ece4744a1e9e105ed588e5210d8b62" alt="Screenshot 2026 05 26 At 17 15 19" className="mx-auto" style={{ width:"70%" }} width="652" height="522" data-path="images/Screenshot-2026-05-26-at-17.15.19.png" />
    </Frame>

    * **Connection name** – e.g. "Intercom Production"
    * **Access token** – From your [Intercom Developer Hub](https://developers.intercom.com/)
    * **Region** – US (`api.intercom.io`), EU (`api.eu.intercom.io`), or AU (`api.au.intercom.io`)

    Click **Add Integration**.
  </Step>

  <Step title="Import Data">
    Go to **Projects → Import Data → Intercom**. Choose your Account and Survey type.

    <Frame>
      <img src="https://mintcdn.com/caplena-32172960/ifJRCNAegqKy0Iq0/images/Screenshot-2026-05-26-at-17.17.26.png?fit=max&auto=format&n=ifJRCNAegqKy0Iq0&q=85&s=78cccfaf65d55e483850d47b06399372" alt="Screenshot 2026 05 26 At 17 17 26" width="1974" height="1676" data-path="images/Screenshot-2026-05-26-at-17.17.26.png" />
    </Frame>

    Configure optional settings:

    * Initial import limit, start/end date
    * Conversation state (open, closed, snoozed)
    * Source type (Conversation, Email, WhatsApp, etc.)
    * Tag IDs

    Enable **Synchronize data sources** for automatic daily sync. Click **Continue**.
  </Step>
</Steps>

## Salesforce

Connect Salesforce to import survey responses into Caplena for analysis. Caplena authenticates through the OAuth **JWT Bearer Flow**. Caplena signs each token request with its private key, and Salesforce verifies it with Caplena's certificate, which you upload to your External Client App. Caplena then acts as a dedicated API-only user that you specify by username. You don't need to share a client secret with Caplena.

<Note>
  The Salesforce setup UI is dense and changes between editions. We recommend having a Salesforce administrator complete the steps below, as they require permission to create users, permission sets, and external client apps.
</Note>

<Steps>
  <Step title="Download the Caplena certificate">
    Download Caplena's public certificate: [Caplena\_Salesforce\_JWT.crt](https://storage.googleapis.com/caplena-public/Caplena_Salesforce_JWT.crt). You can also download it from the **Download certificate** link in the Salesforce connection form in Caplena.

    You upload this file to your External Client App in a later step.
  </Step>

  <Step title="Create a Permission Set">
    In Salesforce, go to **Setup → Users → Permission Sets** and create a new permission set.\\

    <Frame>
      <img src="https://mintcdn.com/caplena-32172960/6Cj5J1piui0AzM4T/images/Screenshot-2026-06-08-at-11.08.18.png?fit=max&auto=format&n=6Cj5J1piui0AzM4T&q=85&s=bf28c8530fe40135bb5b6af43c8207a5" alt="Screenshot 2026 06 08 At 11 08 18" width="3346" height="1880" data-path="images/Screenshot-2026-06-08-at-11.08.18.png" />
    </Frame>

    * Under **System Permissions**, enable **API Only User** and **API Enabled**.
    * Under **Apps → Object Settings**, open **Surveys** and **Survey Responses** and enable **Read**, **View All Records**, and **View All Fields** for each.
  </Step>

  <Step title="Create an API-only User">
    Go to **Setup → Users → Users** and create a new user.\\

    <Frame>
      <img src="https://mintcdn.com/caplena-32172960/6Cj5J1piui0AzM4T/images/H1oqW.png?fit=max&auto=format&n=6Cj5J1piui0AzM4T&q=85&s=5213d5e55bca8b7c2167cbc5186d21bb" alt="H1oq W" width="830" height="615" data-path="images/H1oqW.png" />
    </Frame>

    * **User License:** Salesforce
    * **Profile:** Minimum Access - Salesforce
    * **Permission Set Assignments:** assign the permission set created in the previous step.

    Note the user's **Username**. You enter it in Caplena later.
  </Step>

  <Step title="Create an External Client App">
    Go to **Setup → Apps → App Manager → New External Client App**.

    <Frame>
      <img src="https://mintcdn.com/caplena-32172960/6Cj5J1piui0AzM4T/images/Salesforce-create-new-External-Client-App-2048x1064.webp?fit=max&auto=format&n=6Cj5J1piui0AzM4T&q=85&s=3f74278ec0587ee6ca007bdf1815496a" alt="Salesforce Create New External Client App 2048x1064" width="2048" height="1064" data-path="images/Salesforce-create-new-External-Client-App-2048x1064.webp" />
    </Frame>

    * Under **API (Enable OAuth Settings)**, check **Enable OAuth**.
    * **Callback URL:** any value works and is not used by this flow (e.g. `https://localhost`).
    * **OAuth Scopes:** add **Manage user data via APIs (api)**.
    * Under **Flow Enablement**, check **Enable JWT Bearer Flow** and upload the Caplena certificate (`Caplena_Salesforce_JWT.crt`) you downloaded earlier. Click **Create**.
    * Open the app's **Policies** and set **Permitted Users** to **Admin approved users are pre-authorized**. Add the permission set created earlier so the API-only user is authorized to use the app. You don't need to set a **Run As** user.
    * Open **Settings → OAuth Settings** and copy the **Consumer Key**. You'll need it in Caplena. Caplena doesn't use the Consumer Secret.
  </Step>

  <Step title="Open Integration Settings in Caplena">
    Log in to your Caplena account. Navigate to **Account Settings → Integrations** and select **Salesforce**.

    <Note>
      [Here](/settings-administration/general-settings/general-settings-overview) you can find more info on the Settings page.
    </Note>
  </Step>

  <Step title="Add Your Salesforce Account">
    Click **Add Account** and fill in:

    * **Connection name** – e.g. "Salesforce Production"
    * **Client ID** – The Consumer Key from your External Client App
    * **Username** – The username of the API-only user Caplena should act as (e.g. `caplena-api@yourorg.com`)
    * **Instance URL** – Your Salesforce instance URL (e.g. `https://yourorg.salesforce.com`)

    Click **Add Integration**. Once connected, Salesforce appears in your list of integrations.
  </Step>

  <Step title="Import Salesforce Data">
    Go to **Projects → Import Data → Salesforce**. Choose your connected **Account** and optionally filter responses by **Status**:

    <Frame>
      <img src="https://mintcdn.com/caplena-32172960/6Cj5J1piui0AzM4T/images/Screenshot-2026-06-08-at-14.20.23.png?fit=max&auto=format&n=6Cj5J1piui0AzM4T&q=85&s=da3127fdfd15430c2d9f206b2531fefa" alt="Screenshot 2026 06 08 At 14 20 23" width="1342" height="1162" data-path="images/Screenshot-2026-06-08-at-14.20.23.png" />
    </Frame>

    * Completed
    * In Progress
    * Started
    * Partially Completed

    Leave the filter empty to import all responses. Enable **Synchronize data sources** for automatic daily sync.
  </Step>
</Steps>

## Zendesk

Import and analyze Zendesk ticket data and CSAT responses directly in Caplena.

<Steps>
  <Step title="Set up OAuth in Zendesk">
    Before connecting to Caplena, create an OAuth client in your Zendesk account. Follow the [official Zendesk documentation](https://developer.zendesk.com/documentation/live-chat/getting-started/auth/) and use these settings:

    * **Redirect URL** – `https://api.caplena.com/api/ui/integrations/zendesk/oauth/callback`
    * **Client kind** – Confidential
          <Frame>
            <img src="https://mintcdn.com/caplena-32172960/yAGYYj0OBpuVRq4L/images/Screenshot-2026-05-26-at-18.19.49-1.png?fit=max&auto=format&n=yAGYYj0OBpuVRq4L&q=85&s=138679b8f4aad494cdf50c70f4ac78cb" alt="Screenshot 2026 05 26 At 18 19 49 1" width="1582" height="1760" data-path="images/Screenshot-2026-05-26-at-18.19.49-1.png" />
          </Frame>

    <Warning>
      Copy your **Client Secret** during setup — Zendesk will not display it again once you leave the page.
    </Warning>
  </Step>

  <Step title="Open Integration Settings in Caplena">
    Log in to your Caplena account. Navigate to **Account Settings → Integrations**. In the top-right section, select **Zendesk**.

    <Note>
      [Here](/settings-administration/general-settings/general-settings-overview) you can find more info on the Settings page.
    </Note>
  </Step>

  <Step title="Add Your Zendesk Account">
    Click **Add Account** and fill in:

    <Frame>
      <img src="https://mintcdn.com/caplena-32172960/yAGYYj0OBpuVRq4L/images/Screenshot-2026-05-27-at-15.34.11.png?fit=max&auto=format&n=yAGYYj0OBpuVRq4L&q=85&s=1058f8d4c473051cbf7f969b14040526" alt="Screenshot 2026 05 27 At 15 34 11" title="Screenshot 2026 05 27 At 15 34 11" className="mx-auto" style={{ width:"65%" }} width="816" height="792" data-path="images/Screenshot-2026-05-27-at-15.34.11.png" />
    </Frame>

    * **Connection name** – e.g. "Zendesk Production"
    * **Client ID** – The "Identifier" from your OAuth setup in Zendesk
    * **Client secret** – The secret copied during OAuth setup
    * **Company subdomain** – e.g. `yourcompany` for `yourcompany.zendesk.com`
  </Step>

  <Step title="Connect the Account">
    Click **Add Integration**. You'll be redirected to Zendesk — approve the read-only permissions. Once done, Zendesk appears in your connected integrations list.
  </Step>

  <Step title="Import Zendesk Data">
    Go to **Projects → Import Data → Zendesk**. Choose your connected **Account** and the **data type** to import (tickets or CSAT responses).

    <Frame>
      <img src="https://mintcdn.com/caplena-32172960/yAGYYj0OBpuVRq4L/images/Screenshot-2026-05-27-at-15.36.41.png?fit=max&auto=format&n=yAGYYj0OBpuVRq4L&q=85&s=4a2058250998a8b941f4c38d46200f5b" alt="Screenshot 2026 05 27 At 15 36 41" width="2216" height="1726" data-path="images/Screenshot-2026-05-27-at-15.36.41.png" />
    </Frame>
  </Step>
</Steps>

## Frequently asked questions

**What happens if I delete columns in Caplena?** The data from Medallia or Qualtrics that corresponded to those columns will no longer sync. Synchronization continues, but without updating the removed columns.

**What happens if I add new columns manually in Caplena?** New columns added manually will not be filled by Medallia or Qualtrics syncs. They will remain empty unless populated manually.

**What happens if I add new columns in Medallia or Qualtrics?** New columns added in your source platform will not be included automatically. They won't appear in Caplena unless the query used in the integration is updated accordingly.

**A client added a new open-ended question to an existing Qualtrics survey mid-project (or removed one) — how do I get it into Caplena?** Since Qualtrics columns are fixed at the time the integration is set up, you'll need to reconnect the integration to pick up the change:

1. Disable the sync on the existing Qualtrics data source.
2. Delete the existing Qualtrics data source — re-adding it with the same survey while the old one still exists will fail as a duplicate.
3. Add the data source again for the same Qualtrics survey, now including the new column (all other columns should match the original setup). This creates the new column in Caplena.
4. From this point on, new responses — including answers to the new question — will flow in automatically with the nightly sync.
5. To backfill existing responses to the new question: manually export the existing responses for that question from Qualtrics as a CSV, then bring them in using the [replace flow](/data-project-management/adding-replacing-data/add-replace-columns-in-your-dataset) (or reach out to support to do this for you if it's an enterprise customer).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.