Skip to content

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

  1. Sidebar → SettingsModulesCreate.
  2. Fill in the basics:
  3. Name (singular and plural).
  4. Technical key — lowercase, no spaces, no special characters (for example, schools or policies).
  5. Type: Custom.
  6. Menu group — where it appears in the sidebar.
  7. Table — the database table name (auto-generated from the key).
  8. 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:

  1. Open the module → Fields tab.
  2. Add field → fill in name, type (text, number, date, list, relation), validation.
  3. 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):

  1. Relationships tab.
  2. Add relationship → type (belongsTo, hasMany, etc.) → target module.
  3. 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=student field, 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