Redmine SLA
SupportUn SLA de quatre heures ne fait pas quatre heures. Réponse et résolution mesurées en temps ouvré — vos calendriers, vos jours fériés, vos règles de pause — avec alertes, seuil critique et détection des dépassements.
Plusieurs serveurs: $399

- Redmine
- 4, 5, 6 et 7
- Objectifs
- 4 horloges indépendantes
- Bases de données
- PostgreSQL, MySQL, MariaDB, SQLite
- Rapports
- 4, avec export CSV
- Gems supplémentaires
- Aucune
- Fichiers du cœur modifiés
- Aucune
Les heures ouvrées, correctement
Plannings hebdomadaires avec pauses en milieu de journée, fuseau horaire par calendrier, jours fériés fixes et récurrents, et jours travaillés exceptionnels. Heure murale à travers les changements d'heure : 09:00–18:00 reste 09:00–18:00.
Quatre horloges indépendantes
Première réponse, prise en charge, résolution et clôture — chacune avec son objectif, son état et son comportement de pause. Ne configurez que celles que vous utilisez.
En attente du client
Des règles par statut décident quelles horloges s'arrêtent. « En attente du client » peut geler la résolution pendant que la première réponse continue — celle-là reste votre dû.
Des conditions en toutes lettres
Ciblez par projet, tracker, statut, catégorie, assigné, groupe, client ou n'importe quel champ personnalisé — par noms réels, jamais par identifiants.
Alerte, critique, dépassement
Les seuils se déclenchent avant l'échéance, pas après. L'envoi passe par le mailer de Redmine, et un index unique empêche qu'une alerte parte deux fois.
Une conformité défendable
Conformité par objectif, distributions des temps de réponse et de résolution avec médiane et valeurs extrêmes, et un tableau des dépassements avec échéance, date réelle et retard.
Votre horloge s’arrête quand votre équipe rentre chez elle
Soustraire deux horodatages vous pénalise pour les week-ends. Redmine SLA parcourt votre calendrier ouvré et ne compte que les minutes où vous êtes ouvert : un objectif de quatre heures ouvert tard le vendredi arrive à échéance le lundi, pas le soir même.
| Demande ouverte | Temps ouvré compté | Échéance | Temps réel |
|---|---|---|---|
| Mardi 09:30 | 4h, sans interruption | Mardi 13:30 | 4 heures |
| Vendredi 17:00 | 1h le vendredi, 3h le lundi | Lundi 12:00 | 67 heures |
| Vendredi 17:00, lundi férié | 1h le vendredi, 3h le mardi | Mardi 12:00 | 91 heures |
| À toute heure, sur un calendrier 24×7 | 4h écoulées | Quatre heures plus tard | 4 heures |
Les calendriers gèrent les journées en deux temps, leur propre fuseau horaire, les jours fériés ponctuels et récurrents, et les jours ouvrés exceptionnels.
Quatre horloges, chacune avec ses règles
Ne définissez que les objectifs que vous promettez vraiment. Chacun démarre, se met en pause et s’arrête sur son propre événement : « en attente du client » peut donc geler la résolution pendant que la première réponse continue de tourner.
Première réponse : quelqu’un a répondu
S’arrête au premier commentaire public de toute personne autre que l’auteur. Ce qui compte comme une réponse se définit par politique.
Prise en charge : quelqu’un s’en occupe
S’arrête quand la demande est assignée, ou quand elle atteint un statut que vous choisissez.
Résolution : le problème est corrigé
S’arrête quand la demande atteint un statut fermé, ou l’un des statuts de résolution que vous choisissez.
Clôture : le ticket est terminé
Un objectif distinct pour la fermeture définitive, pour les équipes qui résolvent d’abord et confirment ensuite avec le client.
Ça ressemble à Redmine, parce que c’est Redmine
Pas d’iframe, pas d’application séparée, pas de seconde connexion. Ce sont de vrais écrans du plugin sur Redmine 7.0, montrant un projet de démonstration avec des demandes dans chaque état SLA.
Agents : le panneau SLA sur chaque demande
Une ligne par objectif, avec son état, le temps restant, la part de l’objectif consommée et l’échéance exacte.


