CSV Import
Import existing feedback data from CSV files into Deck for AI analysis and visualization
CSV Import
CSV Import lets you bring historical feedback data into Deck in bulk. Upload a CSV file, map your columns to the right fields, and Deck processes each row through the same AI pipeline used for live integrations — extracting themes, generating insights, and making your data available in dashboards.
Supported Feedback Types
You can import five types of feedback via CSV:
| Type | Format | Required Fields | Optional Fields |
|---|---|---|---|
| NPS | Flat (one row per response) | score (0–10) | reason, respondent_email, respondent_name, response_date |
| User Interview | Flat | transcript | interview_date, interviewee_name, interviewee_email |
| CS Ticket | Flat | subject, body | requester_email, requester_name, created_date, status, priority |
| Feedback | Flat | content | source, respondent_email, respondent_name, submitted_date |
| Survey | Pivoted (one row per respondent, questions as columns) | At least one question column | respondent_email, respondent_name |
Survey imports use a different file format than other types — see Survey CSV Format below.
Downloading a Template
Before preparing your data, you can download a pre-formatted CSV template for any feedback type. Templates include all supported column headers with two example rows so you can see the expected format.
From Manage → CSV Uploads, click Upload CSV, select your feedback type, and use the Download Template link on the upload step.
Survey CSV Format
Survey imports use a pivoted (wide) format — each column is a survey question, and each row represents one respondent's answers. This is the native export format from all major survey platforms.
Supported platforms
Deck automatically detects your survey platform from the file structure:
| Platform | Detection method |
|---|---|
| Qualtrics | 3-row header block (question text, import ID, display order) |
| SurveyMonkey | 2-row header block (question / sub-question) |
| Typeform | Single header row with boolean Yes/No column groups |
| Google Forms | Single header row; plain column names |
| Unknown | Single header row; generic heuristics |
Platform detection is shown as a badge on the Preview step. If the wrong platform is detected, you can continue — column classification in the next step gives you full control.
Question types
Deck infers the type of each question from your answer data:
| Type | Description | Credit cost |
|---|---|---|
| NPS | 0–10 numeric scale with "How likely…" label | 0 |
| Rating Scale | Numeric 1–5 or 1–7 scale | 0 |
| Yes / No | Binary yes/no answers | 0 |
| Multi-select | Respondent selected multiple options | 0 |
| Single-select | One option chosen from a list | 0 |
| Free Text | Open-ended text response | 1 credit per respondent |
Structured answer types (everything except Free Text) are stored directly without LLM processing and cost 0 credits. Free Text answers are processed by the AI analysis pipeline and cost 1 credit per respondent.
Downloading the survey template
The survey template (deck-survey-template.csv) uses the pivoted format with example questions for every supported type, including a tips row that Deck automatically strips. Download it from the upload wizard's Preview step.
How to Import a CSV
For all types except Survey, the wizard guides you through four steps: Upload → Preview → Map → Review.
For Survey uploads, the wizard uses a six-step flow: Upload → Preview → Classify → Question Types → Review → Submit.
1. Prepare your file
Export your feedback data from your existing tool (survey platform, CRM, helpdesk, etc.) as a CSV. Column names do not need to match Deck's field names exactly — you'll map them in step 3.
Maximum file size is 10 MB.
2. Upload your file
Go to Manage → CSV Uploads in your workspace and click Upload CSV. Drop your file into the upload area or click to browse.
Deck automatically detects the feedback type from your column headers where possible. You can confirm or change the detected type before continuing.
3. Preview
The Preview step shows you the first rows of your parsed file so you can confirm the data looks correct.
For Survey uploads, Deck parses the pivoted structure at this step and shows you a platform detection badge (e.g., "Qualtrics detected"). Continue to proceed to column classification.
4. Classify columns (Survey only)
This step appears only for Survey uploads. Deck shows every column from your file alongside 2–3 sample answers and its auto-detected role:
| Role | Meaning |
|---|---|
| Question | A survey question — will be analyzed |
| Metadata | Contact info (email, name, date) — used to link respondents, not analyzed |
| Skip | Column will be ignored |
You can change the role for any column using the dropdown. Skipped columns are collapsed into a separate section so you can un-skip them if needed.
5. Question types (Survey only)
After classifying, Deck shows each question column with its inferred type (NPS, Rating Scale, Yes/No, etc.) and 2–3 sample answers. A live credit counter shows your estimated cost using the formula:
Respondents × Free Text questions = credits
You can override the detected type for any question using the dropdown. The credit counter updates in real time as you change types.
4 / 6. Map columns (non-Survey)
For NPS, User Interview, CS Ticket, and Feedback uploads, Deck displays your CSV columns alongside the required and optional fields for the selected type.
Deck auto-maps columns it recognizes by common names (e.g., a column named email or customer_email is automatically mapped to Respondent Email). You can override any auto-mapped field.
5 / 7. Review validation results
After mapping (or after Question Types for surveys), Deck validates every row. You'll see a summary of:
- Valid rows — ready for processing
- Invalid rows — listed with the specific validation error
- Duplicate rows removed — exact duplicates are automatically excluded
For Survey uploads, Deck skips column-level validation and instead shows a summary of respondents and the credit cost formula.
6 / 8. Review the credit estimate
For non-Survey uploads, each valid row costs 1 credit to process.
For Survey uploads, only Free Text questions consume credits. The formula is:
respondent count × number of Free Text questions = total credits
A survey with only structured questions (NPS, Rating Scale, etc.) costs 0 credits.
If you're on the Free plan and the upload would exceed your remaining credits, the submission is blocked until you upgrade or reduce the row count.
7. Submit
Confirm and submit. Deck queues the upload immediately and begins processing in the background.
Tracking Progress
Once submitted, your upload appears in the Manage → CSV Uploads table with a live status badge:
| Status | Meaning |
|---|---|
| Pending | Queued, processing not yet started |
| Processing | Rows are being processed by the AI pipeline |
| Completed | All rows processed successfully |
| Partially Completed | Some rows succeeded, some permanently failed |
| Failed | The upload encountered a critical failure |
Click any row in the table to open the detail view, which shows a progress bar, row counts, and error messages for failed rows.
The page refreshes automatically every 10 seconds while an upload is active, so you don't need to manually reload.
When an import finishes (on any page in your workspace), a toast notification appears confirming how many rows were processed — and linking directly to the upload detail view.
Retrying Failed Rows
If any rows fail permanently (after 3 internal retry attempts), you can retry them from the detail view using the Retry Failed button. This re-queues only the failed rows for another processing attempt.
Retried rows consume credits just like the original submission.
How Deck Processes Your Data
Once submitted, Deck processes your CSV rows through the same AI pipeline as live integrations:
- Contact matching — If a row includes an email address, Deck attempts to link it to an existing contact in your workspace (from CRM integrations).
- AI analysis — Each row is analyzed by the appropriate AI agent for its feedback type.
- Persistence — Results are written to the correct tables alongside your other feedback data.
- Theme and insight linking — Themes are auto-created or matched to existing ones; insights are linked to relevant themes.
- Cache refresh — Your dashboards and visualizations update to include the new data.
Processing is sequential within your organization (one upload at a time) to ensure consistent credit accounting and avoid data conflicts.
Deleting an Upload
You can permanently delete a completed or failed CSV upload along with all the data Deck created from it — responses, insights, and themes.
To delete an upload:
- Go to Manage → CSV Uploads.
- Click the ⋯ (more) menu on the row you want to remove.
- Select Delete and confirm the dialog.
A few things to know:
- Active uploads cannot be deleted. The Delete option is disabled for uploads with a Pending or Processing status. Wait for the upload to finish before deleting it.
- The deletion is permanent. All responses, insights, and theme associations created by that upload are removed. This action cannot be undone.
- Credits are not refunded. Deleting an upload does not restore the credits consumed when it was processed.
- Survey uploads show a deletion preview. Before you confirm, the dialog shows exactly how many survey responses, answers, and insights will be deleted so you know the full scope of the operation.
Best Practices
- Start with a small test file — Import 20–50 rows first to verify your column mapping produces the expected results before uploading thousands of rows.
- Include email addresses — Rows with respondent or requester emails are linked to your existing contacts, making your data more useful in filtered views.
- Clean up invalid rows before uploading — The validation step tells you exactly which rows fail and why. Fix them in your source file for a cleaner import.
- One upload at a time — Uploads are processed sequentially per organization. You can submit multiple uploads, but they will queue behind each other.