Reporting

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.

PropertyValue
Available inEnterprise plan
PermissionRole Admin or Owner in the account
File formatCSV or TXT, up to 50 MB
EncodingUTF-8, Windows-1252 or ISO-8859-1
DelimiterComma, 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

MappingMeaningFormat
System field: User / response IDUnique identifier of the response. Required unless you let PollHero generate it.Any text, unique per row
System field: Generate stable response IDBuilds the identifier from the whole row. Use this when your export has no reliable ID.–
System field: Started atStart 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 atEnd of the participationDate with time
System field: Completion statusWhether the participation was completedComplete or Incomplete
System field: Duration (seconds)Duration of the participationWhole number of seconds
System field: Device typeDevice typee.g. Desktop, Mobile, Tablet
System field: BrowserBrowsere.g. Chrome, Safari
System field: CountryCountryCountry name as it should appear in exports
System field: Page URLPage on which the survey was answeredURL
System field: UTM source to UTM contentCampaign parametersText

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.

MappingRequiredFormat
Order: Transaction IDyes, as soon as an order is importedOrder ID, e.g. 100234
Order: AmountyesOrder total as a decimal, dot or comma, e.g. 89.90
Order: CurrencyyesISO currency code, e.g. EUR
Order: TaxnoTax amount as a decimal
Order: Items (JSON)noJSON array or object of purchased items
Order: CouponnoCoupon 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 typeExpected value
Single SelectThe exact text of an answer option. Item 3 selects the third option.
Multi SelectSeveral 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 ScaleWhole number within the configured scale
Short Free Text, Long Free TextText, imported as entered
All other question typesText, 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.

StatusMeaning
UploadedFile is there, the mapping can still be changed
ValidatedValidation without errors, the import can start
Validation failedThere are errors, see step 4
Queued, ImportingThe import is running in the background
CompletedAll rows imported
Completed with warningsImport finished, invalid rows were skipped
Completed with errorsSome rows could not be imported; the errors are listed with the import
FailedThe 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.

On this page