HelpCenter & Base de Connaissances

Un système de support client complet avec gestion des tickets, routage par département, champs personnalisés et une Base de Connaissances intégrée : le tout dans un seul add-on Larapen.

Gestion des Tickets

Créez, suivez et résolvez les tickets de support avec des workflows de statut, des niveaux de priorité et un routage par département.

Support Invité & Authentifié

Permettez aux invités et aux utilisateurs authentifiés de soumettre des tickets. Les tickets invités utilisent le nom et l’email pour l’identification.

Base de Connaissances

Organisez les articles en collections avec recherche, votes d’utilité, temps de lecture et articles connexes.

Champs Personnalisés

Définissez des champs de formulaire dynamiques (texte, sélection, case à cocher, fichier, etc.) qui apparaissent sur le formulaire de création de ticket.

Assistant IA

Suggestions de réponses, résumés et traductions alimentés par l’IA via le SDK Laravel AI.

Export PDF

Téléchargez n’importe quelle conversation de ticket sous forme de document PDF formaté pour l’archivage ou le partage.

Cas d’utilisation

Bureau de Support Produit

Vous vendez des logiciels ou des produits numériques et avez besoin d’un système de support structuré.

  • Créez des départements pour chaque ligne de produits (par ex. « Support Plugin », « Support Thème »).
  • Ajoutez des champs personnalisés pour collecter la version du produit, l’URL ou la clé de licence lors de la création du ticket.
  • Activez l’accès invité pour que les clients puissent soumettre des tickets sans s’inscrire.
  • Utilisez l’assistant IA pour rédiger des réponses et accélérer les temps de réponse.

HelpDesk IT Interne

Votre entreprise a besoin d’un système de tickets interne pour les demandes de support informatique.

  • Désactivez l’accès invité : seuls les employés authentifiés peuvent soumettre des tickets.
  • Créez des départements : « Matériel », « Logiciel », « Réseau », « Accès & Permissions ».
  • Utilisez les niveaux de priorité (Bas, Moyen, Élevé, Urgent) pour le suivi SLA.
  • Construisez une Base de Connaissances avec des FAQ et des guides de dépannage pour réduire le volume de tickets.

Portail de Documentation en Libre-Service

Vous souhaitez un centre d’aide public avec des articles consultables organisés par sujet.

  • Créez des collections KB pour les sujets principaux (Démarrage, Référence API, Facturation, etc.).
  • Utilisez des collections imbriquées pour les sous-catégories.
  • Activez les votes d’utilité pour que les utilisateurs puissent noter les articles.
  • Liez le formulaire « Soumettre un Ticket » depuis les pages d’articles pour les problèmes non couverts par la documentation.

Prérequis

  • Larapen CMS v1.0.0 ou ultérieur
  • PHP 8.3+
  • MySQL 8.0+
  • barryvdh/laravel-dompdf (pour l’export PDF)
  • laravel/ai (pour les fonctionnalités de l’assistant IA ; optionnel mais recommandé)
Note : La fonctionnalité d’assistant IA nécessite qu’au moins un fournisseur d’IA soit configuré dans votre fichier .env (par ex. ANTHROPIC_API_KEY ou OPENAI_API_KEY). Le reste de l’add-on fonctionne sans configuration IA.

Installation

Étape 1 : Placer l’Add-on

Copiez ou créez un lien symbolique du dossier helpcenter dans le répertoire "extensions/addons" de votre Larapen :

Étape 2 : Activer l’Add-on

Allez dans Admin → Add-ons → Add-ons Installés et activez HelpCenter & Base de Connaissances.

Étape 3 : Exécuter les Migrations

Cela crée 6 tables : helpcenter_departments, helpcenter_tickets, helpcenter_replies, helpcenter_custom_fields, helpcenter_custom_field_values, helpcenter_kb_collections, et helpcenter_kb_articles.

Étape 4 : Définir les Permissions

L’add-on enregistre 21 permissions (voir Permissions). Assignez-les aux rôles administrateurs via Admin → Utilisateurs → Rôles & Permissions.

Étape 5 : Créer des Départements

