News Plugin: Alerts and Announcements in GLPI

Technical guide to the GLPI News plugin: console installation, alert anatomy, a maintenance banner template, housekeeping SQL against the eternal alert, and a matrix to choose between News, Public Reminders and Smart Notify.

In this article7 sections

The cheapest ticket is the one that never gets opened. When a user sees a clear notice on the GLPI screen itself before reporting something already known, they do not open the ticket - and the service desk queue stops filling with duplicates about the same maintenance or the same incident. The News plugin solves exactly this: alert, announcement and maintenance banners inside the interface, for technicians and for people using the self-service portal. Running client environments day to day, we learned that turning the banner on is the easy part; what separates useful communication from a cluttered portal is the right targeting, the end date, and the discipline to remove the notice once it no longer applies.

Static notice vs technician notification: do not confuse them

Before installing anything, it helps to separate two different problems. The static notice (News plugin, or the native Public Reminders) speaks to whoever has not opened the ticket yet - it is preventive communication on the self-service portal and the dashboard. The technician notification (native e-mail or the Smart Notify bell) speaks to whoever is already handling the ticket. The common mistake is assuming one covers the other: switching off e-mail because there is a banner, or posting a banner expecting the technician to be alerted about a followup. They are complementary layers. The News plugin is the outer layer - the one that stops the ticket from being born.

Installing and locating the News plugin

News is distributed through the GLPI Marketplace and the official repository. After downloading it into plugins/news, install and enable it. From the command line, run it as the web server user - the trap here is using --allow-superuser or running as root, which writes files with the wrong owner and later breaks cron:

# GLPI 10/11 (CLI) - run as the web server user, never with --allow-superuser:
docker exec --user apache glpi php bin/console glpi:plugin:install news
docker exec --user apache glpi php bin/console glpi:plugin:activate news

# UI alternative: Setup > Plugins, Install button and then Activate.

With the plugin enabled, alert management usually lives under Tools > Alerts (the label may vary by version). Each alert has four decisions that matter: the type, the message, where and to whom it appears, and for how long.

Anatomy of an alert: the fields that matter

The type defines the color and the semantic reading of the banner - the user decodes the urgency before reading the text. Use the semantics sparingly: if everything is red, nothing is urgent.

TypeColor / semanticsWhen to useExample
InformationBlue - neutralGeneral announcement, news"New GLPI version available"
WarningYellow - attentionSomething to note, no urgency"Include the asset number when opening a ticket"
ProblemRed - criticalActive incident in progress"We are aware of the e-mail slowness"
MaintenanceHighlight - scheduledPlanned window with a set time"System X under maintenance on 15/07, 22h-2h"

The visibility controls two axes: where the banner appears (the technician central screen, the self-service portal, the login screen) and to whom (everyone, specific profiles, groups or entities). This is where the trap that causes the most embarrassment in multi-entity installations lives: creating the alert on the root entity with "recursive" enabled makes the notice leak into the self-service of EVERY client sharing the same instance. A maintenance announcement for Client A shows up for Client B. In sustaining operations, the rule is to scope every alert to the specific entity and only use the recursive root for notices that apply to the whole base, such as a ticket-opening policy.

The period (start and end date) is the field everyone underestimates - and it is the one that clutters the portal most over time.

Ready-to-use template: scheduled maintenance banner

The message accepts HTML, so you can standardize a readable banner instead of a running paragraph. This template makes clear what goes down, when it comes back and what the user should do. Copy it, adjust the values and paste it into the message field:

<strong>Scheduled maintenance - E-mail system</strong><br>
Window: 15/07/2026, from 22h00 to 02h00 (local time).<br>
Impact: webmail and message sending will be unavailable.<br>
What to do: postpone critical sends until after 02h00.<br>
<em>There is no need to open a ticket about this outage.</em>

That last line - "there is no need to open a ticket" - does more for queue reduction than the whole banner. It is the explicit instruction the user is looking for before deciding to report.

The "eternal alert" trap and the housekeeping SQL

In every installation we take over to sustain, the pattern repeats: the self-service portal has piled up six or eight old banners that nobody expired. The user learns to ignore the whole strip - it is banner blindness - and when a notice that matters arrives, nobody reads it. The root cause is almost always an alert with no end date. Worse still is the "we are aware of the slowness" banner that stayed up three days after the incident was resolved, signaling an outage that is over and eroding trust in the channel. We adopted a monthly sweep straight in the database. First find the real schema (column names vary between plugin versions), then hunt for the eternal ones:

