Skip to main content

How to build a 360-degree performance review system in Formaloo

Build a 360-degree performance review system in Formaloo — HR and manager review sections, weighted calc scores, automated emails, PDF summaries, and a role-based portal.

What you'll build

By the end of this guide, you'll have a single form that routes through two review stages — HR fills their section first, then the manager completes theirs. Calc fields automatically aggregate scores across four categories and compute a combined rating. When both reviews are done, a personalized PDF summary is generated and emailed directly to the employee. An HR portal then gives every role — HR, manager, and employee — a tailored view of exactly the data they need.


When to use this

  • Your HR team runs performance reviews twice a year and coordinates them across email threads and spreadsheets

  • Managers lose track of which reviews they've completed and which are still waiting on them

  • You want employees to receive a clean, professional review summary — not a forwarded email chain

  • You need a single HR view to see all reviews by stage and spot bottlenecks at a glance

  • You're growing your team and need a repeatable, structured review cycle that doesn't require manual coordination each time


Part 1 — Build the review form

This is the foundation of the whole workflow. One form holds three sections: a public section for basic employee info (filled by HR when kicking off the cycle), an HR review section, and a manager review section. Both reviewer sections are admin-only — employees never see them. The fastest way to build this is with Magic Create: paste a single prompt and Formaloo generates the full form, field IDs and all.

1. From your Formaloo homepage, click Magic Create. You can upload a document or describe your form in text. Select the text option and paste the following prompt, then click Create:

"Create a 360-degree performance review form. Public fields: employee full name (short text, ID: employee_name), job title (short text, ID: employee_title), department (single choice: Engineering, Product, Design, Marketing, Sales, Operations, Other — ID: employee_department), work email (email, ID: employee_email), review period (single choice: H1 2026, H2 2026, Full year 2026 — ID: review_period), review goals and focus areas (long text, ID: review_goals).

Admin-only fields — HR review section: HR reviewer (assignee, ID: hr_reviewer), communication score 1–5 (number, ID: hr_score_communication), execution score 1–5 (number, ID: hr_score_execution), impact score 1–5 (number, ID: hr_score_impact), growth score 1–5 (number, ID: hr_score_growth), HR average score (calc = average of the four HR score fields, ID: hr_avg_score), key strengths (long text, ID: hr_strengths), areas for growth (long text, ID: hr_growth_area), overall HR assessment (long text, ID: hr_assessment).

Admin-only fields — Manager review section: manager reviewer (assignee, ID: manager_reviewer), communication score 1–5 (number, ID: mgr_score_communication), execution score 1–5 (number, ID: mgr_score_execution), impact score 1–5 (number, ID: mgr_score_impact), growth score 1–5 (number, ID: mgr_score_growth), manager average score (calc = average of the four manager score fields, ID: mgr_avg_score), key strengths (long text, ID: mgr_strengths), areas for growth (long text, ID: mgr_growth_area), overall manager assessment (long text, ID: mgr_assessment).

Admin-only pipeline fields: review status (dropdown: In HR review, In manager review, Done — ID: review_status), combined score (calc = average of hr_avg_score and mgr_avg_score, ID: combined_score), internal notes (long text, ID: internal_notes)."

2. Verify your form matches this table. Magic Create will have generated most of the fields automatically. Check each field name, ID, and type against the table below — make any adjustments directly in the editor.

Public fields:

Field

ID

Type

What is the employee's full name?

employee_name

Short text

What is their job title?

employee_title

Short text

What department are they in?

employee_department

Single choice

What is their work email address?

employee_email

Email

What review period does this cover?

review_period

Single choice

What are the main goals or focus areas for this review?

review_goals

Long text

HR review section (admin-only):

Field

ID

Type

HR reviewer

hr_reviewer

Assignee

Communication & collaboration (1–5)

hr_score_communication

Number

Execution & delivery (1–5)

hr_score_execution

Number

Impact & results (1–5)

hr_score_impact

Number

Growth & development (1–5)

hr_score_growth

Number

HR average score

hr_avg_score

Calc

Key strengths (HR)

hr_strengths

Long text

Areas for growth (HR)

hr_growth_area

Long text

Overall HR assessment

hr_assessment

Long text

Manager review section (admin-only):

Field

ID

Type

Manager reviewer

manager_reviewer

Assignee

Communication & collaboration (1–5)

mgr_score_communication

Number

Execution & delivery (1–5)

mgr_score_execution

Number

Impact & results (1–5)

mgr_score_impact

Number

Growth & development (1–5)

mgr_score_growth

Number

Manager average score

mgr_avg_score

Calc

Key strengths (manager)

mgr_strengths

Long text

Areas for growth (manager)

mgr_growth_area