Naviguez vers Admin → HelpCenter → Départements et créez au moins un département (par ex. « Support Général »). Les départements sont obligatoires : un ticket ne peut pas être soumis sans département.

Étape 6 : Configurer (Optionnel)

Vérifiez les paramètres dans Admin → HelpCenter → Paramètres. Voir Configuration pour toutes les options disponibles.

Configuration

Les paramètres sont gérés dans Admin → HelpCenter → Paramètres (stockés dans la table settings, groupe helpcenter). Les valeurs par défaut du fichier de configuration sont dans config/helpcenter.php.

Paramètres des Tickets

Paramètre Description Par défaut
helpcenter_guest_access Autoriser les utilisateurs non authentifiés à créer des tickets. true
helpcenter_items_per_page Nombre de tickets par page dans les listes. 15
helpcenter_auto_close_days Fermer automatiquement les tickets résolus après N jours d’inactivité. Mettre à 0 pour désactiver. 0
helpcenter_allow_customer_close Autoriser les clients à fermer leurs propres tickets depuis le portail front-end. true
helpcenter_allow_priority_selection Afficher le sélecteur de priorité sur le formulaire de création de ticket. false
helpcenter_allow_attachments Autoriser les pièces jointes sur les tickets et les réponses. true
helpcenter_max_attachment_size Taille maximale des pièces jointes en Ko. 5120 (5 Mo)
helpcenter_replies_order Ordre d’affichage des réponses : oldest_first ou newest_first. oldest_first
helpcenter_response_time Temps de réponse attendu affiché aux clients. 48
helpcenter_response_time_unit Unité du temps de réponse : minutes, hours, days, weeks. hours

Paramètres de Notification

Paramètre Description Par défaut
helpcenter_notify_admin_on_new_ticket Envoyer une notification par email à tous les administrateurs lorsqu’un nouveau ticket est créé. true
helpcenter_notify_author_on_new_ticket Envoyer un email de confirmation à l’auteur du ticket après la soumission. true
helpcenter_notify_author_on_new_reply Notifier l’auteur du ticket lorsqu’un administrateur publie une réponse (les notes internes sont exclues). true

Paramètres de la Base de Connaissances

Paramètre Description Par défaut
kb_guest_access Autoriser les utilisateurs non authentifiés à parcourir la Base de Connaissances. true
kb_require_auth Exiger l’authentification pour accéder à la Base de Connaissances. false
kb_items_per_page Nombre d’articles par page. 12
kb_show_search Afficher la barre de recherche sur la page d’index de la KB. true
kb_show_reading_time Afficher le temps de lecture estimé sur les articles (calculé à ~200 mots/min). true
kb_show_helpful_votes Afficher le vote « Cet article était-il utile ? » oui/non sur les articles. true
kb_show_related_articles Afficher les articles connexes de la même collection en bas des pages d’articles. true

Types de Pièces Jointes Autorisés

Les types de fichiers suivants sont acceptés pour les pièces jointes (configurés dans config/helpcenter.php) :

Admin : Tableau de Bord

Le Tableau de Bord (HelpCenter → Tableau de Bord) fournit une vue combinée de tous les tickets avec des statistiques.

Cartes de Statistiques

Compteurs agrégés affichés en haut :

  • Total : tous les tickets dans le système
  • Ouvert : tickets avec le statut open
  • En Cours : tickets en cours de traitement
  • En Attente : nombre combiné de waiting_customer et waiting_agent
  • Résolu : tickets marqués comme résolus
  • Fermé : tickets définitivement fermés

Tableau des Tickets

Sous les cartes de statistiques, un tableau paginé et filtrable de tous les tickets affichant la référence, le sujet, le département, le badge de statut, le badge de priorité, le nom du demandeur et la date de dernière activité. Les filtres incluent le statut, la priorité, le département et la recherche en texte libre (recherche dans la référence, le sujet, le nom de l’invité et l’email de l’invité).

Admin : Tickets

Listes de Tickets Filtrées

La barre latérale fournit des vues de tickets pré-filtrées, chacune n’affichant que les tickets d’un groupe de statut spécifique :

