Contact Groups
Part of the IP4CMS portal. β All module guides
What it's for β Contact Groups lets you build and maintain reusable lists of named contacts β committee members, ward councillors, emergency numbers, staff, service providers β organised into groups. Each group holds individual contact records (name, role, email, phone, address and notes). Groups come in two types: Directory groups that simply hold static contact information, and Management groups whose contacts can each be linked to an existing member record. The groups and contacts you maintain here are what populate the contact directory tiles shown to residents/members in the member portal app.
Where to find it β Left-hand navigation: Contact Groups. Route: /app/contact-groups. From the list you open a group to see its contacts at /app/contact-groups/<group-id>.
Before you start
- Your tenant must have the Information licence module enabled (
moduleRequired: 'information') β otherwise the menu item is hidden. - To see the menu item and the list you need the
information:contact_groups:readpermission. - Creating, editing and deleting groups and contacts each require their own permissions (see Permissions & access).
- If you intend to create Management groups whose contacts link to members, the Members module should already be populated so there are members to link to.
Key tasks
Create a contact group
- Go to Contact Groups.
- Click Add Contact Group (top right β only shown if you have create permission). A dialog opens.
- Fill in the fields:
- Name* β required, up to 255 characters (e.g. "Ward Councillors", "Emergency Numbers").
- Order β a whole number (0 or greater) controlling where the group sorts in lists; lower numbers appear first. Defaults to 0.
- Allow member link (Management) β tick this to make it a Management group, where each contact can be linked to a member record. Leave it unticked for a plain Directory group of static contact info.
- Click Create. The group appears in the list.
The list shows each group's Name, Type (Directory or Management), and Order. Use the search box to filter by name and the Type filter to show only Directory or only Management groups.
Edit or delete a group
- Edit β from the list row click Edit, or open the group and click Edit Group. You can change the name, order, and the member-link setting, then click Update.
- Delete β click Delete on the list row and confirm. Deleting a group also removes all contacts inside it. This is a soft delete (the records are hidden, not physically purged) but it cannot be undone from the portal.
Add a contact to a group
- Open the group (click View on its row).
- Click Add Contact (shown if you have contact-create permission). A dialog opens.
- Complete the form. Which fields appear depends on the group type:
- Member link (Management groups only) β click Select member, search the member list, choose a member with the radio button, and Save. Once a member is linked, that member's own name/email/phone is used, so the personal-details and contact-information fields are hidden. Use Change to pick a different member or Clear to unlink.
- Personal details (Directory groups only) β Title (e.g. Mr, Mrs, Dr), Name (first name), Surname.
- Role & position β Heading (department or role heading) and Designation (job title).
- Contact information (shown when no member is linked) β Email and Mobile number.
- Description β free-text rich-text notes.
- Visibility β tick Show name, Show email, Show phone to control which details are exposed in the member portal.
- Click Create. The contact appears in the group's Contacts grid.
Edit or delete a contact
- In the group's Contacts grid, click Edit on a contact row to change its details, then Update. Search the grid by name, designation or email.
- Click Delete on a contact row to remove it (soft delete).
Show contact groups in the member portal app
Contact groups don't push messages out themselves β instead they feed the contact directory in the member portal. To surface a group to members:
- Go to Settings β Domain / App configuration (PWA app config).
- On the relevant app, enable the contact-directory tile and pick which groups to show in the Contact Groups* selector (at least one group is required).
- Save. The member app then shows those groups and their contacts via the Directory / Management tiles.
How the data connects
| You enter⦠| Stored in⦠| Feeds⦠|
|---|---|---|
| Group name, order, member-link flag | contact_group table (tenant-scoped, soft-deleted via deleted_at) | The Contact Groups list; the member-portal Directory tile (allow_member_link = false) or Management tile (allow_member_link = true) |
| Contact details, role, visibility flags, optional member link | contact table (one group per contact via contact_group_id) | The group's Contacts grid; the member-portal contact directory entries |
| Linked member (Management groups) | contact.member_id β member record | The contact display in the portal, joined to the member's first name, last name and email |
| Group selection in PWA app config | App config action_config.contact_group_ids | Which groups/tiles the member app renders |
Key rules enforced by the system:
- A contact can only link to a member if its group has Allow member link turned on. Trying to link a member in a Directory group is rejected ("This contact group does not allow member linking").
- The two member-portal tiles split groups purely by the member-link flag:
falseβ Directory tile,trueβ Management tile. - All group and contact creates, updates and deletes are written to the audit log. A group's audit view aggregates changes to the group plus all its contacts.
Permissions & access
| Action | Permission |
|---|---|
| See the menu / view groups & contacts | information:contact_groups:read (groups), information:contacts:read (contacts in a group) |
| Create a group | information:contact_groups:create |
| Edit a group | information:contact_groups:update |
| Delete a group | information:contact_groups:delete |
| Create / edit / delete a contact | information:contacts:create / :update / :delete |
- Licence module: Information (
information). Without it the module is hidden entirely. - Action buttons (Add, Edit, Delete) only appear if you hold the matching permission; the page is still viewable in read-only form otherwise.
- Member-portal endpoints that list directory/management groups for residents don't require these admin permissions β they're available to authenticated members in the app.
Tips & gotchas
- "Directory" vs "Management" is decided only by the member-link checkbox. There's no separate type field β ticking Allow member link makes a group "Management"; leaving it unticked keeps it "Directory".
- Linking a member hides the manual contact fields. Once a member is linked, the contact shows that member's name/email instead of any typed-in personal details. Clear the link to type custom details again.
- You can turn a Directory group into a Management group by editing it and ticking the checkbox β but existing contacts won't gain member links automatically; you must edit each contact to link a member.
- Deleting a group cascades to its contacts. There's a confirmation, but no per-contact undo afterwards.
- Order controls sorting, not visibility. Lower Order values float to the top of lists; within a group, contacts sort by Order then surname then first name.
- Visibility toggles are portal-facing. "Show name / email / phone" only affect what members see in the app β they don't hide anything from portal operators.
- Empty groups won't show as a tile until you add contacts; and a group must exist before it can be selected in the PWA app config (the tile selector warns if none exist yet).