
# Intégration GoHighLevel (GHL)

Vous utilisez déjà GoHighLevel (GHL) pour gérer votre entreprise ? Cette intégration vous permet d'ajouter la messagerie basée sur l'IA de <span data-t="appName">Your AI Connector</span> à votre configuration GHL existante. Les messages reçus dans GHL sont transférés à <span data-t="appName">Your AI Connector</span> pour être traités par l'IA, et les réponses de <span data-t="appName">Your AI Connector</span> sont renvoyées via GHL au client sur le canal d'origine.

> Vous utilisez un autre CRM ? Il n'a pas besoin d'un écran dédié pour fonctionner avec <span data-t="appName">Your AI Connector</span> : consultez [Connecter un outil que nous ne listons pas](connecting-other-tools.md) pour les fonctions personnalisées, l'API et les webhooks.

Cela signifie que vous pouvez continuer à utiliser GHL comme centre névralgique tout en laissant l'IA gérer les conversations automatisées.

::: note
**Remarque :** Il s'agit d'une intégration plus technique qui implique la mise en place de flux de travail automatisés et la connexion de systèmes à l'aide de webhooks (notifications automatiques entre applications) et d'appels API. Si vous n'êtes pas à l'aise avec cela, vous voudrez peut-être confier cette page à un développeur ou à un membre de votre équipe compétent en technologie.
:::


---

## Prérequis

- Un **compte <span data-t="appName">Your AI Connector</span>** actif avec votre clé API (disponible dans **Paramètres → Intégrations → Clé API**). Une clé API est un code unique qui permet à GHL de communiquer en toute sécurité avec votre compte.
- Un **compte GoHighLevel** avec les autorisations nécessaires pour créer des workflows et gérer des webhooks (notifications automatisées entre systèmes).

---

## Comment ça fonctionne

| Direction | Ce qui se passe |
|---|---|
| **GHL vers <span data-t="appName">Your AI Connector</span>** | Un client vous envoie un message par SMS, e-mail, Messenger, Instagram ou chat en direct dans GHL. Un workflow transfère automatiquement ce message à <span data-t="appName">Your AI Connector</span>. <span data-t="appName">Your AI Connector</span> le traite (réponse IA, étiquetage, etc.). |
| **<span data-t="appName">Your AI Connector</span> vers GHL** | Lorsqu'une réponse est envoyée par <span data-t="appName">Your AI Connector</span> (manuellement ou via l'IA), elle notifie automatiquement GHL. Un workflow dans GHL trouve le contact et envoie la réponse via le canal approprié. |

---

## Workflow 1 : GHL vers <span data-t="appName">Your AI Connector</span>

Ce workflow transfère les messages entrants de GHL vers <span data-t="appName">Your AI Connector</span>.

### Étape 1 : Créer le flux de travail

1. Dans GHL, allez dans **Automatisation > Workflows**.
2. Cliquez sur **Créer un nouveau workflow**.
3. Donnez-lui un nom explicite, tel que "Envoyer message à <span data-t="appName">Your AI Connector</span>".

### Étape 2 : Ajouter des déclencheurs

Ajoutez un déclencheur pour chaque canal que vous souhaitez transférer :

- Client a répondu - SMS
- Client a répondu - E-mail
- Client a répondu - Message Facebook
- Client a répondu - Message privé Instagram
- Client a répondu - Chat en direct

Vous pouvez tous les ajouter ou seulement les canaux pertinents pour votre configuration.

### Étape 3 : Ajouter un filtre d'étiquette (Optionnel)

Si vous souhaitez uniquement transférer les messages de contacts spécifiques :

1. Cliquez sur **Ajouter un filtre** sur le déclencheur.
2. Définissez la condition sur « Le contact a un tag ».
3. Choisissez votre ou vos tags.
4. Sélectionnez si le contact doit avoir **l'un** ou **tous** les tags sélectionnés.

### Étape 4 : Créer une séparation de canal

Ajoutez une action **Condition** pour acheminer chaque canal vers son propre webhook :

| Branche | Condition |
|---|---|
| Branche 1 | La source du message est égale à `Email` |
| Branche 2 | La source du message est égale à `SMS` |
| Branche 3 | La source du message est égale à `Messenger` |
| Branche 4 | La source du message est égale à `Instagram` |
| Branche 5 | La source du message est égale à `Live Chat` |