Lien de la Barre Latérale Statuts Inclus
Ouvert open
En Cours in_progress, waiting_customer, waiting_agent
Résolu resolved
Fermé closed

Chaque liste prend en charge des filtres supplémentaires pour la priorité, le département et la recherche.

Page de Détail du Ticket

La page de détail du ticket (HelpCenter → Tickets → {reference}) affiche :

  • En-tête du ticket : numéro de référence, sujet, badge de statut, badge de priorité, département, informations du demandeur, date de création
  • Contrôles Statut/Priorité/Département : sélecteurs déroulants en ligne pour changer le statut, la priorité ou le département (alimentés par AJAX, retournent des réponses JSON)
  • Fil de conversation : toutes les réponses par ordre chronologique (configurable via helpcenter_replies_order). Chaque réponse affiche le nom de l’auteur, le badge admin/client, l’horodatage, le texte du corps et les pièces jointes
  • Notes internes : notes réservées aux administrateurs, visibles uniquement par le personnel, stylées différemment des réponses clients
  • Valeurs des champs personnalisés : les valeurs soumises pour tous les champs personnalisés du ticket
  • Tickets récents : panneau latéral affichant jusqu’à 10 tickets récents du même client
  • Achats Envato : si l’add-on Envato est actif et que le ticket a un utilisateur lié, affiche les achats Envato vérifiés de l’utilisateur

Répondre aux Tickets

Le formulaire de réponse en bas de la page de détail du ticket prend en charge :

  • Corps de la réponse : zone de texte riche pour la réponse
  • Bascule note interne : marque la réponse comme note interne uniquement (non envoyée au client, non visible sur le front-end)
  • Pièces jointes : joindre des fichiers à la réponse
  • Action de réponse : après l’envoi, choisir de : rester sur le ticket, aller à la liste des tickets, ou passer au ticket suivant
  • Modifier/Supprimer les réponses : les administrateurs peuvent modifier le corps de n’importe quelle réponse ou supprimer des réponses entièrement (alimenté par AJAX)

Mises à Jour Automatiques du Statut lors de la Réponse

Lorsqu’une réponse est publiée sur un ticket ouvert :

  • Réponse admin → le statut change automatiquement en in_progress
  • Réponse client → le statut change automatiquement en open
  • Les tickets fermés/résolus ne sont pas mis à jour automatiquement

Fusion & Export PDF

Fusion de Tickets

L’administrateur peut fusionner un ticket source dans un ticket cible via POST admin/helpcenter/tickets/{ticket}/merge. Cette opération :

  1. Déplace toutes les réponses de la source vers le ticket cible
  2. Déplace les pièces jointes au niveau du ticket (relation morph) vers la cible
  3. Supprime les valeurs des champs personnalisés de la source (non transférables)
  4. Supprime l’enregistrement du ticket source

L’opération entière s’exécute à l’intérieur d’une transaction de base de données.

Export PDF

Cliquez sur le bouton Télécharger PDF sur n’importe quelle page de détail de ticket pour générer un PDF formaté contenant l’en-tête du ticket, toutes les réponses et les métadonnées. Utilise barryvdh/laravel-dompdf.

Admin : Départements

Les départements organisent les tickets en groupes logiques (par ex. « Ventes », « Support Technique », « Facturation »). Gérés via HelpCenter → Départements.

Champs de Département

Champ Description
Nom (traduisible) Nom d’affichage montré aux clients dans le sélecteur de département.
Slug (traduisible) Identifiant adapté aux URL.
Description (traduisible) Description optionnelle pour référence administrative.
Email Email de contact optionnel pour le département.
Est Actif Seuls les départements actifs apparaissent dans le formulaire de création de ticket.
Position Ordre de tri dans les menus déroulants et les listes.

La page de liste des départements affiche le nombre de tickets par département. Opérations CRUD standard : créer, modifier, supprimer.

Admin : Champs Personnalisés

Les champs personnalisés étendent le formulaire de création de ticket avec une collecte de données supplémentaire. Gérés via HelpCenter → Champs Personnalisés.

Types de Champs Supportés

