Documentation

Find documentation for our Joomla extensions on this page.

JoomFAQs - Voting and Feedback

JoomFAQs includes a built-in voting system that lets your site visitors tell you whether an FAQ answer was helpful. This guide covers how the voting system works, how to configure it, and how to use the collected data to improve your FAQ content.


How the Voting System Works

Every published FAQ question can display a small poll below its answer asking "Was this information useful?" Visitors respond by clicking one of two buttons:

  • Thumbs up (Yes) -- The answer was helpful.
  • Thumbs down (No) -- The answer was not helpful. When a visitor clicks "No," a comment modal opens so they can explain why the answer did not help.

This two-part design serves a dual purpose: it gives you a quick quantitative measure of answer quality (yes/no counts) and a qualitative channel (written feedback) for understanding what needs improvement.

What Happens When a Visitor Votes "Yes"

  1. The visitor clicks the thumbs-up icon.
  2. An AJAX request sends the vote to the server.
  3. The vote_yes counter for that question is incremented by one in the database.
  4. The voting form is replaced with a "Thank you for your vote" success message that fades out after a few seconds.

What Happens When a Visitor Votes "No"

  1. The visitor clicks the thumbs-down icon.
  2. A modal dialog opens with the title "Your Message," prompting the visitor to explain why the answer was not helpful.
  3. The visitor writes their feedback and clicks Save (or clicks Close to cancel without submitting).
  4. If saved, the comment is stored in the database and the vote_no counter is incremented.
  5. The voting form is replaced with a "Thank you! Your feedback will help us improve our Help Center" success message.

This means every "No" vote is accompanied by a written comment, giving you actionable context rather than just a number.


Enabling and Disabling Voting

Voting can be controlled at two levels: per-category and per-menu-item. The setting is called Poll in the JoomFAQs configuration.

Category-Level Setting

Each FAQ category has its own Poll toggle. This is the primary way to control voting visibility.

  1. Go to Components > JoomFAQs > Categories.
  2. Open the category you want to configure.
  3. Switch to the Questions Options tab.
  4. Find the Poll option.
  5. Set it to Show or Hide.
  6. Click Save & Close.
SettingValueEffect
Poll Show Voting buttons appear below each answer in this category.
Poll Hide Voting buttons are hidden; visitors cannot vote.

Default value: Show (enabled).

If you have created a menu item that links to a JoomFAQs category, you can override the category-level Poll setting for that specific menu item.

  1. Go to Menus > [Your Menu] > [Your FAQ Menu Item].
  2. Switch to the Questions Options tab.
  3. Change the Poll setting as needed.
  4. Click Save & Close.

The menu-item setting takes precedence over the category setting when the FAQ page is accessed through that particular menu item.

Quick Reference: Poll Configuration

LevelLocationTabField NameDefault
Category Components > JoomFAQs > Categories > [Category] Questions Options Poll Show
Menu Item Menus > [Menu] > [Item] Questions Options Poll Show

Where Voting Buttons Appear

Voting buttons are rendered in two places on the frontend, as long as the Poll setting is enabled:

  1. Category view -- Inside each accordion item, below the answer text. When a visitor expands a question in the accordion, the voting form appears at the bottom of the answer panel.

  2. Single question view -- Below the answer text on the dedicated question page (accessed via the "Permalink" link).

In both views, the voting form is styled as a light-background card with a blue informational message ("Was this information useful?") followed by inline radio buttons with thumbs-up and thumbs-down icons.


Vote Tracking in the Admin Panel

JoomFAQs gives you several places to review voting data.

Dashboard Statistics

The admin dashboard (Components > JoomFAQs > Dashboard) displays vote totals in the statistics cards at the top of the page:

CardWhat It Shows
Like Total number of "Yes" (thumbs-up) votes across all FAQs.
Dislike Total number of "No" (thumbs-down) votes across all FAQs.
Total Votes Combined total of all Yes and No votes.