Long text

Overall manager assessment

mgr_assessment

Long text

Pipeline fields (admin-only):

Field

ID

Type

Review status

review_status

Dropdown

Combined score

combined_score

Calc

Internal notes

internal_notes

Long text

📖 To learn more about admin-only fields and how they work, see what are admin-only fields and how they help.

3. Confirm your calc fields are configured correctly. Open the hr_avg_score field → verify it's set to calculate the average of hr_score_communication, hr_score_execution, hr_score_impact, and hr_score_growth. Repeat for mgr_avg_score with the four manager score fields. Open combined_score → confirm it averages hr_avg_score and mgr_avg_score.

📖 For more on calc fields, see how to move 'Calc' to the 'Logic & Calculation' tab.

4. Click Publish in the island bar at the top of the editor to make the form live.


Part 2 — Set up logic rules

With your form ready, add the rules that automate the routing. On submission, the status sets itself to "In HR review" and the record assigns to the HR reviewer automatically. When HR flips the status to "In manager review", the record routes to the manager. When the status reaches "Done", the PDF generates and the summary emails fire. You'll use Magic Logic to set all of this up in one pass.

1. Open your form in the editor. In the form settings panel on the right side, click Advanced logic, then navigate to the Logic tab.

2. Click Magic Logic in the top right corner of the Logic panel to open the Magic Logic prompt box.

3. Paste the following prompt and click Generate Rules:

"Set up the following logic rules:

On Submit: Set the review_status field to 'In HR review'. Assign the record to the hr_reviewer assignee field.

On Update: When review_status is changed to 'In manager review', assign the record to the manager_reviewer assignee field.

On Update: When review_status is changed to 'Done', generate the employee summary PDF using the PDF template. Send an email to employee_email using the employee summary email template. Send an email to hr_reviewer using the HR summary email template."

4. Review each generated rule. Approve, redo, or cancel each one individually. Once all rules look correct, click Apply to set them for final review.

5. Click Save in the top right corner of the Logic panel.

📖 For a full walkthrough of On Submit and On Update logic, see how to add advanced logic to your form.


Part 3 — Create email templates

You need six email templates — one for each moment in the review cycle where a notification adds value. These are all built the same way: create a template, write an AI prompt in the body, and save it. In Part 4, you'll wire them to the logic rules.

1. Click your profile icon in the top right → Apps & integrationsEmail templates+ Add new template.

2. Create the following six templates one by one. For each one: add a name, paste the subject line, clear the body area, add an AI block, paste the body prompt, and click Save.


