LifterLMS Formidable Forms - WordPress Plugin
The plugin provides seamless integration between LifterLMS and Formidable Forms, creating a powerful tool for handling form submissions within the LMS platform. Users can easily create and manage complex forms, quizzes, surveys, and other types of interactive content to enhance the learning experience for students. With robust features such as conditional logic, calculations, and multi-page forms, it offers versatility for building engaging course materials. Additionally, the plugin supports various field types, file uploads, and email notifications, ensuring a comprehensive form-building experience tailored to specific educational needs.

Plugin Features
Description is being prepared.
Specifications:
| Release date: | 11-10-2020 | |
| Last updated: | 28-03-2022 | |
| Type: | Paid | |
| License: | GPL | |
| Subject: | Contacts & Feedback for LifterLMS | |
| Compatibility: | W5.x | |
| Includes: | Plugin | |
| Language packs: |
|
|
| Developer: | LifterLMS | |
| Rating: | ||
Share with your friends!
How to Set Up LifterLMS Formidable Forms for Course Forms
This guide to LifterLMS Formidable Forms will help you connect a course lesson to a form, require assignment submission when appropriate, build a safe workflow with fields and notifications, and verify a student's progress without guessing. This is not about replacing an entire learning platform with a form builder. It focuses on the point where an answer, file upload, or participant confirmation becomes part of the learning experience.
The add-on connects LifterLMS and Formidable Forms: the form itself is created and managed in Formidable Forms, while LifterLMS receives the rule that determines whether submitting it must happen before a lesson can be completed. This separation of responsibilities is useful in practice. You define questions, display conditions, uploads, and notifications in the form; in the LMS, you decide where in the course that action actually counts as completing a learning step.
This is especially important in courses where viewing a page cannot be treated as proof of progress. A participant may submit a reflection after a lesson, attach a working file, confirm attendance at a live session, complete an intake questionnaire, or submit a detailed request before moving to the next module. With the right rule in place, the lesson completion button stops being a formality: it becomes the outcome of an action that has already been completed. With an overly strict rule, however, it can stop someone at a point where an answer is not actually needed. This guide therefore consistently distinguishes between required learning actions and supporting forms.
When a Form Should Control Course Progress
LifterLMS Formidable Forms works well when a learner's response is part of the instructional method rather than simply a way to contact the course author. Imagine a course for mentors. After a theory lesson, the student describes a consultation plan, chooses a challenging situation, and attaches a template. The author does not need to manually determine whether the student viewed the page. What matters is that the completed form creates a record that can be used for feedback. A similar use case appears in corporate training, where participants must confirm that they reviewed a procedure after a module, or in preparatory programs where an instructor needs intake information before the next section.
The approach also works well with conditional questions. For example, a reflection form may first ask whether the student used a technique in practice. If they select a positive response, fields appear for describing the case and uploading an example. If not, only a short field asking about the obstacle remains. Formidable Forms handles this field behavior, while LifterLMS handles the lesson completion rule. Do not expect the add-on to automatically assess the educational quality of an answer: it connects the fact of form submission to learning progress. Content review, grading, and feedback must be organized separately through the course and the selected form.
Use Cases Where Required Submission Makes Sense
A required form is useful when it confirms an action without which the next lesson loses its purpose. Good examples go beyond simply calling something an "assignment." It may be acceptance of course rules before a workshop, selection of a learning path, submission of preparatory work, a report on a completed exercise, an eligibility questionnaire for an event, or submission of a case for discussion. In every case, the author has a clear answer to one question: what exactly must the student do before moving to the next step.
- Post-lesson reflection - when the next material depends on an articulated experience or decision.
- Work submission - when a file or link must be available before it is reviewed in the next lesson.
- Pre-course questionnaire - when the instructor uses responses to assign groups or select an assignment.
- Confirmation of an offline action - when the course combines the website with a meeting, practice session, or internal company process.
- Consent and data collection - only when this is genuinely required for participation and the terms are stated clearly.
It is useful to distinguish between "required for learning" and "helpful to the author." A review, newsletter subscription, marketing survey, or request to share personal details should rarely block course progress. If someone does not want to answer, the course should not turn that into a technical obstacle. Keep such a form optional or place it outside the lesson. This simple choice reduces support requests and makes completion statistics more honest.
Who This Integration Is For, and When Not to Add Complexity
This integration suits course authors, instructional designers, training coordinators, or site owners who already use Formidable Forms and want to place more than a basic field inside a lesson. It is especially sensible when you need different field types, display conditions, notifications, entries, and response handling. An agency can use it for a client learning portal if it agrees in advance on who is responsible for the form, email delivery, and personal-data processing. For participants, the outcome is simpler: they see a clear learning step, submit their response, and gain the ability to complete the lesson.
The add-on may be unnecessary for a course where all assignments are reviewed only through built-in LifterLMS tools or where a standard lesson and quiz are sufficient. It is also not a reason to build a form with dozens of questions unrelated to progress through the program. The more complex the form, the more important it is to test it with a regular student account, in a browser without administrative privileges, and on the site's live theme. Complexity is justified only when every field affects the learning process, review, or a later instructor action.
Practical rule: first define one observable condition for lesson completion. If you cannot explain it in one sentence, such as "the student submitted the exercise report," simplify the learning workflow before enabling a progress restriction.
What the Integration Handles and What Remains a Formidable Forms Task
The value of LifterLMS Formidable Forms is not that it creates yet another field editor. It uses an existing Formidable Forms form in the context of a LifterLMS lesson and lets you decide whether submitting that form is required for completion. The rule has three levels: a general integration setting, a course-level override, and a precise setting for an individual lesson. This hierarchy means you do not need to configure dozens of lessons manually: you can set one approach for the whole course and then relax or strengthen it for exceptions.
The add-on documentation also confirms another important use case: with the User Registration add-on for Formidable Forms, you can replace LifterLMS's standard user-management forms with your own Formidable Forms forms. This includes registration, access checkout, and account-detail updates. That does not mean any arbitrary form can safely be declared a registration form. Such a form needs correctly mapped account fields, a well-considered error workflow, and separate testing as an unauthenticated user.
The form's own features remain within Formidable Forms. That is where fields, sections, conditions, post-submission actions, notifications, and entries are created. Conditional logic is useful, but it requires discipline: when a field is hidden, its value may be cleared. Do not rely on an invisible field as the only place where an important answer is stored. If a later decision depends on the answer, represent it in a clear form structure or preserve it through a carefully designed action workflow, not through page appearance alone.
Responsibility Map Before You Begin
| Layer | What is configured | How to verify it |
|---|---|---|
| LifterLMS lesson | The form's location in the course and the completion rule | The student can see the form in the correct lesson, and progress changes according to the selected rule |
| Integration | Enabling the connection and the global Lesson Completion value |
The settings are available in the integrations section and do not conflict with the course workflow |
| Formidable Forms form | Fields, required fields, sections, conditions, and confirmation | A test entry contains the expected data and displays a clear message after submission |
| Form actions | Notifications, routing, and entry handling | The recipient receives a test email, and the entry appears in the responses list |
| WordPress environment | Theme, email, cache, permissions, and upload limits | Testing succeeds outside the admin area and after clearing cache |
This map protects against a common mistake: trying to fix an email notification through lesson settings, or looking for the cause of an incomplete lesson in form fields when the restriction itself is enabled at another level. First identify the layer where the symptom appears, then change the setting. This order keeps troubleshooting brief and reversible.
Preparing Your WordPress Site and Installing Without Unnecessary Risk
Start with dependencies, not button colors. LifterLMS Formidable Forms is an integration add-on, so active installations of both LifterLMS and Formidable Forms are required. The add-on does not provide access to Formidable Forms or replace its base plugin. If you plan to use a custom registration form instead of the standard LifterLMS user forms, you will need the separate User Registration feature from Formidable Forms. Do not confuse these three roles: the LMS manages the course and progress, Formidable Forms builds and stores the form, and the integration connects a particular action to learning status.
Before making changes, prepare a site copy or at least a test course and a test student account. This is particularly important on an active project where real users are already taking lessons. A global form-submission requirement can immediately affect every lesson that uses such a form. First test the behavior in one lesson, then in one course, and only afterward decide whether the entire site needs a global setting. Never enable required submission for the entire catalog without understanding where it may already take effect.
Pre-Installation Checklist
The list below may seem basic, but these are exactly the areas where time is often lost. Its purpose is not to collect formal checkmarks, but to separate licensing, course structure, email, and uploads from integration configuration in advance. Record which lesson will be used for testing, which form will be added to it, and what the student should see as the outcome.
- Verify that LifterLMS and Formidable Forms are active in the WordPress plugins list, not merely that installation archives exist on a computer.
- Confirm the product's minimum requirements for WordPress, PHP, and LifterLMS versions on the add-on page before updating a live environment.
- Create a test student with regular permissions separate from the administrator account, and enroll that user in the test course.
- Define the form's single outcome: a report, file, questionnaire, confirmation, or another learning artifact.
- Decide whether attachments are needed, and compare allowed file types and sizes with server limits in advance.
- Test system email delivery if an instructor or student must receive a response notification.
- Document the lesson's current behavior: whether it can be completed now, what appears after completion, and how course progress is displayed.
The last item matters more than it may appear. After configuration, you will compare not an impression from the admin area, but two observable states: before submitting the form and after submitting it. If a student can already complete the lesson without obstruction before you begin, you will know exactly what changed after enabling the requirement. If the lesson is already restricted by prerequisites or access rules, separate those restrictions from the new form first.
Installation and Initial Connection Setup
Install the components through the normal WordPress process: activate the base LifterLMS plugin, activate Formidable Forms, then install and activate LifterLMS Formidable Forms from the add-on source available to you. There is no need to describe purchasing, license keys, or payment order here. In practical terms, what matters is confirming that WordPress recognizes all components after activation and does not display a missing-dependency warning. If an administrator is updating a live site, it is sensible to do so during a low-traffic period and not combine it with updates to the theme, cache system, and many other plugins. When several components change at once, identifying the cause of a failure becomes much harder.
After activation, open LifterLMS → Settings → Integrations → Formidable Forms. Here, you need to enable the integration. Until the connection is active, placing a form in a lesson does not by itself turn form submission into a completion rule. Save the change, then sign out of the admin area or use a separate browser window to test with the student account. This avoids the misleading impression created by an administrator session with extra permissions.
Why It Is Better to Start with an Optional Rule
The main integration page contains the Lesson Completion setting. It establishes the default for forms in lessons: submission is either required or optional. In practical terms, it is safer to start with optional submission if you have not yet tested a specific course. This is not abandoning the instructional method. It is a way to confirm that the form displays correctly, submits data, shows a clear confirmation, and does not conflict with the theme or cache. You can then enable the requirement at the course or individual lesson level.
The opposite situation also exists. If the site was designed from the beginning as a program with required practical reports in nearly every lesson, a global requirement reduces repetitive configuration work. Even then, leave room for exceptions. An intake questionnaire may be required, while a feedback form at the end of a module may be voluntary. Record this decision in the course editorial plan as well: lesson names, each form's purpose, and the selected mode. Several months later, that note can prevent an accidental setting change that looks technically correct but undermines the instructional design.
What You Should See Immediately After the First Save
The first-run check should answer four short questions. First: does Formidable Forms appear among the LifterLMS integrations? Second: does the enabled state remain after refreshing the page? Third: does the prepared form appear inside the test lesson on the public site? Fourth: does a Formidable Forms entry get created after submission? If any answer is no, do not move on to more complex course settings. Restore the basic connection first.
Installation checkpoint: the integration is ready not when a menu item appears, but when a regular student can see the form inside the intended lesson, successfully submit a test response, and the administrator can find the corresponding entry.
How to Prepare a Form That Does Not Get in the Way of Progress
A form inside a lesson should feel like part of the assignment, not like a separate questionnaire that suddenly blocks the path. Start with a brief introduction before the form: explain what must be submitted, how long it usually takes, whether an upload is required, whether the student can return to a draft, and what happens next. The wording "Complete the form" tells the student nothing. It is far more useful to write: "Describe one example from your practice and attach a file if it is needed for review. After submitting, you will be able to complete the lesson." This explanation does not require another plugin, but it can noticeably reduce abandoned steps.
Plan the structure first on paper or in a standard document. Separate required information from follow-up details. One learning task should use one form. Do not combine event registration, course feedback, homework submission, and newsletter signup simply because all of them can be collected at once. These actions have different statuses, recipients, and processing timelines. Separate forms are easier to test, analyze, and assign to lessons.
If you need a file upload, explain allowed formats and approximate size next to the field rather than only in a hidden description. Formidable Forms includes options for protecting uploaded files and preventing indexing, which are particularly important for student work and personal documents. Direct file accessibility, staff viewing permissions, and retention periods should align with your own process. Do not collect documents that are not needed for learning, and do not use an upload field as an uncontrolled file archive.
Building a Learning Form: Fields, Conditions, Notifications, and Protection
You can now move to Formidable Forms and create a form for one specific learning outcome. Do not use a ready-made template simply because it is called a "survey" or "contact" form. A template can be a starting point, but before publishing it in a lesson, remove all unrelated fields and keep only those that the instructor will actually use. A learning form should answer one clear question: what did the student do, understand, choose, or attach? Without that center, a form quickly grows into a collection of random data that nobody uses later.
For a first use case, an "Exercise Report" form works well. It may include a short field for the assignment title, a multi-line response field, a confidence self-assessment list, an optional link field, and, if needed, a file upload. The most important field should be prominent near the beginning. If the instructor cannot work without a detailed response, make that field required. Do not mark every secondary field as required: a student should not have to invent an artificial answer to a question that helps neither them nor the course author.
Creating a Form for a Lesson
In the Formidable Forms builder, create a new form, give it a clear internal name, and define its purpose right away. The internal name will be useful in the forms list and when reviewing entries, so avoid repeated names such as "New Form." Then add fields from the key action to the details. Formidable Forms lets you build fields and sections and use field settings for conditions. Nested behavior is useful when it shortens the student's path rather than turning a simple task into a puzzling questionnaire.
- Create the form and name it after the lesson and action, for example "Module 2 - Practice Report."
- Add the main response field with clear wording, and make it required if the lesson should not count as complete without it.
- Add contextual fields only for information that will be used for feedback, grouping, or the next assignment.
- Group related fields into a section if that section should appear only for a particular response.
- Configure the confirmation after submission: it should state that the response was received and what the student can do next.
- Save the form, open it as a regular visitor, and submit a test entry before adding it to a lesson.
The form title and button text have instructional value. Instead of a generic "Submit," "Send Report to Instructor" or "Save Exercise Response" can be more useful, as long as this does not create a false expectation of immediate review. Do not promise automatic approval if an instructor reviews submissions manually. A confirmation should be accurate: "Your response has been saved. Return to the lesson and complete it" is better than "Assignment accepted" when the form has only been recorded.
Conditional Fields Without Losing Important Responses
Formidable Forms conditional logic can show and hide fields or entire sections based on a selected value. For a learning form, this is convenient: choosing "I need help" can reveal a field for describing the difficulty, while selecting "I have completed the work" can reveal a file-upload field. However, this convenience has a documented limitation in Formidable Forms: when a field is hidden by a condition, its value is cleared. This makes sense when an answer is no longer relevant, but it is risky if the author expects to see the earlier value later in the entry.
First decide whether the hidden answer must still exist after the option changes. If it does, do not use a condition that clears the field as the only data store. You can divide the question into independent parts, ask the student to confirm the final choice, or display a static required field for key information. After adding conditions, test both directions: fill in the field that will be hidden, change the controlling answer, switch back to the original option, and confirm that the submitted entry contains exactly what you expect. This tests the data behavior, not just the form's appearance.
Branching Example for a Practical Report
Suppose the first field is a list labeled "Were you able to complete the exercise?" Selecting "Yes" opens a section for describing the outcome and attaching an optional file. Selecting "No" shows another field: "What prevented you from completing it, and what next step will you choose?" In both cases, it is useful to have a short required field for the final choice. The instructor then sees a clear status rather than an empty entry: the work is complete or support is needed. The form does not need to imitate automatic grading to be valuable: it helps reveal the actual state of the group and makes it possible to offer support in time.
Notifications: Who Receives Them, When, and What They Contain
Submitting a form and sending an email about it are separate processes. In Formidable Forms, notifications are configured under Settings → Actions & Notifications. There, you can select an email action and define when it runs. For a learning report, two notifications are usually enough: a short confirmation for the student, and a message for the instructor or coordinator containing the key details and a link to the entry in the admin area. Do not copy more personal data into an email than the recipient needs to do their work.
If the form includes a category, group, or topic selection, conditional routing can send messages to different specialists. First create separate actions with clear internal names, then attach a condition to each one. Test every selection separately. A notification is not configured until a test email reaches a real address and its contents make it clear which lesson and entry need attention. Check the reply-to field as well: if the instructor must reply to the student, it should use an address from a trusted form field, while the sender address must match the capabilities of the site's email infrastructure.
Do not use a notification as the only proof that an assignment was submitted. An email can be delayed, sent to spam, or rejected by the server. The source of truth remains the Formidable Forms entry and the LifterLMS lesson state. The email only speeds up a person's response. This separation prevents a temporary delivery problem from blocking the learning process.
Spam Protection and File Uploads
A form inside a lesson is often available to authenticated students, but that does not eliminate the need to review protection. Formidable Forms provides several mechanisms, including a hidden honeypot field, CAPTCHA, and JavaScript-based protection. Choose the smallest set that matches the risk. For a short form inside a closed course, a heavy verification step can reduce completion rates. For open registration or a form with files, protection and restrictions need to be stronger. Consider not only the amount of spam but also the chance of false positives for regular students.
Caching is a common neighbor of this setting. Formidable Forms documentation warns that a verification JavaScript token may become invalid if cache retains an old page for too long. After enabling protection, test from a clean browser and then again after a normal waiting period. If an invalid-token message appears, do not rush to disable protection across the entire site. First clear the plugin, hosting, and external-service cache; check whether the lesson page needs an exclusion; and confirm that the behavior can be reproduced. Only then choose a lighter setting as a temporary fallback.
For files, set sensible requirements: which types are allowed, who can view the file, whether direct-access protection is needed, and whether indexing must be prevented. Formidable Forms documents uploaded-file protection and a separate option to prevent indexing of new uploads. This is especially valuable for work containing personal data, but it does not replace your retention policy. Deleting an entry, staff permissions, and WordPress backups can all affect how long a file actually remains available. Tell students which materials they should upload and which are better kept outside the site.
Form checkpoint: a learning step is ready when it has one main action, a clear post-submission outcome, a verified entry in the admin area, and as few unnecessary fields as possible. Add conditions, notifications, and uploads only after this foundation has been tested.
How Form Submission Becomes Lesson Completion
The add-on's most important feature is not inserting a form by itself, but the completion-rule hierarchy. After adding a form to a lesson, LifterLMS Formidable Forms can treat its submission as required or optional before the lesson is marked complete. The rule is set globally in the integration settings, can then be overridden for a specific course, and overridden again for an individual lesson. It helps to view this chain as a priority system; otherwise, it is easy to change one setting and expect it to affect a different level.
Think of three layers. At the site level, you answer: "How do lessons with forms usually behave?" At the course level: "How does this course differ from the general approach?" At the lesson level: "Does this step have a specific instructional reason?" Choosing a required setting on a lesson creates a precise exception. Leaving a setting inherited means it takes its value from the course, and the course, if it has no choice of its own, takes the value from the global integration setting. This approach is flexible, but it requires documenting the chosen rule alongside the course description.
The Global Value as a Careful Default
The global setting on the LifterLMS → Settings → Integrations → Formidable Forms page establishes the default for lessons across the site. In Lesson Completion, you select whether form submission is needed for completion or remains voluntary. Do not treat the global value as a permanent truth about every course. It is a starting position that should fit most forms, not every case.
If the site has different authors or several program types, setting forms to optional globally is usually more useful. Each team can then explicitly enable blocking where it is needed, and an incidental questionnaire will not stop progress. When all courses revolve around reports, the opposite default may be appropriate, but only with regular lesson audits. Maintain a list containing the form name, lesson, selected rule, and responsible author. This is not bureaucracy. It is a way to understand why a student cannot see the completion option months after launch.
Overriding the Rule at the Course Level
For an entire course, use the Course Options panel and the Formidable tab. Here, you can inherit the global approach, make forms required for every lesson in the course, or make them optional. The course level is convenient when the program has a consistent rhythm. For example, in an eight-week mentoring program, every practical lesson ends with a short report. Instead of configuring every lesson again, you can set the rule for the course and keep individual introductory or final surveys optional.
Immediately after changing the setting, test not one arbitrary lesson but at least two: a standard lesson with a form and an exception. This shows whether you really understand inheritance. If a form in one lesson should not block progress, open that lesson's settings and do not try to compensate for the exception by changing the whole course. An overly broad correction may quietly remove a requirement where a report is genuinely necessary.
Fine-Tuning an Individual Lesson
Inside a lesson, use the Lesson Settings panel and the Formidable tab. The integration documentation states that you can select the global value, the course value, or directly mark the form as required or optional. This is a useful tool for an instructional designer. Suppose all assignments in a module are required, but one lesson contains a feedback form about the quality of the material. Keep that form optional at the lesson level: the student can submit feedback, but will not be forced to share an opinion in order to move forward.
Do not confuse this fine-tuning with editing the lesson itself. First make sure the form is in the correct place on the page and visible to the student before the completion mechanism. If the condition is enabled but the form appears after a long block of text or a widget, the participant may think the lesson is stuck. A short instruction immediately before the form helps: "To unlock completion for this lesson, submit the report below." It should not repeat a system warning, but it should connect the action and outcome in plain language.
Choosing the Right Setting Level
| Situation | Best level | Why |
|---|---|---|
| Most forms on the site are informational and voluntary | Global | Optional submission protects against accidentally blocking progress |
| Every practical lesson in one course requires a report | Course | One standard applies to every lesson in the program |
| One lesson requires a work upload while the others do not | Lesson | The requirement reflects a specific action without affecting nearby steps |
| The form collects feedback or a suggestion | Lesson or inherited | It is best left voluntary when the answer is not a learning requirement |
After every change, save the setting and test as a student. Do not limit testing to the editor panel: an administrator account may already have access, progress, or additional capabilities. Use a separate user who begins the lesson from a clean state. This lets you see the completion control, form, post-submission message, and progress update in the same order a real participant will see them.
Embedding the Form in a Lesson and Testing the Learning Path
Insert the prepared Formidable form into the content of the intended lesson using the method provided by your editor and the form itself. Do not try to place all materials inside a single block. First provide brief learning context, then the assignment instruction, then the form itself, followed by an explanation of what happens after a successful submission. This order lets the student understand the task first, complete it second, and only then encounter the completion requirement. If there is a work sample, place it before the form instead of hiding it in an email sent after submission.
The form needs enough space. Check it at a standard laptop width and on a narrow screen, but do not complicate the interface for decoration alone. Errors in required fields should appear next to the field and should not disappear after submission. If the form has multiple pages, make sure the student understands which step is the final one. Moving between form pages is not the same as completing a lesson: for the LMS, what matters is successful submission of the full set of data under the selected rule.
Verification Path from Sign-In to Outcome
- Sign in as a test student and open the lesson without administrative privileges.
- Check the initial state: the form is visible, and the way to complete the lesson matches the selected mode.
- Submit an incomplete form and confirm that required learning fields explain the error in clear language.
- Submit a valid entry using the information a student would actually need to enter.
- Check the public lesson page: confirm that the expected message appears and that completion becomes available when it is required.
- Open Formidable Forms entries and make sure the response, conditional fields, and attachment were stored correctly.
- Check progress in LifterLMS and, if a notification is configured, separately confirm that the email was delivered.
This sequence matters because it separates three outcomes that are sometimes incorrectly treated as one. A form entry can be saved while an email fails to arrive. An email can arrive while the lesson remains incomplete because a different priority rule is configured. A lesson can be completed even though form data does not match the expected format. Each outcome must be checked in its own location. Only then can you confidently say that the learning path works.
What a Required Form Does Not Mean
Submission is not automatic quality review, plagiarism protection, grade assignment, or instructor approval. It means exactly what you configured: the student submitted a form, and the LMS applied the completion rule. If responses must be reviewed manually before the next module opens, do not hide that behind a single required-submission switch. Describe a separate review process, timeline, and method for contacting the instructor. If you need an automatic branch based on an answer, test it as a Formidable Forms feature rather than presenting it as a promise of the LifterLMS integration.
An honest separation of functions gives students clarity. They understand when it is enough to submit a report, when they must wait for a mentor's response, and where to view their progress. The author, in turn, does not try to use a technical restriction as a substitute for educational communication. The next section applies this principle to a practical use case with an assignment, notification, and entry review.
Practical Example: A Required Report After a Learning Exercise
Consider a workflow that shows every layer of the integration without inventing automations that are not actually present. There is a course for team leaders. In the lesson "Reviewing a Difficult Conversation," the student learns a preparation technique, then must describe one real situation and choose a next step. The instructor needs to see these responses before a group meeting. The purpose of the form is not to collect attractive statistics. It is to help the participant articulate how they will apply the material and give the instructor material for discussion. For that reason, form submission should be required in this specific lesson.
Prepare a test form named "Conversation Review - Report." It will include: a required "Situation" field, a required "What first step will you choose?" field, a "Do you need mentor support?" list, a conditional section for describing the difficulty, and an optional draft upload. Do not add a name field if it is already unambiguously connected to the account and the instructor does not need it separately. Duplicating data increases the risk of mistakes and distracts the student from the learning task.
Preparing the Workflow and Setting Data Boundaries
First agree on which responses are genuinely needed for discussion. The "Situation" field may contain sensitive information about colleagues or clients, so ask students in the instructions to remove names and unnecessary details. In the next-step field, suggest a short format such as "action - deadline - expected indicator." This prompt helps students give a meaningful response without turning the form into a formulaic essay. If the instructor will be looking for responses from people who need help, a separate toggle is more useful than trying to infer this from a long text response.
Keep draft uploads optional. They are useful for a participant who wants comments on a document, but should not block someone completing the exercise without a file. Next to the field, describe accepted formats and warn users not to submit confidential documents. If a file is genuinely required for a particular program, make it required only in the lesson where progress is impossible without it, and verify uploaded-file protection in the form's general settings.
Configuring the Form in Formidable Forms
Create the form and add fields in the order in which a student thinks through the assignment. First the situation, then the decision, then the request for support. Inside a conditional section that appears after "Yes" to the help question, add a field labeled "Describe the step where you need support." Test both answer options. With "No," the hidden section should not force the user to complete an irrelevant field. With "Yes," it should be visible and clearly explain why the text is needed.
In the notification settings, create an action for the instructor. Give it an internal name such as "New Report for Mentor." In the email body, include the course name, lesson name, key answers, and a safe way to reach the entry in the admin area. Create a separate short confirmation for the student: "Your report has been saved. Before the meeting, review the next step you selected." Do not send students a copy of all internal instructor comments, and do not use a notification as the only feedback channel if the course includes a separate dashboard or meeting.
Testing the Conditional Section
First test: select "I need help," fill in the details, submit the form, and confirm that the entry contains both values. Second test: select "I do not need help" and confirm that the system does not require the hidden field. Third test: enter text, then switch from "Yes" to "No" and observe how the conditional field value behaves. This matters because Formidable Forms clears values from conditionally hidden fields. If it is important for the author to preserve the original request for help even after the response changes, the form structure must change rather than relying on a hidden field.
Connecting the Form to the Lesson and Choosing the Rule
Add the completed form to the lesson content after the exercise explanation. Place a short instruction before it: "Describe one situation, choose your next step, and submit the report. After submission, complete the lesson." Then open Lesson Settings, choose the Formidable tab, and set form submission as required for this lesson if it should differ from the course standard. This local decision keeps the example transparent: other lessons continue to inherit their own mode, while this step receives a precise condition.
Decide in advance what the student will see after submission. If LifterLMS does not mark the lesson complete automatically, do not leave the user alone with the form. The confirmation message should tell them to return to the lesson and complete it using the available control. If completion becomes available immediately in your workflow, make that clear in the instruction. Do not describe the situation as "the form does not work" when the student has actually submitted an entry but has not yet taken the next expected action on the lesson page.
Verifying the Outcome by Role
After configuration, conduct acceptance testing by role rather than alone. The test student completes the lesson from beginning to end. The instructor opens entries and receives the notification. The administrator verifies that the completion rule applied to the intended lesson without changing adjacent ones. If the project uses caching, perform a fourth check in a clean browser window after clearing cache. Different roles see different symptoms, and one administrative check cannot replace the complete path.
| Role | Action | Expected outcome |
|---|---|---|
| Student | Opens the lesson and submits a complete report | Sees a clear confirmation and a correct path to completion |
| Student | Attempts to submit the form without the key response | Receives a clear message at the required field, and entered data is not lost |
| Instructor | Opens the entries list | Finds the report, conditional support status, and attachment if one was added |
| Instructor | Checks the notification | The email connects the entry to the lesson and student without unnecessary data |
| Administrator | Opens an adjacent lesson with a voluntary form | Confirms that the local requirement did not extend beyond the selected step |
Do not forget to delete test entries if they contain sample personal data, and do not submit real documents during testing. Use neutral text and a small, safe file instead. After acceptance testing, save a brief note stating where the form is located, which rule the lesson uses, who receives notifications, and who is responsible for review. This speeds up handoff to another administrator.
Custom Registration Forms: A Separate and More Strict Workflow
The integration can also be used to replace standard LifterLMS user-management forms when the User Registration add-on for Formidable Forms is installed. This is powerful, but it is a separate workflow. A registration form creates or updates an account, so a field-mapping mistake affects more than one lesson. Do not combine registration with a lesson report or approach it with the same level of urgency.
Formidable Forms documentation describes the basic registration principle: the form contains an email address field, usually a password field, and additional data; then a Register User action is added under Settings → Actions & Notifications, and form fields are mapped to user-account data. The feature can create a user on a new entry, update the user when an entry is edited, and use additional profile data. For LifterLMS, it is important to test this at the real entry point where a participant registers or updates their information, not only on a separate test page.
A Minimal Safe Registration Form
Start with the minimum: email address, password, and only those additional fields required for learning. If the course requires agreement to terms, state it clearly. If email confirmation is required, use the form's verified mechanism and test the message. Do not create a user-role field that visitors can access in a registration form, and do not configure account creation without checking permissions. Complex branching, registering multiple users from one entry, or importing users requires a separate project and test environment.
Check for conflicts with native WordPress registration. Formidable Forms documentation notes that disabling the general registration checkbox in WordPress does not disable registration through a specifically published Formidable Forms form. You should therefore deliberately define the sign-in page and the account-creation method. A student should not see two different forms with unclear consequences. Keep one understandable path, test it as a guest, and confirm that a valid email address, password, and confirmation lead to the intended access without exposing unnecessary data.
Workflow boundary: a lesson report proves that a learning form was submitted. A registration form manages an account. Combine them on one screen only when there is a clear, confirmed reason to do so; otherwise, support and security become difficult to control.
Checking Outcomes, Entries, and Progress After Launch
After publishing, do not consider the configuration complete simply because the form looks polished. LifterLMS Formidable Forms leaves several independent traces of the outcome: the public lesson page, the Formidable Forms entry, the LifterLMS progress status, and, if needed, a notification. Your check should connect them into one cause-and-effect chain. The student submitted the correct form, the entry contains the expected data, the lesson rule fired in the intended course, and the next action is available as described in the instructions.
It is useful to maintain a short acceptance log for every form. In your team's internal documentation, it is enough to record the lesson URL or name, form name, test date, test student account, selected completion rule, and outcome. The lesson itself does not need this log, but it gives the administrator a history of changes. If a request arrives a week later saying, "I submitted the form, but the lesson did not complete," you can first compare the current configuration to the verified one instead of trying every plugin in random order.
Four Proofs of a Successful Submission
The first proof is a clear message for the student. It should appear only after a valid submission and should not promise more than the system actually does. The second is an entry in the Formidable Forms section. Open it and compare field values to what was entered. The third is the lesson and course state in LifterLMS. Check this with the student account, not only through the administrative list. The fourth is the notification, if the process needs one. It is useful, but it does not replace the first three.
If the form contains conditional fields, test not only the "everything completed" path but every meaningful branch. If there is a file upload, open the result using a role that should have access to it. If file protection is enabled, do not judge it solely by the fact that a file uploaded successfully. Confirm that the instructor can work with the material through the intended route and that the published form does not turn the file into a publicly accessible link. When necessary, verify search visibility according to the form setting as well, but do not publish real learning documents for the sake of testing.
Testing Email Without Drawing False Conclusions
Email notification should be tested separately. In Formidable Forms, the email action is configured through Settings → Actions & Notifications; the recipient, condition, trigger time, and content all matter. Submit an entry for every branch that should trigger a different message. If an email does not arrive, first make sure the entry exists and that the action condition was actually met. Then check the recipient address, spam folder, and site mail delivery. Do not change the LifterLMS progress setting while trying to repair email delivery: these are different layers.
When an email contains a link to work or an uploaded file, give the recipient only the access required for their role. With protected files, following a direct link from an email may have restrictions. This is not necessarily an error; it may be an outcome of the selected protection. It is better to test the instructor's actual route through the admin area in advance and explain it to the team than to weaken access solely for the convenience of one email.
Useful Workflows Beyond a Single Report
A form inside a lesson can perform different roles, but each one needs its own success criterion. Do not try to use the same "Universal Questionnaire" throughout the course. Different lessons require different actions, and Formidable Forms works well as a builder for targeted forms. The options below are useful specifically because a concrete outcome exists after submission.
Diagnostic Questionnaire Before a Practical Module
An introductory lesson can ask students to choose their experience level, available tool, and working goal. This is not an exam or a reason to block someone over an incorrect answer. Requiring the form is justified if the next lesson uses the information to guide the student along an appropriate path or if the instructor needs it to prepare for the group. Keep fields short and show complex follow-up questions conditionally. Confirm that answers do not require personal information that is unnecessary for learning.
Confirmation of Offline Practice
In programs with a live meeting, workshop, or internal training, a form can collect attendance confirmation and a brief takeaway. It is important to describe this honestly as self-reporting rather than automatic verification of physical attendance. The form can be required for lesson completion if self-reporting itself is the expected learning artifact. If an organization needs separate attendance tracking, the form integration should not replace that process without a confirmed procedure.
Collecting Materials for Feedback
A student submits text, a link, or a file; the instructor receives a notification and opens the entry. This works well for portfolios, coaching, certification preparation, and creative programs. Separate the required short response from the optional attachment: the course remains completable when a file is not ready, while the author still receives the minimum context. If an upload is a critical requirement for that particular assignment, state this before the form and test server limits with a sample document.
Student Registration and Profile Updates
With User Registration, Formidable Forms forms can be used in LifterLMS user workflows. Additional fields are useful here when they will actually be used: professional role, learning goal, organization, or agreement to terms. However, this is not a reason to copy an entire questionnaire into an account. The more data a registration stores, the greater the responsibility for its accuracy, access, and continued relevance. Before adding a field, ask: who will see it, why is it needed after registration, and how can the user correct it later?
Combining WordPress Features Without Making False Promises
The integration is useful not in isolation, but between the learning platform, form builder, theme, email delivery, and sometimes caching. However, the general ability to work together is not an official guarantee for every plugin. The combinations below are practical approaches based on documented component features and typical WordPress operation. Test them on a copy before using them on a live site.
Email Delivery Service and Form Notifications
If an instructor needs to learn quickly about a report, connect the site to a reliable standard email-delivery method accepted by your infrastructure, then test Formidable Forms notifications. The form's role is to collect data and trigger the configured action; the email solution's role is to deliver the message. First test an entry without conditional routing, then add different recipients. If delivery is unreliable, do not make email the only condition in the learning process: the student only needs to see confirmation and the next step, while the instructor should always be able to open the entry in the admin area.
Caching and a Form with JavaScript Verification
Cache speeds up static pages, but forms with a security token require a current client state. Formidable Forms documentation connects an invalid token with an outdated cached page. The practical order is as follows: enable protection on the form, clear all cache layers, submit from a clean browser, then test a return visit after some time. If the problem repeats, temporarily exclude the lesson page or form from caching according to your solution's capabilities and test again. Do not exclude the entire site unnecessarily, and do not disable protection without understanding which layer is breaking it.
Your WordPress Theme and Form Presentation
The theme should make the form easier to read: sufficient contrast, visible labels, clear error messages, and an appropriate width on a smaller screen. Start with the form's and theme's built-in settings. A custom CSS adjustment is appropriate only after testing the exact selector in your installation and on a site copy, so this general guide does not include invented code. The safe path is to first check whether the theme hides required indicators or messages, then adjust styles in a child theme or through the provided custom-styles tool. Before publishing, complete the form again once with an error and once with a valid response.
Order for Testing the Combination
- Leave enabled only the components required for the workflow: LifterLMS, Formidable Forms, the add-on, and the email or caching solution in use.
- Test the form and lesson completion with the test account.
- Add the notification and repeat acceptance testing.
- Enable the normal caching mode and test from a clean browser.
- Document the specific exclusion or setting if one was needed, and prepare a reversible rollback.
This order does not promise compatibility with every add-on on the market, but it provides a reliable way to isolate a problem. If a failure appears only after cache is enabled, do not rebuild the form. If a notification disappears while the entry is still saved, do not change the lesson rule. The more precisely you separate responsibilities, the faster you can restore a working workflow.
Limitations Worth Explaining to Students and Your Team
The integration's main limitation is simple: it connects form submission to lesson progress, but it does not replace instructional review. A form may be required, but that does not mean an instructor has already reviewed the response, that a file meets the criteria, or that the student understood the material. If the program requires manual approval before the next module, configure and explain a separate process. Do not give participants the impression that their work is automatically graded after clicking a button.
The second limitation concerns dependencies. The basic connection requires LifterLMS, Formidable Forms, and the add-on itself. Custom registration forms require additional Formidable Forms registration functionality. Before updates, check the add-on requirements and test the course. Do not update WordPress, PHP, the theme, LMS, and form builder all at once before a new cohort begins: if a problem appears, it will be hard to determine exactly what changed on the public lesson page.
The third limitation is data. Forms can collect far more information than a learning task requires. That is not an argument for collecting everything. Minimize fields, limit access to entries, protect uploads, and explain the form's purpose to participants. The simpler and more transparent the workflow, the more likely a student is to complete the lesson meaningfully and the more easily the team can maintain the system without constant manual explanations.
Troubleshooting: Form, Progress, Email, and Upload Issues
Problems with LifterLMS Formidable Forms are easier to resolve based on an observable symptom than on the assumption that "the integration does not work." First record exactly what happened: the form is not visible, no entry is created, the lesson does not complete, the email does not arrive, the file does not upload, or security verification rejects a regular user. Then follow the route from the public page to the form, entry, lesson setting, and surrounding WordPress environment. Do not change five settings at once. Make one reversible change, then run one new test.
The Student Submitted the Form but Cannot Complete the Lesson
Symptom: a submission message appears or an entry can be found, but the lesson state does not change as expected. Likely cause: the completion rule is configured at the wrong level, the form is in the wrong lesson, or the student still needs to take a separate completion action. What to check: open the global Lesson Completion setting, then Course Options → Formidable and Lesson Settings → Formidable for the specific lesson. Compare the actual value with the value you intended.
Fix: select the required mode at the narrowest level that matches the need, save it, and repeat the test with a new or reset student account. Confirm that the form is actually added to that lesson and submits successfully. When to roll back: if enabling the requirement begins blocking learning steps that should be voluntary, restore the inherited or optional value for the affected lesson rather than disabling the integration for the entire site.
The Form Is Visible but a Test Entry Does Not Appear
Symptom: the student clicks the button but sees an error, or refreshing the page produces no outcome. Likely cause: a required field is incomplete, a conditional section is behaving incorrectly, spam protection rejects the entry, or a JavaScript workflow conflicts. What to check: submit a simple test entry with the minimum data, look at field messages, then open the Formidable Forms entries list. Check conditional branches separately: hidden fields may be cleared, so you should not expect their earlier value in the entry.
Fix: simplify the form to its key required field and confirmation, verify submission, then restore conditions one at a time. If the issue involves a security token, clear the site, hosting, and external cache; check the page in a clean browser; and only then consider an exclusion for this form. When to roll back: temporarily disable only the disputed extra verification on a test form if it is proven to cause a false positive; do not remove protection from an open form without another control.
The Instructor Does Not Receive a Notification
Symptom: the response exists in the admin area, but the email did not arrive. Likely cause: the notification action is not enabled, its condition did not match, the recipient is incorrect, or site email delivery is not configured. What to check: in the form, open Settings → Actions & Notifications, make sure the required action is tied to entry creation, and check its condition and address. Then submit the form through every branch for which email is expected, and check the spam folder.
Fix: first make a simple email work without conditional routing, then restore the condition and additional recipients. If the entry is saved but email is not delivered, troubleshoot WordPress email separately from LifterLMS. When to roll back: if a new complex routing setup hides important notifications, return to one verified recipient until a safe distribution setup is ready.
A Learning File Will Not Upload or Access Is Unclear
Symptom: the file does not attach, a size error appears, or the instructor cannot open submitted work in the expected way. Likely cause: server limits on file size or number of files, an unsupported file type, upload protection, or user permissions. What to check: try a small, safe file of an allowed type, then upload the same file through the WordPress media library. If the error repeats there, the cause is a server limit rather than the lesson. Also check file-protection settings and the route through which the instructor is expected to view files.
Fix: publish clear file-format and size requirements next to the field, adjust server limits with your host when necessary, and repeat the test on a separate entry. For sensitive materials, keep protection enabled and teach the instructor to open files through the permitted route. When to roll back: do not weaken protection merely because a link in an email is inconvenient; first verify access through form entries and staff roles.
The Form Breaks After Enabling Cache or Changing the Theme
Symptom: the form works on one page, but another visitor sees an outdated state, an empty honeypot field, or a JavaScript verification message. Likely cause: cache retains an old page with a token, the theme changes styles, or another script affects form handling. What to check: clear every cache layer, open the lesson in a private window, repeat submission, and temporarily compare behavior with a default theme in a test environment. Fix: configure a targeted cache exclusion where it is demonstrably needed, or adjust token lifetime according to Formidable Forms documentation. When to roll back: if a broad exclusion reduces site speed, restore it and isolate only the lesson page or the necessary part of the workflow.
Troubleshooting rule: first confirm that a form entry was created. This separates interface and email issues from learning-progress issues and almost always narrows the search.
An Official Demo That Helps Clarify the Workflow
An official LifterLMS video about using Formidable Forms on a learning site can be useful for getting familiar with the topic. It supports the practical question of how to use a form in a lesson: it demonstrates the idea of a form as a completion condition and mentions custom registration. Watch it after configuring your test form, so you can relate the demonstration to the layers you already understand: lesson, entry, progress, and form.
While watching, focus not on promotional claims but on two verifiable ideas: a form can be part of a specific lesson, and submitting it can participate in the completion process. After the video, return to your test course and repeat the same path with one small form. This is more reliable than applying a complex setup to the entire catalog immediately.
Questions About Setup and Use
Do I need Formidable Forms separately from LifterLMS Formidable Forms?
Yes. The integration add-on connects LifterLMS with Formidable Forms, but it does not replace the form builder itself. For the basic workflow, both LifterLMS and Formidable Forms must be active. Custom registration forms also use the relevant User Registration capability from Formidable Forms.
Can I make a form required in only one lesson?
Yes. That is exactly what the lesson settings level is for. In Lesson Settings, on the Formidable tab, you can use an inherited value or choose a rule for the individual lesson. After saving, always test it with a separate test student.
Does form submission mean the instructor has already reviewed the assignment?
No. The integration connects form submission to a lesson completion rule. Manual review, grading, and approval to move to the next action must be described through a separate learning process. Do not promise students automatic approval when it does not exist.
Why did a conditional response disappear from the entry?
In Formidable Forms, a field's value may be cleared when the field is conditionally hidden. Check whether the student changed the answer that controls the section's visibility. If the earlier value is critical, rebuild the form so that the key fact is stored in a separate, clearly labeled field.
Why does the instructor not receive an email even though the form was submitted?
First open the form entries: if an entry exists, the submission itself succeeded. Then check the email action in Settings → Actions & Notifications, its conditions, recipient address, and WordPress email delivery. The lesson completion setting does not affect email.
Can I collect student files through the form?
Yes, but first define accepted formats, size, access rules, and retention. Formidable Forms provides settings for protecting uploaded files and preventing them from being indexed. Test these settings with a sample file, and do not ask students to upload documents that are not needed for the learning purpose.
What should I do if the form stops submitting after cache is enabled?
Clear cache at every level and repeat the test in a clean browser. For a security JavaScript token, an outdated cached page may be the cause. Look for a targeted exclusion or a verified token-lifetime setting rather than disabling cache or protection completely without testing.
When LifterLMS Formidable Forms Is a Good Choice
This add-on works best when a form represents a meaningful learning action: the student submits a report, confirms completion, chooses a path, attaches material, or provides information that affects the next step. Its key strength is the clear connection between a Formidable Forms form and a LifterLMS lesson completion rule, along with the ability to choose that rule globally, for a course, or for one lesson.
Start small: one test course, one short form, one clear condition, and one test student. Verify the entry, progress, notification, and file upload if one is used. You can then expand the workflow with conditions, routing, and custom registration. If this approach fits your program, proceed to download the installation file and first repeat acceptance testing on a copy of the site.