-- 1. Find the News plugin alerts table:
SHOW TABLES LIKE 'glpi_plugin_news_%';

-- 2. Check the real column names (they vary by plugin version):
DESCRIBE glpi_plugin_news_alerts;

-- 3. "Eternal" alerts - no end date, the root cause of banner blindness:
SELECT id, name, type, date_start, date_end
FROM glpi_plugin_news_alerts
WHERE date_end IS NULL OR date_end = '0000-00-00 00:00:00'
ORDER BY date_start;

-- 4. Alerts still active whose window has already passed (forgot to remove):
SELECT id, name, type, date_end
FROM glpi_plugin_news_alerts
WHERE date_end IS NOT NULL
  AND date_end < NOW()
ORDER BY date_end DESC;

Query 4 is the one that surprises the client most: it lists the incident that "was already resolved" but is still on the screen. Running this once a month keeps the channel credible - and it is cheap.

News, Public Reminders or Smart Notify: which to use

Not every announcement needs a plugin. GLPI has native Public Reminders, and NexTool maintains Smart Notify for the dynamic side. Each one solves a slice:

CriterionPublic Reminders (native)News pluginSmart Notify (NexTool)
NatureSimple text/noticeStatic banner by typeDynamic notification (bell)
AudienceThose who have not opened yetThose who have not opened yetTechnician in session
Where it appearsPlanning area / centralCentral, self-service and loginBell in the GLPI navbar
TargetingProfile / entityType, screen, profile, group, entityPer event and per technician
Color by severityNoYes (info / warning / problem)Sound by priority
Requires plugin installNo (native)YesYes (NexTool module)
Best forQuick note without a pluginMaintenance and incident on self-serviceTelling the technician what changed

In practice: use the native Public Reminders for a simple note without installing anything; the News plugin when you need a colored banner by type, targeting by screen and a notice on the login page; and Smart Notify for the other side of the coin - telling the technician, in near real time, about followups, validations and tasks inside GLPI itself. They do not compete: News stops the ticket from being born, Smart Notify speeds up the ticket that already exists.

Communication best practices (from sustaining operations)

  • Every message has an end date. No exceptions. If you do not know when the notice expires, you do not know why you are publishing it.
  • Announce maintenance 24h in advance and keep the banner up until the end of the window. For planned windows announced ahead of time, we saw the duplicate queue about "system down" drop significantly - treat that as an honest range, not a magic number.
  • Remove the incident banner as soon as it is resolved. An outage notice still up after the outage is worse than no notice at all.
  • Do not stack banners. Three simultaneous notices on self-service is already noise; nobody reads the fourth.
  • Scope by entity on multi-client instances. Recursive at the root only for what applies to everyone.
  • Colors with meaning. Red means an active incident, not "read carefully".

At NexTool we treat communication in GLPI as part of the sustaining operation: we configure the right channels, define the notice expiration policy and combine static communication with dynamic notification for the client's estate. If you want to take this beyond the banner, the Smart Notify module covers the technician side, and our sustaining team helps design the full flow.


Reviewed by the NexTool Solutions team.

Frequently Asked Questions

Check the version compatibility on the GLPI Marketplace before going to production. If the plugin does not cover your version yet, the native Public Reminders provide the essentials (a public notice with a period) and Smart Notify covers the technician-notification side. In client environments we always test the install in staging before rolling it out to the estate.

News shows banners with color by type (information, warning, problem), control over where they appear (central, self-service, login) and fine-grained targeting. Public Reminders are plain text, with no color or banner positioning, but require no installation. For a quick note, the native option works; for visual and targeted communication, use News.

Yes. News uses the standard GLPI visibility, so you can restrict it by profile, group, user or entity. The trap on multi-client instances is creating the alert on the root entity with 'recursive' enabled: it leaks into every client's self-service. Scope it to the specific entity.

It does, as long as the visibility includes the self-service (helpdesk) screen. That is exactly where the banner pays off most: the user reads the maintenance notice before opening the duplicate ticket. Confirm that the option to display on self-service is checked on the alert.

Set an end date on every alert and run a monthly database sweep looking for alerts with no end date or with an already-passed window (the housekeeping SQL is in the article body). An eternal alert causes banner blindness: the user starts ignoring the whole strip and stops reading the notice that matters.

No. News is static communication for whoever sees the screen - it does not send e-mail nor alert the technician about a specific followup. To notify the technician in near real time about followups, validations and tasks, use the native e-mail notifications or the Smart Notify bell. They are different, complementary layers.

Need help?