Type Description A des Options ?
text Saisie de texte sur une seule ligne (max 255 caractères) Non
textarea Saisie de texte multi-lignes (max 5000 caractères) Non
select Sélection déroulante avec options prédéfinies Oui
checkbox Cases à cocher multiples (valeurs stockées en JSON) Oui
radio Boutons radio avec options prédéfinies Oui
number Saisie numérique Non
email Saisie d’adresse email avec validation de format Non
date Sélecteur de date Non
file Téléversement de fichier (stocké via MediaService) Non

Propriétés des Champs Personnalisés

Champ Description
Libellé (traduisible) Libellé d’affichage montré à l’utilisateur.
Nom Identifiant interne (utilisé comme nom de champ de formulaire).
Type Un des 9 types supportés ci-dessus.
Options Tableau de valeurs valides (uniquement pour les types select, checkbox, radio).
Texte indicatif (traduisible) Texte indicatif pour la saisie.
Est Requis Si le champ est obligatoire lors de la création du ticket.
Est Actif Seuls les champs actifs sont affichés sur le formulaire.
Position Ordre de tri sur le formulaire.

Validation Dynamique

La méthode CustomFieldService::buildValidationRules() génère automatiquement les règles de validation Laravel à partir des définitions de champs personnalisés actifs. Les règles sont adaptées au type (par ex. le type email ajoute la validation email, select/radio valident par rapport aux options définies, file valide les limites de taille).

Admin : Base de Connaissances

Collections KB

Les collections regroupent les articles en catégories. Gérées via HelpCenter → Collections KB.

  • Imbricable : les collections supportent une hiérarchie parent/enfant (via parent_id).
  • Traduisible : le nom, le slug et la description supportent plusieurs langues.
  • Icône : classe d’icône Bootstrap optionnelle (par ex. bi-book) affichée sur le front-end.
  • Actif/Inactif : seules les collections actives sont affichées sur le front-end.
  • Position : contrôle l’ordre de tri.

Articles KB

Les articles sont des documents à contenu riche au sein des collections. Gérés via HelpCenter → Articles KB.

Champs des Articles

Champ Description
Titre (traduisible) Titre de l’article affiché dans les listes et comme en-tête de page.
Slug (traduisible) Identifiant adapté aux URL, traduisible pour chaque langue.
Contenu (traduisible) Corps complet de l’article (contenu HTML).
Extrait (traduisible) Résumé court affiché dans les listes d’articles.
Titre Méta / Description Méta (traduisible) Remplacements des métadonnées SEO.
Collection À quelle collection KB cet article appartient.
Statut draft, published ou archived.
Visibilité public (visible par tous) ou auth_only (connexion requise).
Position Ordre de tri au sein de la collection.

Propriétés Calculées

  • Temps de lecture : calculé à partir du nombre de mots à ~200 mots par minute.
  • Pourcentage d’utilité : ratio des votes positifs sur le total des votes (null si aucun vote).
  • Compteur de vues : incrémenté chaque fois que l’article est consulté sur le front-end.

Liste des Articles

La liste d’articles admin est paginée et filtrable par statut, collection et terme de recherche. Colonnes : titre, collection, badge de statut, visibilité, compteur de vues, position.

Paramètres KB

Une page de paramètres séparée à HelpCenter → Paramètres KB contrôle les options d’affichage de la Base de Connaissances (voir Configuration : Paramètres de la Base de Connaissances).

Admin : Paramètres

La page des paramètres (HelpCenter → Paramètres) est organisée en sections :

Configuration des Tickets

  • Bascule d’accès invité
  • Éléments par page
  • Jours de fermeture automatique
  • Bascule d’autorisation de fermeture par le client
  • Bascule d’autorisation de sélection de priorité
  • Bascule d’autorisation des pièces jointes + taille maximale
  • Ordre des réponses (plus anciennes d’abord / plus récentes d’abord)
  • Bascule CAPTCHA (s’intègre avec le CaptchaService du noyau)
  • Temps de réponse et unité

Configuration des Notifications

  • Notifier les administrateurs lors d’un nouveau ticket
  • Envoyer une confirmation à l’auteur du ticket
  • Notifier l’auteur lors d’une nouvelle réponse

