Skip to content

Commit 08d565d

Browse files
docs: how-to configure Learner Unenroll Survey added (#1393)
* docs: how-to configure Learner Unenroll Survey added * fix: build issues, release name and numbering * fix: add Verawood in release
1 parent 2eacdd7 commit 08d565d

1 file changed

Lines changed: 236 additions & 0 deletions

File tree

Lines changed: 236 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,236 @@
1+
.. _Configure Learner Unenroll Survey:
2+
3+
Configure Learner Unenroll Survey
4+
###################################
5+
6+
.. tags:: site operator, how-to
7+
8+
Overview
9+
********
10+
11+
When learners unenroll from a course in the Learner Dashboard, they can optionally be shown a survey asking them for their reason for unenrolling. This survey helps course teams and site operators understand why learners are leaving courses and can inform improvements to course content and platform features.
12+
13+
As of the Verawood release, the unenroll survey can be configured to be either shown or skipped entirely. This allows site operators to customize the unenrollment experience based on their institutional needs.
14+
15+
This document explains how to configure the ``SHOW_UNENROLL_SURVEY`` setting for the **frontend-app-learner-dashboard** micro-frontend (MFE).
16+
17+
Configuration Options
18+
*********************
19+
20+
The unenroll survey behavior is controlled by the ``SHOW_UNENROLL_SURVEY`` environment variable, which accepts a boolean value:
21+
22+
* ``true (default)``: Shows the unenroll survey modal after the learner confirms they want to unenroll. The survey presents multiple-choice reasons and an optional custom text field.
23+
* ``false``: Skips the survey entirely and unenrolls the learner immediately after they confirm the unenrollment action.
24+
25+
Unenrollment Flow
26+
=================
27+
28+
**When** ``SHOW_UNENROLL_SURVEY`` **is true:**
29+
30+
#. Learner clicks "Unenroll" from the course actions menu
31+
#. Confirmation modal appears asking "Are you sure you want to unenroll?"
32+
#. Learner clicks "Unenroll" button in the confirmation modal
33+
#. Survey modal appears asking "Why are you unenrolling?"
34+
#. Learner selects a reason (or skips the survey)
35+
#. Learner is unenrolled and sees a success message
36+
37+
**When** ``SHOW_UNENROLL_SURVEY`` **is false:**
38+
39+
#. Learner clicks "Unenroll" from the course actions menu
40+
#. Confirmation modal appears asking "Are you sure you want to unenroll?"
41+
#. Learner clicks "Unenroll" button in the confirmation modal
42+
#. Learner is unenrolled immediately and sees a success message
43+
44+
Survey Reasons
45+
==============
46+
47+
When the survey is enabled (``SHOW_UNENROLL_SURVEY=true``), learners can choose from the following predefined reasons:
48+
49+
* I don't have the academic or language prerequisites
50+
* The course material was too hard
51+
* The course material was too easy
52+
* This won't help me reach my goals
53+
* Something was broken
54+
* I don't have the time
55+
* I just wanted to browse the material
56+
* I don't have enough support
57+
* I am not happy with the quality of the content
58+
* Other (custom text input)
59+
* I prefer not to say
60+
61+
Configuring the Setting
62+
************************
63+
64+
The configuration method depends on your deployment approach:
65+
66+
For Tutor Deployments
67+
======================
68+
69+
If you're using Tutor to manage your Open edX installation, you can configure this setting using a Tutor plugin:
70+
71+
1. Create or edit a Tutor plugin file (e.g., ``myplugin.py``)
72+
73+
2. Add the following configuration using the appropriate settings hook:
74+
75+
.. code-block:: python
76+
77+
from tutor import hooks
78+
79+
hooks.Filters.ENV_PATCHES.add_item(
80+
(
81+
"openedx-lms-production-settings",
82+
"""
83+
MFE_CONFIG["SHOW_UNENROLL_SURVEY"] = {{ SHOW_UNENROLL_SURVEY|tojson }}
84+
"""
85+
)
86+
)
87+
88+
hooks.Filters.ENV_PATCHES.add_item(
89+
(
90+
"openedx-lms-development-settings",
91+
"""
92+
MFE_CONFIG["SHOW_UNENROLL_SURVEY"] = {{ SHOW_UNENROLL_SURVEY|tojson }}
93+
"""
94+
)
95+
)
96+
97+
hooks.Filters.CONFIG_DEFAULTS.add_item(
98+
("SHOW_UNENROLL_SURVEY", True)
99+
)
100+
101+
3. Enable the plugin:
102+
103+
.. code-block:: bash
104+
105+
tutor plugins enable myplugin
106+
107+
4. Save the new configuration:
108+
109+
.. code-block:: bash
110+
111+
tutor config save
112+
113+
5. If you want to disable the survey, you can set the value when saving the configuration:
114+
115+
.. code-block:: bash
116+
117+
tutor config save --set SHOW_UNENROLL_SURVEY=false
118+
119+
6. Rebuild and restart the MFE:
120+
121+
.. code-block:: bash
122+
123+
tutor images build mfe
124+
tutor local start -d
125+
126+
For Direct MFE Deployment
127+
==========================
128+
129+
If you're deploying the frontend-app-learner-dashboard MFE directly (without Tutor):
130+
131+
1. Locate your MFE's ``.env`` file or environment configuration
132+
133+
2. Add or modify the following line:
134+
135+
.. code-block:: bash
136+
137+
SHOW_UNENROLL_SURVEY=true
138+
139+
Or to disable the survey:
140+
141+
.. code-block:: bash
142+
143+
SHOW_UNENROLL_SURVEY=false
144+
145+
3. Rebuild the MFE:
146+
147+
.. code-block:: bash
148+
149+
npm run build
150+
151+
4. Restart your web server to apply the changes
152+
153+
Verifying the Configuration
154+
****************************
155+
156+
To verify that the configuration has been applied correctly:
157+
158+
1. Log in to your Open edX site as a learner
159+
160+
2. Enroll in a test course
161+
162+
3. Navigate to your learner dashboard
163+
164+
4. Click on the course actions menu (three dots) for the test course
165+
166+
5. Click **Unenroll**
167+
168+
6. Observe the unenrollment flow:
169+
170+
* If ``SHOW_UNENROLL_SURVEY`` is **true**: You should see a survey modal after confirming unenrollment
171+
* If ``SHOW_UNENROLL_SURVEY`` is **false**: You should be unenrolled immediately after confirming, without seeing the survey
172+
173+
174+
Related Information
175+
*******************
176+
177+
* **Product Proposal**: `Configurable Un-enrollment Survey`_
178+
* **GitHub Issue**: `#765 - Make course unenrollment survey configurable`_
179+
* **Pull Request**: `#738 - Make unenroll survey configurable`_
180+
* **Frontend App Repository**: `frontend-app-learner-dashboard`_
181+
182+
.. _Configurable Un-enrollment Survey: https://openedx.atlassian.net/wiki/spaces/OEPM/pages/5395841025/Proposal+Configurable+Un-enrollment+Survey
183+
.. _#765 - Make course unenrollment survey configurable: https://github.com/openedx/frontend-app-learner-dashboard/issues/765
184+
.. _#738 - Make unenroll survey configurable: https://github.com/openedx/frontend-app-learner-dashboard/pull/738
185+
.. _frontend-app-learner-dashboard: https://github.com/openedx/frontend-app-learner-dashboard
186+
187+
Troubleshooting
188+
***************
189+
190+
Survey not showing when expected
191+
=================================
192+
193+
If you've set ``SHOW_UNENROLL_SURVEY=true`` but the survey isn't appearing:
194+
195+
1. Verify that the environment variable is correctly set in your deployment
196+
2. Clear your browser cache and MFE cache
197+
3. Check the browser console for any JavaScript errors
198+
4. Ensure you've rebuilt the MFE after changing the configuration
199+
5. Verify that the MFE is loading the correct configuration using the browser console method above
200+
201+
Survey still showing when disabled
202+
===================================
203+
204+
If you've set ``SHOW_UNENROLL_SURVEY=false`` but the survey still appears:
205+
206+
1. Verify that the configuration has been properly saved
207+
2. Restart the MFE service
208+
3. Clear any CDN or proxy caches that might be serving old versions of the MFE
209+
4. Check if there are multiple configuration sources (e.g., site configuration overriding the default)
210+
211+
Institutional Considerations
212+
*****************************
213+
214+
Benefits of Enabling the Survey
215+
================================
216+
217+
* **Data-driven insights**: Collect valuable feedback about why learners are leaving courses
218+
* **Course improvement**: Help instructors identify problem areas in their courses
219+
* **Platform improvement**: Identify systemic issues that affect multiple courses
220+
* **Research opportunities**: Generate data for educational research
221+
222+
Benefits of Disabling the Survey
223+
=================================
224+
225+
* **Streamlined experience**: Reduce friction in the unenrollment process
226+
* **Learner autonomy**: Respect learners who want to leave quickly without providing feedback
227+
* **Lower abandonment rates**: Some learners might abandon unenrollment if required to complete a survey
228+
* **Compliance**: Meet institutional policies that prohibit mandatory or suggested feedback collection
229+
230+
**Maintenance chart**
231+
232+
+--------------+-------------------------------+--------------------+--------------------------------+
233+
| Review Date | Working Group Reviewer | Release | Test situation |
234+
+--------------+-------------------------------+--------------------+--------------------------------+
235+
| 2026-02-23 | Muhammad Arslan Abdul Rauf | Verawood | Verified on local deployment |
236+
+--------------+-------------------------------+--------------------+--------------------------------+

0 commit comments

Comments
 (0)