Skip to main content

How to route respondents to different team members' booking calendars based on a qualifying quiz in Formaloo

Learn how to route quiz respondents to different team members' booking calendars in Formaloo using qualifying questions, automatic assignment, and answer-based redirect logic.

What you'll build

By the end of this guide, you'll have a public qualifying quiz that asks a lead a few short questions about their project type, budget, and timeline. Based on their answers, Formaloo automatically assigns the lead to the right team member and sends them straight to that person's booking calendar. Leads who say they're just researching get a helpful nurture message instead of a booking link, and your team gets an internal notification the moment a new lead lands in their pipeline.


When to use this

  • Your agency or consultancy has more than one person who owns intake calls, and leads keep landing on the wrong person's calendar

  • You want to filter out "just looking" browsers before they clog up your team's booking calendars

  • Larger or higher-budget leads should go straight to a senior team member instead of whoever happens to be next in line

  • You're tired of manually reading form submissions and forwarding them to the right teammate

  • You run a multi-service business where the right intake owner depends entirely on what the lead is asking for


Step by step

Part 1 — Build the qualifying quiz

This is where everything starts. You'll build a single-page quiz that captures contact details plus the three questions that decide where the lead gets routed: project type, budget, and timeline. The fastest way to build it is with Magic Create, which generates the whole form from a plain-text description.

1. Open Magic Create: From your Formaloo homepage, click Magic Create.

2. Describe your quiz: Paste a prompt describing the fields you need, including which ones are admin-only. For example: "Create a qualifying quiz with: full name, work email, company name, a dropdown for project type with options Website design & development, SEO & content marketing, Paid advertising, Branding & creative, Not sure yet, a dropdown for monthly budget with options Under $2,500/month, $2,500 to $10,000/month, $10,000+/month, a dropdown for start timeline with options Immediately, Within 1 to 3 months, Just researching, and a long text field for additional notes. Add three admin-only fields: a Status dropdown with options New, Qualified, Booked, Not a fit, an Assignee field, and an internal notes long text field."

3. Generate the form: Click Create and let Magic Create build the form.

4. Verify your fields: Your form should look like this. Magic Create will have generated most of it, so check each field and confirm the field IDs match what you expect before moving on.

5. Publish your form: From the island bar at the top of the editor, click Publish.


Part 2 — Route leads with logic

This is the routing engine. You'll use Magic Logic to write one set of rules that assigns each lead to the correct team member and redirects them to that person's booking calendar, all based on their quiz answers.

1. Open Advanced logic: In the form settings panel on the right side of the form editor, click Advanced logic and go to the Logic tab.

2. Launch Magic Logic: In the top right corner of the Logic panel, click Magic Logic.

3. Describe your routing rules: Paste a plain-text prompt describing every condition at once, for example:

"On submit: if project type is Website design & development, assign the Assignee field to Jordan Reyes and redirect to Jordan's booking calendar URL. If project type is SEO & content marketing, assign to Morgan Blake and redirect to Morgan's booking calendar URL. If project type is Paid advertising, assign to Casey Nguyen and redirect to Casey's booking calendar URL. If project type is Branding & creative, assign to Riley Chen and redirect to Riley's booking calendar URL. If project type is Not sure yet, assign to Alex Rivera and redirect to Alex's booking calendar URL. If monthly budget is $10,000+/month, override the assignment and redirect to Dana Whitfield's booking calendar instead, regardless of project type. If start timeline is Just researching, skip the calendar redirect entirely and redirect to a general resources page instead, but still keep the assignee set for internal tracking. Hide none of these fields by default, since every question stays visible on one page."

4. Generate and review each rule: Click Generate Rules. Approve, redo, or cancel each rule the AI proposes.

5. Check the rule order: Once approved, confirm the budget-override and just-researching rules sit below the default project-type rules in the list, since Formaloo evaluates rules in order and later matches overwrite earlier ones.

6. Save your logic: Click Save in the top right corner.

📖 New to conditional routing? See what is logic in Formaloo for the fundamentals.


Part 3 — Set up your email templates

Alongside the redirect, you'll want email confirmation so nothing depends on the respondent actually landing on the right calendar page. This part builds four templates: a booking confirmation, a research nurture email, an internal lead alert, and a booking-confirmed email that fires later when a call actually gets locked in.