Configuration de la Base de Connaissances

  • Accès invité / authentification requise
  • Éléments par page
  • Afficher la recherche / temps de lecture / votes d’utilité / articles connexes

Admin : Assistant IA

L’assistant IA est disponible sur la page de détail du ticket et fournit des actions IA contextuelles alimentées par le SDK Laravel AI.

Actions Disponibles

Action Description
suggest_reply Générer une réponse professionnelle à un seul message client.
suggest_reply_conversation Générer une réponse basée sur l’historique complet de la conversation du ticket. Le message actuel est marqué avec [CURRENT MESSAGE] pour que l’IA se concentre dessus.
suggest_reply_articles Générer une réponse référençant des articles pertinents de la Base de Connaissances. Jusqu’à 5 articles sont recherchés par correspondance de mots-clés et nombre de vues.
summarize Résumer les points clés d’un message client.
translate_english Traduire le message en anglais.
translate_french Traduire le message en français.
make_shorter Condenser un message tout en préservant son sens.
custom_prompt Traiter le texte avec une instruction personnalisée fournie par l’administrateur.

Configuration de l’Agent

Le TicketAiAssistantAgent est configuré avec :

  • Temperature(0.7) : équilibre entre créativité et précision
  • MaxTokens(4096) : permet des réponses détaillées
  • Le modèle IA est lu depuis setting('ai_default_model') ou retombe sur le modèle par défaut du fournisseur
Règles de formatage : Par défaut, l’IA est instruitée d’éviter le formatage Markdown et les tirets cadratins, retournant du texte brut adapté à une utilisation directe dans les réponses aux tickets.
POST admin/helpcenter/ai-assistant/generate
Corps de la Requête
action Requis Une des actions listées ci-dessus
text Requis Le texte du message à traiter
ticket_id Optionnel Requis pour suggest_reply_conversation
options Optionnel Tableau avec : avoidMarkdown, avoidEmDash, customPrompt
Réponse (JSON)

Front-end : Portail des Tickets

Routes

MéthodeURLNom de RouteAuth ?Description
GET /{locale}/help/tickets/new helpcenter.create.localized Invité* Formulaire de création de ticket
POST /{locale}/help/tickets helpcenter.store.localized Invité* Soumettre un nouveau ticket
GET /{locale}/help/tickets/confirmation/{reference} helpcenter.confirmation.localized Invité* Page de confirmation du ticket
GET /{locale}/help/tickets helpcenter.tickets.localized Oui Liste de mes tickets
GET /{locale}/help/tickets/{reference} helpcenter.show.localized Oui Voir le détail du ticket & la conversation
POST /{locale}/help/tickets/{reference}/reply helpcenter.reply.localized Oui Publier une réponse client
POST /{locale}/help/tickets/{reference}/close helpcenter.close.localized Oui Fermer un ticket

* L’accès invité dépend du paramètre helpcenter_guest_access. Des variantes non localisées (sans {locale}) sont également enregistrées.

Formulaire de Création de Ticket

Le formulaire de création comprend :

  • Sujet : champ texte requis (max 255 caractères)
  • Département : menu déroulant requis des départements actifs
  • Message : zone de texte requise (max 10 000 caractères)
  • Priorité : menu déroulant optionnel (affiché uniquement si helpcenter_allow_priority_selection est activé)
  • Champs invité : champs nom et email (affichés uniquement pour les utilisateurs non authentifiés)
  • Champs personnalisés : tous les champs personnalisés actifs sont rendus dynamiquement
  • Pièces jointes : téléversement de fichiers (jusqu’à 5 fichiers, si les pièces jointes sont activées)
  • CAPTCHA : affiché si activé via helpcenter_captcha_enabled

Numéros de Référence des Tickets

Chaque ticket reçoit un numéro de référence unique au format HD-00001, généré automatiquement par le TicketObserver lors de la création. Les références sont séquentielles et complétées par des zéros sur 5 chiffres.

Vue Client du Ticket

