Comment créer HelpDesk sur SharePoint 2013/2016/2019 ou Office 365

Mise à jour: Nous sommes heureux de vous informer que nous avons publié une version prête à l'emploi de HelpDesk for SharePoint. Il peut être installé et configuré en 15 minutes.

Dans cet article, je voudrais montrer comment créer HelpDesk sur SharePoint Online ou SharePoint 2013/2016/2019. L'idée est simple. Je souhaite mettre en place un système qui permettra à chaque partie du processus de travailler avec ses propres outils.

C'est le scénario général:

  1. Un initiateur de ticket soumettra des tickets en envoyant un courrier électronique à une boîte aux lettres spécifique.
  2. Tous les courriels de cette boîte aux lettres seront répliqués sur la liste du forum de discussion SharePoint.
  3. Un spécialiste du support technique travaillera uniquement avec la liste du forum de discussion SharePoint où chaque ticket comportera une discussion distincte.
  4. Chaque commentaire soumis au forum de discussion sera envoyé à l'initiateur du ticket par email.
  5. Il est possible de répondre à ces courriels et tous les replays seront répliqués dans la discussion correspondante sur le forum de discussion.

Ainsi, un initiateur de ticket fonctionne avec un client de messagerie et un spécialiste du support utilise une interface Web SharePoint. Enfin, nous obtiendrons quelque chose comme ceci:

J'ai choisi le modèle de liste de discussion SharePoint, car il fournit une interface conviviale prête à l'emploi. Je vais le changer un peu pour ajuster les besoins du système HelpDesk. Après les modifications, cela ressemblera à ceci:

Chaque discussion est un ticket. Toutes les réponses de l'initiateur du ticket et du spécialiste du support sont affichées dans la discussion. Un exemple de ticket sur l'expiration de la licence est présenté dans l'image ci-dessous:

J'ai divisé la mise en œuvre du HelpDesk en trois étapes:

  1. Création et configuration de la liste de tickets.
  2. Configuration des flux de travail SharePoint Designer.
  3. Modification des vues du forum de discussion.

Création et configuration de la liste de tickets

Tout d’abord, créons la nouvelle liste à partir du modèle de liste de discussion. Je l'ai nommé billets. Ensuite, nous devons ajouter de nouveaux champs:

  • To - Une seule ligne de texte
  • De - Une seule ligne de texte
  • TicketStatus - Choice (menu à choisir). Ajoutez ensuite deux statuts «Actif» et «Résolu». De plus, vous pouvez ajouter vos propres statuts.

Comme vous pouvez le constater avec les deux premiers noms, nous utiliserons ces champs pour stocker les champs "À" et "De" du message électronique. Nous allons utiliser TicketStatus dans les vues du forum de discussion, regardez la première photo de cet article.

C’est tout ce que nous devons faire avant de configurer les flux de travail SharePoint, mais pour clarifier le comportement des futurs flux de travail, je vais décrire le champ de forum de discussion prêt à l’emploi intitulé «ID de dossier du parent». Ce champ est utilisé par les commentaires du forum de discussion pour faire référence à une discussion initiale. Veuillez regarder cet exemple pour comprendre la structure typique d'une liste de discussion.

Les discussions et les commentaires sont stockés dans la même liste, nous utiliserons l’ID «Dossier parent» pour trouver la discussion pour un commentaire spécifique.

Configuration des flux de travail SharePoint Designer

J'utilise les flux de travail SharePoint Designer pour la synchronisation de la boîte aux lettres Exchange avec la liste SharePoint et pour les notifications par courrier électronique. Nous allons créer deux flux de travail: le flux de travail au niveau du site synchronisera les courriers électroniques avec la liste SharePoint et le flux de travail au niveau de la liste enverra des notifications sur les nouveaux tickets et commentaires.

Remarque: SharePoint 2013 comporte deux types de flux de travail: les flux de travail SharePoint 2010 (Workflow Foundation 3.5) et les flux de travail SharePoint 2013 (Workflow Foundation 4.5). Dans cet exemple, sont utilisés les flux de travail SharePoint 2013.

Flux de travail Sync Tickets

Créons maintenant un nouveau flux de travail au niveau du site à l'aide de SharePoint Designer. Je l’ai nommé ‘Sync Tickets’.

