Połączenia API
Podłącz swoje zewnętrzne API do enuchat, aby AI i reguły mogły pobierać dane w czasie rzeczywistym z Twoich systemów.
Jak to działa
Połączenia API pozwalają zintegrować enuchat z Twoimi własnymi systemami backendowymi — silnikami rezerwacji, CRM-ami, zarządzaniem zamówieniami, magazynem i innymi. Gdy odwiedzający zada pytanie, enuchat może wywołać Twoje API, aby pobrać rzeczywiste dane i uwzględnić je w odpowiedzi.
Przepływ
- Skonfiguruj połączenie — bazowy URL Twojego API i uwierzytelnianie
- Dodaj endpointy — konkretne wywołania API z szablonami ścieżek i mapowaniem odpowiedzi
- Utwórz regułę — regułę AI lub statyczną z akcją CALL_API
- Odwiedzający zadaje pytanie — reguła się uruchamia, wywołuje Twoje API, mapuje odpowiedź na zmienne sesji
- AI odpowiada z rzeczywistymi danymi — zmienne sesji są dostępne dla AI do wygenerowania trafnej odpowiedzi
Przykład: Dostępność pokoju hotelowego
Odwiedzający: "Czy pokój 205 jest dostępny w przyszłym tygodniu?"
Reguła AI dopasowuje: "Gdy odwiedzający pyta o dostępność pokoju"
Akcja CALL_API: GET https://api.hotel.com/rooms/205/availability
Odpowiedź zmapowana: room_available = true, price = "€120/noc"
AI odpowiada: "Pokój 205 jest dostępny w przyszłym tygodniu w cenie €120/noc. Czy chcesz go zarezerwować?"
Konfiguracja połączenia
Przejdź do Ustawienia → Połączenia API w dashboardzie.
1. Utwórz połączenie
Połączenie reprezentuje jedno zewnętrzne API. Potrzebujesz:
| Pole | Opis | Przykład |
|---|---|---|
| Nazwa | Etykieta tego połączenia | API Rezerwacji Hotelu |
| Bazowy URL | Główny URL API | https://api.hotel.com/v1 |
| Typ uwierzytelniania | Sposób uwierzytelniania | Bearer Token, OAuth2, itp. |
2. Typy uwierzytelniania
Brak
Dla publicznych API, które nie wymagają uwierzytelniania.
Klucz API
Wysyła statyczny klucz jako nagłówek lub parametr zapytania.
| Pole | Opis |
|---|---|
| Klucz | Wartość Twojego klucza API |
| Nazwa nagłówka | Nagłówek do użycia (domyślnie: X-Api-Key) |
Klucz jest wysyłany jako: X-Api-Key: twój_klucz
Bearer Token
Wysyła statyczny token w nagłówku Authorization.
Wysyłany jako: Authorization: Bearer twój_token
Basic Auth
Wysyła login i hasło zakodowane w base64.
Wysyłane jako: Authorization: Basic dXNlcjpwYXNz
OAuth 2.0 (Client Credentials)
Automatycznie pobiera token dostępu i cache'uje go do wygaśnięcia. Najlepszy dla nowoczesnych API jak Salesforce, Google lub niestandardowe serwery OAuth.
| Pole | Opis |
|---|---|
| URL tokena | Endpoint tokena OAuth (np. https://auth.example.com/oauth/token) |
| Client ID | Twój identyfikator klienta OAuth |
| Client Secret | Twój sekret klienta OAuth |
| Scope | Zakresy rozdzielone spacjami (np. read write) |
enuchat zarządza cyklem życia tokena automatycznie — pobiera przy pierwszym wywołaniu, cache'uje do wygaśnięcia, odświeża w razie potrzeby.
Bezpieczeństwo: Wszystkie dane uwierzytelniające są szyfrowane w spoczynku za pomocą libsodium. Nigdy nie są ujawniane w odpowiedziach API — w dashboardzie wyświetlane są tylko zamaskowane wartości.
Konfiguracja endpointów
Każde połączenie może mieć wiele endpointów — konkretnych wywołań API, które chcesz wykonać.
| Pole | Opis | Przykład |
|---|---|---|
| Nazwa | Etykieta tego endpointu | Sprawdź dostępność |
| Metoda | Metoda HTTP | GET, POST, PUT, DELETE |
| Ścieżka | Ścieżka URL (dołączana do bazowego URL). Użyj {'{'}zmienna} dla wartości dynamicznych | /rooms/{'{'}roomId}/availability |
| Parametry zapytania | Parametry URL jako pary klucz-wartość. Wartości obsługują {'{'}zmienna} | date={'{'}checkIn} |
| Szablon treści | Treść JSON dla POST/PUT. Obsługuje interpolację {'{'}zmienna} | {'{'}"guest": "{'{'}name}"} |
| Mapowanie odpowiedzi | Mapuj pola odpowiedzi JSON na zmienne sesji za pomocą notacji kropkowej | data.available → room_available |
| Opis | Kontekst dla AI (jakie dane zwraca ten endpoint) | Zwraca dostępność pokoju i cenę |
Interpolacja zmiennych
Użyj {'{'}nazwaZmiennej} w ścieżkach, parametrach zapytania i szablonach treści. Zmienne pochodzą z:
- Zmienne sesji — ustawione przez poprzednie reguły (akcja SET_VARIABLE)
- Parametry akcji — zakodowane na stałe w akcji reguły CALL_API
Mapowanie odpowiedzi
Mapuj pola odpowiedzi JSON na zmienne sesji za pomocą notacji kropkowej:
// API zwraca:
{'{'}
"data": {'{'}
"available": true,
"price": {'{'} "amount": 120, "currency": "EUR" }
}
}
// Mapowanie:
data.available → room_available // "true"
data.price.amount → room_price // "120"
data.price.currency → room_currency // "EUR"Zmapowane zmienne są przechowywane jako zmienne sesji w rozmowie i są dostępne dla AI do generowania odpowiedzi.
Używanie z regułami
Wywołania API są wyzwalane przez akcję CALL_API w regułach. Możesz je łączyć z innymi akcjami.
Przepis: Sprawdzanie statusu zamówienia
Połączenie: API Zarządzania Zamówieniami — https://api.shop.com/v2 — Bearer Token
Endpoint: GET /orders/{'{'}orderId} → mapuje data.status → order_status, data.eta → delivery_eta
Reguła (typ AI): "Gdy odwiedzający pyta o status zamówienia lub dostawę"
Akcje:
- CALL_API → Endpoint statusu zamówienia
- REPLY_AI → AI używa
order_statusidelivery_etado odpowiedzi
Rezultat: Odwiedzający: "Gdzie jest moje zamówienie #4521?" — AI: "Twoje zamówienie #4521 jest obecnie wysyłane i powinno dotrzeć do czwartku."
Przepis: Ceny w czasie rzeczywistym
Połączenie: API Cenowe — https://pricing.example.com — Klucz API
Endpoint: GET /products/{'{'}productId}/price → mapuje price → current_price, currency → price_currency
Reguła (statyczna): MESSAGE_MATCHES_REGEX: /\b(cena|koszt|ile kosztuje)\b/i
Akcje:
- CALL_API → Endpoint cenowy
- REPLY_TEXT → "Aktualna cena to {'{'}current_price} {'{'}price_currency}."
Testowanie
Zawsze testuj połączenia i endpointy przed użyciem ich w regułach:
- Test połączenia — weryfikuje, czy uwierzytelnianie działa (dla OAuth2: pobiera token)
- Test endpointu — wykonuje rzeczywiste wywołanie API z przykładowymi zmiennymi i pokazuje odpowiedź
- Test reguły (dry-run) — na stronie Reguły sprawdź, czy reguła dopasowałaby się i jakie akcje by wykonała
Wskazówka: Zacznij od testu połączenia, potem każdego endpointu, a na końcu kompletnej reguły. W ten sposób możesz izolować problemy na każdym poziomie.
Bezpieczeństwo
- Szyfrowanie w spoczynku — wszystkie dane uwierzytelniające są szyfrowane za pomocą libsodium przed zapisem
- Nigdy nie ujawniane — odpowiedzi API nigdy nie zawierają odszyfrowanych danych uwierzytelniających, tylko zamaskowane wartości
- Ochrona SSRF — enuchat blokuje wywołania do localhost, prywatnych adresów IP i wewnętrznych nazw hostów
- Timeout — zewnętrzne wywołania API mają limit 5 sekund, aby zapobiec zawieszeniu
- Cache'owanie tokenów OAuth2 — tokeny dostępu są bezpiecznie cache'owane i automatycznie odświeżane
- Izolacja tenantów — połączenia są ograniczone do Twojego tenanta, niedostępne dla innych
Gotowy do podłączenia swoich API?
Zacznij integrować swoje systemy z enuchat już dziś.
Zacznij za darmo