# Surveys

> The Surveys space module. How the team creates a space with one survey or several, builds the questionnaire in sections in an editor that already is the answering screen (from an NPS, satisfaction, event, course or eNPS template, or blank), opens it to whoever has access to the space with an e-mail invitation and/or through the public link with no sign-in, identified or anonymous, and reads the results with filters and CSV.

A **survey** is a questionnaire from the team, with several questions organized in **sections**, for whoever has access to a space in the community and/or for anyone with the **public link**. Use it to measure the community's NPS, satisfaction with an event or a course, a company's eNPS, or whatever else the team wants to ask, without Google Forms or Typeform, with the consolidated results inside the community.

**Surveys** is a [space module](/conceitos/modulos), on the **Community** tab of **Add Space**. Every survey lives in a Surveys space, and **whoever has access to the space is its audience**.

## Survey or poll

| | [Poll](/espacos/enquetes) | Survey |
|---|---|---|
| What it is | One question, 2 to 10 options, published as a post | A questionnaire: sections, up to 100 questions, 5 question types |
| Where it shows | In the Feed or a Content space, with reactions and comments | In a Surveys space, on its own answering screen, in steps; nothing goes to the Feed |
| Who answers | Whoever sees the post | Whoever has access to the space and/or anyone with the public link, with no sign-in |
| Anonymity | The team sees who voted for what | Identified or anonymous, chosen before opening |
| Results | Bars on the post itself | A panel per section, NPS, filters and CSV |

For a quick everyday question, a poll. For structured feedback, a survey.

## What it's for

| Community | Survey |
|---|---|
| Event | The event's satisfaction survey, answered through the link by non-members too |
| Online school | Feedback on a course: content, instructor, applicability |
| Coworking | The residents' NPS, once a semester |
| Company | The team's eNPS, anonymous |

## How it works

### The space: one survey or several

When you create the space, **How the space works** asks:

| Mode | What it looks like |
|---|---|
| **Several surveys** (the default) | A list of surveys. The team sees all of them, with the **All**, **Drafts**, **Scheduled**, **Open** and **Closed** filters (a scheduled one shows *Opens…*), and creates with **New survey**; a member sees the ones they can answer, with **Answer** or **Answered**, and the **Required** badge on required ones |
| **One survey** | The space is one survey: opening it goes straight to it. The team sees the editor (or the results, once open); a member, the form. When empty, it shows **Create survey** to the team |

**One survey** only works with at most one survey in the space (drafts and closed ones count): switching to it with two or more is refused, and so is a second survey. The mode can be changed later in the space settings.