Template 1 — New review started Name: New review started Subject: Performance review started for @employee_name (@review_period) Body prompt: Write a concise, action-oriented email notifying an HR reviewer that a new performance review record has been created and assigned to them. Tell them who is being reviewed (@employee_name, @employee_title, @employee_department), what period it covers (@review_period), and that the review goals are: @review_goals. Their next step is to open the record, complete the HR review section, then move the status to "In manager review" when done. Tone: clear and collegial. 4–6 sentences, no filler. HTML design: white background, single centered column max-width 560px, Inter font, soft blue (#EFF6FF) info banner showing employee name and review period, CTA button "Open review record" in #2563EB, muted footer #999.


Template 2 — Manager review ready Name: Manager review ready Subject: It's your turn — review @employee_name (@review_period) Body prompt: Write a direct, respectful email to a manager telling them HR has completed their review of @employee_name and the record is now in the manager review stage. Tell them their job is to open the record, complete the manager review section, and move the status to "Done." Reference the review period (@review_period) and goals: @review_goals. Close with one warm sentence. Tone: busy manager — get to the point. 5–7 sentences. HTML design: white background, single centered column max-width 560px, Inter font, pale green (#F0FDF4) header showing employee name and "Manager review ready", CTA button "Complete your review" in #16A34A, muted footer #999.


Template 3 — Review complete, summary to employee Name: Review complete — employee summary Subject: Your @review_period performance review is complete Body prompt: Write a warm, human email to @employee_name letting them know their performance review for @review_period is complete. Tell them their combined score is @combined_score out of 5. Briefly highlight strengths from HR (@hr_strengths) and their manager (@mgr_strengths), and one growth area from each (@hr_growth_area, @mgr_growth_area). Invite them to reach out if they'd like to discuss. Tone: encouraging and respectful — this is a meaningful moment. 6–8 sentences, not a form letter. HTML design: white background, single centered column max-width 560px, Inter font, warm amber (#FFFBEB) header with employee name and "Review complete", two-column data block showing HR score (@hr_avg_score) and manager score (@mgr_avg_score) side by side in large bold numerals, combined score (@combined_score) centered below, muted footer #999 with "This review is confidential."


Template 4 — Review complete, summary to HR Name: Review complete — HR summary Subject: Review complete: @employee_name (@review_period) — @combined_score/5 Body prompt: Write a brief, factual internal email for the HR team confirming that the full review cycle for @employee_name is complete. Include: employee name (@employee_name), title (@employee_title), department (@employee_department), review period (@review_period), HR reviewer (@hr_reviewer), manager (@manager_reviewer), HR average score (@hr_avg_score), manager average score (@mgr_avg_score), combined score (@combined_score). Add a one-line summary of the HR assessment (@hr_assessment) and manager assessment (@mgr_assessment). Note that the attached PDF contains the full record. Tone: professional, data-focused, internal. 5–6 sentences plus a data table. HTML design: white background, single centered column max-width 560px, Inter font, clean two-column data table (label in #999, value in #111), CTA button "Open full record" in #4F46E5, muted footer #999 "Confidential."


Template 5 — HR review reminder (for manual campaign) Name: HR review reminder Subject: Reminder: @employee_name's review is waiting on you Body prompt: Write a brief, friendly nudge email to an HR reviewer reminding them that @employee_name's review for @review_period is still in the HR review stage. Remind them their next step is to fill the HR section and flip status to "In manager review." Tone: warm, non-pressuring — assume they're busy. 3–4 sentences, no urgency language. HTML design: white background, single centered column max-width 560px, Inter font, light gray (#F3F4F6) status chip "Status: In HR review", CTA button "Continue review" in #2563EB, muted footer #999.


Template 6 — Manager review reminder (for manual campaign) Name: Manager review reminder Subject: Reminder: @employee_name's review is waiting on your input Body prompt: Write a brief, respectful reminder to a manager that @employee_name's review for @review_period is in the manager review stage and needs their input. Tell them exactly what to do: open the record, complete the manager review section, mark it Done. Tone: collegial and time-aware. 3–4 sentences. HTML design: white background, single centered column max-width 560px, Inter font, light amber (#FEF3C7) status chip "Status: Awaiting manager review", CTA button "Complete your review" in #16A34A, muted footer #999.


📖 For a full walkthrough, see how to create and send custom email templates.


Part 4 — Connect email templates to your logic rules

With your templates saved, go back into Advanced logic and wire each template to the right trigger. Templates 1–4 fire automatically via On Submit and On Update rules. Templates 5 and 6 are used manually via email campaigns when reviews go overdue.

1. Open your formform settings panel on the right sideAdvanced logicLogic tab.

2. Find your On Submit rule that sends an email. Click into it → select the New review started template → set the recipient to your HR team email address or the hr_reviewer assignee field → click Save.

3. Find your On Update rule for when review_status changes to "In manager review." Add a Send email action → select the Manager review ready template → set the recipient to the manager_reviewer field → click Save.

4. Find your On Update rule for when review_status changes to "Done." Confirm it has two Send email actions: one using Review complete — employee summary sent to employee_email, and one using Review complete — HR summary sent to hr_reviewer. Confirm it also has a Generate PDF action connected to your employee summary PDF template → click Save.

📖 For more on conditional email triggers, see how to send and receive conditional email notifications.


Part 5 — Add PDF templates

Three PDF templates power this workflow: one for the HR reviewer's records, one for the manager's records, and one for the employee summary. Each is a pre-built HTML file — you paste it into Formaloo's PDF template editor in seconds.

1. Click your profile iconApps & integrationsPDF templates+ Add new template.

2. Switch the editor to HTML view by clicking the HTML toggle at the top of the template editor.

3. Create the three templates one by one. For each, paste the corresponding HTML code, give the template a name, and click Save:

  • HR review PDF — name it "HR review record." Paste the HTML from 360-review-hr-review-pdf.html. This document shows the HR section scores and qualitative notes — for HR team records only.

  • Manager review PDF — name it "Manager review record." Paste the HTML from 360-review-manager-review-pdf.html. This document shows the manager section scores and assessment — for manager records only.

  • Employee summary PDF — name it "Employee performance summary." Paste the HTML from 360-review-employee-summary-pdf.html. This is the document emailed to the employee when the review is marked Done — it shows the combined score, a category breakdown, and both reviewers' qualitative notes side by side.

4. Go back to Advanced logic → find the Generate PDF action on your "When status is Done" On Update rule → confirm it's connected to the Employee performance summary template → click Save.

📖 For more on PDF templates and how to send them with email notifications, see how to create PDF templates to turn responses into documents and how to send custom PDFs with email notifications.


Part 6 — Build the HR portal

The portal gives HR, managers, and employees three completely different views of the same data. HR sees the full pipeline. Managers see only their assigned records. Employees see only their own. You'll activate the portal, set up three user roles, configure page access, and add the right data blocks to each group.

1. Open your project and click the gear icon in the top right corner → Activate client portalManage usersSetup wizard.

2. Create a new user directory when prompted in Step 1. This stores all portal users — HR team, managers, and employees.

3. Configure your portal settings in Step 2: enable login, set sign-up to invite-only (so only your team can access it), and choose your branding and URL.

4. Connect your user directory to the review form in Step 3 by selecting the profile field that links portal users to their submitted records.

5. Add three user roles in your user directory. Navigate to User DirectoryEdit profile fields → scroll to User Roles → add: HR, Manager, Employee.

6. Add the following pages to your portal and assign each to the correct role. Switch to Edit mode, click + Add page for each, then set role access via the three-dot menu → AccessSpecific user roles:


Group 1 — My review (Employee role only)

Add a page called My review status. Add a Table data block connected to the review form. In the data block OptionsManage Access → select employee_email as the profile field → enable Allow users to view only their data. Visible columns: employee name, review period, review status, combined score.


Group 2 — Review pipeline (HR role only)

Add five pages:

All reviews — add a Kanban data block → group by review_status (3 columns: In HR review / In manager review / Done). No filter. Shows every record.

In HR review — add a Table data block → filter: review_status = "In HR review" → sort: submission date ascending. Visible columns: employee name, department, review period, hr_assignee, submission date.

In manager review — add a Table data block → filter: review_status = "In manager review" → sort: submission date ascending. Visible columns: employee name, department, review period, manager_reviewer, submission date.

Completed reviews — add a Table data block → filter: review_status = "Done" → sort: combined_score descending. Visible columns: employee name, department, review period, hr_avg_score, mgr_avg_score, combined_score.

My assigned reviews — add a Table data block → in OptionsManage Access → select hr_reviewer as the assignee field → enable Allow assignees to view only their data. Sort: submission date ascending.


Group 3 — My team's reviews (Manager role only)

Add three pages:

My team's reviews — add a Table data block → in OptionsManage Access → select manager_reviewer as the assignee field → enable Allow assignees to view only their data. Sort: submission date descending.

Pending my review — add a Table data block → filter: review_status = "In manager review" → in Manage Access restrict to manager_reviewer = logged-in user. Sort: submission date ascending.

Completed by me — add a Table data block → filter: review_status = "Done" → restrict to manager_reviewer = logged-in user. Sort: combined_score descending. Visible columns: employee name, review period, mgr_avg_score, combined_score.


7. Set page access for each group. For every page in Group 1, click the three-dot menu → Access → set to Employee role only. Repeat for Group 2 (HR only) and Group 3 (Manager only).

8. Publish your portal by clicking Publish in the island bar at the top of the editor. Share the portal link with your HR team, managers, and employees — each person sees only their group's pages after logging in.

📖 For a full portal setup walkthrough, see how to create a portal and manage users' access.


What you now have

You have a fully automated 360-degree performance review system — one form, two reviewer stages, zero manual coordination. When HR submits a new record, the routing, assignment, and email notifications all happen automatically. Calc fields track weighted scores across all four categories and surface a combined rating the moment both reviews are done. The employee receives a clean PDF summary by email — no spreadsheet attachment, no forwarded notes. And your HR team has a live Kanban pipeline showing every review by stage, with filtered views for every role built in.


What's next

  • Set up a dual-approval workflow for other HR processes The same On Update routing pattern that powers this review system works for any two-stage approval — budget requests, policy sign-offs, or content approvals. The structure is identical: one form, two admin-only sections, status-driven assignment. → How to build a dual-approval request workflow

  • Send review reminder campaigns to overdue reviewers When a cycle stalls, use email campaigns to bulk-send the HR or manager reminder templates to everyone whose status hasn't moved in a week. Filter by status, select overdue records, and send in one click. → How to send an email campaign and collect data with AI agents in Formaloo

  • Let employees view and update their own records If you want employees to be able to add comments or self-assessment notes after receiving their review, enable edit access on the employee portal page — scoped to their own record only. → How to let users view and edit their own data in your portal


Ready-to-use templates

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

  • Employee request workflow — an internal request management template for HR and ops teams with status tracking and assignee routing. Adapt it to add HR and manager review sections on top of any existing request workflow.

  • Scholarship & grant application with scoring and approval — a multi-reviewer scoring workflow with weighted calc fields and automated approval emails. The scoring and stage-routing structure is directly parallel to the performance review system built in this article.

  • Job applicant tracking workflow — track candidates across hiring stages with status-driven assignment and reviewer pipelines. The same Kanban portal structure from this article maps directly onto a hiring workflow.

  • 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?