Quiz Block: Scored Quizzes Inside an Email
A scored, multi-question quiz: add a Quiz block, then drop Quiz question children into it, each with its own multiple-choice options and a correct answer. It's the studio's tool for lead-scoring quizzes, knowledge tests, and personality-style "what's your result" sends where the outcome actually depends on what the recipient answers.
How it works
Unlike poll and rating, a quiz can't be a set of links — a multi-question, multi-option combination can't be enumerated as plain GET links the way a single poll vote can.
So the mailed HTML keeps a real <form method="post"> posting directly to MailInApp's interactions endpoint. Every question renders as a labeled radio group, and submitting posts every answer in one shot. That form sends from inside the email only in Gmail on the web and the Outlook apps for iOS and Android. So every mailed quiz also shows an always-visible Answer on the web link under it, which opens the same quiz on the hosted live view, and readers in every other app answer there. On the live view the page itself is the quiz, so it renders just the bare working form with no extra link of its own.
Scoring happens entirely server-side. On submit, the interactions endpoint re-reads the quiz block's own answer key from the project's stored tree and checks each submitted answer against it — a client-reported score is never trusted. The result is written onto the event as { answers, score, total, bucket }, where bucket is "pass" or "fail" depending on whether (correct / total) * 100 cleared the block's configured pass score.
If you set a Redirect after submit to a path on the live view, that redirect carries the score and total back as query parameters. The results page can then show a results banner — the pass/fail message you configured, not a generic thank-you. Leaving redirect blank (or setting anything that isn't a site-relative path starting with /) falls back to the quiz block's own default results page.
If the project's survey has closed (a close date or response cap reached), the quiz block instead renders its title and each question's prompt as plain, non-interactive text, with a "This survey is closed to new responses" note. That check happens only on the hosted live view, since mailed HTML is static at send time and never closes.
Configurable fields on the Quiz block itself:
- Title and Submit label (default "See my score") — plus title's own color and font size.
- Pass score — the minimum percent-correct (0–100) a recipient needs to land in the "passed" bucket.
- Message when passed / Message when not passed — the two results copy blocks shown depending on the computed bucket.
- Redirect after submit — an optional site-relative path to send the recipient to after scoring; see above for how score/total ride along.
- Background color, padding, border, border radius on the card.
- Text-style overrides for the title, the question text, answer options, the submit button, and each results message independently.
Each Quiz question child carries its own Question text, a list of Options, and a Correct answer that must match one of the options exactly (case-sensitive, verbatim string match) — a mismatch means that question can never be scored correct.
In an email that asks for several answers, this block can count towards a complete response: recipients see how many they've answered, and you see who answered them all. See Collecting an answer to every block.
Examples
Subject
How well do you know our products? Take the quiz
A software vendor can run a "what's your automation maturity level?" lead-scoring quiz gated behind a passing threshold, with the pass-score message pointing qualified leads to a demo-booking link and the fail-score message pointing everyone else to nurture content instead. See Engagement & loyalty for more on using interactive content to qualify and re-engage a list. A course provider can send a short knowledge check before a live session so instructors know where the room stands going in. A "which product line is right for you" personality-style quiz can use the pass/fail split as a simple two-way branch: recommend Product A above the threshold, Product B below it. That works without building real per-answer branching logic, since the copy for each bucket is exactly what the two results messages are for.
What the static fallback looks like
<div style="margin:12px 0;background-color:transparent">
<p style="margin:0 0 10px;font-weight:700;font-size:18px;color:#111827">
Test your knowledge!
</p>
<!-- <form> posting to /api/interactions omitted: one radio group per
question plus a "See my score" button. It sends from the email in
Gmail on the web and the Outlook apps for iOS and Android -->
<p style="margin:8px 0 0;font-size:13px;text-align:center">
<a href="https://mailinapp.com/v/eyJhbGci...#em-quiz-1">Answer on the web</a>
</p>
</div>
The Answer on the web link under the form is always visible, in every email app. It opens the hosted live view, where the same quiz renders as a real, working <form> — there's no per-question or per-answer link the way poll and rating have.