Each card also shows a month-over-month percentage comparison, so you can see whether engagement is trending up or down.

Question List View

In the question manager (Components > JoomFAQs > Questions), each row in the question list displays vote badges:

  • A green badge with a thumbs-up icon showing the vote_yes count.
  • A red badge with a thumbs-down icon showing the vote_no count.
  • A grey badge with a comment icon showing the number of feedback comments.

If a question has no votes yet, a dash (-) is displayed instead.

This makes it easy to scan your question list and quickly spot which answers are performing well and which ones need attention.

Question Edit Screen

When you open an individual question for editing (Components > JoomFAQs > Questions > [Question]), the Details sidebar includes a "Status survey for a response" field that displays:

  • The current Yes vote count (with a green thumbs-up icon).
  • The current No vote count (with a red thumbs-down icon).
  • A Reset poll results button (see Resetting Votes below).

Frontend Editor View

If a logged-in user has Edit permission for the component, the category and question views display an additional informational bar showing: Status survey: Yes - [count] No - [count] review: [comment count]. This is visible only to editors and administrators, not to regular visitors.


How Votes Are Stored

Votes are stored in the #__joomfaqs_votes database table. Each question has a single row in this table that acts as a running counter.

ColumnTypeDescription
question_id INT unsigned The ID of the FAQ question this vote record belongs to.
vote_yes INT Running count of "Yes" (helpful) votes.
vote_no INT Running count of "No" (not helpful) votes.
lastip VARCHAR(20) Reserved for IP-based tracking (see note below).
created DATETIME Timestamp of the last vote recorded.

Key points about vote storage:

  • There is one row per question, not one row per vote. The vote_yes and vote_no fields are incremented each time someone votes.
  • The first time someone votes on a question, a new row is inserted. Subsequent votes update the existing row.
  • The lastip column exists in the database schema but is not currently populated by the voting logic. It is reserved for potential future use with IP-based duplicate prevention.

Duplicate Vote Prevention

The current voting mechanism uses session-based prevention on the frontend. The JavaScript voting handler (JoomFaqs.Vote in joomfaqs.js) tracks whether a vote has already been cast during the current page session using an internal voted property. Once a visitor votes on any question during a page session, the vote handler short-circuits and does not send another AJAX request for that question.

Additionally, when a "No" vote triggers the comment modal and the comment is saved, the voting form for that question is removed from the DOM entirely, preventing any further interaction.

It is worth noting that this is lightweight, client-side prevention. A determined user could vote again by refreshing the page. If you need stronger duplicate prevention, consider this a known limitation and focus on the overall trend of your vote data rather than precise counts.


Resetting Votes

You can reset the vote counts for any individual question back to zero from the admin question editor.

Steps to Reset Votes

  1. Go to Components > JoomFAQs > Questions.
  2. Click on the question whose votes you want to reset.
  3. In the Details sidebar on the right, locate the "Status survey for a response" field.
  4. Click the Reset poll results button.
  5. The system sends an AJAX request that deletes the vote record for that question from the database.
  6. A confirmation message ("The survey results have successfully cleared") appears in place of the vote counts.
  7. Click Save & Close to return to the question list.

What resetting does: It deletes the entire row from the #__joomfaqs_votes table for that question. Both the Yes and No counts are removed. There is no way to undo this action.

What resetting does NOT do: It does not delete any feedback comments that were submitted alongside "No" votes. Comments are stored separately in the #__joomfaqs_comments table and must be managed independently from the Comments tab in the question editor.

Tip: Consider resetting votes after you have substantially rewritten an answer. The old votes reflected the quality of the previous version and may no longer be relevant.


Feedback Comments

Feedback comments are tightly connected to the voting system. They are collected whenever a visitor votes "No" and provides a written explanation.

Viewing Comments

Comments for a specific question are visible in two places:

  1. Question list -- A grey badge with a comment icon shows the count.
  2. Question editor -- Open a question and switch to the Feedback to answer tab. All comments for that question are listed there with their submission date.

