Tartalomjegyzék
Gyorsindítás Beágyazás API Referencia MCP-szerver Autentikáció Webhook-ok Widget testreszabás Süti-hozzájárulás Rate limit-ek Hibakódok Gyakori kérdésekGyorsindítás
3 lépésben élesítheted az első chatbotodat:
Regisztrálj
Hozz létre egy fiókot az app.chatautomata.hu oldalon. Az ingyenes csomag is elég a kezdéshez.
Hozz létre chatbotot
A dashboardon kattints az „Új chatbot" gombra. Adj nevet, válassz AI modellt, és töltsd fel a tudásbázisodat (FAQ-k, PDF-ek, vagy webcímek).
Ágyazd be a weboldaladra
Másold be az alábbi kódot a weboldalad </body> tagje elé — és kész!
Beágyazás
Egyetlen script-tag hozzáadásával megjelenik a chatbot-widget az oldaladon:
<script src="https://embed.chatautomata.hu/w.js?id=CHATBOT_ID" async></script>
A CHATBOT_ID-t a dashboard chatbot-szerkesztő oldalán találod.
Speciális beállítások
Kizárt oldalak: A chatbot szerkesztőben megadhatsz URL-mintákat, ahol a widget NEM jelenik meg.
Automatikus megnyitás: Beállítható külön desktopra és mobilra, hogy a widget automatikusan nyíljon-e meg betöltés után.
Proaktív megszólítás: Az AI néhány másodperc után automatikusan üdvözli a látogatót, ha még nem írt üzenetet.
API Referencia
Alap URL: https://api.chatautomata.hu — minden végpont JSON-t fogad és ad vissza, kivéve az SSE stream-eket.
Chat
| Módszer | Végpont | Leírás | Auth |
|---|---|---|---|
| GET | /v1/chat/sse | SSE stream — EventSource-kompatibilis | Opcionális |
| POST | /v1/chat | Üzenet küldése (SSE stream válasz) | Opcionális |
| GET | /v1/chat/messages | Session üzenetek lekérése | Nem |
Chatbot kezelés
| Módszer | Végpont | Leírás | Auth |
|---|---|---|---|
| GET | /v1/chatbots | Chatbotok listázása | Bearer JWT |
| POST | /v1/chatbots | Új chatbot létrehozása | Bearer JWT |
| PATCH | /v1/chatbots/:id | Chatbot szerkesztése (60+ mező) | Bearer JWT |
| DELETE | /v1/chatbots/:id | Chatbot törlése | Bearer JWT |
FAQ / Tudásbázis
| Módszer | Végpont | Leírás | Auth |
|---|---|---|---|
| GET | /v1/faqs?chatbotId=xxx | FAQ-k lekérése | Bearer JWT |
| POST | /v1/faqs | FAQ létrehozása (auto-embedding) | Bearer JWT |
| PATCH | /v1/faqs/:id | FAQ szerkesztése | Bearer JWT |
| DELETE | /v1/faqs/:id | FAQ törlése | Bearer JWT |
| POST | /v1/faqs/import | Tömeges import (JSON/CSV, max 500) | Bearer JWT |
Beszélgetések és Lead-ek
| Módszer | Végpont | Leírás | Auth |
|---|---|---|---|
| GET | /v1/conversations | Beszélgetések listázása | Bearer JWT |
| GET | /v1/conversations/:id | Beszélgetés részletei + üzenetek | Bearer JWT |
| GET | /v1/leads | Lead-ek listázása | Bearer JWT |
| PATCH | /v1/leads/:id | Lead státusz frissítése | Bearer JWT |
Webhook-ok
| Módszer | Végpont | Leírás | Auth |
|---|---|---|---|
| GET | /v1/webhooks | Regisztrált webhook-ok | Bearer JWT |
| POST | /v1/webhooks | Webhook regisztrálása | Bearer JWT |
| POST | /v1/webhooks/:id/test | Tesztpayload küldése | Bearer JWT |
Rendszer
| Módszer | Végpont | Leírás | Auth |
|---|---|---|---|
| GET | /health | Konténer healthcheck | Nem |
| GET | /v1/status | Részletes rendszer-státusz (JSON) | Nem |
Publikus REST API — /api/v1 (API-kulccsal)
A szerver-szerver integrációhoz külön, stabil felület. Auth: Authorization: Bearer ca_live_… vagy X-API-Key (lásd Autentikáció). A :write végpontok api:write scope-ot igényelnek, a többi api:read-et.
| Módszer | Végpont | Leírás | Scope |
|---|---|---|---|
| GET | /api/v1/me | Kulcs ellenőrzése (tenant + scope-ok) | api:read |
| GET | /api/v1/chatbots | Chatbotok listája | api:read |
| GET | /api/v1/chatbots/:id | Chatbot részletei | api:read |
| GET | /api/v1/faqs?chatbot_id=… | FAQ-k listája | api:read |
| GET | /api/v1/conversations | Beszélgetések listája | api:read |
| GET | /api/v1/conversations/:id | Beszélgetés + üzenetek | api:read |
| GET | /api/v1/leads | Lead-ek listája | api:read |
| GET | /api/v1/models | AI modell-katalógus | api:read |
| POST | /api/v1/knowledge/search | Hibrid RAG keresés a tudásbázisban | api:read |
| POST | /api/v1/faqs | FAQ létrehozás/frissítés | api:write |
| POST | /api/v1/knowledge | Szöveg a tudásbázisba (chunk + embedding) | api:write |
| PATCH | /api/v1/leads/:id | Lead-státusz frissítése | api:write |
Gépi leírás (OpenAPI 3.1) — importálható Postman/Insomnia-ba vagy SDK-generátorba: GET /api/v1/openapi.json
Példa — chatbotok lekérése (cURL)
curl https://api.chatautomata.hu/api/v1/chatbots \
-H "Authorization: Bearer $CA_API_KEY"
Példa — tudásbázis-keresés (JavaScript)
const res = await fetch("https://api.chatautomata.hu/api/v1/knowledge/search", {
method: "POST",
headers: { "X-API-Key": process.env.CA_API_KEY, "content-type": "application/json" },
body: JSON.stringify({ chatbot_id: "CHATBOT_UUID", query: "szállítási idő", limit: 5 }),
});
const { results } = await res.json();
Példa — tudásbázis bővítése (cURL, api:write)
curl -X POST https://api.chatautomata.hu/api/v1/knowledge \
-H "Authorization: Bearer $CA_API_KEY" -H "content-type: application/json" \
-d '{"chatbot_id":"CHATBOT_UUID","content":"A nyitvatartásunk H-P 9-17 óra között van...","title":"Nyitvatartás"}'
MCP (Model Context Protocol) — AI-asszisztensekhez
A platform natív MCP-szervert ad, amivel a Claude (és más MCP-kompatibilis kliensek) közvetlenül elérik a fiókod adatait és eszközeit. Csatlakozás: a kliensben add hozzá a https://api.chatautomata.hu/mcp URL-t — OAuth 2.1 + PKCE (Dynamic Client Registration) hitelesítéssel, a böngészőben engedélyezve. Eszközök közt: chatbot-, FAQ-, beszélgetés-, lead-kezelés, tudásbázis-keresés és -bővítés (mcp:read / mcp:write scope).
Autentikáció
A legtöbb API végpont Bearer JWT tokent vár az Authorization headerben:
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
A tokent a POST /v1/auth/login végponttól kapod:
POST /v1/auth/login
Content-Type: application/json
{
"email": "pelda@ceg.hu",
"password": "jelszo123"
}
// Válasz:
{
"accessToken": "eyJhbG...",
"refreshToken": "eyJhbG...",
"user": { "id": "...", "email": "pelda@ceg.hu" }
}
Az access token 15 percig érvényes. A refresh token 7 napig — a POST /v1/auth/refresh végponttal megújítható.
Példa — hitelesített kérés (JavaScript)
const res = await fetch("https://api.chatautomata.hu/v1/chatbots", {
headers: { "Authorization": "Bearer " + accessToken }
});
const { chatbots } = await res.json();
Példa — ugyanaz cURL-lel
curl https://api.chatautomata.hu/v1/chatbots \
-H "Authorization: Bearer $TOKEN"
BYOK (Bring Your Own Key): A chatbot-konfiguráció saját AI kulcsokat is elfogad (OpenAI, Anthropic, Gemini, stb.). Ezek AES-256-GCM titkosítással tárolódnak a platformon.
REST API-kulcsok (szerver-szerver integrációhoz)
Programozott (gép-gép) hozzáláshoz API-kulcsot hozhatsz létre a Beállítások → Fiók → REST API-kulcsok alatt. A teljes kulcs (ca_live_…) csak egyszer, létrehozáskor jelenik meg — utána már nem visszafejthető. A kulcsot a /api/v1 felületen használod, kétféleképp:
Authorization: Bearer ca_live_xxxxxxxx...
# vagy
X-API-Key: ca_live_xxxxxxxx...
Scope-ok: api:read (lekérdezés) és api:write (módosítás). Opcionálisan IP-engedélylista is megadható kulcsonként. Visszavonás bármikor a dashboardon — a kulcs azonnal érvénytelen.
curl https://api.chatautomata.hu/api/v1/chatbots \
-H "Authorization: Bearer $CA_API_KEY"
Rate-limit: 120 kérés/perc/kulcs (X-RateLimit-* fejlécek). Ezen felül csomag-függő havi kvóta van (X-API-Quota-* fejlécek); túllépéskor 429 quota_exceeded. Az aktuális használat a GET /api/v1/me válaszában (usage).
Webhook-ok
A kimenő webhook-okat a dashboardon vagy a /v1/webhooks API-n regisztrálod. Minden kézbesítés egy HMAC-SHA256 aláírást és az alábbi fejléceket kapja:
POST https://a-te-url-ed/webhook
Content-Type: application/json
X-ChatAutomata-Signature: sha256=a1b2c3d4e5f6...
X-ChatAutomata-Event: lead.captured
X-ChatAutomata-Retry: 1
A törzs (body) JSON-formátuma:
{
"event": "lead.captured",
"timestamp": 1716652800000,
"data": { ... } // eseményfüggő adatok
}
Aláírás ellenőrzése
Számítsd ki a nyers kérés-törzsből a HMAC-SHA256(webhook_secret, raw_body) hex értéket, és hasonlítsd össze az X-ChatAutomata-Signature fejléc sha256= utáni részével (időállandó összehasonlítás ajánlott):
// Node.js (Express, express.raw a body-hoz)
import crypto from "node:crypto";
const sig = req.headers["x-chatautomata-signature"].split("=")[1];
const expected = crypto.createHmac("sha256", WEBHOOK_SECRET)
.update(req.body) // a NYERS body (Buffer/string)
.digest("hex");
const ok = crypto.timingSafeEqual(Buffer.from(sig), Buffer.from(expected));
Elérhető események
lead.captured— Lead rögzítve (chat, flow vagy pre-chat űrlap)message.received— Látogatói üzenet érkezettconversation.ended— Beszélgetés lezárult (kézi lezárás vagy inaktivitás)conversation.assigned— Beszélgetés operátorhoz rendelvebooking.created— Foglalás jött létre (AIBooking integráció)
Egy webhook feliratkozhat több eseményre, illetve a * minden eseményre. Kézbesítési hiba esetén 3× újrapróbálkozás (0/5/30 mp), a próbálkozások a dashboardon naplózva.
Widget testreszabás
A chatbot megjelenése 60+ beállítással finomhangolható a PATCH /v1/chatbots/:id végponton vagy a dashboard szerkesztőben:
Megjelenés
- 9 szín (márka, háttér, szöveg, buborék, fejléc, link, keret)
- Logó, fejléc padding, lebegő-buborék tooltip
- Pozíció (desktop/mobil külön), z-index, méret
- Témaváltó (auto/világos/sötét), betűméret-választó
Tartalom
- Indító kérdések, adatvédelmi szöveg (buborékban)
- Hangbemenet, proaktív megszólítás, ajánlások
- Másolás gomb, értékelés, hiba-jelentés
Értesítések
- Telegram (AES-titkosított token), email (Resend)
- 5 trigger: minden beszélgetés, negatív értékelés, kulcsszó, válaszhiány, hosszú beszélgetés
Süti-hozzájárulás (GDPR)
A widget privacy by default elven működik: a látogatói analitika-események (GA4, Meta Pixel, TikTok — ha bekötötted az integrációk közt) csak akkor futnak le, ha a látogató hozzájárult a marketing/analitika sütikhez a TE oldaladon.
Hozzájárulás átadása a widgetnek
A saját cookie-bannered (CMP) elfogadás-eseményében hívd meg:
// elfogadáskor:
window.CAWidget.setConsent("analytics");
// visszavonáskor:
window.CAWidget.setConsent("");
Vagy állítsd be a globális változót még a w.js betöltése előtt:
<script>window.ChatAutomataConsent = "analytics";</script>
<script src="https://embed.chatautomata.hu/w.js?id=BOT_ID" async></script>
Mi történik hozzájárulás nélkül?
- A chat teljes értékűen működik — a hozzájárulás csak a marketing-mérést érinti
- Nem küldünk eseményt GA4/Meta/TikTok felé (chat_started, message_sent, lead_captured, booking_created)
- A látogató IP-címét mindig maszkoltan tároljuk, hozzájárulástól függetlenül
A tenant-értesítések (email/Telegram a saját csapatodnak) nem hozzájárulás-függők — azok jogos érdeken alapulnak.
Rate limit-ek
Az API méltányos-használati korlátokkal véd a visszaélés ellen. A limit túllépésekor 429 Too Many Requests választ kapsz, Retry-After headerrel (másodperc).
| Végpont-csoport | Limit | Ablak |
|---|---|---|
Bejelentkezés (/v1/auth/login) | 10 kérés | 15 perc / IP+email |
Regisztráció (/v1/auth/register) | 8 kérés | 1 óra / IP |
Chat (/v1/chat) | csomag-függő üzenetkvóta | havi |
| Widget-események (typing, presence) | 240 kérés | 1 perc / IP |
Publikus REST API (/api/v1, API-kulcs) | 120 kérés / kulcs (+ 300/IP) | 1 perc |
| Publikus REST API — havi kvóta (csomag-függő) | Free 1k · Starter 10k · Pro 100k · Business 500k | havi |
| Egyéb hitelesített API | 120 kérés | 1 perc / token |
A pontos havi üzenetkvótát a csomagod határozza meg (Ingyenes: 100/hó). BYOK-kulccsal a saját provider-kvótád érvényes, az üzenetszám csak statisztika.
Hibakódok
Minden hiba egységes JSON-formátumban érkezik:
{
"error": "validation_error",
"message": "A jelszó legalább 8 karakter legyen."
}
| HTTP | error mező | Jelentés |
|---|---|---|
| 200 | — | Sikeres |
| 201 | — | Létrehozva |
| 400 | validation_error | Hibás/hiányzó mező a kérésben |
| 401 | unauthorized | Hiányzó vagy lejárt token |
| 403 | forbidden | Nincs jogosultság az erőforráshoz |
| 404 | not_found | Az erőforrás nem létezik |
| 409 | conflict | Ütközés (pl. már létező email) |
| 429 | rate_limited | Túl sok kérés — lásd Retry-After |
| 500 | server_error | Váratlan szerverhiba |
| 503 | not_configured | A funkció nincs beállítva (pl. Stripe) |
Tipp: a kliensed mindig a message mezőt jelenítse meg a felhasználónak (magyar, ember-olvasható), az error mezőt pedig programozott elágazáshoz használd.