La page de détail du ticket côté front-end affiche :

  • En-tête du ticket (référence, sujet, statut, priorité, département)
  • Fil de conversation : les notes internes sont filtrées (non visibles pour les clients)
  • Formulaire de réponse pour publier des messages supplémentaires
  • Bouton de fermeture (si helpcenter_allow_customer_close est activé et le ticket n’est pas déjà fermé)
  • Valeurs des champs personnalisés

Contrôle d’Accès

  • Les utilisateurs authentifiés ne peuvent voir que leurs propres tickets (correspondance user_id)
  • Les administrateurs peuvent voir tous les tickets
  • Les tickets fermés ne peuvent pas recevoir de nouvelles réponses

Front-end : Base de Connaissances

Routes

MéthodeURLNom de RouteDescription
GET /{locale}/help kb.index.localized Accueil KB : collections, articles populaires & récents, recherche
GET /{locale}/help/{slug} kb.collection.localized Page de collection : articles de la collection + collections enfants
GET /{locale}/help/article/{slug} kb.show.localized Page d’article : contenu complet + articles connexes + vote
POST /{locale}/help/vote/{id} kb.vote.localized Voter pour un article comme utile/non utile (AJAX)

Des variantes non localisées (sans {locale}) sont également enregistrées.

Page d’Index KB

  • Barre de recherche : recherche en texte intégral dans les titres d’articles, le contenu et les extraits (si kb_show_search est activé)
  • Grille de collections : collections de niveau racine avec le nombre d’articles
  • Articles populaires : top 5 des articles par nombre de vues
  • Articles récents : 5 articles les plus récemment publiés

Page de Collection

  • Nom de la collection, description et icône
  • Liste paginée des articles publiés dans la collection
  • Collections enfants (le cas échéant)

Page d’Article

  • Contenu complet de l’article avec estimation du temps de lecture
  • Votes d’utilité (boutons « Cet article était-il utile ? » oui/non, alimentés par AJAX)
  • Articles connexes de la même collection
  • Métadonnées SEO (titre méta / description méta depuis les champs de l’article ou générés automatiquement)

Visibilité & Accès

  • Les articles Publics sont visibles par tous
  • Les articles Auth Uniquement sont visibles uniquement par les utilisateurs authentifiés
  • Si kb_require_auth est activé, l’ensemble de la KB nécessite une authentification

Intégration de l’Add-on Envato

Lorsque l’add-on Intégration Envato Market est actif, le HelpCenter s’intègre avec celui-ci pour le contrôle d’accès basé sur les achats.

Restriction par Département

Lorsque envato_helpcenter_require_purchase est activé :

  • Le formulaire de création de ticket filtre la liste des départements pour n’afficher que ceux auxquels l’utilisateur a accès par achat.
  • L’accès est déterminé par EnvatoPurchaseValidator::getAccessibleEntityIds() en utilisant helpcenter_department comme type lié.
  • Les départements sans éléments Envato liés restent sans restriction.

Restriction par Collection KB

Lorsque envato_kb_restrict_by_purchase est activé :

  • Les pages d’articles vérifient si la collection de l’article a des éléments Envato liés.
  • Les non-acheteurs voient une page « Achat Requis » avec la liste des éléments requis.
  • Les utilisateurs non authentifiés sont redirigés vers la page de connexion.

Contexte du Détail du Ticket

La page de détail du ticket côté admin affiche les achats Envato vérifiés du client dans un panneau latéral (si l’utilisateur a un compte lié), donnant aux agents un contexte immédiat sur les produits que le client possède.

Notifications

L’add-on envoie trois types de notifications par email :

Notification Destinataire Déclencheur Paramètre
NewTicketAdminNotification Tous les administrateurs Nouveau ticket créé helpcenter_notify_admin_on_new_ticket
TicketConfirmationNotification Auteur du ticket Nouveau ticket créé helpcenter_notify_author_on_new_ticket
NewReplyNotification Auteur du ticket Un administrateur publie une réponse (pas les notes internes) helpcenter_notify_author_on_new_reply
Notifications invité : Les auteurs de tickets invités (sans compte utilisateur) reçoivent les notifications via Notification::route('mail', $email) (routage de notification à la demande).

Mise à Jour

Étape 1 : Remplacer les Fichiers

Remplacez le répertoire de l’add-on par la nouvelle version.

