Import responses from CSV
Bring existing survey responses from other tools into a PollHero survey as a CSV file.
The CSV import brings responses you collected with another survey tool into a PollHero survey. Imported responses appear in reporting like regular participations, including period, device, country and UTM parameters. Orders in your export can be imported along with them.
| Property | Value |
|---|---|
| Available in | Enterprise plan |
| Permission | Role Admin or Owner in the account |
| File format | CSV or TXT, up to 50 MB |
| Encoding | UTF-8, Windows-1252 or ISO-8859-1 |
| Delimiter | Comma, semicolon, tab or pipe |
The CSV import is only included in the Enterprise plan.
Opening the import
Open the survey in the editor and click CSV import at the top, next to Results. If the survey is still a draft, PollHero publishes it automatically in the paused state. This lets you import responses without the survey appearing on your website yet.
The page Import survey responses shows the flow: upload CSV, map fields, validate mapping, start import.
Step 1: Download the CSV template
Click Download CSV template. PollHero creates a file that matches this survey exactly: one column per system field and one column per question, named after the question text. The second row contains example values.
Single Select and Multi Select questions with an “Other” option get an additional … (Other text) column for the free text. Short Free Text and Long Free Text questions get a … - Sentiment column in case your previous tool already rated the sentiment.
You do not have to use the template. You can also upload the export of your previous tool directly and map the columns in the next step. With the template, however, PollHero detects the mapping automatically.
Step 2: Upload the file
Drag the CSV file into the upload area or click choose a file to upload. Then click Upload and parse.
PollHero detects the encoding and delimiter automatically and shows them under Detected. If umlauts or columns look wrong, change both under CSV format with Delimiter and Encoding. The preview shows up to 20 sample rows.
Every upload appears in the CSV response imports list with its status. Later imports are listed there as well.
Step 3: Map the columns
The Column mapping table shows the Sample values of each CSV column, and under Import as you choose what PollHero does with it. Based on the column names, PollHero suggests a mapping. Columns PollHero does not recognise are set to Do not import.
The options are grouped into System fields, Order fields and Survey questions.
System fields
| Mapping | Meaning | Format |
|---|---|---|
| System field: User / response ID | Unique identifier of the response. Required unless you let PollHero generate it. | Any text, unique per row |
| System field: Generate stable response ID | Builds the identifier from the whole row. Use this when your export has no reliable ID. | – |
| System field: Started at | Start of the participation. Determines the period in which the response appears in reporting. | Date with time, ideally ISO 8601 such as 2026-01-15T10:00:00Z |
| System field: Completed / updated at | End of the participation | Date with time |
| System field: Completion status | Whether the participation was completed | Complete or Incomplete |
| System field: Duration (seconds) | Duration of the participation | Whole number of seconds |
| System field: Device type | Device type | e.g. Desktop, Mobile, Tablet |
| System field: Browser | Browser | e.g. Chrome, Safari |
| System field: Country | Country | Country name as it should appear in exports |
| System field: Page URL | Page on which the survey was answered | URL |
| System field: UTM source to UTM content | Campaign parameters | Text |
Order fields
If your export contains orders, you can attach them to the response. They feed into the revenue analysis in reporting just like purchases from purchase tracking.
| Mapping | Required | Format |
|---|---|---|
| Order: Transaction ID | yes, as soon as an order is imported | Order ID, e.g. 100234 |
| Order: Amount | yes | Order total as a decimal, dot or comma, e.g. 89.90 |
| Order: Currency | yes | ISO currency code, e.g. EUR |
| Order: Tax | no | Tax amount as a decimal |
| Order: Items (JSON) | no | JSON array or object of purchased items |
| Order: Coupon | no | Coupon code |
If the order ID is empty in a row, no order is created for that response. An order with the same order ID in the same project is updated, not duplicated.
Survey questions
For each question, choose Question: question text. The cell value must match the question type:
| Question type | Expected value |
|---|---|
| Single Select | The exact text of an answer option. Item 3 selects the third option. |
| Multi Select | Several options separated by commas, e.g. Newsletter, Social media. Item 2 selects the second option. |
| Net Promoter Score (NPS) | Whole number from 0 to 10 |
| Customer Satisfaction Score (CSAT) | Whole number from 1 to 5 |
| Customer Effort Score (CES) | Whole number from 1 to 5 (CES 1.0) or 1 to 7 (CES 2.0) |
| Rating Scale | Whole number within the configured scale |
| Short Free Text, Long Free Text | Text, imported as entered |
| All other question types | Text, imported as entered |
If a Single Select or Multi Select question has an “Other” option, map the free-text column as Other text: question text. For free-text questions you can import an existing sentiment rating as Answer sentiment: question text; allowed values are positive, negative, neutral and mixed.
Empty cells are skipped. The question then counts as unanswered for that participation.
Step 4: Validate the mapping
Validate mapping saves the mapping and checks every row without importing anything. For each error you see the row, the affected CSV column, the value and a hint on how to fix it. Typical errors are missing or duplicate IDs, unknown answer options, values outside the scale and invalid dates.
You have two options:
- Download failed rows as CSV, correct the values and upload the corrected file again.
- Import valid rows and skip invalid rows. The invalid rows are left out and the import gets the status Completed with warnings.
This step is optional. Start import validates the file as well and only imports if no errors are found.
Step 5: Start the import
Click Start import. PollHero saves the mapping, validates the file and imports the responses in the background. You can leave the page; the status updates automatically. As soon as the import is finished, you receive an email with the result.
| Status | Meaning |
|---|---|
| Uploaded | File is there, the mapping can still be changed |
| Validated | Validation without errors, the import can start |
| Validation failed | There are errors, see step 4 |
| Queued, Importing | The import is running in the background |
| Completed | All rows imported |
| Completed with warnings | Import finished, invalid rows were skipped |
| Completed with errors | Some rows could not be imported; the errors are listed with the import |
| Failed | The import was aborted |
Once an import has started, its mapping can no longer be changed. For another import, upload the file again.
How PollHero treats imported responses
Re-import: Each row is tied to a participation by its ID. If you import the same ID again, PollHero updates the existing participation and its answers instead of creating duplicates. With a generated ID this only applies when the same file is uploaded again.
Completion: If Completion status is not mapped or empty, PollHero derives completion from the answers. The participation counts as completed when every required question reached along the questions and their logic has an answer. Required questions skipped by a rule do not count.
Period: Responses take their date from Started at. If it is missing, the time of the import applies. If the oldest imported participation lies before the survey's start date, PollHero moves the start date back so the responses fall within the reporting period.
Impressions: Imported participations were never shown on your website. They count as participations but not as impressions, and they are not included in Total impressions or in the response rate of the questions. Reporting points this out with a note. Read more under How we count impressions, responses and rates.
Sentiment: If you did not supply a sentiment, PollHero starts the sentiment analysis for the imported free-text answers after the import. You can see the state with the import under AI analysis.
Webhooks: Imported responses do not trigger webhooks.
Deleting an import
Delete CSV removes the uploaded file and the entry from the list. Responses that were already imported stay in the survey. Deletion is not possible while an import is running.