Systèmes de suivi des tickets
Transformer une session en ticket pendant que vous la regardez : un bouton dans le lecteur, votre propre description et le lien de relecture déjà joint.
1. Pourquoi cette intégration est manuelle
Toutes les autres passerelles MousePlayer se déclenchent automatiquement. Celle-ci ne le fait pas, et c’est un choix délibéré.
Un ticket représente du travail pour une personne. Si nous en ouvrions un à chaque clic de rage, votre tableau se remplirait d’éléments que personne n’a triés. En une semaine, votre équipe les filtrerait, et les vrais problèmes disparaîtraient avec eux.
C’est donc vous qui déclenchez l’action. Vous regardez une session, vous repérez le problème, vous appuyez sur le bouton et décrivez ce que vous avez vu. Le lien de l’enregistrement est déjà dans la description ; vous apportez votre jugement.
Le bouton n’apparaît que pour les propriétaires et les administrateurs, jamais dans une vue accessible par lien partagé. Une personne à qui vous avez envoyé un enregistrement ne doit pas pouvoir ouvrir de tickets dans votre outil.
2. Les cinq outils et les éléments nécessaires pour chacun
| Élément créé | À fournir | |
|---|---|---|
| Jira | un ticket dans un projet | URL du site, e-mail du compte, jeton API, clé du projet, type de ticket |
| Linear | un ticket dans une équipe | clé API, identifiant de l’équipe |
| Asana | une tâche dans un projet | jeton d’accès personnel, identifiant du projet |
| Trello | une carte dans une liste | clé, jeton, identifiant de la liste |
| GitHub | un ticket dans un dépôt | jeton d’accès personnel, propriétaire/dépôt |
Une tuile, un fournisseur sélectionné à la fois. Choisir plus tard un autre outil revient à changer la sélection, sans migration.
Où trouver les identifiants
L’identifiant de l’équipe Linear et celui du projet Asana sont visibles dans l’URL lorsque vous ouvrez l’équipe ou le projet dans un navigateur. L’identifiant de liste Trello est le plus difficile à trouver des cinq : ajoutez .json à l’URL d’un tableau et recherchez la liste souhaitée. La clé de projet Jira est le préfixe qui précède chaque numéro de ticket : ACME dans ACME-1234.
3. Le lien du ticket est construit par notre serveur
La description que vous saisissez est la vôtre. Le lien de relecture, lui, est construit de notre côté à partir de la session que vous regardiez réellement, et le formulaire ne peut pas le modifier.
C’est important, car d’autres personnes cliqueront sur le ticket. Si le lien venait du navigateur, une requête manipulée pourrait présenter n’importe quelle adresse à votre équipe dans un élément qui semble issu de vos propres outils.
HTTP 200 ne signifie pas que le ticket existe
Linear répond via GraphQL, et GraphQL renvoie 200 OK avec un tableau errors en cas de refus. Une passerelle qui ne consulterait que le code de statut annoncerait la réussite d’un ticket jamais créé. Nous lisons le corps de la réponse.
Lorsque l’outil renvoie l’identifiant du nouveau ticket, nous l’affichons dans la confirmation : vous pouvez ainsi vérifier son existence au lieu de vous fier à un message vert.
4. Ce qui est volontairement absent
Aucun ticket automatique
Voir ci-dessus. Si vous souhaitez automatiser, la passerelle webhook peut transmettre les signaux de frustration à Zapier ou Make ; vous y décidez alors ce qui mérite un ticket.
Aucune synchronisation bidirectionnelle
Fermer le ticket ne change rien dans MousePlayer, et rien dans MousePlayer ne le rouvre. Une synchronisation partielle est pire qu’une absence de synchronisation, car les équipes commencent à s’y fier.
Aucune pièce jointe
L’enregistrement reste chez nous et se regarde chez nous. Exporter une vidéo vers un outil de tickets transférerait des données personnelles dans un système dont les règles de conservation diffèrent de celles convenues avec vos visiteurs.
Le jeton est stocké sous forme chiffrée avec AES-256-GCM et n’est plus jamais affiché. Il n’est pas non plus placé dans la file interne : cet appel s’exécute pendant que vous attendez, directement à partir de la requête.
5. GitLab, Azure DevOps et ClickUp
Trois autres outils, le même bouton, le même déclenchement manuel.
| À fournir | |
|---|---|
| GitLab | hôte, identifiant du projet et jeton : votre propre instance GitLab fonctionne aussi |
| Azure DevOps | organisation, projet, type d’élément de travail et jeton d’accès personnel (PAT) |
| ClickUp | identifiant de liste et jeton personnel |
GitLab demande un hôte, car vous pouvez l’héberger vous-même
Contrairement aux autres, GitLab est souvent auto-hébergé : l’hôte est donc un champ plutôt qu’une constante. Collez gitlab.com si votre instance s’y trouve.
Azure DevOps présente deux particularités à la fois
Son corps de requête est un document JSON Patch plutôt qu’un objet, et son type de contenu doit être application/json-patch+json — toute autre valeur renvoie une erreur 415. Le signe dollar devant le type d’élément de travail dans l’URL fait partie de l’adresse ; ce n’est pas un espace réservé que nous aurions oublié de remplir.
ClickUp attend le jeton seul
Sans Bearer devant. Un jeton précédé de ce mot est refusé avec une erreur 401, exactement comme un jeton incorrect.
Toutes les marques citées appartiennent à leurs propriétaires respectifs. MousePlayer n’entretient aucune relation commerciale avec ces fournisseurs.