Étape 2 : Exécuter les Migrations

Étape 3 : Vider les Caches

Étape 4 : Vérifier

Visitez HelpCenter → Tableau de Bord et confirmez que la liste des tickets se charge correctement. Vérifiez la page front-end de la Base de Connaissances pour confirmer que les articles sont affichés.

Sauvegarde d’abord : Sauvegardez toujours votre base de données avant d’exécuter des migrations sur un système de production.

Dépannage

Le formulaire de création de ticket n’affiche aucun département

  • Assurez-vous qu’au moins un département existe et est marqué comme actif.
  • Si l’add-on Envato est actif avec envato_helpcenter_require_purchase activé, l’utilisateur doit avoir un achat vérifié pour un produit lié à ce département.

Les utilisateurs invités ne peuvent pas soumettre de tickets

  • Vérifiez que helpcenter_guest_access est défini à true dans les paramètres.
  • Le paramètre est par défaut à true mais peut avoir été désactivé dans le panneau d’administration.

Les champs personnalisés n’apparaissent pas sur le formulaire de ticket

  • Assurez-vous que le champ personnalisé est marqué comme actif.
  • Vérifiez que le type du champ est défini correctement.
  • Pour les champs select/checkbox/radio, assurez-vous que le tableau options est rempli.

Les notifications ne sont pas envoyées

  • Vérifiez que le paramètre de notification correspondant est activé (par ex. helpcenter_notify_admin_on_new_ticket).
  • Vérifiez que votre configuration mail dans .env (SMTP, Mailgun, etc.) est correcte.
  • Vérifiez la table failed_jobs pour les échecs de notifications en file d’attente.
  • Pour les tickets invités, assurez-vous que l’adresse email de l’invité est valide.

L’Assistant IA retourne des erreurs

  • Assurez-vous qu’au moins une clé API de fournisseur IA est configurée dans .env (par ex. ANTHROPIC_API_KEY, OPENAI_API_KEY).
  • Vérifiez config/ai.php pour la configuration du fournisseur par défaut.
  • Vérifiez que le package laravel/ai est installé (composer show laravel/ai).
  • Vérifiez les journaux du serveur pour les messages d’erreur détaillés du fournisseur IA.

Les articles KB ne s’affichent pas sur le front-end

  • Assurez-vous que les articles ont le statut défini à published et que published_at est dans le passé.
  • Vérifiez la visibilité : les articles auth_only sont cachés pour les invités.
  • Si kb_require_auth est activé, les utilisateurs non authentifiés sont redirigés vers la connexion.
  • Assurez-vous que la collection de l’article est marquée comme active.

L’export PDF échoue

  • Assurez-vous que le package barryvdh/laravel-dompdf est installé.
  • Vérifiez que le répertoire storage/app est accessible en écriture par le serveur web.
  • Si le contenu du ticket contient des images externes, assurez-vous que isRemoteEnabled est à true (c’est le cas par défaut).

La fusion de tickets échoue

  • Vous ne pouvez pas fusionner un ticket avec lui-même : la source et la cible doivent être des tickets différents.
  • Assurez-vous d’avoir la permission helpcenter.tickets.edit.
  • Vérifiez les journaux du serveur pour les erreurs de transaction de base de données.

Les votes d’utilité ne fonctionnent pas

  • Assurez-vous que kb_show_helpful_votes est activé dans les paramètres KB.
  • Le point de terminaison de vote (POST /help/vote/{id}) retourne du JSON : vérifiez que le JavaScript gère correctement l’appel AJAX.
  • Vérifiez la console du navigateur pour les erreurs réseau.

La restriction d’accès par achat Envato ne fonctionne pas

  • Assurez-vous que l’add-on Intégration Envato Market est installé et actif.
  • Activez envato_helpcenter_require_purchase dans les paramètres Envato.
  • Liez au moins un élément Envato au département ou à la collection KB que vous souhaitez restreindre. Les entités sans éléments liés sont toujours sans restriction.

Cet article vous a-t-il été utile ?

Merci pour votre retour !

Besoin d'aide ? Créez un ticket de support

Créer un Ticket