FAQ
Part of the IP4CMS portal. β All module guides
What it's for β The FAQ module is where you build and maintain the help content shown to your members. You organise content into categories (for example, "Levies & billing" or "Access control"), and within each category you add question-and-answer entries. The portal screen is a single page that shows every category and its entries in display order, and the same content (active items only) is served to your member portal/app as a browsable FAQ. There is no separate publish step β saving an entry makes it live immediately.
Where to find it β Main navigation: FAQ (route /app/faq). The breadcrumb shows Community β FAQ. The landing screen lists all categories with their entries; you create and edit everything from this one page using pop-up dialogs.
Before you start
- The FAQ licence module must be enabled for your tenant. If it isn't, the FAQ routes are blocked and the nav item does not appear.
- You need FAQ permissions on your role (see Permissions & access). To open the page you need a read permission; to add or change content you need the relevant create/update/delete permissions. Action buttons (New category, Add Q&A, edit, delete, reorder arrows) only appear if your role has the matching permission.
- Decide a category structure first. Members browse by category, so a few clear groupings (e.g. "Levies", "Access control", "Maintenance") work better than one long list.
Key tasks
Add a category
- Go to FAQ.
- Click New category (top right, or the New category button in the empty state if you have no categories yet). The New FAQ category dialog opens.
- Complete the fields:
- Category name (required) β the heading members see, e.g. "Levies & billing". Max 255 characters.
- Description (optional) β a brief summary shown above the questions in the app. Max 2000 characters.
- Visible to users (checkbox, on by default) β when unchecked, the category and all of its entries are hidden from the member app but stay in the portal.
- Click Create category. The category is created and appears at the bottom of the list (its sort position is set to the current number of categories). A success message confirms.
To edit a category later, click the pencil (edit) icon on the category header. The dialog title changes to Edit FAQ category and the Save changes button replaces Create category.
Add a question & answer entry
- On the FAQ page, find the category you want to add to.
- Click Add Q&A on that category's header (or Add the first Q&A entry if the category is empty). The New question & answer dialog opens, showing the target category name at the top.
- Complete the fields:
- Question (required) β e.g. "How do I pay my levy online?". Max 500 characters.
- Answer (required) β the full answer. Line breaks are preserved in the app, so you can use blank lines to separate paragraphs. Max 10,000 characters.
- Visible to users (checkbox, on by default) β when unchecked, the entry is kept in the portal but marked Draft / hidden and is not shown to members.
- Click Add entry. The note "Changes are live immediately β no publish step" applies: the entry is saved and served to members straight away (if visible). A success message confirms.
To edit an entry, click the pencil (edit) icon on the entry row. The dialog opens as Edit question & answer with Save changes.
Reorder categories and entries
Display order is controlled with up/down arrows, not by typing a number.
- Categories β use the up / down arrows at the left of each category header to move it. The arrow is disabled at the top (up) or bottom (down) of the list. The order saves automatically as soon as you move an item; you don't confirm anything.
- Entries β use the small up / down arrows at the left of each entry row to move it within its category. These also save automatically.
The numbers shown next to categories and entries reflect the current order; they update as you move items. If a reorder fails to save, an error message appears and you should reload and try again.
Delete a category or entry
- Delete a category β click the trash icon on the category header. You're asked to confirm with "Delete "<name>" and all its entries?". Confirming removes the category and every entry inside it (a soft delete β see below).
- Delete an entry β click the trash icon on the entry row and confirm "Delete "<question>"?".
Deletions are soft deletes: the records are flagged as deleted rather than erased, and they no longer appear in the portal or the member app.
Public vs admin view
There are two views of the same content:
- Admin view (this portal page) β shows all non-deleted categories and entries, including ones marked hidden (these carry a Hidden from users badge on categories or a Draft / hidden badge on entries). This is what you, the operator, work in.
- Public / member view β shows only active content: a category appears only if it is visible and has at least one visible entry, and only visible entries are listed. Empty or hidden categories are not sent to members. Internal fields (timestamps, activation flags) are stripped before the content reaches the member app.
To preview how members will see things, hide an item by unchecking Visible to users and it disappears from the member view while remaining editable here.
How the data connects
- What you enter β categories (name, description, visible flag, order) and entries (question, answer, visible flag, order) typed into the two dialogs.
- Where it's stored β categories are saved to the
faqcategorytable and entries to thefaqentrytable in your tenant database. Each entry is linked to its category. Both tables carry asort_order(set by the reorder arrows), anis_activeflag (the Visible to users checkbox), and a soft-delete marker. Text is trimmed on save. - What it feeds β the same records drive the member portal/app FAQ via the public feed. The portal reads the full tree (including hidden items) through
GET /faq; the member app reads the filtered, active-only tree throughGET /public/faq. Because there's no publish step, an edit or new entry that is marked visible reaches members as soon as you save.
Permissions & access
The module is gated by the FAQ licence module β every FAQ route requires it. On top of that, individual actions require these role permissions:
| Action | Permission |
|---|---|
| Open the FAQ page (read) | faq:category:read:all or faq:entry:read:all |
| Create a category | faq:category:create |
| Edit / reorder a category | faq:category:update:all |
| Delete a category | faq:category:delete:all |
| Create an entry | faq:entry:create |
| Edit / reorder an entry | faq:entry:update:all |
| Delete an entry | faq:entry:delete:all |
The page shows the New category and category edit/delete/reorder controls only if you hold any of the category create/update/delete permissions; it shows Add Q&A and entry edit/delete/reorder controls only if you hold any of the entry create/update/delete permissions. If you have a read permission but no manage permissions, you'll see the content (with categories numbered) but no editing buttons.
Member visibility β members never see the portal page. They see the public feed, which exposes only categories and entries where Visible to users is checked (and skips categories that have no visible entries). The member public FAQ endpoint is rate-limited.
Tips & gotchas
- No publish step. Saving is publishing. There's no draft-then-release flow other than the Visible to users checkbox β uncheck it to keep content in the portal but out of the member app.
- Hiding vs deleting. To temporarily remove something, uncheck Visible to users rather than deleting β hidden items stay editable and can be shown again. Deleting a category removes all its entries too.
- Empty categories are invisible to members. A visible category with no visible entries will not appear in the member view at all. Add at least one visible entry before expecting it to show.
- Reordering saves instantly and silently. Moving an item with the arrows commits immediately β there's no Save button for order. If you see a "Failed to reorder" error, reload the page to confirm the current order before moving more items.
- Line breaks survive in answers; other formatting does not. The answer field is plain text β line breaks are preserved in the member app, but there's no rich-text/markdown rendering, so write answers as plain prose with paragraph breaks.
- Field limits. Category name 255 chars, description 2000; question 500 chars, answer 10,000. The form enforces these and will flag required fields (name, question, answer) if left blank.
- Moving an entry between categories is supported by the system but not exposed as a button on this page β the page edits an entry in place within its current category.