1. Create your email templates: Click your profile icon, go to Apps and integrations, find Custom email templates, and hit Add new template. Create four templates named "Your booking link is ready," "Thanks for exploring," "New lead assigned to you," and "Booking confirmed."

2. Write each AI prompt: For each template, clear the body field, add an AI block, and paste the matching prompt below. Give each one a subject line using answer piping for personalization.

📖 See how to create and send custom email templates if this is your first time building one.

Your booking link is ready Subject: @assigned_owner is ready to meet, @full_name Prompt: "Write a warm, confident email from a growth consultancy to a newly qualified lead. Confirm they've been matched with @assigned_owner based on their interest in @project_type, and that their booking link is below. Keep it to 3 to 4 short sentences, friendly but not salesy." HTML design: white background, single centered column with a max-width of 560px, Inter or system-ui font, a bold CTA button linking to the assigned owner's calendar, muted footer in #999.

Thanks for exploring Subject: A few resources on @project_type while you look around Prompt: "Write a low-pressure, helpful email to someone who said they're just researching. Thank them for taking the quiz and offer two or three relevant resources related to @project_type, with no hard call-to-action to book a call. Keep it under 5 sentences." HTML design: white background, single centered column with a max-width of 560px, Inter or system-ui font, plain text resource links instead of a bold button, muted footer in #999.

New lead assigned to you Subject: New lead: @full_name (@company_name), @project_type Prompt: "Write a factual, fast-to-scan internal email notifying a team member of a new assigned lead. Include the lead's name, company, project type, budget range, and timeline, and mention any notes they left. End with a reminder to review the record and follow up." HTML design: white background, single centered column with a max-width of 560px, Inter or system-ui font, a simple data table listing the key fields, muted footer in #999.

Booking confirmed Subject: You're all set, @full_name Prompt: "Write a short, warm confirmation letting the lead know their call is confirmed, referencing @assigned_owner as who they'll meet. Mention a recap PDF is attached. Keep it to 2 to 3 sentences." HTML design: white background, single centered column with a max-width of 560px, Inter or system-ui font, a status badge reading "Confirmed," muted footer in #999.

3. Set the on-submit email triggers: Back in Advanced logic, on the On submit tab, add a rule sending "Your booking link is ready" when start timeline does not equal Just researching, a rule sending "Thanks for exploring" when it does, and a rule always sending "New lead assigned to you" to the assigned team member's address.

4. Set the booking-confirmed trigger: On the On update tab, add a rule sending "Booking confirmed" when Lead status is changed to Booked.

📖 See how to send and receive conditional email notifications for more on conditional triggers.


Part 4 — Build your PDF templates

Two PDF templates round this out: an internal lead summary for the assigned team member, and a client-facing recap you can attach to the booking-confirmed email.

1. Create the lead summary PDF: Click your profile icon, go to Apps and integrations, click Custom PDF template, then Add new template. Switch the editor to HTML view, name it "Lead qualification summary," and paste in the code below.