Les activités du concepteur SharePoint prêtes à l'emploi ne prennent pas en charge la synchronisation de la boîte aux lettres Exchange avec les listes SharePoint. Pour configurer la synchronisation, j'ai utilisé une activité de flux de travail personnalisée Sync Exchange e-mails avec liste. Cette activité est incluse dans le pack d’activités de workflow Plumsail payé. Il s'agit d'un ensemble d'activités de flux de travail supplémentaires pour SharePoint Online et SharePoint 2013/2016/2019.

Ce flux de travail ressemble à ceci:

Comme vous pouvez le voir sur la photo, le flux de travail est plutôt petit. Il contient trois étapes.

À l’étape ‘init credentials’, je stocke les informations d’identité dans les variables du flux de travail. J'utiliserai ces informations d'identification pour vérifier la boîte aux lettres Exchange et pour synchroniser les courriels avec la liste SharePoint.

Dans l’étape «Synchroniser avec le serveur Exchange», j’utilise une seule activité de flux de travail. Synchroniser les e-mails Exchange avec liste. Cette activité chargera les données de la boîte aux lettres dans la liste SharePoint. J'ai spécifié les paramètres suivants:

  • La liste des billets.
  • L'adresse de messagerie et le mot de passe de la boîte aux lettres source.
  • L'adresse de messagerie et le mot de passe du compte avec les autorisations pour la liste de tickets.

En général, cela suffit, mais pour les scénarios avancés, il est possible de modifier le mappage des champs de courrier électronique en champs de liste SharePoint, de spécifier une expression régulière pour l'analyse du sujet du courrier électronique et de choisir un autre SiteUrl. SiteUrl est une URL du site SharePoint. Par défaut, c'est le site actuel, mais vous pouvez spécifier un autre site SharePoint. Pour gérer ces propriétés, ouvrez les propriétés de l'activité:

Remarque: Il n'est pas nécessaire d'utiliser un modèle de forum de discussion pour la synchronisation. Vous pouvez créer une liste personnalisée et spécifier votre propre mappage de champs dans les propriétés de l'activité.

Dans l’étape «Attendre 5 minutes», le flux de travail attend seulement 5 minutes et redémarre la synchronisation en passant à l’étape «Synchroniser avec le serveur Exchange». Pour attendre 5 minutes, j’utilise l’activité de flux de travail «Pause pour la durée» prête à l'emploi.

C’est tout ce dont nous avons besoin pour configurer la synchronisation périodique de la boîte aux lettres Exchange avec la liste SharePoint.

Traiter les nouveaux flux de travaux et commentaires

Créons maintenant un workflow au niveau liste pour la liste de tickets. Je l’ai nommé «Traiter les nouveaux tickets et commentaires». Ce workflow est responsable des notifications par courrier électronique concernant les nouveaux tickets et commentaires.

Dans la section "Options de démarrage" des paramètres du flux de travail, j’ai coché "Démarrer automatiquement le flux de travail lorsqu’un élément est créé":

Comme vous le savez dans la description ci-dessus, toutes les discussions et tous les commentaires sont stockés dans une liste unique. Ainsi, ce flux de travail sera automatiquement lancé à chaque création du nouveau ticket ou du nouveau commentaire.

Le flux de travail ressemble à ceci:

Le flux de travail contient deux étapes.

À l’étape ‘init credentials’, je stocke les informations d’identité dans les variables du flux de travail. Je vais utiliser ces informations d'identification pour envoyer des notifications par courrier électronique.

À l’étape «Traitement des nouveaux tickets et commentaires», je vérifie si l’article en cours est un nouveau ticket ou un nouveau commentaire. Si «ID de dossier parent» est égal à 0, il s’agit d’un nouveau ticket car il n’a aucune référence au parent. Si «ID de dossier parent» est supérieur à 0, il s’agit d’un nouveau commentaire, car il est lié à une discussion. Si l'élément en cours est un nouveau ticket, j'envoie une notification à l'initiateur du ticket avec l'identifiant du nouveau ticket dans le sujet et merci d'avoir soumis le ticket. Toutes les conversations futures contiendront cet ID de ticket dans le sujet. C'est pourquoi l'activité dans le flux de travaux au niveau du site saura comment traiter le nouveau courrier électronique, quand créer une nouvelle discussion et quand créer un nouveau commentaire.

