Unified Data Connector for CFM: Overview, Relevance, Setup, and Troubleshooting
Updated
The Unified Data Connector (UDC) is Sprinklr’s file-based data ingestion framework that enables you to seamlessly import and synchronize external data into the platform. It supports both one-time file uploads and scheduled or recurring ingestion from managed sources such as SFTP, Amazon S3, Google Cloud Storage (GCS), and Azure Blob.
By using UDC, you can reduce manual effort, accelerate time-to-value, and ensure reliable data ingestion with built-in capabilities such as validation, transformation (via Groovy), encryption support, monitoring, and audit tracking.
Why UDC is Important for CFM
Customer Feedback Management (CFM) relies on accurate and timely data to personalize surveys and generate unified insights. UDC enables this by supporting ingestion across two key data areas:
Transactions: Interaction-level data associated with customer profiles that powers survey personalization, workflow triggers, and reporting.
Responses: Survey responses imported from external systems, enabling continuous analytics and consolidation of feedback data.
Core Capabilities
With UDC, you can:
Ingest custom, standard, and system entities through file uploads or storage sources (SFTP, S3, GCS, Azure Blob)
Track run history and audit logs, including success and failure files.
Apply data transformations using Groovy scripting.
Process encrypted files (PGP/RSA) securely.
Configure scheduled ingestion and notifications.
How UDC integrates with CFM Transactions
Transaction Groups and ingestion paths
Transactions in CFM are organized into Transaction Groups. The ingestion path defines how a group is populated:
Import: One-time file ingestion via UI for ad hoc lists and personalized link exports.
Unified Data Connector: Scheduled or on-demand ingestion from SFTP/GCS/S3/Azure Blob or direct File Upload, with mapping, validation, and transformations.
API: Real-time programmatic ingestion via Create Transactions API, governed by a defined schema.
UDC for Transactions: end-to-end flow
Create a Transaction Group (type: Unified Data Connector) and associate it with relevant survey projects for governance and downstream use in distributions and workflows.
Configure the connector
Entity is preselected via the Transaction Group flow.
Integration Type: Insert Transactions and Upsert Profile (each run creates new transactions; profiles are created or updated as needed).
Operation Type for Profile multi-select custom fields: choose Merge or Set.
Select a source: File Upload, SFTP, GCS, S3, or Azure Blob. Provide a Connector Name and optional description.
Upload a sample file (defines the expected headers and structure for all runs). Keep the sample’s extension consistent with your real files (including encryption suffixes like .pgp).
Map headers
System-level mandatory fields: First Name, Full Name, Last Name, Social Network, Social Network User Id.
Map Transaction Custom Fields and optional Profile fields as needed.
Mark additional connector-level mandatory fields and attach validation rules (email/phone/regex).
Set or hard-code the socialNetwork field with uppercase values for CFM distributions: EMAIL, SMS, WHATSAPP_BUSINESS.
Use Custom Headers with Groovy to compose/transform values (e.g., concatenate names, set constants, timestamps).
Sharing & Notifications: Share access and configure run notifications (success/failure/warnings) to collaborators.
Run, schedule, and monitor: Execute on-demand or schedule; view Activity logs and download failure/success files for investigation.
Note:
Transaction Field Governance
Transaction field availability is determined by the union of:
Global Custom Fields.
Fields available to the associated survey projects.
Data for unmapped or non-governed fields is still ingested and stored, but it won’t appear in survey-level workflows, placeholders, or Responses until governance is updated. Associate the Transaction Group with the right projects and align custom field governance accordingly.
How UDC integrates with CFM Responses
Use the CFM Response connector to import answers from external systems into a target survey:
From CFM Global Settings, create a Data Connector with entity type CFM Response and select the target survey.
Integration Type: Insert (creates new response records).
Select source (File Upload/SFTP/GCS/S3/Azure Blob), name/describe the connector, and provide source-specific details.
Mapping Configuration
Map to Standard Fields, Survey Questions, Response Fields, Transaction Fields, or Profile Fields as appropriate.
Mandatory survey questions must be mapped; missing values in ingestion yield Partially Completed responses.
Apply validation (email/phone/regex/no-duplicates) and optionally mark connector-level mandatory fields.
Use Value Mapping for coded responses (e.g., A1 → Option 1) across supported question types, ensuring normalized analytics.
Run
Activate
“Ingestion Connector Name” is recorded on each response.
“Response Type” = “Imported”.
“Distribution Channel” defaults to “Data Ingestion” if not provided.
Key setup prerequisites and governance
Custom Fields: Define Profile Custom Fields, Transaction Fields, and Response Custom Fields before mapping.
Survey association: Associate Transaction Groups with the survey projects that will use them for distributions/workflows.
Permissions
Response import: Survey-level “Import” under “Can Edit” → “Response and Analytics”.
Data Connector setup: Global permissions to View, Create, Edit, Delete, and View Audit Logs for Setup → Data Connector.
Troubleshooting guide
Source connections and credentials
GCS service account JSON
Create a GCS service account, then generate a JSON key in the Keys section.
Grant a custom role (or equivalent) with at least: storage.buckets.get, storage.objects.get, storage.objects.list, storage.objects.create, storage.objects.delete.
IP allowlisting is typically unnecessary because service-account auth is used. If your security policy requires network controls, restrict to published Sprinklr IPs. Refer to this article for more details.
S3 with IAM Role
Minimum policy: s3:PutObject, s3:GetObject, s3:DeleteObject on arn:aws:s3:::{bucket-name}/*; s3:ListBucket on arn:aws:s3:::{bucket-name}.
In AWS-hosted partners, ensure trust relationship allows Sprinklr’s internal IAM role to assume the customer role (raise ITOps ticket as per internal process).
SFTP
Verify host, port, username, and either password or key-based authentication per connector configuration pages linked in UDC docs.
Confirm file permissions and directory paths for polling and archiving.
File format and sample file
Sample file extension must match real files: If your bucket files are .csv, the sample must be .csv. For encryption, sample must mirror .csv.pgp, etc.
CSV delimiter
For Transaction ingestion via UDC: configure mappings based on your file. If your operational standard uses semicolons, ensure the same delimiter is used consistently in source and sample.
Header consistency: Future runs must use identical headers to the sample file unless you explicitly update the sample.
Mapping, validations, and mandatory fields
Social Network must be uppercase and a valid CFM channel for Transactions: EMAIL, SMS, WHATSAPP_BUSINESS. You can hard-code this via a custom header if uniform.
System-level mandatory fields (Transactions): First Name, Full Name, Last Name, Social Network, Social Network User Id must be provided or derived via transformations.
Connector-level mandatory fields: If marked mandatory and missing, the record or run will fail per connector logic, inspect failure files.
Survey question mandatory mapping (Responses): All questions flagged as Mandatory in the builder must be mapped; missing values result in Partially Completed responses.
Validation failures (email, phone, regex, no-duplicates) prevent ingestion of the affected record; check the failure file for row-level errors.
Governance alignment
Transaction Fields visibility: If a mapped field isn’t available to a survey project, data still ingests but won’t surface in placeholders, workflows, or Responses until governance is updated.
Survey association for Transaction Groups: Ensure the group is associated with the projects where distributions/workflows will reference it.
Keypoints to note
Illegal characters in source files
Illegal/replacement characters ( U+FFFD) are fully supported in UDC ingestion and Groovy custom-header code. Files containing these characters will pass through the connector pipeline and transformations without failures or data loss; no special escaping or pre-processing is required.
Encryption: Binary vs ASCII (PGP/GPG)
UDC supports PGP-encrypted files in both Binary and ASCII-armored formats. However, there is a known issue with ASCII-armored files where the platform detects MIME type as text/plain and alters the extension (e.g., .csv.pgp → .csv.pgp.txt), breaking file matching and ingestion (tracked in CFM-15286).
Per-file ingestion limit (UDC + GCS for Transactions)
Controlled by platform configuration (TRANSACTION_DATA_CONNECTOR_V2_INGESTION_LIMIT). Default cited value is 10,000. If exceeded, runs fail with diagnostics in View Activity; coordinate with your admin/POC to adjust if needed.
Best Practices
Define your data model upfront by creating Profile and Transaction custom fields before configuring mappings. Use consistent field names across your source systems and Sprinklr to simplify maintenance.
Capture complete interaction data in Transactions and selectively update Profile attributes to maintain both historical interaction records and current customer information.
Standardize channel values by using uppercase values for the Social Network field (for example, EMAIL, SMS, and WHATSAPP_BUSINESS) and manage them centrally through Groovy custom headers.
Leverage Value Mapping in Response connectors to convert coded responses into standardized values, ensuring consistent reporting and analytics.
Manage schema changes carefully by updating sample files, reviewing mappings, and validating changes in a lower environment before deploying to production.
Monitor connector activity regularly by reviewing activity logs, analyzing failure files, and configuring automated notifications to quickly identify and resolve ingestion issues.