### Étape 5 : Configurer les webhooks

Pour chaque branche, ajoutez une action **Webhook / Requête HTTP** :

- **Méthode :** `POST`
- **URL :**
  ```
  https://api.youraiconnector.com/v1/incoming_custom_channel_message?apiKey=YOUR_API_KEY
  ```

- **Champs de données personnalisés :**

| Champ | Valeur | Notes |
|---|---|---|
| `messageSid` | `{{right_now.second}}{{contact.id}}` | Identifiant unique du message |
| `fromId` | `{{contact.id}}` | ID du contact GHL |
| `toId` | `{{user.id}}` | Votre ID utilisateur GHL |
| `body` | `{{message.body}}` | Le contenu du message |
| `channel` | Voir le tableau ci-dessous | Doit correspondre à la branche |
| `status` | `created` | Toujours défini sur `created` |
| `messageType` | `text` | Type de message |

**Valeurs de canal par branche :**

| Branche | Valeur `channel` |
|---|---|
| E-mail | `email` |
| SMS | `sms` |
| Messenger | `messenger` |
| Instagram | `ig` |
| Chat en direct | `livechat` |

::: warning
**Important :** Assurez-vous que la valeur `channel` correspond exactement — ces éléments sont sensibles à la casse.
:::


### Étape 6 : Activer la réentrée

Dans les paramètres du workflow, assurez-vous que **Autoriser la réentrée** est activé. Sans cela, seul le premier message de chaque contact sera transféré.

---

## Workflow 2 : Your AI Connector vers GHL

Ce workflow reçoit les réponses de Your AI Connector et les envoie au client via le canal GHL approprié.

### Étape 1 : Créer un webhook entrant dans GHL

1. Dans GHL, allez dans **Paramètres > Développeurs / API**.
2. Cliquez sur **Créer un nouveau webhook** (ou "Webhook entrant").
3. Nommez-le "Messages".
4. Enregistrez et **copiez l'URL du webhook** — vous en aurez besoin à l'étape suivante.

### Étape 2 : Configurer Your AI Connector

1. Dans Your AI Connector, cliquez sur **Settings** dans la barre latérale.
2. Sous **Channels**, cliquez sur **Channels**.
3. Faites défiler jusqu'à la carte **Custom channel** tout en bas de la page.
4. Collez l'URL du webhook entrant GHL que vous venez de copier dans **Webhook URL** (il doit s'agir d'une adresse HTTPS publique) et cliquez sur **Save**.

> **Il ne s'agit pas de la page Settings → Integrations → Webhooks.** Cette page est destinée aux notifications d'événements et envoie une charge utile différente. Le relais sortant GHL est configuré sur la carte **Custom channel** sous **Settings → Channels**.

Your AI Connector enverra désormais automatiquement une notification à GHL chaque fois qu'un message est envoyé à un contact. Les données envoyées ressemblent à ceci :

```json
{
  "contactId": "NtL97bwnhITrfIq8lWFi",
  "messageId": "s28dtg13qNuhXLoKpcLs",
  "userId": "wpDZRvaw4Hgh4whUBpwlKPRftOi2",
  "body": "Message content here",
  "toId": "qtpBsc6fiqkXTnSOeze3",
  "channel": "email"
}
```

> **Note de navigation :** la clé API que vous utilisez pour le Workflow 1 et la carte Custom channel que vous utilisez ici se trouvent à des endroits différents — **Settings → Integrations → API Key** pour la clé, et la carte **Custom channel** en bas de **Settings → Channels** pour ce relais. La page séparée **Settings → Integrations → Webhooks** est destinée aux notifications d'événements et envoie une charge utile différente ; consultez [Webhooks](webhooks.md) si c'est ce que vous recherchez à la place.

### Étape 3 : Créer le flux de travail de réponse

1. Dans GHL, accédez à **Automation > Workflows**.
2. Créez un nouveau flux de travail nommé "Send Message to Contact."
3. Définissez le déclencheur sur **Inbound Webhook** et sélectionnez le webhook que vous avez créé à l'étape 1.

