
# Integracja z GoHighLevel (GHL)

Korzystasz już z GoHighLevel (GHL) do zarządzania swoją firmą? Ta integracja pozwala dodać obsługę wiadomości opartą na sztucznej inteligencji od <span data-t="appName">Your AI Connector</span> do istniejącej konfiguracji GHL. Wiadomości przychodzące do GHL są przekazywane do <span data-t="appName">Your AI Connector</span> w celu przetworzenia przez AI, a odpowiedzi z <span data-t="appName">Your AI Connector</span> są odsyłane przez GHL do klienta tym samym kanałem.

> Korzystasz z innego systemu CRM? Nie potrzebuje on dedykowanego ekranu, aby współpracować z <span data-t="appName">Your AI Connector</span>: zobacz [Łączenie narzędzia, którego nie wymieniamy](connecting-other-tools.md), aby dowiedzieć się więcej o funkcjach niestandardowych, API i webhookach.

Oznacza to, że możesz nadal używać GHL jako głównego centrum, pozwalając jednocześnie AI na prowadzenie rozmów.

::: note
**Uwaga:** Jest to bardziej techniczna integracja, która wymaga skonfigurowania zautomatyzowanych przepływów pracy (workflows) oraz połączenia systemów za pomocą webhooków (automatycznych powiadomień między aplikacjami) i wywołań API. Jeśli nie czujesz się z tym pewnie, warto przekazać tę stronę programiście lub członkowi zespołu z odpowiednią wiedzą techniczną.
:::


---

## Wymagania wstępne

- Aktywne **konto <span data-t="appName">Your AI Connector</span>** z kluczem API (znajdziesz go w **Ustawienia → Integracje → Klucz API**). Klucz API to unikalny kod, który pozwala GHL na bezpieczną komunikację z Twoim kontem.
- **Konto GoHighLevel** z uprawnieniami do tworzenia przepływów pracy (workflows) i zarządzania webhookami (automatycznymi powiadomieniami między systemami).

---

## Jak to działa

| Kierunek | Co się dzieje |
|---|---|
| **GHL do <span data-t="appName">Your AI Connector</span>** | Klient wysyła wiadomość przez SMS, e-mail, Messenger, Instagram lub czat na żywo w GHL. Przepływ pracy automatycznie przekazuje tę wiadomość do <span data-t="appName">Your AI Connector</span>. <span data-t="appName">Your AI Connector</span> przetwarza ją (odpowiedź AI, tagowanie itp.). |
| **<span data-t="appName">Your AI Connector</span> do GHL** | Gdy <span data-t="appName">Your AI Connector</span> wysyła odpowiedź (ręcznie lub przez AI), automatycznie powiadamia GHL. Przepływ pracy w GHL znajduje kontakt i wysyła odpowiedź odpowiednim kanałem. |

---

## Przepływ pracy 1: GHL do <span data-t="appName">Your AI Connector</span>

Ten przepływ pracy przekazuje przychodzące wiadomości z GHL do <span data-t="appName">Your AI Connector</span>.

### Krok 1: Utwórz przepływ pracy (Workflow)

1. W GHL przejdź do **Automatyzacja > Przepływy pracy (Workflows)**.
2. Kliknij **Utwórz nowy przepływ pracy**.
3. Nadaj mu opisową nazwę, np. „Wyślij wiadomość do <span data-t="appName">Your AI Connector</span>”.

### Krok 2: Dodaj wyzwalacze (Triggers)

Dodaj wyzwalacz dla każdego kanału, który chcesz przekazywać:

- Customer Replied - SMS
- Customer Replied - Email
- Customer Replied - Facebook Message
- Customer Replied - Instagram DM
- Customer Replied - Live Chat

Możesz dodać wszystkie z nich lub tylko te kanały, które są istotne dla Twojej konfiguracji.

### Krok 3: Dodaj filtr tagów (opcjonalnie)

Jeśli chcesz przekazywać wiadomości tylko od określonych kontaktów:

1. Kliknij **Dodaj filtr** (Add Filter) przy wyzwalaczu.
2. Ustaw warunek na „Kontakt ma tag” (Contact has tag).
3. Wybierz swój tag lub tagi.
4. Wybierz, czy kontakt powinien mieć **dowolny** (any), czy **wszystkie** (all) z wybranych tagów.

### Krok 4: Utwórz podział kanałów (Channel Split)

Dodaj akcję **Warunek** (Condition), aby skierować każdy kanał do odpowiedniego webhooka:

| Gałąź | Warunek |
|---|---|
| Gałąź 1 | Źródło wiadomości równe `Email` |
| Gałąź 2 | Źródło wiadomości równe `SMS` |
| Gałąź 3 | Źródło wiadomości równe `Messenger` |
| Gałąź 4 | Źródło wiadomości równe `Instagram` |
| Gałąź 5 | Źródło wiadomości równe `Live Chat` |

### Krok 5: Skonfiguruj webhooki

Dla każdej gałęzi dodaj akcję **Webhook / Żądanie HTTP** (Webhook / HTTP Request):

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

- **Niestandardowe pola danych:**

| Pole | Wartość | Uwagi |
|---|---|---|
| `messageSid` | `{{right_now.second}}{{contact.id}}` | Unikalny identyfikator wiadomości |
| `fromId` | `{{contact.id}}` | Identyfikator kontaktu GHL |
| `toId` | `{{user.id}}` | Twój identyfikator użytkownika GHL |
| `body` | `{{message.body}}` | Treść wiadomości |
| `channel` | Zobacz tabelę poniżej | Musi odpowiadać gałęzi |
| `status` | `created` | Zawsze ustawione na `created` |
| `messageType` | `text` | Typ wiadomości |

**Wartości kanałów dla poszczególnych gałęzi:**

| Gałąź | Wartość `channel` |
|---|---|
| Email | `email` |
| SMS | `sms` |
| Messenger | `messenger` |
| Instagram | `ig` |
| Czat na żywo | `livechat` |

::: warning
**Ważne:** Upewnij się, że wartość `channel` jest dokładnie taka sama — wielkość liter ma znaczenie.
:::


### Krok 6: Włącz ponowne wejście (Re-Entry)

W ustawieniach przepływu pracy (workflow) upewnij się, że opcja **Zezwalaj na ponowne wejście** (Allow Re-entry) jest włączona. Bez tego przekazywana będzie tylko pierwsza wiadomość od każdego kontaktu.

---

## Przepływ pracy 2: Your AI Connector do GHL

Ten przepływ pracy odbiera odpowiedzi z Your AI Connector i wysyła je do klienta przez odpowiedni kanał GHL.

### Krok 1: Utwórz przychodzący webhook w GHL

1. W GHL przejdź do **Ustawienia > Deweloperzy / API**.
2. Kliknij **Utwórz nowy webhook** (lub „Przychodzący webhook”).
3. Nazwij go „Wiadomości”.
4. Zapisz i **skopiuj adres URL webhooka** — będzie on potrzebny w następnym kroku.

### Krok 2: Skonfiguruj Your AI Connector

1. W Your AI Connector kliknij **Ustawienia** na pasku bocznym.
2. W sekcji **Kanały** kliknij **Kanały**.
3. Przewiń stronę na sam dół do karty **Kanał niestandardowy**.
4. Wklej właśnie skopiowany przychodzący adres URL webhooka GHL w polu **Adres URL webhooka** (musi to być publiczny adres HTTPS) i kliknij **Zapisz**.

> **To nie jest strona Ustawienia → Integracje → Webhooki.** Ta strona służy do powiadomień o zdarzeniach i wysyła inny ładunek (payload). Przekaźnik wychodzący GHL ustawia się na karcie **Kanał niestandardowy** w sekcji **Ustawienia → Kanały**.

Your AI Connector będzie teraz automatycznie wysyłać powiadomienie do GHL za każdym razem, gdy wiadomość zostanie wysłana do kontaktu. Przesyłane dane wyglądają następująco:

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

> **Uwaga nawigacyjna:** klucz API używany w przepływie pracy 1 oraz karta Kanał niestandardowy używana tutaj znajdują się w różnych miejscach — klucz w **Ustawienia → Integracje → Klucz API**, a karta **Kanał niestandardowy** na dole strony **Ustawienia → Kanały**. Osobna strona **Ustawienia → Integracje → Webhooki** służy do powiadomień o zdarzeniach i wysyła inny ładunek; zobacz [Webhooki](webhooks.md), jeśli to właśnie chcesz skonfigurować.

### Krok 3: Utwórz przepływ pracy odpowiedzi

1. W GHL przejdź do **Automatyzacja > Przepływy pracy**.
2. Utwórz nowy przepływ pracy o nazwie „Wyślij wiadomość do kontaktu”.
3. Ustaw wyzwalacz na **Przychodzący webhook** i wybierz webhook utworzony w kroku 1.

### Krok 4: Dodaj akcję Znajdź kontakt

1. Dodaj akcję **Znajdź kontakt**.
2. Ustaw pole wyszukiwania na **Identyfikator kontaktu**.
3. Użyj wartości: `{{inboundWebhookRequest.toId}}`