Deleting Comments

From the Feedback to answer tab in the question editor, you can delete individual comments by clicking the delete icon next to each one. A confirmation prompt appears before the comment is removed.

Comment Captcha

To protect against spam in comment submissions, JoomFAQs supports Joomla's captcha plugin system. You can configure this under Components > JoomFAQs > Options > Comments.

SettingDescription
Captcha Select a captcha plugin (e.g., reCAPTCHA) or choose "Do not use."

Using Vote Data to Improve Your FAQ Content

Vote data is most valuable when you use it as a signal to prioritize content improvements. Here are some practical approaches.

Identify Underperforming Answers

Go to Components > JoomFAQs > Questions and look for questions with a high number of red (thumbs-down) badges relative to green (thumbs-up) badges. These are the answers that visitors are telling you need work.

Read the Feedback Comments

Do not just look at the numbers. Open questions with "No" votes and check the Feedback to answer tab. Visitors often explain exactly what was missing or confusing. Common patterns you might find include:

  • The answer was too vague or generic.
  • The answer was outdated and no longer accurate.
  • The answer did not address the specific scenario the visitor had in mind.
  • The answer was technically correct but hard to follow.

The dashboard's month-over-month comparison cards for Likes, Dislikes, and Total Votes help you understand whether your FAQ quality is improving over time. After making a round of content improvements, monitor the dashboard for the following month to see if the Like/Dislike ratio shifts in a positive direction.

Reset and Measure After Rewrites

When you substantially rewrite an answer based on feedback:

  1. Open the question in the editor.
  2. Reset the votes (see Resetting Votes).
  3. Optionally delete old comments that are no longer relevant.
  4. Save and publish the updated answer.
  5. Monitor the fresh vote data over the next few weeks to see if the rewrite was effective.

Prioritize High-Traffic Questions

A question with 50 "No" votes and 200 "Yes" votes (80% approval) is likely a higher priority to fix than one with 2 "No" votes and 3 "Yes" votes (60% approval), because far more visitors are affected. Use the absolute numbers alongside the ratios to make prioritization decisions.


Configuration Options Reference

The table below summarizes all settings related to the voting and feedback system.

SettingLocationTabValuesDefaultDescription
Poll Category Options Questions Options Show / Hide Show Controls whether the voting form appears below answers in this category.
Poll Menu Item Options Questions Options Show / Hide Show Overrides the category-level Poll setting for a specific menu item.
Captcha Component Options Comments Plugin list Global Selects the captcha plugin used for comment forms (or "Do not use" to disable).

Troubleshooting

Voting buttons do not appear

  • Verify that the Poll setting is set to Show in the category options and/or the menu item options. The menu-item setting overrides the category setting.
  • Make sure the JoomFAQs System Plugin (plg_system_joomfaqs) is enabled. It handles loading jQuery, which the voting JavaScript depends on.
  • Check your browser console for JavaScript errors. The voting functionality relies on the JoomFaqs.Vote function in joomfaqs.js.

"Session expired" error when voting

This can occur if the visitor's Joomla session has timed out before they click the vote button. The voting system validates the Joomla form token with each request. If the token is stale, the vote is rejected with a session error. Increasing the session lifetime in System > Global Configuration > System > Session Lifetime can reduce how often this happens.

Vote counts do not update in the admin

Vote counts in the question list and editor are loaded directly from the database. If you just voted on the frontend and do not see the update in the admin, simply refresh the admin page. There is no real-time push mechanism.

The "Reset poll results" button does nothing

The reset function uses an AJAX request to the admin backend. Make sure you are logged in as an administrator and that your session has not expired. Check the browser console for network errors if the button appears unresponsive.

Cron Job Starts

We use cookies on our website. Some of them are essential for the operation of the site, while others help us to improve this site and the user experience (tracking cookies). You can decide for yourself whether you want to allow cookies or not. Please note that if you reject them, you may not be able to use all the functionalities of the site.

Ok