What you'll build
By the end of this guide, you'll have a two-form certification review system in Formaloo. Applicants submit one application form per certification cycle, and 6 to 8 independent reviewers each fill out a separate scorecard form for every applicant they're assigned to score. Conflict-of-interest logic automatically hides the rubric for any reviewer who flags a conflict, and a single decision PDF pulls every reviewer's average score into one document your board can sign off on.
When to use this
Your certification board runs two annual intake periods, and every application needs to go through a fixed scoring rubric
You need 6 to 8 independent reviewers to score each applicant without seeing each other's scores or comments
A reviewer sometimes has a conflict of interest with an applicant and needs a clean way to step back without breaking the workflow
Your board wants one clear decision document per applicant instead of piecing together scores from a shared spreadsheet
You're tired of manually chasing reviewers to find out who still owes a scorecard
Step-by-step
Part 1 β Build the certification application form
This is the form applicants use to apply for certification. It captures their basic details, which certification and intake period they're applying for, and their supporting documents, along with the admin-only fields your coordinator needs to track status and assignment. The fastest way to build it is with Magic Create: paste a prompt and Formaloo generates the whole form in seconds.
1. Open Magic Create: From your Formaloo homepage, click Magic Create.
2. Describe the application form: Enter a prompt like "Build a certification application form with fields for full name, email, organization, which certification the applicant is applying for (dropdown), which intake period they're applying for (dropdown with Spring intake and Fall intake), a file upload for supporting documents, a yes/no consent question for panel review, and an optional long text field for additional notes. Add three admin-only fields: a status dropdown (Submitted, Under review, Scoring complete, Approved, Declined), an assignee field for the coordinator, and an internal notes long text field."
3. Click Create: Formaloo builds your form, including field IDs, in seconds.
4. Verify your fields: Your form should look like this. Magic Create will have generated most of it. Verify each field and field ID matches exactly:
Field | Field ID | Type |
Full name | applicant_name | Short text |
applicant_email | ||
Organization | organization | Short text |
Certification type | certification_type | Dropdown |
Intake period | intake_period | Dropdown |
Supporting documents | supporting_documents | File upload |
Review consent | review_consent | Yes/No |
Additional notes | additional_notes | Long text |
5. Publish the form: Click Publish in the island bar at the top of the editor.
π Admin-only fields (status, assignee, internal notes) stay hidden from applicants automatically. See what are admin-only fields and how they help for more on how these work.
Part 2 β Build the reviewer scorecard form
Blind multi-reviewer scoring only works if each reviewer's scorecard lives in its own record, separate from the application and from every other reviewer's scorecard. This second form is what each of your 6 to 8 reviewers fills out, once per applicant they're assigned to review. A reference field ties each scorecard back to the right application.
1. Create a new form: From your Formaloo homepage, start a new Form for the reviewer scorecard, kept separate from your application form.
2. Describe the scorecard to Magic Create: Enter a prompt like "Build a reviewer scorecard form with a reference field linking to the certification application, a yes/no question asking if the reviewer has a conflict of interest with this applicant, five rating fields from 1 to 5 for technical knowledge, professional experience, documentation quality, ethical standards, and overall readiness, a recommendation dropdown (Approve, Approve with conditions, Decline, Needs more information), and a long text field for the reviewer's explanation. Add three admin-only fields: a review status dropdown (Assigned, In progress, Submitted), an assignee field for the reviewer, and an internal notes long text field."
3. Click Create.
4. Verify your fields: Your form should look like this. Magic Create will have generated most of it. Verify each field and field ID matches exactly:
Field | Field ID | Type |
Which application are you scoring? | application_reference | Reference/lookup |
Conflict of interest | conflict_of_interest | Yes/No |
Technical knowledge score | score_technical_knowledge | Rating (1β5) |
Experience score | score_experience | Rating (1β5) |
Documentation score | score_documentation | Rating (1β5) |
Ethics score | score_ethics | Rating (1β5) |
Overall readiness score | score_overall_readiness | Rating (1β5) |
Reviewer recommendation | reviewer_recommendation | Dropdown |
Reviewer comments | reviewer_comments | Long text |
5. Connect the reference field to your application form: Open the "Which application are you scoring?" field's settings and set its source to your certification application form, so reviewers select an existing applicant instead of typing a name in manually.
6. Publish the form: Click Publish in the island bar at the top of the editor.
π See what are admin-only fields and how they help for more on the review status and assignee fields.
Part 3 β Set up scoring and consent logic with Magic Logic
Two logic rules make this workflow safe to run blind. On the application form, a consent rule blocks submission if the applicant declines panel review. On the scorecard form, a conflict-of-interest rule hides the entire rubric the moment a reviewer flags a conflict, and a required-field guard makes sure any non-approval recommendation comes with an explanation.
1. Open Advanced logic on the application form: In the form settings panel on the right side, open Advanced logic and go to the Logic tab.
2. Open Magic Logic: Click Magic Logic in the top right corner of the Logic panel.
3. Describe your consent rule: Paste "If the answer to 'Do you consent to your application being reviewed by a panel of assessors?' is No, show a warning message that the application cannot proceed without consent. Hide the warning by default."
4. Generate and review the rule: Click Generate Rules. Approve the rule, or redo it if it's not quite right.
5. Save your logic: Click Save in the top right corner.
6. Open Advanced logic on the scorecard form: Repeat steps 1β2 on your reviewer scorecard form.
7. Describe the conflict-of-interest rule: Paste "If 'Do you have a conflict of interest with this applicant?' is Yes, hide the five rating fields and the recommendation field, and show a note asking the reviewer to contact their coordinator for reassignment. Keep the rubric fields visible by default."
8. Describe the recommendation guard: In the same Magic Logic pass, add "If 'What's your recommendation?' is not Approve, require 'Please explain your recommendation.' Leave it optional by default."
9. Generate, review, and save: Click Generate Rules, approve each rule, then click Save.
Part 4 β Create your email templates
This workflow runs on four emails: a confirmation to the applicant, an assignment notice to the reviewer, a ready-for-decision notice to the coordinator, and a final decision email to the applicant. Build all four as custom templates so each one can pull in the right data automatically.
1. Open custom email templates: Click your profile icon, go to Apps and integrations, and open Custom email templates.
2. Create the application received template: Click Add new template, name it "Application received," then enter the subject and body below. Save it.
Application received Subject: We've received your @certification_type application Body:
Hi @applicant_name,
Thanks for submitting your application for @certification_type during the @intake_period intake. Your submission has been received and is now on its way to our review panel.
You'll hear from us again once every reviewer has finished scoring your application. In the meantime, feel free to reach out if anything changes on your end.
Best, The certification review team
3. Create the reviewer assignment template: Add another template named "Reviewer assignment notification," then enter the subject and body below. Save it.
Reviewer assignment notification Subject: You've been assigned to review an application Body:
Hi @assignee,
You've been assigned a new application to score for @certification_type. Here's what you're reviewing:
Applicant organization: @organization
Please open your scorecard and submit your rubric scores as soon as you're able. If you have a conflict of interest with this applicant, flag it on the scorecard and we'll reassign it.
Thanks for your time, The certification review team
4. Create the scoring complete template: Add a template named "Scoring complete," then enter the subject and body below. Save it.
Scoring complete Subject: All reviews are in for @applicant_name's application Body:
Hi @assignee,
Every reviewer has now submitted their scorecard for @applicant_name's @certification_type application.
Total average score: @avg_total_score / 5
This application is ready for a final decision. Update the application status once the board has made its call.
Best, The certification review team
5. Create the final decision template: Add a template named "Final decision," then enter the subject and body below. Save it.
Final decision Subject: Your @certification_type application decision Body:
Dear @applicant_name,
Thank you for applying for @certification_type during the @intake_period intake. After review by our assessment panel, the status of your application is: @app_status.
A full summary of your review, including your decision document, is attached to this email.
If you have any questions about this decision, please don't hesitate to reach out.
Best regards, The certification review board
π See how to create and send custom email templates for the full walkthrough, including AI blocks and answer piping.
Part 5 β Set up email notification triggers
With your templates built, connect each one to the moment it should fire. The application-received email sends immediately on submission. The other three depend on status and assignment changes, so they run through conditional logic instead.
1. Send the application received email automatically: On the application form, open Notify from the right sidebar, turn on Send email to respondent, select your "Application received" template, and click Publish.
2. Set up the reviewer assignment trigger: On the scorecard form, open Advanced logic and add a rule: "When 'Assigned reviewer' is set, send the 'Reviewer assignment notification' email to the assigned reviewer." Save the rule.
3. Set up the scoring complete trigger: On the application form, add a conditional rule: "When 'Application status' changes to 'Scoring complete', send the 'Scoring complete' email to the assigned coordinator." Save the rule.
4. Set up the final decision trigger: Add one more rule: "When 'Application status' changes to 'Approved', 'Approved with conditions', or 'Declined', send the 'Final decision' email to the applicant's email field." Save the rule.
π See how to send and receive conditional email notifications for more on routing emails by status.
Part 6 β Build the decision PDF template
Once scoring wraps up, your board needs one clean document per applicant: their information, every rubric average, the final decision, and a signature line. Build this as a custom PDF template so it generates automatically from the application record.
1. Open custom PDF templates: Click your profile icon, go to Apps and integrations, and open Custom PDF template.
2. Add a new template: Click Add new template and switch the editor to HTML view.
3. Paste your PDF code: Paste the ready-made "Certification review decision" HTML template below. It lays out applicant details, a rubric-by-rubric score breakdown, a total average score, a decision badge, and a signature line for the board chair.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Certification Review Decision</title> <style> body { font-family: 'Inter', system-ui, -apple-system, sans-serif; background: #ffffff; color: #222; margin: 0; padding: 0; } .page { max-width: 760px; margin: 0 auto; padding: 60px 72px; } .header { display: flex; justify-content: space-between; align-items: flex-start; border-bottom: 1px solid #eaeaea; padding-bottom: 24px; margin-bottom: 36px; } .header h1 { font-size: 22px; font-weight: 600; margin: 0 0 6px 0; color: #111; } .header .meta { font-size: 12px; color: #999; } .header .ref { text-align: right; font-size: 12px; color: #999; line-height: 1.6; } .section { margin-bottom: 32px; } .section-title { font-size: 10px; text-transform: uppercase; letter-spacing: 1.5px; 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: #222; font-weight: 500; } .total-score { background: #fafafa; border-radius: 8px; padding: 20px 24px; display: flex; justify-content: space-between; align-items: center; margin-top: 8px; } .total-score .label { font-size: 12px; color: #888; text-transform: uppercase; letter-spacing: 1px; } .total-score .value { font-size: 28px; font-weight: 700; color: #111; } .badge { display: inline-block; padding: 6px 16px; border-radius: 20px; background: #f0f0f0; color: #333; font-size: 13px; font-weight: 600; letter-spacing: 0.3px; } .inset { background: #f9f9f9; border-left: 3px solid #ddd; border-radius: 4px; padding: 16px 20px; font-size: 13px; color: #555; line-height: 1.6; } .signature-block { margin-top: 40px; display: flex; justify-content: space-between; align-items: flex-end; } .signature { font-family: Georgia, 'Times New Roman', serif; font-style: italic; font-size: 20px; color: #333; border-bottom: 1px solid #ccc; padding-bottom: 6px; min-width: 240px; } .signature-caption { font-size: 11px; color: #999; margin-top: 6px; } .footer { margin-top: 48px; padding-top: 20px; border-top: 1px solid #eaeaea; display: flex; justify-content: space-between; font-size: 10px; color: #999; } </style> </head> <body> <div class="page"> <div class="header"> <div> <h1>Certification review decision</h1> <div class="meta">Reference: @application_id</div> </div> <div class="ref"> Submitted: @submission_date<br> Intake period: @intake_period </div> </div> <div class="section"> <div class="section-title">Applicant information</div> <div class="grid"> <div class="field"> <div class="field-label">Full name</div> <div class="field-value">@applicant_name</div> </div> <div class="field"> <div class="field-label">Organization</div> <div class="field-value">@organization</div> </div> <div class="field"> <div class="field-label">Certification applied for</div> <div class="field-value">@certification_type</div> </div> <div class="field"> <div class="field-label">Email</div> <div class="field-value">@applicant_email</div> </div> </div> </div> <div class="section"> <div class="section-title">Review panel summary β average of @reviewer_count reviewers</div> <div class="grid"> <div class="field"> <div class="field-label">Technical knowledge and competency</div> <div class="field-value">@avg_score_technical_knowledge / 5</div> </div> <div class="field"> <div class="field-label">Relevant professional experience</div> <div class="field-value">@avg_score_experience / 5</div> </div> <div class="field"> <div class="field-label">Documentation quality and completeness</div> <div class="field-value">@avg_score_documentation / 5</div> </div> <div class="field"> <div class="field-label">Adherence to professional and ethical standards</div> <div class="field-value">@avg_score_ethics / 5</div> </div> <div class="field full"> <div class="field-label">Overall readiness for certification</div> <div class="field-value">@avg_score_overall_readiness / 5</div> </div> </div> <div class="total-score"> <div class="label">Total average score</div> <div class="value">@avg_total_score / 5</div> </div> </div> <div class="section"> <div class="section-title">Decision</div> <span class="badge">@app_status</span> </div> <div class="section"> <div class="section-title">Board notes</div> <div class="inset"> Applicant consented to panel review: @review_consent<br> @internal_notes </div> </div> <div class="signature-block"> <div> <div class="signature">@board_chair_name</div> <div class="signature-caption">Authorized signature, certification review board</div> </div> </div> <div class="footer"> <div>This document is confidential and intended solely for the named recipient.</div> <div>@org_name</div> </div> </div> </body> </html>4. Name and save: Name it "Certification review decision" and click Save.
5. Attach the PDF to your final decision email: Open your "Final decision" email template and attach the "Certification review decision" PDF, so both approved and declined applicants receive their decision as a signed document.
Part 7 β Activate the portal and set up roles
Three roles need three different scopes of visibility here: applicants only see their own application, reviewers only see the scorecards assigned to them (never anyone else's scores), and coordinators see everything. Activating a portal and layering role-based access is what makes the whole workflow blind and self-service at once.
1. Activate the portal: From your project, click the Settings (gear) icon, select Activate portal, then click Manage users to open the setup wizard.
2. Connect your user directory: Search for an existing user directory or create a new one, then click Next step.
3. Configure sign-up and login: Enable user login, choose your sign-up options, and turn on CAPTCHA or passwordless login if you want it.
4. Add your applicant, reviewer, and coordinator roles: Go to your User directory, click Edit profile fields, and add "Applicant," "Reviewer," and "Coordinator" as options on the User roles field.
5. Restrict applicants to their own data: On your "My application" page's data block, switch to Edit mode, click Options, scroll to Manage access, select the applicant's profile field, and turn on Allow users to view only their data.
6. Restrict reviewers to their assigned scorecards: On your reviewer-facing pages, repeat the same steps under Manage access, but select the Assignee field instead of a profile field, and turn on Allow assignees to view only their data. This is what keeps scoring blind: reviewers never see another reviewer's scores.
7. Set page-level access for each role: For every page in your portal, click the three-dot menu next to the page name, select Access, and choose which role can see it, so applicants, reviewers, and coordinators each land on a different set of pages.
8. Publish and share your portal: Once your pages and access levels are set, share the portal link with your applicants, reviewers, and coordinators.
Note: You can set a custom domain on your portal, available on the Business plan or via the Brand removal add-on.
What you now have
A certification review workflow that runs itself across two annual intake periods, with applicants submitting once and reviewers scoring blind, unaware of each other's ratings or comments. Conflict-of-interest logic keeps a compromised reviewer from ever seeing the rubric for that applicant, and every notification, from confirmation to final decision, fires automatically off status changes. Your coordinator gets one dashboard showing exactly who still owes a scorecard, and your board gets one signed PDF per applicant instead of a shared spreadsheet nobody fully trusts.
What's next
Keep review queues manageable as volume grows Once you're running two intake periods with 6 to 8 reviewers each, filtered views for pending decisions and overdue scorecards become essential, not optional. β How to sort and filter your submissions data
Pull deeper data into your decision PDF As your rubric evolves, you'll want the full list of variables you can pipe into the decision document beyond the basics covered here. β How to dynamically pull form data into custom emails, PDFs, and AI prompts
Re-engage declined applicants ahead of the next intake Rather than letting declined applicants go cold, an automated outreach campaign can invite them to reapply once they've addressed reviewer feedback. β How to send an email campaign and collect data with AI agents in Formaloo
Ready-to-use templates
Don't build this from scratch β we've already put it together for you.
Scholarship & grant application with scoring and approval β A multi-reviewer scoring workflow for grants and scholarships with auto-calculated scores and approval emails. Its scoring-and-approval structure is the closest existing template to a certification rubric review, and it's a fast starting point if you want committee scoring without the blind-review layer.
Job applicant tracking workflow β Tracks applicants across hiring stages with status updates and reviewer assignments from one view. The assignee-based tracking pattern maps directly onto assigning scorecards to individual reviewers.
Employee request workflow β Routes internal requests by type, tracks approvals, and notifies the right team. Useful as a reference if your board also needs a lighter-weight internal request process alongside certification review.
Learn more how-tos
See how another team scores multiple applicants against a rubric This scholarship workflow shares the same scoring-and-approval shape as certification review, just applied to grant committees instead of assessor panels. β Scholarship & grant application with scoring and approval workflow
Compare against a candidate-screening review pipeline If your board also handles staff or volunteer applications alongside certifications, this pipeline shows a similar assign-then-review pattern with AI screening layered in. β How to build an AI-powered job application pipeline with candidate screening
See a simpler two-stage approval pattern For boards that only need one or two sign-offs rather than 6 to 8 blind reviewers, this dual-approval workflow is a lighter alternative to adapt. β How to build a dual-approval request workflow
