Produktly docs
Feature specificSurveys

Surveys

Surveys are standalone, multi-question forms that live on their own page. You share them with a link, so respondents don't need to be signed in or even visiting your product. Use them for research, onboarding follow-ups, churn interviews, or anything that doesn't fit inside your app.

If you want a short in-app question shown while someone is using your product, use Micro Surveys instead.

Creating a survey

Navigate to produktly.com/app/surveys/create to create a new survey.

The editor is split into tabs, and a live preview on the right shows exactly what respondents see. The preview is interactive: click through it to walk the survey as a respondent would, and use Start over on the thank-you screen to run it again. That's how you test each path of a survey with conditional logic.

Content

Questions

Each question has a title, an optional description, and an answer type:

  • Emojis - Pick one of a set of emoji
  • Thumbs (up/down) - A simple positive or negative answer
  • Rating - A numeric scale. Set Highest rating to anything from 2 to 10, defaulting to 5
  • Short text - A single-line answer
  • Long text - A multi-line answer
  • Email - A single-line answer validated as an email address
  • Multiple choice (pick one) - One option from a list
  • Checkboxes (pick many) - Any number of options from a list
  • Info screen (no answer) - Not a question. Shows a heading and some text on its own screen with a Next button, and collects nothing. Useful for giving context part-way through a survey, for example before a group of related questions.

Mark a question Required to stop respondents continuing until they answer it. Info screens can't be required, since there's nothing to answer.

Use the arrows in the top right of each question to reorder it. Respondents see questions in this order, one per screen.

To reuse an existing survey, open the menu next to it in the Surveys list and choose Duplicate. The copy starts as an unpublished draft with its own link, and doesn't inherit the original's close date, response cap, or responses.

Conditional logic

Any question after the first can be shown only when earlier answers say it's relevant. Open Show this question when on a question card and add one or more conditions.

Each condition points at an earlier question and compares its answer. The available comparisons depend on the type of question you point at:

  • Emojis, thumbs, multiple choice - is, is not, is answered, is not answered
  • Rating - is, is not, is at least, is at most, is answered, is not answered
  • Checkboxes - includes, does not include, is answered, is not answered
  • Short text, long text, email - is answered, is not answered

With more than one condition you can require All conditions or Any condition. Choose Always show to remove the logic and show the question to everyone again.

Conditions can only reference questions that come before the one carrying them, since later answers don't exist yet when the question is reached. If reordering leaves a condition pointing forwards, or you delete the question a condition depends on, that condition is ignored and the question is shown to everyone rather than silently disappearing.

The editor warns you about both, about a condition left unfinished (no value picked yet), and about a case it can't recover from: if you rename or remove an answer option a condition checks for, nothing will ever match it and the question it controls becomes unreachable. Each warning names the questions it means - click Show me to jump to the card, which also carries an amber mark. Fix the rule or the option before publishing.

Info screens can't be referenced (they collect nothing), but they can carry conditions themselves, so you can show a piece of context only to the people it applies to.

Questions with logic show a Conditional badge, and the Review & share tab lists the whole survey as a flow, with the trigger spelled out under each conditional question. Click any row there to jump straight to that question in the editor.

A question that other questions depend on says so on its own card ("2 questions depend on this answer"), naming them. That's worth reading before you delete it, move it below one of them, or rename one of its options, since each of those breaks the rules pointing at it.

Respondents only ever see the questions their answers lead to, and a required question inside a branch they never entered won't block them. Because the path length isn't known in advance, a survey with logic shows the question number without a total, and no progress bar.

Welcome screen

An optional screen shown before the first question, with its own title, description, and button text. If you don't enable it, respondents land directly on the first question.

Thank-you screen

Shown after the survey is submitted. You can customise the title and message, or turn on Redirect after submit to send respondents to a URL of your choice instead.

Settings

Availability

  • Close date - The survey stops accepting responses at the start of this day (UTC)
  • Response cap - The survey stops accepting responses once this many have been collected

Once either limit is reached, the link shows a "no longer accepting responses" message rather than the form.

Respondent identity

  • Collect email - Ask for an email address at the end of the survey. Can be off, optional, or required
  • Allow URL prefill - Lets you pass ?email= and ?userId= in the link to attribute a response to someone you already know
  • Duplicate prevention
    • None - Anyone can respond as many times as they like
    • One per browser - Remembered on the respondent's device. Clearing site data or using a private window gets around it, so treat it as a deterrent
    • One per email - Enforced on our servers. Requires email collection

Appearance

Pick a Theme to match your brand, or set the theme and text colours directly. You can also add a logo URL, which is shown on the welcome and thank-you screens.

Integrations

Each survey has its own notification settings, so different surveys can notify different people:

  • Notification emails - A comma-separated list of addresses to email on each new response
  • Slack / Discord webhook URL - Post each response to a channel
  • Zapier / Custom webhook URL - Send each response as JSON to connect it to other tools

These are per-survey and are never exposed to respondents.

Share

Publishing a survey gives it a public link:

https://produktly.com/surveys/<id>

The link only works while the survey is published. If Allow URL prefill is on, you can attribute responses to a known person by appending parameters:

https://produktly.com/surveys/<id>[email protected]&userId=42

Localization

Surveys can be translated into any of the supported languages. Add a language from the language bar at the top of the editor, then fill in the translated copy for each question, option, and screen.

Respondents see the translation matching their browser language, or you can force one with a ?lang= parameter:

https://produktly.com/surveys/<id>?lang=fi

Any field you leave untranslated falls back to the original text, so a partial translation is safe to publish. See Localization for the full list of supported languages.

Responses

Open a survey's responses from the Surveys list, or from the editor.

The stats along the top include a View → response rate: how many people who opened the link went on to submit. Views are page loads of the public link rather than unique visitors, since the page is anonymous. This rate covers the whole selected time period and isn't split by device or language, because those are recorded on responses but not on views.

  • Summary - Per-question breakdown. Choice questions show a bar per option with its share and count; text questions list the answers with who wrote them. Each question shows how many respondents answered it, so you can see where people dropped off
  • Individual - One row per response, one column per question. Click a row to expand the full detail. Questions a respondent skipped show as a dash

On a survey with conditional logic, the numbers count only the people who actually reached each question. A follow-up shown to 12 of 200 respondents reads "9 of 12 who reached it" rather than looking ignored by 191 people, and the Questions answered stat shows the average answered against the average asked. In the Individual tab, a question someone was never shown reads not asked, which is different from the dash used for a question they saw and skipped.

Use Export CSV for the raw data. Questions the respondent was never shown export as n/a, and ones they saw but left blank export as an empty cell. Info screens are excluded from exports and summaries, since they collect nothing.

On this page