Data and privacy
Everything SurveyX collects lives in your own WordPress database — there's no external account, no SurveyX-hosted storage, and nothing leaves your site unless you've turned on an integration (email, Mailchimp, a webhook, Google Sheets) yourself. This page lays out exactly what's stored, what isn't, and what a deletion actually removes, so you can answer a data question without guessing.
What SurveyX stores
- Survey content: questions, answers, settings, cover and closing/result copy.
- Responses: every answer a respondent gives, tied to their session. This includes partial responses — if someone abandons a survey partway through, whatever they'd already answered stays in the database; it isn't discarded because the session never completed.
- Session data: status (viewed, active, completed, dropped off, expired), when it started, when it was last active, and how long it took.
- Respondent profile: only what a contact-info question fills. The contact-info question type (Pro) is the only thing that writes a respondent's name, email, phone or company anywhere. There's no separate "respondent fields" feature and no custom-field mechanism — if a survey has no contact-info question, SurveyX never collects a name or email for it at all.
- Uploaded files (Pro, the file-upload question type): stored in your own site's uploads folder, under a per-survey directory.
SurveyX doesn't collect IP addresses or browser details
SurveyX doesn't write a respondent's IP address or browser (user agent) to your database, in either
edition. Location isn't collected either unless you've hooked surveyx_get_location yourself to
supply a geolocation provider — SurveyX ships without one, so on an unmodified install that column
stays empty too. None of the three has ever been shown anywhere in the admin — not the response
table, not the response detail drawer, not either CSV export.
If your site ran an earlier version of SurveyX, its respondent table may still carry IP addresses, user agents, or a location value collected before this change. A new session doesn't erase them — saving only replaces a column when it has a real value to write — so those old values remain until you delete that respondent's row. Factor this in if you're answering a data request that predates the update.
Uploaded files are served from a URL, not access-controlled
A file uploaded through a file-upload question (Pro) is stored under a hardened directory — directory listing is off, and the file can't be executed as a script — but the file itself is served from a plain URL with no login or token check. Anyone who has the link can download it. Treat an uploaded file's URL as public, not private, when deciding what you ask respondents to attach.
Deleting data is permanent
Every deletion in SurveyX is a hard, irreversible database delete. There's no trash or "undo," and no "clear the responses, keep the survey" action anywhere in the product — the only two deletions that exist are:
| Action | What it removes | Edition |
|---|---|---|
| Delete one response | That respondent's answers and session, for that one survey | Pro |
| Delete a survey | The survey itself, its questions and answers, every response and session against it, and its revision history | Free + Pro |
Neither of these removes the standalone respondent record — the row holding whatever name, email, phone or company a contact-info question collected. That record is written once, the first time it's filled in, and persists independently of any individual response or survey deletion. There's no separate action anywhere in the product for deleting a respondent's profile on its own.
Deleting the plugin deletes nothing
Neither SurveyX Builder nor SurveyX Builder Pro registers an uninstall routine. Deleting either plugin from the WordPress Plugins screen leaves every survey, question, response, respondent record and setting exactly where it was in your database. Reinstalling the plugin brings everything back unchanged. If you need the data gone, delete it — survey by survey, or response by response — before you delete the plugin, not after.