What you'll build
A scored walkthrough checklist that facilities and EHS teams fill out on-site, covering six standard safety categories with required photo evidence for every item. The moment any category fails, the form opens a corrective action block that routes the fix straight to a responsible person with a due date and priority, no separate email or spreadsheet needed. Two AI fields run quietly in the background on every submission, writing a private risk summary and a suggested fix for your team, and a portal gives inspectors, assignees, and EHS admins their own view of the same data.
When to use this
Your facilities or EHS team still runs walkthroughs on paper, or in an app that isn't connected to anything else, so failed items get noted and then forgotten.
You need proof that a walkthrough actually happened, not just a checkbox, so every category requires its own photo.
Failed items currently reach the right person by someone remembering to forward an email or ping Slack, instead of automatically.
You want a compliance score per walkthrough that you can trend over time, by site or by category.
Your team keeps copying safety data into a separate AI tool to get a quick read on risk, instead of having that summary sit right next to the submission.
Part 1 — Build the checklist form with Magic Create
This is where the checklist itself gets built: site details, six pass/fail categories with required photo evidence per item, and the corrective action fields that only apply when something fails. The fastest way to build it is Magic Create, since it can generate all of this from one plain-language prompt.
💡 Want a fully-built form in seconds instead of dragging fields one by one? Magic Create builds your form, fields, and field IDs from a plain-language prompt. This is the cornerstone article for every workflow that starts with "describe your form to the AI." See how to create any form with AI using Magic Create.
1. Open Magic Create: From your Formaloo homepage, click Magic Create.
2. Paste this prompt: "Build a safety inspection and walkthrough checklist form. Include a short text field for site or location being inspected, a short text field for the inspector's name, and a date field for the inspection date. Add six pass/fail choice fields for these categories: fire safety and emergency exits, PPE compliance, electrical safety, housekeeping and walkways, chemical and hazardous material storage, and equipment and machine guarding. After each of those six categories, add a required file upload field for photo evidence that allows multiple files. Add a long text field asking what needs to be fixed, an assignee field asking who's responsible for fixing it, a date field for when it's due, and a dropdown for priority with High, Medium, and Low. Also add these admin-only fields, hidden from whoever fills out the form: a status dropdown with Open, In review, and Resolved, and a long text field for internal notes."
3. Click Create: Formaloo generates the full form from your prompt.
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 (question form) | Field ID | Type |
What site or location are you inspecting? |
| Short text |
Who's conducting this inspection? |
| Short text |
What's the inspection date? |
| Date |
Fire safety & emergency exits: pass or fail? |
| Choice (Pass / Fail) |
Upload photo evidence: fire safety & emergency exits |
| File |
PPE compliance: pass or fail? |
| Choice (Pass / Fail) |
Upload photo evidence: PPE compliance |
| File |
Electrical safety: pass or fail? |
| Choice (Pass / Fail) |
Upload photo evidence: electrical safety |
| File |
Housekeeping & walkways: pass or fail? |
| Choice (Pass / Fail) |
Upload photo evidence: housekeeping & walkways |
| File |
Chemical & hazardous material storage: pass or fail? |
| Choice (Pass / Fail) |
Upload photo evidence: chemical & hazardous material storage |
| File |
Equipment & machine guarding: pass or fail? |
| Choice (Pass / Fail) |
Upload photo evidence: equipment & machine guarding |
| File |
What needs to be fixed? |
| Long text |
Who's responsible for fixing this? |
| Assignee field |
When's this due? |
| Date |
How urgent is this? |
| Dropdown (High / Medium / Low) |
Review status |
| Dropdown (admin-only) |
Internal notes |
| Long text (admin-only) |
💡 Want internal fields, like status, assignee, or scores, invisible to the person filling out the form? What are admin-only fields and how they help is the foundational guide to that mechanism.
5. Confirm the photo fields are required: Open each of the six photo evidence fields and confirm Required is turned on and Allow multiple files is enabled, so an inspector can attach more than one photo per category.
6. Save your form: Click Save in the island bar at the top of the editor.
Part 2 — Add AI-powered risk analysis
This is the part that makes the checklist AI-based, not just scored. Two AI Analysis fields run automatically after every submission and stay entirely internal: one writes a short overall risk read, the other drafts a suggested fix. Neither ever shows up on the form the inspector fills out.
1. Open the Add field panel: In your form editor, click Add field and look for AI Analysis.
2. Add the risk summary field: Click AI Analysis to drop it onto the canvas, and title it "Walkthrough risk summary" with field ID ai_risk_summary.
3. Write its prompt: "Review this safety walkthrough. Fire safety and emergency exits: @fire_safety_status. PPE compliance: @ppe_status. Electrical safety: @electrical_status. Housekeeping and walkways: @housekeeping_status. Chemical and hazardous material storage: @chemical_status. Equipment and machine guarding: @equipment_status. Notes on what needs fixing: @failed_items_notes. Photo evidence is attached in @photo_fire_safety, @photo_ppe, @photo_electrical, @photo_housekeeping, @photo_chemical, and @photo_equipment. Summarize the overall risk level of this walkthrough in one short paragraph, and call out the most urgent failed category first if any items failed."
4. Add the suggested-action field: Repeat steps 1-2 for a second AI Analysis field titled "Suggested corrective action" with field ID ai_suggested_action.
5. Write its prompt: "Based on which categories failed in this safety walkthrough (@fire_safety_status, @ppe_status, @electrical_status, @housekeeping_status, @chemical_status, @equipment_status) and the notes at @failed_items_notes, suggest one concrete corrective action the responsible person should take first. Keep it to two sentences."
Note: Admin-only is locked on for both AI Analysis fields and can't be turned off, so this stays a private read for your team, never something the inspector sees.
6. Save your form: Click Save in the island bar.
Part 3 — Set up the show/hide logic and scoring
Two separate mechanisms live here. Advanced logic controls which fields the inspector sees, and Formaloo's built-in scoring turns the six pass/fail answers into a compliance score, without you writing a single calculation rule.
💡 Want your form to show, hide, skip, or require fields based on what someone just answered? This is the foundational guide to logic in Formaloo. See what is logic in Formaloo.
1. Open Advanced logic: In the form settings panel on the right side of the editor, open Advanced logic and go to the Logic tab.
2. Click Magic Logic: In the top right corner of the Logic panel, click Magic Logic.
3. Paste this prompt: "Hide the fields What needs to be fixed, Who's responsible for fixing this, When's this due, and How urgent is this by default. If Fire safety & emergency exits, PPE compliance, Electrical safety, Housekeeping & walkways, Chemical & hazardous material storage, or Equipment & machine guarding is answered Fail, show all four of those fields, and make Who's responsible for fixing this and When's this due required."
4. Generate and review: Click Generate Rules. Approve the preview, or redo it if anything looks off.
5. Save: Click Save in the top right corner of the Logic panel.
6. Set up scoring: Separately from logic, open your form settings and click Scoring. Assign 1 point to Pass and 0 points to Fail on each of the six checklist categories. Formaloo totals these automatically into a hidden compliance score out of 6, no logic rules required.
Part 4 — Create the notification emails
Four emails run this workflow: one confirms the walkthrough to the inspector, one alerts whoever just got assigned a fix, one keeps the EHS team looped in on failures, and one closes the loop once a fix is marked resolved.
💡 Want to send branded, personalized emails instead of Formaloo's plain default notification? This is the foundational guide to building and sending custom email templates. See how to create and send custom email templates.
1. Open the template builder: Click your profile icon, go to Apps and Integrations, find Custom Email Templates, and click Add New Template.
2. Build the submission confirmation: Clear the body, add an AI block, and write: "Write a short, factual confirmation to the inspector that their safety walkthrough was recorded. Confirm the site (@site_location) and inspection date (@inspection_date). Mention that any failed items they flagged have already been routed to the responsible person. Keep it to 2-3 sentences, calm and professional." Set the subject to "Walkthrough logged for @site_location," name the template, and save it.
💡 Want a rule to fire the moment a form is first submitted, like sending a confirmation? On Submit is that trigger. See what is On Submit logic and how it works. Go to Advanced logic → On Submit, add a rule that sends this template to the inspector's email whenever the form is submitted.
3. Build the corrective action alert: Add a new template. Write: "Write a direct, factual email telling the assignee they've been assigned a corrective action from a safety walkthrough. Reference the site (@site_location), what needs fixing (@failed_items_notes), the due date (@corrective_due_date), and the priority (@corrective_priority). End with a clear call to resolve it by the due date. Keep it under 100 words." Subject: "Action needed: @site_location safety walkthrough." Save it, then on On Submit, add a rule that sends this template to @corrective_assignee whenever any of the six status fields equals Fail.
4. Build the EHS team notification: Add a new template. Write: "Write an internal notification to the EHS and facilities team summarizing which checklist items failed on this walkthrough. Reference @site_location, @inspector_name, the failed-item notes (@failed_items_notes), and the AI risk summary (@ai_risk_summary) as additional context. Tone: factual and internal." Subject: "Failed items on @site_location walkthrough — @inspection_date." Save it, then add an On Submit rule sending this template to your EHS team's distribution address under the same Fail condition.
5. Build the resolution email: Add a final template. Write: "Write a brief confirmation to the inspector that the corrective action from their walkthrough at @site_location has been marked resolved. Reference what was fixed (@failed_items_notes). Keep it under 60 words, warm but efficient." Subject: "Resolved: @site_location corrective action." Save it.
💡 Want a rule to fire whenever an existing record changes, like a status flipping to Resolved? On Update is the trigger for that. See what is On Update logic and how it works. Go to On Update, add a rule that sends this template to the inspector's email whenever Review status changes to Resolved.
Part 5 — Build the PDF report template
Every walkthrough can generate a print-ready PDF record, useful for audits or for handing a physical copy to a site manager. Here's the full HTML.
💡 Want every form submission to generate a polished, branded document automatically? This is the foundational guide to building a PDF template from a submission. See how to create PDF templates to turn responses into documents.
1. Open the PDF template builder: Click your profile icon, go to Apps and Integrations, click Custom PDF Template, and click Add New Template.
2. Switch to HTML view: Toggle the editor to HTML.
3. Paste this code:
<div style="background:#ffffff;max-width:760px;margin:0 auto;padding:60px 72px;font-family:'Inter',system-ui,-apple-system,sans-serif;color:#1a1a1a;"> <!-- Header --> <div style="margin-bottom:48px;"> <div style="font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:#aaaaaa;margin-bottom:8px;">Safety inspection report</div> <h1 style="font-size:26px;font-weight:600;margin:0 0 12px 0;color:#1a1a1a;">Safety inspection & walkthrough checklist</h1> <div style="display:flex;justify-content:space-between;font-size:13px;color:#777777;"> <span>Reference: SIW-@rowid</span> <span>Inspection date: @inspection_date</span> </div> </div> <!-- Walkthrough details --> <div style="margin-bottom:36px;"> <div style="font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:#aaaaaa;margin-bottom:16px;">Walkthrough details</div> <div style="display:grid;grid-template-columns:1fr 1fr;gap:20px 32px;"> <div style="border-bottom:1px solid #eeeeee;padding-bottom:8px;"> <div style="font-size:11px;color:#999999;margin-bottom:4px;">Site or location</div> <div style="font-size:14px;color:#1a1a1a;">@site_location</div> </div> <div style="border-bottom:1px solid #eeeeee;padding-bottom:8px;"> <div style="font-size:11px;color:#999999;margin-bottom:4px;">Inspector</div> <div style="font-size:14px;color:#1a1a1a;">@inspector_name</div> </div> </div> </div> <!-- Checklist results --> <div style="margin-bottom:36px;"> <div style="font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:#aaaaaa;margin-bottom:16px;">Checklist results</div> <div style="display:grid;grid-template-columns:1fr 1fr;gap:20px 32px;"> <div style="border-bottom:1px solid #eeeeee;padding-bottom:8px;"> <div style="font-size:11px;color:#999999;margin-bottom:4px;">Fire safety & emergency exits</div> <div style="font-size:14px;color:#1a1a1a;">@fire_safety_status</div> </div> <div style="border-bottom:1px solid #eeeeee;padding-bottom:8px;"> <div style="font-size:11px;color:#999999;margin-bottom:4px;">PPE compliance</div> <div style="font-size:14px;color:#1a1a1a;">@ppe_status</div> </div> <div style="border-bottom:1px solid #eeeeee;padding-bottom:8px;"> <div style="font-size:11px;color:#999999;margin-bottom:4px;">Electrical safety</div> <div style="font-size:14px;color:#1a1a1a;">@electrical_status</div> </div> <div style="border-bottom:1px solid #eeeeee;padding-bottom:8px;"> <div style="font-size:11px;color:#999999;margin-bottom:4px;">Housekeeping & walkways</div> <div style="font-size:14px;color:#1a1a1a;">@housekeeping_status</div> </div> <div style="border-bottom:1px solid #eeeeee;padding-bottom:8px;"> <div style="font-size:11px;color:#999999;margin-bottom:4px;">Chemical & hazardous material storage</div> <div style="font-size:14px;color:#1a1a1a;">@chemical_status</div> </div> <div style="border-bottom:1px solid #eeeeee;padding-bottom:8px;"> <div style="font-size:11px;color:#999999;margin-bottom:4px;">Equipment & machine guarding</div> <div style="font-size:14px;color:#1a1a1a;">@equipment_status</div> </div> </div> <div style="font-size:11px;color:#aaaaaa;margin-top:14px;font-style:italic;">Photo evidence for each item is attached to this record automatically.</div> </div> <!-- Corrective action --> <div style="margin-bottom:36px;"> <div style="font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:#aaaaaa;margin-bottom:16px;">Corrective action</div> <div style="border-bottom:1px solid #eeeeee;padding-bottom:8px;margin-bottom:20px;"> <div style="font-size:11px;color:#999999;margin-bottom:4px;">What needs to be fixed</div> <div style="font-size:14px;color:#1a1a1a;line-height:1.5;">@failed_items_notes</div> </div> <div style="display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px 32px;"> <div style="border-bottom:1px solid #eeeeee;padding-bottom:8px;"> <div style="font-size:11px;color:#999999;margin-bottom:4px;">Responsible person</div> <div style="font-size:14px;color:#1a1a1a;">@corrective_assignee</div> </div> <div style="border-bottom:1px solid #eeeeee;padding-bottom:8px;"> <div style="font-size:11px;color:#999999;margin-bottom:4px;">Due date</div> <div style="font-size:14px;color:#1a1a1a;">@corrective_due_date</div> </div> <div style="border-bottom:1px solid #eeeeee;padding-bottom:8px;"> <div style="font-size:11px;color:#999999;margin-bottom:4px;">Priority</div> <div style="font-size:14px;color:#1a1a1a;">@corrective_priority</div> </div> </div> </div> <!-- AI risk summary --> <div style="margin-bottom:36px;"> <div style="font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:#aaaaaa;margin-bottom:16px;">AI risk summary</div> <div style="background:#f9f9f9;border-left:3px solid #dddddd;padding:16px 20px;font-size:13px;color:#444444;line-height:1.6;margin-bottom:16px;"> @ai_risk_summary </div> <div style="font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:#aaaaaa;margin-bottom:16px;">Suggested corrective action</div> <div style="background:#f9f9f9;border-left:3px solid #dddddd;padding:16px 20px;font-size:13px;color:#444444;line-height:1.6;"> @ai_suggested_action </div> </div> <!-- Footer --> <div style="display:flex;justify-content:space-between;margin-top:56px;padding-top:16px;border-top:1px solid #eeeeee;font-size:10px;color:#999999;"> <span>Confidential: internal safety record</span> <span>[Your organization name]</span> </div> </div>
4. Name and save: Give the template a name like "Safety walkthrough report" and save it.
Note: The reference number uses @rowid, the incremental row ID of the submission, piped directly into the text as "SIW-@rowid." There's no separate field for it. Photos aren't manually embedded in this layout since Formaloo attaches uploaded files to the generated PDF automatically.
5. Attach it to the resolution email: Open the "Corrective action resolved" email template from Part 4, and attach this PDF template so the closed-out record goes out with the confirmation.
What you now have
A safety walkthrough workflow that scores itself, documents itself with required photos, and routes its own exceptions, without anyone forwarding an email or updating a spreadsheet by hand. Every submission gets a private AI risk read and a suggested fix sitting right next to the raw checklist data, so your EHS team can triage in seconds instead of reading every entry line by line. Inspectors, assignees, and admins each open a portal built around exactly what their role needs to see, and every walkthrough leaves behind a print-ready PDF record for whenever an audit asks for proof.
What's next
See AI scoring drive a full workflow end to end If the AI Analysis pattern here is useful, this walks through the surrounding pieces, hot/cold routing, conditional emails, and notifications, that pair naturally with a private AI-generated score. → How to build an AI-powered lead qualification system
Add a second approval layer before a corrective action closes If your EHS process needs a supervisor to sign off before a fix counts as resolved, this covers layering a second review stage on top of a routing workflow like this one. → How to build a dual-approval request workflow
See a Kanban-driven intake pipeline with AI email templates and a PDF, applied to a different industry Same underlying pattern, form intake, conditional logic, AI-personalized emails, a PDF template, and an admin Kanban, built for a healthcare intake instead of a safety walkthrough. → How to build a patient intake and consent workflow for healthcare clinics
Ready-to-use templates
Don't build this from scratch, we've already put it together for you.
Employee request workflow — Routes internal requests by type and tracks approvals from one view. Swap its request categories for the six safety categories here to reuse its internal-routing backbone.
Scholarship & grant application with scoring and approval — Auto-calculates a score across multiple criteria and routes based on the result. The same scoring mechanism behind this checklist's compliance score.
Patient intake & consent workflow for healthcare — Uses AI-powered email templates, a PDF template, and an admin Kanban pipeline, the same combination this walkthrough checklist relies on, built for a different industry.
Learn more how-tos
Score-based routing without any manual calculation If the native Scoring feature used here is new to you, this walks through a full scored quiz-style workflow from setup to result routing. → How to build a score-based learning style quiz with personalized results
A second AI-screened intake, before a human reviews anything Useful context for framing what an AI Analysis prompt should ask for, since this workflow also has AI read a submission before a person does. → How to build an AI-powered job application pipeline with candidate screening
Turn a submission into a formal outbound document If you need the walkthrough data turned into something beyond an internal PDF record, like a client-facing report, this covers the proposal/contract side of the same data. → How to turn form responses into proposals and contracts

