Documentation menu

Collecting an answer to every block

An email can ask for more than one answer: a poll, then a rating, then a short form. Each of those blocks saves its answer on its own, the moment it's given. Mail can't hold answers back and send them together, because an email has no JavaScript and every answer opens a page. That's also what you want: if someone answers the poll and stops there, you still have their vote. What MailInApp adds on top is a sense of the whole: the recipient sees how much is left, and you see who answered everything.

What the recipient sees

After an answer, the recipient lands on the email's live view. When the email counts two or more blocks:

  • Part-way through, a box at the top says how far they are ("1 of 3 answered") with a Next question link that jumps to the first block they haven't answered yet. Each block they've already answered shows an Answered mark, so a long email shows what's left at a glance, on this visit and on any later one.
  • After the last one, the box gives the final message instead: "All done — thank you!" and "Every answer has been recorded." by default, in the recipient's language, or your own words.
  • A block with its own message keeps it: a quiz's score, an RSVP's confirmation or a booked meeting still shows first, with the progress under it.

The same happens in the native inbox, where Next question scrolls within the email, and in the MailInApp mobile app, which shows the progress with the email and the final message after the answer that completes it.

Nothing about the mailed email changes: the progress is only on the pages an answer opens.

Setting it up

Open the Responses panel from the studio's left rail.

  1. Thank recipients: After every block is answered (the default) or After any answer, which thanks people after each answer and shows no progress.
  2. Blocks that count: every poll, rating, quiz, RSVP and form in the email, all ticked to start with. Untick the ones that are optional. With every block ticked, a block you add later counts too.
  3. Final message: a title and a text. Leave both blank for the default thank-you in the recipient's language. If you fill in either one, your words replace the default.
  4. After the last answer, go to (optional): a page on your own site, which the answer completing the set opens instead of the email. It must be a full https:// address. Earlier answers still land on the email.

Click Save. The panel saves on its own, separately from the email's autosave. Insights › Settings shows it under Complete responses, with a link back to the panel.

With fewer than two blocks that take an answer, the panel just says so: each answer is thanked on its own, as before. You can also ask Mia AI, for example "make this a survey where all three questions are required", or set it from an assistant through the set_response_settings tool.

What counts

  • Blocks that can count: polls, ratings, quizzes, RSVPs and forms, single-page or multi-page. A product's "Save for later", reactions, bookings, checkouts, games and plain clicks never count. Neither do an RSVP's follow-up details or a rating's follow-up question, which are optional.
  • Only what the recipient was shown. A block hidden from them by a condition, or shown only in the static fallback, isn't counted for them. A block inside a repeat counts once. A block you delete after sending stops counting.
  • Only known recipients complete. A view that isn't tied to a recipient (the studio preview, exported HTML, a link shared without a recipient) shows the plain "Thanks — your response was recorded." and never completes.
  • Once. A response completes the first time every counted block has an answer. Changing an answer later doesn't complete it again or send anything twice.
  • Closed surveys. Once a survey is closed (by a close date or a response cap) the email shows its closed notice, not the progress. Someone who completed before it closed stays completed.

Where the results show up

  • Insights: a completion rate and a Completed stage, with the people who started but didn't finish one click away. See Completion rate.
  • Recipients and the export: a Completed column, the Completed the response condition, and a completed_at column in the wide CSV export.
  • Webhooks: a response.completed event, once per recipient and email, on account webhooks and on the email's own webhook. Zapier and n8n have a Response Completed trigger.
  • Journeys: the Response completed and Response not finished triggers, for example to send the survey again to people who stopped part-way. See journey triggers and the Finish your survey starter.

When one form is the better choice

Several blocks suit an email whose questions are different in kind (vote here, rate there) and where each answer is worth having on its own. For a questionnaire that should be answered and sent in one go, use one form with several pages instead. It's submitted once, at the end, so there's nothing partial to track. With Steps in the email on, a form of up to 12 questions shows its pages in the email itself in the apps that can, with Next and Back.

For developers

When an email has a progress state, the interactions endpoint's JSON reply carries completion: blockIds (the counted blocks, in the email's order), answered, nextBlockId and complete. GET /api/v1/liveview/{token} carries the same completion for that recipient, or null, and completionMessage (title, text), the final message already resolved in the email's language.