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

  1. Skonfiguruj połączenie — bazowy URL Twojego API i uwierzytelnianie
  2. Dodaj endpointy — konkretne wywołania API z szablonami ścieżek i mapowaniem odpowiedzi
  3. Utwórz regułę — regułę AI lub statyczną z akcją CALL_API
  4. Odwiedzający zadaje pytanie — reguła się uruchamia, wywołuje Twoje API, mapuje odpowiedź na zmienne sesji
  5. 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:

PoleOpisPrzykład
NazwaEtykieta tego połączeniaAPI Rezerwacji Hotelu
Bazowy URLGłówny URL APIhttps://api.hotel.com/v1
Typ uwierzytelnianiaSposób uwierzytelnianiaBearer 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.

PoleOpis
KluczWartość Twojego klucza API
Nazwa nagłówkaNagłó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.

PoleOpis
URL tokenaEndpoint tokena OAuth (np. https://auth.example.com/oauth/token)
Client IDTwój identyfikator klienta OAuth
Client SecretTwój sekret klienta OAuth
ScopeZakresy 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ć.

PoleOpisPrzykład
NazwaEtykieta tego endpointuSprawdź dostępność
MetodaMetoda HTTPGET, POST, PUT, DELETE
ŚcieżkaŚcieżka URL (dołączana do bazowego URL). Użyj {'{'}zmienna} dla wartości dynamicznych/rooms/{'{'}roomId}/availability
Parametry zapytaniaParametry URL jako pary klucz-wartość. Wartości obsługują {'{'}zmienna}date={'{'}checkIn}
Szablon treściTreść JSON dla POST/PUT. Obsługuje interpolację {'{'}zmienna}{'{'}"guest": "{'{'}name}"}
Mapowanie odpowiedziMapuj pola odpowiedzi JSON na zmienne sesji za pomocą notacji kropkowejdata.available → room_available
OpisKontekst 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.statusorder_status, data.etadelivery_eta

Reguła (typ AI): "Gdy odwiedzający pyta o status zamówienia lub dostawę"

Akcje:

  1. CALL_API → Endpoint statusu zamówienia
  2. REPLY_AI → AI używa order_status i delivery_eta do 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 pricecurrent_price, currencyprice_currency

Reguła (statyczna): MESSAGE_MATCHES_REGEX: /\b(cena|koszt|ile kosztuje)\b/i

Akcje:

  1. CALL_API → Endpoint cenowy
  2. 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