Custom modules¶
Why this matters¶
Custom modules are modules your practice creates for needs the base modules don't cover. Typical examples:
- School catalog for a practice handling many student cases.
- Approved employer list for LMIA cases.
- Past events to log seminars and promotions.
- Policies if your practice also offers health insurance for newcomers.
ImmCase is metadata-driven: you don't need to write code to add a module. You configure it from the admin UI and it appears like any other native module, with its permissions, views, fields, templates.
Create a custom module¶
- Sidebar → Settings → Modules → Create.
- Fill in the basics:
- Name (singular and plural).
- Technical key — lowercase, no spaces, no special characters (for example,
schoolsorpolicies). - Type: Custom.
- Menu group — where it appears in the sidebar.
- Table — the database table name (auto-generated from the key).
- Save.
ImmCase:
- Creates the database table automatically.
- Adds the module to the sidebar.
- Creates basic permissions (view, create, edit, delete).
- Sets the base structure (fields id, created_at, updated_at, deleted_at, etc.).
Add fields¶
Right after creating the module, configure its fields:
- Open the module → Fields tab.
- Add field → fill in name, type (text, number, date, list, relation), validation.
- Save.
Each field added becomes a column in the module's database table. More in Fields.
Configure relationships¶
If your module connects with others (for example, schools linked to cases):
- Relationships tab.
- Add relationship → type (belongsTo, hasMany, etc.) → target module.
- Save.
More in Module relationships.
Configure visibilities¶
By default, the new module's fields appear everywhere (list, detail, form, etc.). To restrict:
- Visibilities tab → check where each field appears.
More in Field visibilities.
Module permissions¶
Basic permissions are created automatically on module creation. Assign them to roles and profiles:
- Open the role or profile → Permissions → find the new module → assign.
Until you assign permissions, only Super Admin can access the new module.
Auto-folders and templates¶
If your custom module will need:
- Auto-folders (each record has its folder for files): configure in the module's Folder structure.
- Specific PDF templates: create them in PDF templates and link to the module.
- Workflows to automate: in Workflows, pick this module as a trigger.
Watch out for¶
- Don't create modules that duplicate others. If you need "Students" and you already have "Applicants" with a
type=studentfield, don't create a new module. Use filters. Creating a parallel module fragments data. - Think the technical key through. It can't be changed. If in doubt, pick generic, durable names.
- Test with one user before enabling it for all. Create the module, assign it only to your admin profile, test, adjust, and only then extend permissions to the team.
- Don't overuse. If your practice ends up with 50 custom modules, the sidebar becomes unmanageable. Periodically review and delete unused ones.
Where to next¶
- Fields — add fields to the custom module.
- Module relationships — connect it to other modules.