Je n’utilise pas l’action de flux de travail ‘Envoyer un courrier électronique’ pour envoyer des notifications car elle ne peut pas envoyer d’e-mails à des adresses externes. Nos initiateurs de billets peuvent être des utilisateurs externes autant qu'internes. L'activité par défaut ne prend pas non plus en charge l'envoi de pièces jointes. Je souhaite envoyer des pièces jointes et des images à partir des commentaires du forum de discussion SharePoint. À la place, j'utilise l'option Envoyer un courrier électronique avec l'activité de workflow de pièce jointe à partir du pack d'activités de workflow Plumsail. Il permet d'envoyer des courriers électroniques à des utilisateurs externes. Il permet également de joindre manuellement des documents ou d’analyser automatiquement le contenu HTML du message et de joindre des images et des fichiers à partir de balises et .

Remarque: Les images et les fichiers ne seront joints au courrier électronique que s'ils sont stockés dans la bibliothèque SharePoint. Sinon, ils seront ignorés. Ce n'est pas un problème pour le cas actuel car tous les fichiers et images soumis par un spécialiste du support technique seront stockés dans la bibliothèque SharePoint.

Permettez-moi maintenant de décrire comment configurer correctement cette activité de workflow. Je vais commencer par l'activité d'envoi de notifications concernant le nouveau ticket:

Comme vous pouvez le constater, j’ai utilisé comme adresse la valeur du champ "De" de l'élément actuel, puis j'ai renseigné le sujet avec "Numéro de ticket accepté" et l'identifiant de l'élément actuel. Enfin, j'ai spécifié un corps convivial et un e-mail avec un mot de passe pour la boîte aux lettres Exchange.

Ensuite, l'activité suivante envoie des notifications sur le nouveau commentaire:

Pour envoyer une notification concernant le nouveau commentaire, nous devons trouver l’adresse de l’initiateur du ticket. Cela pourrait être difficile car le commentaire soumis par le spécialiste du support ne contient pas cette adresse. Bon pour nous, il contient l’identifiant du dossier parent. Nous pouvons donc obtenir l’élément parent (discussion initiale du ticket) et utiliser comme adresse le champ «De». Utilisez le bouton "Ajouter ou modifier une recherche" pour ouvrir la fenêtre de recherche, puis configurez-la comme suit:

Ensuite, nous devons spécifier un sujet. Il doit contenir l'ID du ticket initial. C’est l’identifiant de dossier parent pour commentaire:

Le corps de l'e-mail sera le même que celui du commentaire, il suffit de choisir le champ "Corps" de l'élément en cours.

Un autre moment important consiste à joindre des images et des fichiers depuis le forum de discussion. Ouvrez les propriétés de l’activité et définissez ‘ParseLinks’ et ‘ParseImages’ sur ‘Oui’. Désormais, l'activité de workflow analysera le corps du commentaire et joindra automatiquement les images et les fichiers à un courrier électronique.

C’est tout ce que nous devons faire avec le flux de travail au niveau de la liste. Bien entendu, vous pouvez ajouter vos propres notifications à ce flux de travail ou, par exemple, affecter des employés responsables au ticket.

Modification des vues du forum de discussion

Comme je l'ai mentionné ci-dessus, nous allons personnaliser les vues hors de la boîte de notre forum de discussion. Ces vues ne peuvent être personnalisées qu'avec JavaScript (JS Link) et je montrerai comment faire.

La liste de discussion a deux points de vue importants pour nous:

  • AllItems.aspx (Subject) - cette vue affiche la liste des discussions (tickets).
  • Flat.aspx (Flat) - cette vue affiche une discussion unique (ticket).

Ajout de ViewFields

Les deux vues ne peuvent pas être personnalisées à l'aide de l'interface utilisateur SharePoint. Nous avons ajouté trois colonnes à la liste des billets (TicketStatus, De, À). Pour les rendre visibles, nous devons les ajouter aux ViewFields à l'aide de SharePoint Designer. Ouvrez-le et accédez à Tous les fichiers -> Listes -> Tickets et ouvrez AllItems.aspx pour le modifier. Recherchez ensuite la balise et ajoutez les balises suivantes:

Faites la même chose pour le Flat.aspx.

Une fois que nous avons ajouté les champs «De», «À» et «TicketStatus» aux champs de visualisation, il est possible de les utiliser dans JavaScript.

Désactiver la stratégie de téléchargement minimale

