Programs Technical
Program custom fields
To manage user-defined program fields, go to Site administration > Learning > Programs custom fields.

Programs custom fields work in precisely the same way as any other custom fields in Moodle, for instance, courses.
Program allocation methods
Admins can add and manage allocation sources for programs using the new Direct allocation, Self allocation, and Payment allocation methods.
Program support in the learning catalogue is currently an experimental feature. To enable it, navigate to System administration > Development > Experimental > Experimental settings and enabled the Show programs in the catalogue setting.

Once enabled, the following section will be available in the Program details:

If the Show this program in the catalogue setting is enabled, the program will automatically be associated with the tenant course category. To include this program in the catalogue, it must be linked to a category. This Category association ensures that users can easily find the program within the catalogue.
Once a Program visibility in the catalogue is enabled, you can manage allocation methods via the Allocation sources dropdown in the Users tab:

The following allocation methods are currently supported:
Direct allocation (Manual)
Direct program allocation, also known as manual program allocation, is the standard program allocation method which cannot be removed. It allows users with the correct permissions to manually enrol users to a program, for example, managers can enrol their staff or tenant admins can enrol any tenant user.

The following settings are available:
- Allow new allocations: Select whether direct allocations are enabled (Yes) or disabled (No).
- Allocation allowed from
- Not set: Allocation can take place at any time
- Select date: Allocations are allowed from the specified date
- Allocation allowed until
- Not set: Allocation can take place at any time
- Select date: Allocations are allowed untl the specified date
- After allocation starts: Specify a period relative to the allocation start date
Self allocation
Self allocation lets users enrol themselves to a program, optionally via a key.

The following settings are available:
- Custom instance name:
- Show the instance name in the catalogue:
- Allow new allocations:
- Allocation key:
Payment allocation
Payment allocation is similar to self allocation, but with a required payment.

The following settings are available:
- Custom instance name:
- Show the instance name in the catalogue:
- Allow new allocations:
- Payment account:
- Price:
- Currency:
Program manager role
The role allows the creation and management of programs within the current tenant and allocate users to them.
The role is created automatically when Moodle Workplace is installed.
Capabilities
The following capabilities are available for handling programs:
- enrol/program:config: Configure Program enrolment instances
- enrol/program:enrol: Enrol users to the course
- enrol/program:manage: Manage enrolled users
- enrol/program:unenrol: Unenrol users from the course
- tool/program:allocateuser: Allocate users to programs
- tool/program:configfeeallocation: Configure payment allocation enrolment instances
- tool/program:configselfallocation: Configure self allocation enrolment instances
- tool/program:configurecustomfields: Configure program custom fields
- tool/program:coursereset: Reset program courses
- tool/program:edit: Edit programs
- tool/program:manageuserfeeallocations: Allows to edit and delete user payment allocations
- tool/program:manageuserselfallocations: Allows to edit and delete user self-allocations