> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wirespeed.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Halo ITSM

> Intégrez Halo ITSM pour créer et gérer automatiquement des tickets à partir des dossiers et des détections Wirespeed

## Prérequis

Dans Halo ITSM, vous avez besoin d’une application API configurée avec le type d’autorisation **Client Credentials**. Pour en créer une :

1. Connectez-vous à votre instance **Halo ITSM**
2. Accédez à **Configuration** > **Integrations** > **HaloPSA API** > **View Applications**
3. Cliquez sur **New** pour créer une application
4. Définissez **Authentication Method** sur `Client ID and Secret (Services)`
5. Définissez **Login Type** sur **Agent** et **Agent** sur **Application Identity**
6. Sous **Identity Roles**, sélectionnez **IT Agent**
7. Accordez à l’application l’accès aux scopes suivants : `read:tickets`, `edit:tickets`, `read:customers`
8. Copiez le **Client ID** et le **Client Secret**
9. Enregistrez l’application

## Connecter Wirespeed à Halo ITSM

1. Connectez-vous à Wirespeed et accédez à Intégrations > [**Ajouter une intégration**](https://app.wirespeed.co/settings/integrations?tab=browse)
2. Sélectionnez **Halo ITSM** et cliquez sur **Intégrer**
3. Renseignez les champs suivants :
   * **URL de l’instance Halo** — l’URL de base de votre instance Halo (par exemple `https://yourcompany.halopsa.com`)
   * **ID client** — issu de l’application API créée ci-dessus
   * **Secret client** — issu de l’application API créée ci-dessus
4. Cliquez sur **Enregistrer**

Wirespeed vérifie les identifiants en contrôlant l’accès aux Teams, Ticket Types et Categories. Si l’une de ces vérifications échoue, l’intégration n’est pas activée ; vérifiez alors de nouveau les identifiants et les scopes.

## Configurer le comportement des tickets

Après avoir activé l’intégration, cliquez sur **Configurer** pour définir les préférences de création de tickets :

| Paramètre | Description |
| - | - |
| **Client** | Client Halo à associer aux tickets (facultatif) |
| **Équipe** | Équipe Halo à laquelle attribuer les tickets |
| **Catégorie** | Catégorie d’incident à attribuer à tous les tickets (obligatoire). |
| **Créer des tickets pour les détections autonomes** | Lorsque ce paramètre est activé, des tickets sont créés pour les détections clôturées qui ne font pas partie d’un dossier |
| **Modèle de titre des tickets de dossier** | Modèle de titre pour les tickets de dossier. Prend en charge des variables comme `` `sid` `` et `` `title` `` |
| **Modèle de titre des tickets de détection** | Modèle de titre pour les tickets de détection. Prend en charge des variables comme `` `sid` `` et `` `title` `` |

Cliquez sur **Enregistrer** une fois terminé.

## Ajouter un webhook

Pour que Wirespeed clôture automatiquement les dossiers lorsqu’un ticket est résolu dans Halo et resynchronise les notes, configurez un webhook :

1. Connectez-vous à Wirespeed et accédez à [**Intégrations**](https://app.wirespeed.co/settings/integrations) > sélectionnez votre intégration Halo ITSM > **Configurer**

2. Copiez l’**URL du webhook** et le **Secret du webhook**

3. Connectez-vous à votre instance **Halo ITSM**

4. Accédez à **Configuration** > **Integrations** > **Webhooks**

5. Cliquez sur **New** pour créer un webhook

6. Collez l’**URL du webhook** obtenue à l’étape 2

7. Définissez **Authentication** sur **Sign Request Body with a Secret Key**

8. Définissez **Secret** sur le **Secret du webhook** obtenu à l’étape 2

9. Configurez `x-signature` comme nom de l’en-tête de signature et définissez **Signing Algorithm** sur `SHA-256`

   > [!WARNING]
   >
   > La liste déroulante Signing Algorithm de Halo propose également `RSA-SHA256` et d’autres variantes RSA. Ne sélectionnez **pas** l’une d’entre elles : Wirespeed ne peut pas vérifier les requêtes signées avec RSA, et chaque appel du webhook échouera avec une erreur `400` tant que l’algorithme n’aura pas été redéfini sur `SHA-256`.

10. Ajoutez les **Request Headers** suivants à la signature, dans cet ordre exact :

    1. `content-length`
    2. `content-type`
    3. `host`
    4. `x-halo-date`

    Les quatre en-têtes sont obligatoires. L’omission de l’un d’eux invalide le HMAC et Wirespeed renvoie `400`.

    Le champ **Version** de Halo est ignoré par Wirespeed. Conservez la valeur par défaut ; elle n’a aucune incidence sur la vérification de la signature.

11. Sous **Events**, ajoutez **Ticket Updated by Agent**. Dans **Edit criteria**, définissez :
    * **Rule Type:** Contains (comma separated value)
    * **Summary:** `Wirespeed:, WSPD-, DTN-`

12. Ajoutez **Ticket Updated by User** avec les mêmes valeurs dans **Edit criteria**

13. Enregistrez le webhook

> [!NOTE]
>
> Le secret du webhook est obligatoire. Wirespeed vérifie l’en-tête `x-signature` à l’aide de HMAC-SHA256, avec pour clé le **Secret du webhook** obtenu à l’étape 2. Halo inclut `x-halo-date` dans cette signature ; Wirespeed rejette également les rappels dont l’en-tête `x-halo-date` est absent, illisible ou décalé de plus de **5 minutes** par rapport à l’horloge du serveur.
>
> Halo doit calculer la signature à partir de cette chaîne canonique :
>
> ```text theme={null}
> content-length: <content-length>
> content-type: <content-type>
> host: <host>
> x-halo-date: <x-halo-date>
> <raw request body>
> ```
>
> Le condensat HMAC-SHA256 obtenu doit être encodé en base64 et envoyé dans l’en-tête `x-signature`.

## Fonctionnement

* Lorsqu’un dossier est créé ou qu’une détection se déclenche dans Wirespeed, un ticket est créé dans Halo en tant qu’**Incident**, avec une priorité déterminée à partir de la gravité (Critique → P1, Élevée → P2, Moyenne → P3, Faible/Information → P4).
* Lorsqu’un ticket est clôturé dans Halo (ID de statut 9), le dossier Wirespeed correspondant est automatiquement clôturé.
* Les notes ajoutées à un ticket dans Halo sont resynchronisées dans la chronologie du dossier Wirespeed.
* Les commentaires ajoutés à un dossier Wirespeed ou à l’une de ses détections sont publiés dans le ticket Halo associé.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.