**The space is born with its survey.** In **One survey**, **Next** leads to a third step, **Survey**, in the same window: **Start from** (a template or **Blank**), **Survey title** (required), **Description**, **Mode** (identified or anonymous) and **Response type**. **Create survey** creates the space and the survey, as a draft, and opens its editor right away: *"The survey is born as a draft: nobody gets anything until you open it."* If the survey is refused, the space stays created, the step keeps what was typed and only the survey is retried. Spaces with [one call](/espacos/chamada-de-trabalhos) and [one course](/espacos/cursos#courses-in-a-single-course-mode) work the same way: they end up open on the call or the course.

An example: an **Event survey** space, in **One survey** mode, private to whoever bought a ticket; and a **Surveys** space, in **Several surveys** mode, open to members, with the semester's NPS and each course's surveys.

### Who does what

| Who | What they do |
|---|---|
| Owner and admin | Everything: create the space and the surveys, edit the draft, turn on the link, open, close, delete, see the results and the responses, and export the CSV |
| Member (and moderator and finance) | With access to the space, answers its open surveys, in the space or through the e-mail invitation |
| Someone without an account | Answers through the public link, if the survey is open and the link is on; nothing else |

### Templates

**New survey** opens the template picker. The questions come ready, in the community's language, and everything can be edited before opening.

| Template | What it brings | Mode |
|---|---|---|
| **Community NPS** | One section: the 0 to 10 score and *"What weighed most in your score?"* | Identified |
| **Satisfaction survey** | One section: overall satisfaction from 1 to 5, in stars, and a comment | Identified |
| **Event feedback** | Four sections: **Content** (talks and topics), **Infrastructure** (venue, food, Wi-Fi), **Experience** (organization, the event's NPS and a comment) and **Profile** (*"Was this your first time at the event?"*). Ratings use Excellent, Good, Fair, Poor and Not applicable | Anonymous, with the public link on |
| **Course feedback** | One section: content, instructor and applicability, on the same scale, and *"What could be better?"* | Identified |
| **eNPS** | One section: *"how likely are you to recommend the company as a place to work?"* and why | Anonymous |
| **Blank** | One empty section, to build from scratch | Identified |

### Sections

Every survey has **at least one section**, with a title and an optional description; each question belongs to a section. For whoever answers, sections are **steps**:

- The survey's **title** and **introduction** open the first screen, with the mode (anonymous or identified), the number of steps and questions, and the **Start** button.
- At the top, a bar with each step's title (*Content · Infrastructure · Experience · Profile*). On a phone it becomes *"Step 2 of 4 · Infrastructure"*. A single-section survey shows no bar.
- **Next** only moves on once the step's required questions are answered; **Back** keeps what was chosen; **Submit** appears on the last step.
- The response is saved **once, on Submit**. Nothing is kept on the server halfway: if the person closes the tab first, they start again.

In the results, questions are grouped by section, in the same order. A survey has up to **20 sections** and **100 questions**.

### The editor

Building a survey means editing **the very screen people answer on**, in the community's colors, as in the [campaign](/notificacoes/campanhas-de-email) editor:

- **Click to type** in place: title, introduction, section title and description, question, help text and options.
- **Sections** show up as the steps, in tabs at the top of the canvas; **Section** creates a new one. **Delete section** removes its questions too, after you confirm.
- The **+** between questions inserts a question (one of the 5 types) or a new section.
- **Drag** by the handle to reorder questions within a section; drag a question onto another step's tab to move it there; drag the tabs to reorder sections. **Move to section**, **Up** and **Down**, in the panel, do the same without dragging.
- The selected question's **panel** has **Type**, **Required**, the scale options, **Duplicate** (copies the options too, handy when the same scale repeats) and **Delete**.
- **Desktop** and **Phone** change the width; **Preview** walks through the steps as a respondent, with **Submit (preview)**, without saving anything.

At the top sit **Audience and link**, **Mode**, **Response type**, **Period**, **Preview**, **Save draft** and **Open** (or **Schedule**, with a future start). On a scheduled survey, **Cancel schedule** replaces **Open**; on an open one, **Close**. Next to the title you see **Unsaved changes** or **All saved**.

The editor's bar shows only the title, the state and the main action; the settings become clickable summaries, and **Pause**, **Close** and **Delete** sit in **More actions**. The mode notice sits above the intro, and an **identified** survey whose intro talks about anonymity shows *"The intro talks about anonymity, but the survey is identified."*, with **Fix the text**. Templates show their first questions before you choose.

### The 5 question types

| Type | How it is answered | Details |
|---|---|---|
| **Single choice** | One option | 2 to 30 options, no repeats |
| **Multiple choice** | One or more options | 2 to 30 options |
| **Scale** | A number from a minimum to a maximum | Minimum 0 or 1, maximum 2 to 10, optional end labels (*Very dissatisfied*, *Very satisfied*); **Show as stars** uses a 1 to 5 scale in stars |
| **NPS (0 to 10)** | A score from 0 to 10 | The results calculate the NPS (see [The results](#the-results)) |
| **Text** | A written answer | Short or **Long answer**, up to 5,000 characters |

Any question can be **Required**. There is no conditional logic (skipping questions based on an answer), no matrix and no file upload.

### Identified or anonymous

The **Mode** is chosen in the draft and **does not change once open**. The introduction states the mode before the first question.

| Mode | What the team sees |
|---|---|
| **Identified** | Each member's response tied to their name, with the date. Someone answering through the public link without signing in shows up as **Visitor**, with the date |
| **Anonymous** | Only the aggregate: no name, no time, no list of who answered or who is missing, and not how many are missing |

In an anonymous survey, the introduction says exactly: *"Anonymous survey: the community can't link your response to you."* That is the promise: the community (team, API, assistant, CSV) has no way to know who answered what. The response is stored without the person and without a time, separately from the record that they have answered, and responses never appear in the order they arrived.

The safeguards of an anonymous survey:

- **A minimum of 3 responses.** Before that, the results show *"Results appear at 3 responses"* and no number or text.
- **Published in blocks of 3.** Responses enter the results 3 at a time, always 3 new ones from the same origin (members or visitors). The response count grows by 3, and a single response never changes the results: comparing two readings does not reveal what one person answered.
- **Filter by origin only.** In an anonymous survey, results filter only by **members** or **visitors**; group, tag and company are for identified surveys only. The slice shows when it **and the rest** each have at least 3 responses. Without the rule about the rest, a slice of 3 in a survey of 4 would give away the fourth person by subtraction.
- **Texts shuffled and undated.**
- **A CSV without the person, segment, origin or date**, only from 3 responses and only with the responses already published in blocks of 3.

> [!WARNING]
> In an **identified** survey, the response is personal data held by the community, which is the controller. Don't ask about health, religion, political opinion or other sensitive data in an identified survey; if you need to, use an anonymous one.

### Audience and link

The audience is **whoever has access to the space**: its [visibility](/conceitos/visibilidade-e-acesso) and, in a private space, the groups, products and plans under **Who gets in**. The survey needs **someone with access to the space, the public link turned on, or both**.

- **Audience**: **Audience and link** shows how many people have access to the space today (up to 50,000), with a few names. To change who answers, change the space's access. The audience is **frozen when the survey opens**: whoever gets access to the space later is not part of it.
- **E-mail invitation**: on opening, with the **Notify by e-mail** box checked (the default), each person in the audience gets **one** invitation e-mail, 10 minutes later, with the **Answer** button, if they kept the **Surveys** category on in [E-mails from this community](/notificacoes/emails-desta-comunidade). Editing the survey later doesn't resend it. The button leads everyone to the same address, so the e-mail doesn't tie anyone to an anonymous response.
- **Link for members**: the invitation address. Whoever has access to the space answers through it, signed in, or right in the space. Someone who opens it signed in and has no access sees *"This survey is not for you"* (unless the public link is on).

  The invitation link opens the survey **inside its space**, with the community menu. Whoever answers lands on the form (or on the answered or closed notice, as the case may be); the owner and the admin land on the editor if the survey is a draft or scheduled, or on the results if it is open or closed. If no space in the person's menu holds the survey, the standalone answer screen explains why. In a **Several surveys** space, the browser address follows the open survey: you can copy it, send it to someone on the team and reload the page without going back to the list.

- **Space**: while it is a draft, the survey can move to another Surveys space.
- **Public link**: anyone with the link answers **without signing in**, on the community's own domain (its custom domain, if any, or its `memberfy.net` address, such as `clube.memberfy.net/s/…`), with the community's branding, even if the community is private (the page shows only the survey). **Copy** copies the address; turning it off makes the link say *"This link isn't available"*. The address is long and random: you cannot guess another survey's.

**Who already answered.** Through the public link, repeat responses are blocked **on a best-effort basis, not guaranteed**:

- **Someone who opens the link without signing in** gets a marker **in this browser** (the screen says: *"We keep a marker in this browser only to prevent repeat responses"*). In the same browser, the second attempt sees *"You already answered in this browser. Thank you!"*. **A private window, another browser, another device or cleared browser data answer again.** If the survey truly needs one response per person, use the space's audience without the public link.
- **Someone who opens it signed in and is a member of the survey's community** answers **as a member**, truly once, in any browser: the second attempt sees *"You already answered"*. The response follows the survey's mode. Signed in to another community, they count as a visitor.

**Against bots and abuse**, the public link has:

- a **bot check** done by the browser itself in about a second, with nothing to click and no data sent to third parties (if it fails, the screen asks to submit again);
- a limit of **300 submissions every 10 minutes per network**, per survey (above it, *"Too many submissions from this network. Wait a few minutes and try again."*);
- a cap of **5,000 visitor responses** per survey; member responses don't count toward the cap;
- and the team can **turn the link off** at any time.

The network address of whoever answers is not stored with the survey.

### Period and scheduling

**Period** sets the **Start** and the **End** of collection, in the community's time zone: *"Outside that period nobody answers."* The end must be after the start.

- **Without a Start** (*On open*), the survey begins when the team clicks **Open**.
- **With a future Start**, the button becomes **Schedule**. The confirmation says when it opens and from when the e-mail invitation goes out: *"The survey opens on its own on … and the e-mail invitation goes out from …. Nothing is sent before then."* At that time the survey **opens by itself**, exactly as if the team had clicked **Open**: the audience is frozen at that moment and the invitation goes out 10 minutes later (if **Notify by e-mail** was ticked when scheduling).
- **Scheduled**, it stays **editable like a draft**, all of it (questions, mode, response type, period). **Cancel schedule** (or clearing the Start) turns it back into a draft: *"Schedule canceled: the survey is a draft again."*
- **With an End**, it closes by itself on the chosen date and time. Without one, it stays open until someone on the team clicks **Close**.

**Outside the period nobody answers, by any route** (in the space, through the invitation link or through the public link). Before the start, the screen says *"This survey has not started yet"* and when it opens; after the end, or once closed, the public link shows *"Survey closed"*. **A closed survey does not reopen**; the responses and the results remain available.

### Response type

**Response type** says how much the community counts on an answer. It is chosen in the draft (or in the **Survey** step of a one-survey space) and **locks on opening**.

| Type | For whoever is in the audience |
|---|---|
| **Optional survey** (the default) | The e-mail invitation and the survey in the space. No window in the app: *"Nobody is pressed."* |
| **Required survey** | Marked **Required** in the list and on the answer screen (*"This survey is required: the team is counting on your answer."*), and the invitation says the answer is required. On entering the app, the *"A survey is waiting for your answer"* window, with **Not now** |
| **Immediate response** | Like required, but the window has no **Not now** and does not close: *"To keep using the app, answer this survey."* It goes away when the person answers or the survey closes |

The type applies to whoever entered the audience when it opened; someone who gained access to the space later sees the survey as optional. On identified surveys, required and immediate show in the results who still has to answer (see [The results](#the-results)).

Once open, the structure locks: only the **title**, the **introduction**, the period's **End** and the **public link** (on or off) change, with **Save changes**. The **Start**, the **Mode** and the **Response type** no longer change.

Deleting the space deletes its surveys and turns off their public links.

### When someone leaves the community

When a member leaves the community (on their own, removed by the team, through the assistant, when the link to their company ends, or by declining an import invitation), **their identified responses are permanently deleted**, and the results recalculate. **Anonymous responses stay**, because there is no way to know whose they are. This is the only exception to Memberfy keeping the community's data.

## Step by step

### Create the space

*Role: owner or admin.*

1. In the menu, under the section, click **Add Space**.
2. On the **Community** tab, choose **Surveys** and click **Next**.
3. Write the title, choose the **Visibility** (and, if it is **Private**, **Who gets in**): that is who will answer.
4. In **How the space works**, choose **Several surveys** or **One survey**. With **Several surveys**, create the space.
5. With **One survey**, **Next** leads to the **Survey** step: choose the template (or **Blank**), the title, the description, the **Mode** and the **Response type**, and click **Create survey**. The space and the survey are born together and the editor opens; continue from [Create and open the survey](#create-and-open-the-survey), step 3.

See [Create and organize spaces](/espacos/criar-e-organizar-espacos).

### Create and open the survey

1. In the space, click **New survey** (in **One survey** mode, **Create survey**).
2. Pick a template, or **Blank**.
3. Adjust the title, introduction, sections and questions right on the canvas. Check it in **Preview**.
4. In **Mode**, choose **Identified** or **Anonymous**. In **Response type**, **Optional survey**, **Required survey** or **Immediate response**.
5. In **Audience and link**, check how many people have access to the space and, if you like, turn on the **Public link**. In **Period**, the **Start** (empty to begin on open) and the **End**, if any.
6. **Save draft**. Until it opens, nobody sees the survey, not even through the link.
7. **Open** and confirm: the dialog says how many people the e-mail invitation goes to. The audience is frozen and the survey starts accepting responses. With a future Start, the button is **Schedule**: the survey becomes **Scheduled** and opens by itself at the set time.
8. If the public link is on, share the address, copied from **Audience and link**.

### Answer (member)

Whoever has access to the space answers in two ways: opening the space in the menu (in **Several surveys** mode, clicking **Answer**) or through the **Answer** button in the e-mail invitation. A survey already answered shows as **Answered**; a required one, as **Required**. A scheduled survey does not show to respondents until it opens; whoever arrives early through the link sees *"This survey has not started yet"*.

**The in-app notice.** Only for **required** and **immediate response** surveys: on entering the community, whoever is in the audience and has not answered yet sees a single notice (*"A survey is waiting for your answer"*), with each survey, the deadline and whether it is **Anonymous**. Clicking a survey opens the answer. On a required survey, **Not now** closes the notice for those surveys, and it doesn't come back for them. On an immediate response survey there is no **Not now**: the notice comes back on every screen until the person answers or the survey closes. Answering takes the survey off the notice. An optional survey opens no notice: it arrives by the e-mail invitation and the space list.

### See the results

In the space, click an open or closed survey (a draft opens the editor); in **One survey** mode, the results show up directly once it is open. The list shows, for each one, recipients, responses and the deadline.

## The results

**The header.** The survey title, its state (**Open**, **Closed**…), whether it is **Identified** or **Anonymous** and the deadline, with **Edit** and **Export CSV**. On an anonymous survey, the **(i)** next to **Anonymous** explains the anonymity rules (the blocks and the filter by origin only). On a phone, the buttons show only their icon.

**The sections, as tabs.** Right below come the tabs **Summary**, **Individual responses** (identified only), **Rounds** (recurring only) and **Heat map** (identified only). The filters sit on the same line: **Origin** (**All**, members or visitors) and **Segment** (a group, a tag or a company; **All segments** goes back to everything). On a phone, the filters are under **Filters**. A survey with no other tabs shows the origin as buttons.

**The cards at the top.** Only the ones with something to say, splitting the row evenly:

| Card | What it shows | When it shows |
|---|---|---|
| **Responses** | The total, with *N from members · N from visitors* | Whenever there is a response |
| **Response rate** | The percentage over the recipients (*of N recipients*). Visitors are left out, because they have no denominator. On an anonymous survey, it counts only the responses already published | When the survey has recipients |
| **Last response** | How long ago the last one came in, with *N in the last 7 days* | On an identified survey |
| **Last block published** | How long ago the last block entered the results, with *N in the last 7 days* | On an anonymous survey |
| **NPS** | The score of the first NPS question and its three groups: **Detractors**, **Passives** and **Promoters**, as percentages | When the survey has an NPS question |

**Responses per day.** A chart of how many responses came in each day, in the community's time zone, following the filter. On an **anonymous** survey, no response keeps its time: the chart is called **Responses published per day** and counts the blocks that entered the results each day, never when someone answered. Responses published before this tracking show in a note below (*"N responses published before daily tracking are not in the chart."*). The chart shows only with at least two days and some response. On an anonymous survey filtered by **Origin** or **Segment**, when part of the responses was published before the daily log, the chart is not shown; instead you see *"The per-day chart is not available for this segment."*

**One card per question**, grouped by section (the section's name shows when there is more than one), in two columns on a wide screen. Each card says the type and how many people answered:

- **Single and multiple choice:** bars with the percentage and the count; the most chosen option is highlighted.
- **NPS:** the score (from −100 to 100: % of promoters minus % of detractors), the three groups and the 0 to 10 histogram with the **Average**. Promoters are 9 and 10, passives 7 and 8, detractors 0 to 6.
- **Scale:** the **Average** and the histogram of the ratings.
- **Text:** the answers as a list (up to 1,000 per question). With more than 4, the first 4 show, with the **Search responses** box and **See all (N)**.
- A question nobody answered says *"Nobody answered this question yet."*

**Empty states.** With no response at all: *"No responses yet"*, with *"Results show up here as soon as the first responses come in."* (or *"The survey closed with no responses."*). With a filter that matches nothing: *"No responses in this segment."* On an **anonymous** survey with fewer than 3 published responses: *"Results appear at 3 responses"*, with no number, and the explanation: after that, the results grow in blocks of 3 responses, published every hour, so nobody can tell who just answered.

**In the other tabs:**

- **Individual responses:** identified only, with the member's name (or *Visitor*) and the date, newest first.
- **Still to answer:** only on an **identified** survey with **Required survey** or **Immediate response**, above the summary: the names of those in the audience who have not answered yet, with the count (*"Showing N of M."* when the list is long), or *"Everyone in the audience has answered."* On an **anonymous** survey, the results say nothing about who or how many are missing, in any response type: comparing the count before and after a response would reveal who answered.
- **Filter:** one at a time. On an anonymous survey, only **Origin**, with the minimum of 3 and the complement rule.
- **Export CSV:** one row per response and one column per question, with the section in the header. On an identified survey, it starts with name, e-mail, origin and response date; on an anonymous one, only the responses already published, shuffled, and only from 3 on. The **Heat map** and the **Rounds** have their own export.

## Recurring survey and heat map

### Repeat the survey

To measure the climate or the eNPS from time to time without recreating the survey, turn on **Repeat** in **Survey period** (the **Period** button), with the survey as a draft:

| Field | What it sets |
|---|---|
| **Frequency** | **Weekly**, **Every 2 weeks**, **Monthly** or **Quarterly** |
| **Day of the week** or **Day of the month** | The day of the week for weekly and every 2 weeks; the day of the month (1 to 28) for monthly and quarterly |
| **Time** | The time each round opens, in the community's time zone |
| **Duration (days)** | How long each round stays open: up to 7 days for weekly, 14 for every 2 weeks, 28 for monthly and 90 for quarterly |
| **Invite by email every round** | The **Surveys** category invitation every round (on by default) |

**Save and turn on repeat**. The survey gets the **Recurring** badge and the summary shows **Repeat active**, the schedule (*"Day 1 of every month, 09:00 · open 7 days"*) and the **Next round**. It has no **Open**: it only opens in rounds.

- **Each round is a copy of the survey** that opens by itself on the day and time, with the current audience (whoever has access to the space at that moment), sends the invitation and closes at the end of the duration. The mode (identified or anonymous) and the rules for publishing the results apply to each round.
- **Each person answers once per round**; an answer in one round does not count for another.
- **Changing the questions applies only to the next rounds.** The recurring survey stays editable; the open round keeps the questions it opened with.
- **Pause repeat** stops opening new rounds, without closing the open round; **Resume repeat** brings the schedule back. **End repeat** asks for confirmation and cannot be undone: no new round opens, past rounds stay in the results and the open one runs until it closes.
- In a **One survey** space, whoever answers lands on the most recent open round. Deleting the recurring survey deletes its rounds.

### Rounds and evolution

In the results of a recurring survey, the **Rounds** tab opens first:

- a line chart per NPS or scale question, with the **Evolution by round**;
- the table of rounds, with **Opened**, **Responses**, **Rate** and each question's value, and **View result** to open that round's results.

The **Round** selector, at the top, switches the round of the summary, the responses and the map. In an anonymous survey, a round with fewer than 3 responses and a round still open show **no number**.

### Heat map

In an **identified** survey (recurring or not), the **Heat map** tab shows where the rating is better or worse:

- **Group by**: **Primary group**, **Tag** or **Company**, one at a time. For tag and company, whoever has more than one counts in each row;
- one column per NPS and scale question, the **Responses** column and the total row;
- each cell with the value, the response count and a five-band color, from **Worse** to **Better**. The map uses the person's group, tag and company at the time they answered, and counts only member responses;
- in a recurring survey, the map is the one for the chosen round, with each cell's **Change** against the previous round;
- **Export map (CSV)** downloads what is on screen.

The heat map groups by a compact control, names the columns **Q1**, **Q2**… with the questions below, explains the change arrow (*"+3 vs. previous round"*) and has a single export. Also in an identified survey, a group with fewer than 3 responses shows as **Too few answers**, with no number.

In an **anonymous** survey, the heat map is not available.

Rounds and the map are for the owner and the admin; the moderator and members don't see them.

## Example: an event's satisfaction survey

A tech event just ended and the organizers want to hear from everyone who came, member or not:

1. **New survey › Event feedback**, in the event's space. Title: *Event satisfaction survey*. Introduction: *"Thanks for joining the 10th edition! It takes less than 2 minutes."*
2. The four sections are already there: **Content**, **Infrastructure**, **Experience** and **Profile**. In **Content**, the team adds *"Quality of the APIs track"* with **Duplicate** on a ready question (the Excellent…Not applicable scale comes along) and creates a single choice with its own options: *"The length of the talks was…"* *Too short*, *Just right*, *Too long*.
3. **Mode: Anonymous** and **Public link** on (both are the template's default). The survey lives in an **Event survey** space, in **One survey** mode, private to the ticket product: whoever bought it gets the e-mail invitation on opening. **Deadline:** one week.
4. **Open**, copy the public link and post it in the event's group, for people without an account.
5. Attendees answer on their phones, with no account, in four steps. At the third response, the results appear and from then on change 3 at a time; the **Origin** filter splits members and visitors once each side has at least 3.

## Through the assistant (MCP)

The owner and the admin can do almost everything in the space through the assistant: create the Surveys space (with the mode), see the templates, create the survey in the space with sections and questions, the period (`starts_at`, `closes_at`) and the response type (`response_mode`), edit the draft or the scheduled survey (or move it to another space), check the audience's reach, open or schedule it (`open_survey` with a future `starts_at` schedules; a null `starts_at` cancels), turn on the link (the answer carries the public address), read the results with a filter (with who still has to answer, identified surveys only), list individual responses and export the CSV. **Opening** and **scheduling** (because they send the e-mail invitation), **closing** and **deleting** ask for your confirmation; the rest acts on the first call. The **Run a survey** recipe builds it, opens it and summarizes the results with you.

Any member can ask the assistant which surveys are waiting for their answer (`list_my_pending_surveys`), with the link to answer in the app and each one's response type (`response_mode`).

The recurring survey also works through the assistant, with `recurrence` in `create_survey` and `update_survey`, pausing, resuming and ending the repeat (ending asks to confirm), the rounds, the evolution and the identified survey's heat map, with the CSV. See [Tools · Members](/mcp/ferramentas-membros#recurring-survey-and-heat-map).

**Answering a survey through the assistant doesn't exist**: the record of what the assistant does on someone's behalf would identify who answered. See [Tools · Members](/mcp/ferramentas-membros#surveys).

`get_survey_results` also returns `activity`, the responses per day: on an anonymous survey, the count is of the responses published each day, and the assistant never says when someone answered.

## Common errors and how to fix them

| Message | Why | What to do |
|---|---|---|
| *Pick an audience, turn on the public link, or both, before opening.* | Nobody has access to the space and the public link is off | Change the space's access or turn on the public link in **Audience and link** |
| *This space holds a single survey and it already exists…* | The space is in **One survey** mode | Create the new one in another space, or switch the space to **Several surveys** |
| *This space has N surveys and "One survey" allows only one…* | Switching to **One survey** with more than one survey in the space | Delete the others (nothing is deleted on its own) or keep **Several surveys** |
| *Add at least one question before opening.* | There are only empty sections | Use the **+** to add a question |
| *Once open, only the survey's title, description, deadline and public link can change.* | The structure, the start, the mode and the response type lock on opening | To change questions, create another survey |
| *Results appear at 3 responses.* | An anonymous survey with fewer than 3 published responses | Wait for more responses |
| *This survey is not for you.* | The person is signed in, without access to the space, and the public link is off | Give access to the space before opening, or turn on the public link |
| *This survey has already received the maximum of 5000 responses through the public link.* | The visitor cap | Close it or create another survey |
| *This survey has not started yet.* | The survey is scheduled, or its Start has not arrived | Wait for the Start or, on the team, clear the Start and open it now |
| *The end must be after the start.* | In **Period**, the End comes before the Start | Fix one of the dates |
| *This survey is already scheduled. To open it now, remove the start date.* | **Open** on a survey already scheduled | **Cancel schedule** or clear the Start, then open |

## In the API

The space is `module: "surveys"`, with `moduleConfig.mode` `single` or `multi` when creating and editing the space; `GET` and `PUT /api/surveys/spaces/{spaceId}` read and change the mode (in `single`, the `GET` brings the survey). The team's routes live under `/api/surveys` (owner and admin, with `X-CommunityId`): templates, list (`?spaceId=`), create (with `spaceId`, required), edit (in a draft or a scheduled survey, the whole tree of sections and questions, and `spaceId` to move it), audience preview (`spaceId` or `surveyId`), open, close, delete, results with one filter (`groupId`, `tag`, `companyId` or `origin`; in an anonymous survey only `origin`, the others return 422), individual responses and CSV. A member lists the surveys they can answer at `GET /api/surveys?spaceId=`, with `alreadyResponded`. The open ones still waiting for their answer are at `GET /api/surveys/pending` (with each one's `responseMode`, `notice` if the in-app notice should show and `blocking` if an immediate response one is pending), and one survey's notice is closed at `POST /api/surveys/{id}/notice/dismiss`. The two public routes, `/api/public/surveys/{publicToken}`, serve the survey and take the response without sign-in. Before submitting, the public page requests a challenge from `/api/public/surveys/{publicToken}/challenge`, which the browser solves and sends with the response.

**Period and response type.** Create and edit take `startsAt` and `closesAt` (the end after the start) and `responseMode` (`optional`, the default, `required` or `immediate`), in a draft or a scheduled survey. Opening with a future `startsAt` schedules it: `status` becomes `scheduled` (the statuses are `draft`, `scheduled`, `open` and `closed`) and the survey opens by itself at `startsAt`; `startsAt: null` cancels. In the results, `pending` (`count`, `members`, `truncated`) only comes on identified surveys with `required` or `immediate`; on anonymous ones the field does not exist.

**Responses per day**. `GET /api/surveys/{id}/results` returns `activity` (null when `locked`), counts only, in the community's time zone and following the filter: `basis`, `timeZone`, `days` (`[{ date, count }]`), `lastAt`, `lastWeek` (how many in the last 7 days) and `untracked`. On an identified survey, `basis` is `response` and counts each response on its day. On an anonymous one, `basis` is `publication`: an anonymous response keeps no time, so the count is of the blocks published every hour, on the day they were published; `untracked` are the responses published before this tracking existed.

| Error | When |
|---|---|
| `403` | The role does not manage surveys, or the signed-in person has no access to the space |
| `404` | The survey doesn't exist, belongs to another community, or the link is off |
| `409` | Already answered (a member, in any browser; a visitor, in the same browser), a second survey in a **One survey** space, or switching to **One survey** with two or more |
| `422` | Creating without `spaceId` or with a space that isn't a Surveys space, invalid structure, a draft or closed survey, outside the period (`notYetOpen` before the start, `closed` after the end), an end before the start (`closesBeforeStart`), opening one already scheduled (`alreadyScheduled`), a change locked after opening, dismissing the notice of an immediate response survey still unanswered (`noticeRequired`), an expired bot check, a slice below the minimum |
| `429` | The network's submission limit, or the cap of 5,000 visitor responses |
| `503` | The bot check is unavailable right now; try again in a moment |

## Related

- [Modules](/conceitos/modulos)
- [Visibility and access](/conceitos/visibilidade-e-acesso)
- [E-mail campaigns](/notificacoes/campanhas-de-email)
- [Polls](/espacos/enquetes)
- [Groups and org chart](/membros/grupos-e-organograma)
- [Tags](/membros/tags)
- [Roles and permissions](/conceitos/papeis-e-permissoes)
- [Tools · Members](/mcp/ferramentas-membros#surveys)