Responsables d’équipe : la file d’attente, triée selon ce qui va bientôt mal tourner
Filtrez par statut, état de santé, politique ou dépassement, triez par échéance, exportez en CSV. Les mêmes champs sont des filtres et des colonnes dans la liste des demandes de Redmine.
Managers : des rapports que vous pouvez présenter à un client
Conformité, temps de réponse, temps de résolution et dépassements, filtrés par période, politique, tracker et priorité. Chaque rapport s’exporte en CSV.


Administrateurs : des politiques écrites en langage clair
« Quand la Priorité de la demande est l’une de Urgent, Immédiat. » Les conditions utilisent de vrais noms choisis dans des listes, pas des identifiants d’enregistrement. Les durées acceptent 30, 4h ou 1d 4h.




Exploitation : un seul endroit pour vérifier que tout fonctionne


Tout ce dont un centre de support débat vraiment
Les litiges portent rarement sur le fait qu’un ticket était en retard. Ils portent sur les heures qui comptaient, sur le moment où l’horloge aurait dû s’arrêter, et sur l’objectif en vigueur à ce moment-là.
Les heures ouvrées, traitées sérieusement
Des horaires hebdomadaires avec journées en deux temps, un fuseau horaire par calendrier, des jours fériés fixes et récurrents et des jours ouvrés exceptionnels. 09:00 reste 09:00 lors des changements d’heure.
En attente du client
Des règles de pause par statut, globales ou par politique. Seul le temps ouvré est restitué : une pause pendant le week-end ne coûte donc rien.
Alerte, critique, dépassement
Les seuils se déclenchent avant l’échéance. Chaque notification est envoyée une seule fois via le système d’e-mail de Redmine, avec des modèles modifiables par événement et par langue.
La bonne politique pour chaque demande
Ciblez par projet et sous-projets, tracker, priorité, statut, catégorie, auteur, assigné, groupe ou n’importe quel champ personnalisé. Quand plusieurs politiques correspondent, la position la plus basse l’emporte.
Dans la liste des demandes
Politique SLA, statut, état de santé, dépassement, échéance et temps restant comme filtres et colonnes dans la liste des demandes de Redmine : triables, regroupables et exportables.
Les modifications ne réécrivent pas l’historique
Chaque SLA conserve un instantané de la politique avec laquelle il a démarré. Modifier un objectif le trimestre prochain ne touche pas aux chiffres du trimestre dernier. Le recalcul est une action délibérée de l’administrateur.
Ce qui arrive à une demande
Une anomalie critique ouverte un vendredi après-midi, sur un calendrier du lundi au vendredi de 09:00 à 18:00, avec un objectif de première réponse de 30 minutes et un objectif de résolution de quatre heures.
| Quand | Événement | Ce que fait le plugin |
|---|---|---|
| Ven 15:00 | Ouverte | La première politique correspondante est appliquée et ses horloges démarrent. Il reste trois heures ouvrées aujourd’hui, donc une heure est reportée à lundi. |
| Ven 15:20 | Première réponse | Un commentaire public d’un agent arrête l’horloge de première réponse à 20 minutes, dans les limites de son objectif de 30 minutes. |
| Ven 16:00 | En attente | La résolution se met en pause. Quand le client répond lundi, l’échéance est décalée d’exactement le temps ouvré perdu. |
| Lundi | Alerte à 75 % | L’e-mail d’alerte part tant qu’il est encore temps d’agir. |
| Lundi | Résolue | Le temps consommé et l’atteinte ou non de l’objectif sont enregistrés, et ne changent plus jamais. |
| Consommé | État de santé |
|---|---|
| Moins de 75 % | Sain |
| 75% | Menacé |
| 90% | Critique |
| 100% | Dépassé |
| Suspendu | En pause |
| Objectif atteint | Terminé |
Du JSON pour chaque écran
Une API JSON en lecture seule couvre tout ce que montrent les écrans. Elle s’authentifie avec une clé d’API Redmine classique et respecte les mêmes permissions que les pages.
| Méthode | Point d’accès | Renvoie |
|---|---|---|
| GET | /sla/issues/:id.json | Le SLA d’une demande |
| GET | /sla/issues.json | Demandes SLA, filtrables |
| GET | /projects/:id/sla/issues.json | Demandes SLA d’un projet |
| GET | /sla/timeline/:id.json | Chronologie d’une demande |
| GET | /sla/dashboard.json | Compteurs du tableau de bord et conformité |
| GET | /sla/reports/:report.json | L’un des quatre rapports |
| GET | /sla/policies.json | Politiques et leurs objectifs |
| GET | /sla/calendars.json | Calendriers et heures ouvrées |
Lire le SLA d’une demande
Envoyez votre clé dans l’en-tête X-Redmine-API-Key. La réponse contient la politique, le calendrier, l’état de santé global, et une entrée par objectif avec son état, son échéance et le temps consommé. Servez-vous-en pour afficher des comptes à rebours SLA sur un écran mural, ou pour alimenter vos propres rapports en chiffres de conformité.
Six permissions, accordées par rôle
SLA est un module de projet Redmine standard. Activez-le sur les projets que vous mesurez et ne donnez à chaque rôle que ce dont il a besoin. Les administrateurs Redmine disposent toujours des deux permissions globales.
| Permission | Portée | Ce qu’elle autorise |
|---|---|---|
| view_sla | Projet | Voir le panneau SLA sur les demandes, la liste des demandes SLA et la chronologie |
| view_sla_dashboard | Projet | Voir le tableau de bord SLA |
| view_sla_reports | Projet | Voir et exporter les rapports SLA |
| manage_sla | Projet | Modifier les paramètres SLA du projet et recalculer le SLA d’une demande |
| manage_sla_policies | Globale | Créer et modifier les politiques et les règles de pause |
| manage_sla_calendars | Globale | Créer et modifier les calendriers et les jours fériés |
Fonctionne là où votre Redmine tourne déjà
| Environnement | Statut | Remarques |
|---|---|---|
| Redmine 7.x | Compatible | Testé sur Redmine 7.0 avec Rails 8.1 et Ruby 3.4.2. Les captures d’écran de cette page proviennent de la version 7.0. |
| Redmine 6.x | Compatible | |
| Redmine 5.x | Compatible | Nécessite la tâche d’assets des plugins après la migration |
| Redmine 4.x | Compatible | 4.0 est la version minimale déclarée par le plugin |
| Bases de données | Compatible | PostgreSQL, MySQL, MariaDB et SQLite, sans SQL propre à une base de données |
| Gems supplémentaires | Aucune | Ni Redis, ni Sidekiq. Une entrée cron ou un timer systemd lance la vérification en arrière-plan. |
| Cœur de Redmine | Intact | Aucun fichier du cœur n’est modifié : les mises à jour de Redmine ne sont pas affectées |
Installation en trois étapes
Nécessite un accès shell et la possibilité de lancer des tâches rake. Sauvegardez toujours avant d'installer un plugin.
cd /path/to/redmine # the package arrives by email, or from your download link unzip redmine_sla-1.0.0.zip -d plugins/
RAILS_ENV=production bundle exec rake redmine:plugins:migrate # Redmine 4 and 5 only (Redmine 6+ serves plugin assets directly) RAILS_ENV=production bundle exec rake redmine:plugins:assets touch tmp/restart.txt # or systemctl restart redmine
# every five minutes: evaluate timers that are due, safe to run repeatedly */5 * * * * cd /path/to/redmine && RAILS_ENV=production bundle exec rake redmine_sla:process >> log/sla.log 2>&1
# Administration → SLA → create the default business calendars, then follow the checklist # Administration → SLA → Policies → write one policy: targets, calendar, conditions # Project → Settings → Modules → tick SLA for each project you measure # Administration → Roles and permissions → grant the SLA permissions
Le plugin modifie-t-il des fichiers du cœur de Redmine ?
Qu’arrive-t-il aux SLA existants quand je modifie une politique ?
Faut-il Redis, Sidekiq ou des gems supplémentaires ?
Des clients ou des projets différents peuvent-ils avoir des SLA différents ?
Et les demandes qui existaient avant l’installation ?
La désinstallation est-elle sans risque ?
Les captures d’écran sont-elles réelles ?
Tarifs
Un serveur
Une instance Redmine · utilisateurs illimités · 12 mois de mises à jour.
Plusieurs serveurs
Serveurs Redmine illimités · utilisateurs illimités · 12 mois de mises à jour.