Les vues de la liste de discussion sont basées sur JavaScript, il y a une tonne de JavaScript et nous ne remplacerons qu'une partie des fonctions JavaScript. Sinon, nous aurions besoin de réécrire tout le JavaScript. Vous pouvez télécharger le code source du fichier JavaScript avec les personnalisations ici.

Il n’ya qu’un seul problème, la fonctionnalité Stratégie de téléchargement minimale est activée par défaut dans SharePoint Online et SharePoint 2013. Nous devons la désactiver pour le site SharePoint actuel afin d’empêcher les conflits JavaScript entre le fichier sp.ui.discussions.js prêt à l'emploi et le fichier. nos personnalisations. Cette action est obligatoire car si vous avez plusieurs forums de discussion au sein d'un même site SharePoint avec stratégie de téléchargement minimal, le code JavaScript du premier forum de discussion visité sera chargé dans le navigateur. Ainsi, si vous avez visité le forum de discussion non personnalisé en premier lieu, vos personnalisations n'affecteront pas les éléments déjà chargés. fichier. Ce n'est pas la meilleure approche, mais cela nous permet de changer rapidement une partie de la fonctionnalité prête à l'emploi.

Pour désactiver la stratégie de téléchargement minimal, accédez aux paramètres du site -> Fonctions du site et désactivez la fonctionnalité "Stratégie de téléchargement minimal":

Création du JavaScript (JSLink)

Ouvrez maintenant le site Web racine de votre collection de sites à l'aide de SharePoint Designer et accédez à la bibliothèque de styles. Ensuite, créez le fichier JavaScript là-bas, je l’ai nommé plumTickets.js.

Dans cet article, je ne montrerai que le début du script, vous pouvez télécharger le script complet ici. Au début du script, vous pouvez voir:

Si vous utilisez d’autres noms internes pour l’état du ticket, les champs «De» ou «À», vous pouvez le modifier ici. Vous pouvez également spécifier le texte du nouveau lien de ticket. Si vous avez les mêmes champs, ne changez rien.

Une autre partie du script concerne les paramètres de filtration. Cette partie est responsable des filtres en haut de la vue:

Le script de configuration ressemble à ceci:

Si vous n'avez pas besoin de changer de filtre, ne lisez simplement pas cette partie.

Comme vous pouvez le voir, le tableau est nommé filtres. Le tableau contient des objets QueryOverrideItem. Chaque objet définit un filtre distinct. Si vous ajoutez le nouvel objet QueryOverrideItem, le nouveau filtre apparaîtra dans la vue.

Pour créer un nouvel objet, vous devez définir trois valeurs:

  1. Le contexte - c'est toujours le même: this.context
  2. Le nom du filtre, qui sera affiché dans l’UI, par exemple, «Actif»
  3. La requête CAML

Regardez cet exemple:

Nous avons terminé le script de personnalisations. Nous devons maintenant l’appliquer aux affichages du forum de discussion.

Définition de JSLink pour les vues d'objet et à plat

Presque chaque composant WebPart dans SharePoint 2013 et SharePoint Online possède la propriété JSLink. Cette propriété permet de spécifier du code JavaScript personnalisé pour le rendu côté client du composant WebPart.

Nous devons maintenant modifier la propriété JSLink des composants WebPart dans les vues. Accédez à la vue Objet dans le navigateur et ouvrez la page à modifier. Ouvrez ensuite la partie Web pour modification:

Dans la section Divers des propriétés du composant WebPart, recherchez la propriété JS Link et spécifiez le lien suivant:

sp.ui.discussions.js | ~ SiteCollection / Bibliothèque de styles / plumTickets.js

Enregistrez ensuite la partie Web.

Comme vous pouvez le constater, ce lien contient en fait deux liens, le premier est sp.ui.discussions.js, le second est plumTickets.js. Le premier fichier est un script de rendu prêt à l'emploi, le second dans notre script avec personnalisations.

Faites la même chose pour la vue à plat.

Conclusion

Le HelpDesk est prêt à être utilisé. En passant, il n’est pas nécessaire d’utiliser HelpDesk, vous pouvez utiliser cette approche pour n’importe quel système, qui gère la communication avec des utilisateurs internes ou externes, par exemple, CRM. Vous pouvez encore compliquer la logique de traitement des tickets, ajouter le formatage du courrier, les statuts personnalisés, les priorités des tickets, une logique d’approbation.

Télécharger des sources JavaScript