What you'll build
By the end of this guide, you'll have a fully structured course portal where students log in, move through lessons organized by module, and consume multimedia content like videos, images, text, and downloadable files all in one place. Each lesson can include a short quiz form so you can track comprehension. No coding required.
When to use this
You deliver online training, onboarding, or certification programs and need a self-serve portal for learners
Your course content lives in scattered tools (Google Drive, email, Notion) and you want it unified in one branded space
You want students to log in and see only their own progress, quiz results, and certificates
You're building an internal knowledge library for your team with structured modules and assessments
You sell or distribute educational content and need a professional, gated delivery portal
What you'll need
A Formaloo account (Free plan or any paid plan)
Step-by-step guide to build your course hub
Step 1: Create a new Dashboard project
Start with creating a new project for your course hub:
In your workspace, click +New β Dashboard to create a new project. Give your project a clear name (e.g., "Product training course" or "Onboarding academy"). You can change it later as well.
Delete any unnecessary pages or content so your dashboard contains only the pages and data you'd like to share. Your new Dashboard opens with two pages. Click the page name at the top left and rename it to your first module. For example, "Module 1: Getting started". This page will become the home for your first lesson's content.
Step 2: Add your lesson content blocks to the page
Click + Add block inside the page to start building the lesson. Formaloo lets you mix different content types on a single page:
Text block: Add lesson text, headers, bullet points, and formatted instructions. Use this for introductions, key concepts, and written explanations.
Image block: Upload diagrams, screenshots, or illustrations relevant to the lesson.
Video block: Paste a YouTube or Vimeo URL to embed a video directly in the lesson. The video plays inline and students don't leave the portal to watch it.
Embed block: Paste any URL that supports oEmbed (Miro, Google Classrooms, Google maps, Google Slides, Google Sheets, Google Docs, Loom, an online PDF, Spotify, and hundreds of others) to embed rich media inline. Use this when your content is hosted externally.
File block: Attach downloadable PDFs, slide decks, or worksheets students can save.
Arrange the blocks in the order you want students to experience them. A typical lesson layout: video at the top, supporting text below, downloadable worksheet at the bottom.
Step 3: Add new pages for each lesson or module
In the left panel, click + New page to create the next lesson page. Repeat Step 3 for each lesson.
Use a clear naming convention so your structure is easy to navigate:
Module 1: Getting started
Module 2: Core concepts
Module 3: Advanced techniques
Final assessment
π‘ Tip: You can reorder pages by dragging them in the left panel. Put the most important or introductory content first.
Step 4: Create a quiz form for each lesson
For lessons where you want to test comprehension, add a quiz as a form embedded right inside the lesson's page.
On a new page or an existing one, click + Add block and select Form. Choose Create new form to build a fresh quiz attached to this page.
In the form editor, add your quiz questions using the field types that fit:
Single choice: for single-answer questions
Multiple choice: for multi-select questions
Short text / Long text: for open-ended written answers
Number: for numeric inputs
Add a submission button and set a clear ending page (e.g., "Quiz submitted, great work!").
π‘ Tip: To show students their score automatically, add a Variable field to your form and use Advanced logic calculations to add points based on answers. See Step 7 for setting up score-based feedback.
Step 6: Set up score-based feedback with Advanced logic (optional)
If you want students to receive different messages based on their quiz score, use Advanced logic in the form settings.
Open your quiz form β click the form settings panel on the right side β select Advanced logic.
Under On submit, add rules like:
If
scoreis greater than 80 β go to ending page "Passed, well done!"If
scoreis less than or equal to 80 β go to ending page "Try again, review Module 2"
This lets you create a branching quiz experience without any code.
π Full guide: How to create a quiz with scoring and logic
Step 7: Set up the student portal
Now turn your course project into a gated portal so students must log in to access content.
Open your project and click the gear icon in the top-right corner
In the project settings panel, click Activate client portal
Click Manage users, then click Setup wizard
π Full setup guide: How to create a portal and manage users' access
Work through the three setup steps:
Step 1: Connect a user directory Choose New user directory if you want students to self-register. Choose Import users if you're inviting a specific cohort and don't want open sign-up.
Step 2: Portal settings Set your portal's login options, branding, and URL slug. Add your course logo and choose your brand color to make the portal feel like your own product.
Step 3: Enable user profile on forms Link the user directory to your quiz forms so each student's form submissions are tied to their account. Logged-in students will only see their own quiz results, not other students' data.
π‘ You can connect a custom domain to your portal (e.g., academy.yourcompany.com) instead of the default Formaloo URL. Custom domains are available on the Business plan or via the Brand removal add-on.
Step 8: Send a welcome email when a student enrols (optional)
If you have an enrollment form (a sign-up form students complete before accessing the course), you can automatically send a branded welcome email when they submit it.
Open your enrollment form β go to Advanced logic in the form settings panel on the right side β under On submit, add a Send email rule β select your welcome email template β set the recipient to the email field on the enrollment form.
π To create a branded welcome email template first, see: How to create and send custom email templates
Use answer piping to personalize the email. For example, include the student's name by referencing @name in the template body. Make sure you've assigned the ID name to the name field in your enrollment form.
π Full piping guide: How to dynamically pull form data into custom emails, PDFs, and AI prompts
Step 9: Generate a completion certificate (optional)
Want to reward students who finish the course with a downloadable certificate? Use a PDF template triggered by a final quiz or course completion form.
Go to Apps & integrations β PDF templates β click + Add new template
Design your certificate: add your logo, the course name, and use
@nameto pull in the student's name dynamicallyBack in your completion form β Advanced logic β On submit β add a Generate PDF rule β select your certificate template
The certificate will appear on the student's form submission row, and you can also email it to them automatically using a Send email rule in the same workflow.
π Full guide: How to create PDF templates to turn responses into documents
Step 10: Publish and share your course portal
Click Publish in the top-right corner to make your portal live. Copy the portal link and share it with your students via email, your website, or a QR code.
Students visit the link, create an account (or log in if you imported them), and land on Module 1 ready to start learning.
Tip: If you're running a paid course or restricting access to specific cohorts, use the Import users option in the user directory setup (Step 7) and share the sign-up invite link only with enrolled students.
Final result
You now have a structured, branded course portal with multimedia lessons, optional quizzes with logic-based feedback, student login, and automated welcome emails and certificates. Students move through your content at their own pace, and all quiz form submissions are tied to their accounts, so you can see exactly who completed what. The whole thing runs without any manual effort on your end after setup.