### Étape 4 : Ajouter une action de recherche de contact

1. Ajoutez une action **Find Contact**.
2. Définissez le champ de recherche sur **Contact ID**.
3. Utilisez la valeur : `{{inboundWebhookRequest.toId}}`

### Étape 5 : Ajouter une vérification de tag optionnelle

Si vous souhaitez limiter les contacts qui reçoivent des messages de Your AI Connector :

1. Ajoutez une action **Condition**.
2. Vérifiez si le contact possède un tag spécifique.
3. Si le tag est manquant, terminez le flux de travail (ajoutez une action "Stop" sur la branche false).

### Étape 6 : Ajouter une séparation par canal

Ajoutez une action **Condition** qui achemine le message en fonction de `{{inboundWebhookRequest.channel}}` :

| Branche | Condition | Action |
|---|---|---|
| Branche 1 | égale `email` | Envoyer un e-mail |
| Branche 2 | égale `sms` | Envoyer un SMS |
| Branche 3 | égale `messenger` | Envoyer un message Facebook |
| Branche 4 | égale `ig` | Envoyer un message Instagram |
| Branche 5 | égale `livechat` | Envoyer un message de chat |

### Étape 7 : Configurer chaque action d'envoi

Dans chaque action d'envoi, définissez le corps du message sur :

```
{{inboundWebhookRequest.body}}
```

### Étape 8 : Activer la réentrée

Comme pour le workflow 1, assurez-vous que l'option **Autoriser la réentrée** est activée dans les paramètres du workflow.

---

## Tester l'intégration

### Tester GHL vers <span data-t="appName">Your AI Connector</span> (Workflow 1)

1. Envoyez un message à votre numéro GHL ou à un canal connecté (par exemple, envoyez-vous un SMS).
2. Ouvrez <span data-t="appName">Your AI Connector</span> et vérifiez que le message apparaît dans **Chats**.
3. Vérifiez que l'étiquette du canal est correcte (SMS, e-mail, etc.).
4. Répétez l'opération pour chaque canal configuré.

### Tester <span data-t="appName">Your AI Connector</span> vers GHL (Workflow 2)

1. Dans <span data-t="appName">Your AI Connector</span>, envoyez une réponse à un contact (manuellement ou laissez l'IA répondre).
2. Ouvrez GHL et vérifiez que le contact a bien reçu le message.
3. Confirmez qu'il a été envoyé via le canal approprié.
4. Vérifiez que le contenu du message correspond.

---

## Dépannage

| Problème | À vérifier |
|---|---|
| Les messages n'atteignent pas <span data-t="appName">Your AI Connector</span> | Vérifiez que votre clé API est correcte dans l'URL du webhook. Vérifiez que les déclencheurs de workflow sont activés (journaux de workflow GHL). Confirmez que l'option Autoriser la réentrée (Allow Re-entry) est activée. |
| Les messages n'atteignent pas GHL | Vérifiez que l'URL du webhook entrant GHL est correctement collée dans **Webhook URL** sur la carte **Custom channel** en bas de **Settings → Channels** (et non sur la page Settings → Integrations → Webhooks, qui est une fonctionnalité différente). Vérifiez que le webhook entrant GHL est actif. Examinez les journaux d'exécution des workflows GHL. |
| Contact introuvable dans GHL | Le `toId` dans les données du webhook doit correspondre à un ID de contact GHL existant. Assurez-vous que les contacts existent dans les deux systèmes avec des ID correspondants. |
| Mauvais canal utilisé pour la réponse | Vérifiez les valeurs de canal dans vos branches de condition. Elles doivent correspondre exactement : `email`, `sms`, `messenger`, `ig`, `livechat`. |
| Seul le premier message est transféré | Activez **Allow Re-entry** dans les paramètres des deux workflows. |

---

## Étapes suivantes

- [Webhooks](webhooks.md) — configurez des webhooks pour d'autres événements <span data-t="appName">Your AI Connector</span>.
- [Accès API](api-access.md) — utilisez l'API pour des intégrations personnalisées au-delà de GHL.
- [Canaux personnalisés](../messaging-channels/custom-channels.md) — apprenez-en plus sur la messagerie via des canaux personnalisés.
