Dokumentace
Vše, co potřebujete k nastavení a používání Odpovia.
Webhook pro poptávky: CRM, Make, Zapier a n8n
Pošlete poptávku z chatu do svého CRM, tabulky nebo automatizace přes Make, Zapier či n8n. Propojení přes webhook je dostupné od plánu Plus; technické nastavení může udělat správce vašeho systému.
Co webhook dělá
Když bot v rozhovoru sebere kontakt (nástroj Sběr leadů), Odpovio pošle na vaši adresu požadavek
POSTs JSON tělem a událostílead.created. Vy ho zpracujete v CRM, v automatizačním nástroji (Make, Zapier, n8n) nebo ve vlastní aplikaci. Kontakty z formuláře před chatem webhook nespouštějí.Dostupné od plánu Plus. K jednomu účtu lze nastavit jeden webhook.
Připravte cílovou adresu
- Make, Zapier, n8n – vytvořte scénář s webhookovým spouštěčem („Custom webhook“, „Catch Hook“, „Webhook node“) a zkopírujte vygenerovanou adresu.
- CRM – použijte adresu příchozího webhooku podle dokumentace vašeho CRM, nebo mezistupeň v Make/Zapier, když CRM přijímá data v jiném formátu.
- Vlastní systém – připravte endpoint, který přijme POST s JSON a vrátí stav 2xx do 5 sekund.
Adresa musí být HTTPS na veřejné doméně; interní nebo lokální adresy aplikace odmítne. Přesměrování se nesleduje – zadejte konečnou adresu.
Zadejte webhook v Odpoviu
Otevřít Integrace v aplikaci- V Chatbot → Integrace otevřete kartu Webhook pro leady a klikněte na ozubené kolo.
- V dialogu Nastavit webhook pro leady vyplňte Název cíle (např. „Make – CRM“) a URL endpointu, nechte zapnuté Aktivní a uložte.
- Aplikace zobrazí tajný klíč (
whsec_…) s poznámkou „Tajný klíč uvidíte naposledy.“ Zkopírujte si ho hned – slouží k ověření podpisu a už ho nezobrazíme. Nový klíč získáte jen smazáním webhooku a vytvořením nového.
Seznamte se se strukturou dat
Tělo požadavku je JSON s
Content-Type: application/json. Polename,emailaphonemohou býtnull(e-mail nebo telefon je vždy alespoň jeden),messageje shrnutí požadavku,sourceUrladresa stránky, kde návštěvník chat použil. Přepis konverzace se neposílá; najdete ho v aplikaci podleconversationId.{ "schemaVersion": "1", "event": "lead.created", "data": { "leadId": "clx3k9v2a0001s8f1h2j4k5l6", "conversationId": "clx3k8z1b0000s8f1a9b8c7d6", "name": "Jana Nováková", "email": "jana.novakova@example.cz", "phone": null, "message": "Chtěla bych cenovou nabídku na 20 licencí.", "sourceUrl": "https://www.example.cz/cenik", "createdAt": "2026-09-22T09:14:03.512Z" } }Ověřte podpis požadavku
Každý požadavek nese hlavičky
webhook-id,webhook-timestamp(unixový čas v sekundách) awebhook-signatureve tvaruv1,<hex>podle standardu Standard Webhooks. Podpis je HMAC-SHA256 z řetězce{webhook-id}.{webhook-timestamp}.{tělo}s vaším tajným klíčem, zapsaný hexadecimálně. Ověřujte nad původním (raw) tělem, ne nad znovu serializovaným JSON. V Make a Zapier ověření vynechejte a spolehněte se na to, že adresu webhooku znáte jen vy; ve vlastním systému ho doporučujeme:// Node.js const { createHmac, timingSafeEqual } = require('node:crypto'); function verify(rawBody, headers, secret, toleranceSec = 300) { const id = headers['webhook-id'], ts = headers['webhook-timestamp']; const sig = (headers['webhook-signature'] || '').replace(/^v1,/, ''); if (Math.abs(Date.now() / 1000 - Number(ts)) > toleranceSec) return false; const expected = createHmac('sha256', secret).update(`${id}.${ts}.${rawBody}`).digest('hex'); return sig.length === expected.length && timingSafeEqual(Buffer.from(sig, 'hex'), Buffer.from(expected, 'hex')); }Počítejte s opakováním
Za úspěch se považuje odpověď 2xx do 5 sekund. Při odpovědi 408, 429, 5xx nebo při síťové chybě Odpovio doručení zkouší znovu s rostoucím odstupem (první opakování po 30 minutách), celkem 7 pokusů během zhruba 31 hodin. Jiné chyby 4xx a přesměrování 3xx se neopakují. Pokud všechny pokusy selžou, poptávka zůstane v aplikaci (detail konverzace, blok Lead z chatu) a v e-mailu; ruční znovuodeslání konkrétní poptávky aplikace nenabízí. Pod kartou webhooku vidíte stav posledního odeslání (čas, HTTP kód). Váš endpoint by měl počítat s tím, že stejný
leadIdmůže přijít vícekrát.Otestujte doručení
Po uložení se v kartě objeví tlačítko Otestovat doručení. Odpovio pošle testovací poptávku (jméno „Test Operator“, e-mail
test@odpovio.cz, příznakisTestDelivery) a zobrazí výsledek: „✓ Odesláno · HTTP 200 · Čas doručení“ nebo „✗ HTTP {kód} · {zpráva}“. Ve scénáři v Make/Zapier/n8n tak rovnou uvidíte strukturu dat a namapujete pole. Pak proveďte skutečný test ve widgetu na webu.Hotovo!
Poptávky tečou z chatu do vašeho systému automaticky a s ověřitelným podpisem. Kdyby něco nedorazilo, projděte návod Poptávky nechodí.
Přejít do aplikace