### Krok 5: Dodaj opcjonalne sprawdzanie tagów

Jeśli chcesz ograniczyć, które kontakty mają otrzymywać wiadomości z Your AI Connector:

1. Dodaj akcję **Warunek**.
2. Sprawdź, czy kontakt posiada określony tag.
3. Jeśli tagu brakuje, zakończ przepływ pracy (dodaj akcję „Zatrzymaj” w fałszywej gałęzi).

### Krok 6: Dodaj podział kanałów

Dodaj akcję **Warunek** (Condition), która kieruje wiadomość w oparciu o `{{inboundWebhookRequest.channel}}`:

| Gałąź | Warunek | Akcja |
|---|---|---|
| Gałąź 1 | równa się `email` | Wyślij e-mail |
| Gałąź 2 | równa się `sms` | Wyślij SMS |
| Gałąź 3 | równa się `messenger` | Wyślij wiadomość na Facebooku |
| Gałąź 4 | równa się `ig` | Wyślij wiadomość na Instagramie |
| Gałąź 5 | równa się `livechat` | Wyślij wiadomość na czacie |

### Krok 7: Skonfiguruj każdą akcję wysyłania

W każdej akcji wysyłania ustaw treść wiadomości na:

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

### Krok 8: Włącz ponowne wejście

Podobnie jak w przypadku przepływu pracy 1, upewnij się, że opcja **Zezwalaj na ponowne wejście** (Allow Re-entry) jest włączona w ustawieniach przepływu pracy.

---

## Testowanie integracji

### Przetestuj GHL do <span data-t="appName">Your AI Connector</span> (Przepływ pracy 1)

1. Wyślij wiadomość na swój numer GHL lub podłączony kanał (na przykład wyślij do siebie SMS).
2. Otwórz <span data-t="appName">Your AI Connector</span> i sprawdź, czy wiadomość pojawiła się w **Czatach**.
3. Sprawdź, czy etykieta kanału jest poprawna (SMS, e-mail itp.).
4. Powtórz dla każdego skonfigurowanego kanału.

### Przetestuj <span data-t="appName">Your AI Connector</span> do GHL (Przepływ pracy 2)

1. W <span data-t="appName">Your AI Connector</span> wyślij odpowiedź do kontaktu (ręcznie lub pozwól AI odpowiedzieć).
2. Otwórz GHL i sprawdź, czy kontakt otrzymał wiadomość.
3. Potwierdź, że została wysłana przez właściwy kanał.
4. Sprawdź, czy treść wiadomości się zgadza.

---

## Rozwiązywanie problemów

| Problem | Co sprawdzić |
|---|---|
| Wiadomości nie docierają do <span data-t="appName">Your AI Connector</span> | Sprawdź, czy klucz API w adresie URL webhooka jest poprawny. Sprawdź, czy wyzwalacze przepływu pracy działają (dzienniki przepływu pracy GHL). Potwierdź, że włączona jest opcja „Zezwalaj na ponowne wejście” (Allow Re-entry). |
| Wiadomości nie docierają do GHL | Sprawdź, czy przychodzący adres URL webhooka GHL został poprawnie wklejony w polu **Adres URL webhooka** na karcie **Kanał niestandardowy** na dole strony **Ustawienia → Kanały** (nie na stronie Ustawienia → Integracje → Webhooki, która jest inną funkcją). Sprawdź, czy przychodzący webhook GHL jest aktywny. Przejrzyj dzienniki wykonania przepływu pracy GHL. |
| Nie znaleziono kontaktu w GHL | `toId` w danych webhooka musi odpowiadać istniejącemu identyfikatorowi kontaktu w GHL. Upewnij się, że kontakty istnieją w obu systemach i mają pasujące identyfikatory. |
| Użyto niewłaściwego kanału do odpowiedzi | Sprawdź dokładnie wartości kanałów w gałęziach warunkowych. Muszą być identyczne: `email`, `sms`, `messenger`, `ig`, `livechat`. |
| Przekazywana jest tylko pierwsza wiadomość | Włącz opcję **Zezwalaj na ponowne wejście** (Allow Re-entry) w ustawieniach obu przepływów pracy. |

---

## Następne kroki

- [Webhooki](webhooks.md) — skonfiguruj webhooki dla innych zdarzeń <span data-t="appName">Your AI Connector</span>.
- [Dostęp do API](api-access.md) — użyj API do niestandardowych integracji wykraczających poza GHL.
- [Niestandardowe kanały](../messaging-channels/custom-channels.md) — dowiedz się więcej o przesyłaniu wiadomości przez niestandardowe kanały.
