Brandwatch
Our Brandwatch integration allows you to seamlessly import social media query results directly into Caplena for analysis.Open Integrations Settings
Add Your Brandwatch Account

- 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
Connect the Account
Import Brandwatch Data

Qualtrics
Access Integration Settings
Set Up OAuth in Qualtrics
read:users, read:surveys, read:survey_responses.Fill in Connection Details

- 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
Connect and Import

Medallia
Access Integration Settings
Fill in Connection Details

- 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
Connect and Import

QuestionPro
Get your API Key and User ID

Connect in Caplena

- 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
SurveyMonkey
Create an App in SurveyMonkey

Configure Scopes

Generate and Copy Your Access Token

Connect in Caplena

SurveySparrow
Generate an API Key in SurveySparrow
view_survey, view_questions.
Connect in Caplena

- 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)
Import Data

Google Cloud Storage (GCS)
Connect a file stored in GCS so your project refreshes automatically overnight.Set Up Google Cloud Storage
- Create a bucket
- Create a Service Account and JSON Key
- Grant the Service Account access to your bucket
- Copy your file’s GCS URI (e.g.
gs://your-bucket-name/path/to/file.csv)
.csv and .parquet. Your file must include an identifier column and a date column.Set Up Google Cloud Storage
- Create a bucket
- Create a Service Account and JSON Key
- Grant the Service Account access to your bucket
- Copy your file’s GCS URI (e.g.
gs://your-bucket-name/path/to/file.csv)
.csv and .parquet. Your file must include an identifier column. On each sync, Caplena scans the full file and imports any new rows.Connect in Caplena

- 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)
Configure Data Import

- 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
Configure Data Import

- 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
Azure Blob Storage
Connect a file stored in Azure Blob Storage so your project refreshes automatically overnight.Generate a Connection String in Azure
- Permissions – Enable Read
- Allowed protocols – Select HTTPS only
- Expiry – Set an expiration date that fits your sync schedule
- Click Generate SAS token and URL
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.Connect in Caplena
- Connection name – Any name to help you recognize this connection
- Connection string – Paste the
BlobEndpoint=...;SharedAccessSignature=...string built in the previous step
Configure Data Import
- 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
Amazon S3
Connect a file stored in Amazon S3 so your project refreshes automatically overnight.Set Up Amazon S3
- Create a bucket
- Create an IAM user with a policy that grants read access to your bucket (e.g.
s3:GetObjectands3:ListBucketscoped to the bucket ARN) - Create an access key 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)
.csv and .parquet. Your file must include an identifier column. On each sync, Caplena scans the full file and imports any new rows.Connect in Caplena
- 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)

Configure Data Import
- 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

Decipher
Generate Your Decipher API Key


Connect in Caplena

- Connection name – e.g. “Decipher – US Surveys”
- Decipher API key – Paste the key generated above
- Query URL – Your Decipher instance URL
Import Data
Intercom
Add Your Intercom Account

- Connection name – e.g. “Intercom Production”
- Access token – From your Intercom Developer Hub
- Region – US (
api.intercom.io), EU (api.eu.intercom.io), or AU (api.au.intercom.io)
Import Data

- Initial import limit, start/end date
- Conversation state (open, closed, snoozed)
- Source type (Conversation, Email, WhatsApp, etc.)
- Tag IDs
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.Download the Caplena certificate
Create a Permission Set

- 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.
Create an API-only User

- User License: Salesforce
- Profile: Minimum Access - Salesforce
- Permission Set Assignments: assign the permission set created in the previous step.
Create an External Client App

- 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.
Open Integration Settings in Caplena
Add Your Salesforce Account
- 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)
Import Salesforce Data

- Completed
- In Progress
- Started
- Partially Completed
Zendesk
Import and analyze Zendesk ticket data and CSAT responses directly in Caplena.Set up OAuth in Zendesk
- Redirect URL –
https://api.caplena.com/api/ui/integrations/zendesk/oauth/callback - Client kind – Confidential

Open Integration Settings in Caplena
Add Your Zendesk Account

- 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.
yourcompanyforyourcompany.zendesk.com
Connect the Account
Import Zendesk Data

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:- Disable the sync on the existing Qualtrics data source.
- Delete the existing Qualtrics data source — re-adding it with the same survey while the old one still exists will fail as a duplicate.
- 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.
- From this point on, new responses — including answers to the new question — will flow in automatically with the nightly sync.
- 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 (or reach out to support to do this for you if it’s an enterprise customer).