Lead qualification summary — full HTML

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Lead qualification summary</title> <style>   @page { margin: 0; }   * { box-sizing: border-box; }   body {     margin: 0;     background: #ffffff;     font-family: 'Inter', system-ui, -apple-system, sans-serif;     color: #1a1a1a;   }   .sheet {     max-width: 760px;     margin: 0 auto;     padding: 60px 72px;   }   .header {     display: flex;     justify-content: space-between;     align-items: flex-start;     border-bottom: 1px solid #eee;     padding-bottom: 24px;     margin-bottom: 32px;   }   .header h1 {     font-size: 22px;     font-weight: 600;     margin: 0 0 6px 0;     color: #1a1a1a;   }   .header .meta {     font-size: 12px;     color: #999;   }   .header .ref {     text-align: right;     font-size: 12px;     color: #999;   }   .section {     margin-bottom: 32px;   }   .section-title {     font-size: 10px;     text-transform: uppercase;     letter-spacing: 1.2px;     color: #aaa;     margin-bottom: 14px;     font-weight: 600;   }   .grid {     display: grid;     grid-template-columns: 1fr 1fr;     gap: 0 32px;   }   .field {     padding: 10px 0;     border-bottom: 1px solid #f0f0f0;   }   .field.full {     grid-column: 1 / -1;   }   .field .label {     font-size: 11px;     color: #999;     margin-bottom: 4px;   }   .field .value {     font-size: 14px;     color: #1a1a1a;     font-weight: 500;   }   .routing-callout {     background: #f9f9f9;     border-left: 3px solid #1a1a1a;     padding: 16px 20px;     border-radius: 4px;   }   .routing-callout .label {     font-size: 11px;     color: #999;     margin-bottom: 4px;   }   .routing-callout .value {     font-size: 16px;     font-weight: 600;     color: #1a1a1a;   }   .notes-block {     background: #f9f9f9;     border-left: 3px solid #ddd;     padding: 16px 20px;     border-radius: 4px;     font-size: 13px;     line-height: 1.6;     color: #333;   }   .footer {     display: flex;     justify-content: space-between;     align-items: center;     border-top: 1px solid #eee;     padding-top: 20px;     margin-top: 40px;     font-size: 11px;     color: #999;   } </style> </head> <body>   <div class="sheet">      <div class="header">       <div>         <h1>Lead qualification summary</h1>         <div class="meta">Internal routing record, not for external distribution</div>       </div>       <div class="ref">         Ref #@submission_id<br>         @submission_date       </div>     </div>      <div class="section">       <div class="section-title">Contact details</div>       <div class="grid">         <div class="field">           <div class="label">Full name</div>           <div class="value">@full_name</div>         </div>         <div class="field">           <div class="label">Work email</div>           <div class="value">@work_email</div>         </div>         <div class="field full">           <div class="label">Company name</div>           <div class="value">@company_name</div>         </div>       </div>     </div>      <div class="section">       <div class="section-title">Qualifying answers</div>       <div class="grid">         <div class="field">           <div class="label">Project type</div>           <div class="value">@project_type</div>         </div>         <div class="field">           <div class="label">Monthly budget</div>           <div class="value">@monthly_budget</div>         </div>         <div class="field full">           <div class="label">Start timeline</div>           <div class="value">@start_timeline</div>         </div>       </div>     </div>      <div class="section">       <div class="section-title">Routing decision</div>       <div class="routing-callout">         <div class="label">Assigned team member</div>         <div class="value">@assigned_owner</div>       </div>     </div>      <div class="section">       <div class="section-title">Lead status</div>       <div class="grid">         <div class="field full">           <div class="label">Current status</div>           <div class="value">@lead_status</div>         </div>       </div>     </div>      <div class="section">       <div class="section-title">Notes shared by the lead</div>       <div class="notes-block">@additional_notes</div>     </div>      <div class="footer">       <div>Confidential, internal use only</div>       <div>Your company name</div>     </div>    </div> </body> </html>

2. Create the call confirmation PDF: Repeat the same steps for a second template named "Discovery call confirmation," and paste in the code below instead.

Discovery call confirmation — full HTML

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Discovery call confirmation</title> <style>   @page { margin: 0; }   * { box-sizing: border-box; }   body {     margin: 0;     background: #ffffff;     font-family: 'Inter', system-ui, -apple-system, sans-serif;     color: #1a1a1a;   }   .sheet {     max-width: 760px;     margin: 0 auto;     padding: 60px 72px;   }   .header {     display: flex;     justify-content: space-between;     align-items: flex-start;     border-bottom: 1px solid #eee;     padding-bottom: 24px;     margin-bottom: 32px;   }   .header h1 {     font-size: 22px;     font-weight: 600;     margin: 0 0 6px 0;     color: #1a1a1a;   }   .header .meta {     font-size: 12px;     color: #999;   }   .header .ref {     text-align: right;     font-size: 12px;     color: #999;   }   .section {     margin-bottom: 32px;   }   .section-title {     font-size: 10px;     text-transform: uppercase;     letter-spacing: 1.2px;     color: #aaa;     margin-bottom: 14px;     font-weight: 600;   }   .grid {     display: grid;     grid-template-columns: 1fr 1fr;     gap: 0 32px;   }   .field {     padding: 10px 0;     border-bottom: 1px solid #f0f0f0;   }   .field.full {     grid-column: 1 / -1;   }   .field .label {     font-size: 11px;     color: #999;     margin-bottom: 4px;   }   .field .value {     font-size: 14px;     color: #1a1a1a;     font-weight: 500;   }   .host-callout {     background: #f9f9f9;     border-left: 3px solid #1a1a1a;     padding: 20px 24px;     border-radius: 4px;     text-align: left;   }   .host-callout .label {     font-size: 11px;     color: #999;     margin-bottom: 6px;   }   .host-callout .value {     font-size: 20px;     font-weight: 600;     color: #1a1a1a;   }   .notes-block {     background: #f9f9f9;     border-left: 3px solid #ddd;     padding: 16px 20px;     border-radius: 4px;     font-size: 13px;     line-height: 1.6;     color: #333;   }   .footer {     display: flex;     justify-content: space-between;     align-items: center;     border-top: 1px solid #eee;     padding-top: 20px;     margin-top: 40px;     font-size: 11px;     color: #999;   } </style> </head> <body>   <div class="sheet">      <div class="header">       <div>         <h1>Your discovery call is booked</h1>         <div class="meta">A copy of what we'll cover, and who you'll meet</div>       </div>       <div class="ref">         Ref #@submission_id<br>         @submission_date       </div>     </div>      <div class="section">       <div class="section-title">Your details</div>       <div class="grid">         <div class="field">           <div class="label">Full name</div>           <div class="value">@full_name</div>         </div>         <div class="field">           <div class="label">Company name</div>           <div class="value">@company_name</div>         </div>       </div>     </div>      <div class="section">       <div class="section-title">What we'll cover</div>       <div class="grid">         <div class="field">           <div class="label">Project focus</div>           <div class="value">@project_type</div>         </div>         <div class="field full">           <div class="label">Budget range shared</div>           <div class="value">@monthly_budget</div>         </div>       </div>     </div>      <div class="section">       <div class="section-title">Who you'll be speaking with</div>       <div class="host-callout">         <div class="label">Your dedicated contact</div>         <div class="value">@assigned_owner</div>       </div>     </div>      <div class="section">       <div class="section-title">Notes you shared with us</div>       <div class="notes-block">@additional_notes</div>     </div>      <div class="footer">       <div>Confidential, prepared for @full_name</div>       <div>Your company name</div>     </div>    </div> </body> </html>

3. Attach the PDFs to your emails: In the "New lead assigned to you" template, attach the lead summary PDF. In the "Booking confirmed" template, attach the call confirmation PDF.


Part 5 — Activate your portal and build the team pipeline

Finally, turn the project into a portal so each team member can see only their own assigned leads, and your admins can see everything.

1. Activate your portal: Open your project's Settings (gear icon), select Activate portal, click Manage user, and open the Setup wizard. Search for an existing user directory or add a new one, then click Next step to configure login and sign-up options.

2. Add a role for each team member: Go to your User directory, click Edit profile fields, and add each team member's name as an option under User roles.

3. Restrict pipeline visibility by assignee: Switch your data block to Edit mode, click Options, scroll to Manage access, select the Assigned team member field, and toggle on Allow assignees to view only their data.

4. Set page access for admin-only views: Next to each admin page in the portal navigation, click the three-dot menu, select Access, and set it to Specific user roles restricted to your admin role.

5. Add your Kanban and table views: Build an all-leads Kanban board grouped by Lead status, plus filtered table views for each team member's own pipeline.

Note: You can set a custom domain on your portal, available on the Business plan or through the Brand removal add-on.


What you now have

A single quiz now does the job that used to take a person: it qualifies the lead, decides which team member should own the conversation, and sends the lead straight to that person's calendar, all in one submission. High-budget leads get escalated automatically, and early-stage researchers get nurtured instead of clogging up a calendar they weren't ready to book. Your team gets notified the moment a lead is assigned, with a PDF summary ready before the call even starts, and every assigned lead lives in a portal where each person sees only their own pipeline.

Used by a 12-person digital marketing consultancy to cut lead-to-call time in half by routing quiz respondents straight to the right specialist's calendar instead of a shared inbox.


Ready-to-use templates

Don't build this from scratch, we've already put it together for you.

  • AI lead qualification & scoring form — Collects demo requests and scores leads with AI. The same conditional-routing logic in this article layers directly on top to send hot leads to the right calendar instead of just the right inbox.

  • Service cost estimator for agencies — Lets clients estimate project costs before booking a call. Pair it with the routing logic here so different budget tiers land with different team members automatically.

  • Employee request workflow — Routes internal requests by type and notifies the right team. The same assign-and-notify pattern used here for external leads works just as well for internal routing.

Don't have a form yet? Create one in seconds with Magic Create, describe what you need, and Formaloo builds the form for you.


Learn more how-tos

Did this answer your question?