Základy práce s webhooks

Chtěli jste někdy propojit dvě webové aplikace mezi sebou? Webhooks jsou jeden z nástrojů pro komunikaci mezi aplikacemi. Jejich hlavní výhodou je práce v reálném čase, protože se spustí ve chvíli, kdy sledovaná událost nastane.

Představte si, že provozujete e-shop, ale databázi zákazníků (CRM) máte uloženou v jiném systému. Jak zařídit, aby se noví zákazníci automaticky propisovali do databáze kontaktů po vytvoření objednávky? Naprogramovat napojení přímo do databáze může být časově náročné a drahé. Pokud však máte k dispozici webhooks, řešení vás bude stát pravděpodobně pár kliků. Jak by vypadal postup takového propojení?

  • V e-shopu vytvoříte webhook na událost vytvoření objednávky.
  • Pokud nastane událost aplikace pošle HTTP požadavek na automatizační aplikaci (např. Integromat nebo Zapier), která požadavek zpracuje, připraví data ve formátu, který umí zpracovat cílové CRM.
  • Automatizační aplikace pošle HTTP požadavek na API vašeho CRM, které požadavek zpracuje a vytvoří nový kontakt.

V rámci integrací služeb se standardně používají API, tedy aplikační rozhraní, a možná si říkáte, proč se zabývat webhooks, když stejnou práci odvedou i aplikační rozhraní. Pojďme si je srovnat.

Jak se webhooks liší od API?

Obecně jsou dva způsoby, jak přenášet data mezi aplikacemi. Buď je v pravidelných intervalech stahujete (tzv. polling) nebo sledujete, zda nastane událost a data v tu chvíli pošlete (tzv. push).

Zatímco API využívá první princip a na nové záznamy se musíte neustále dokola ptát, webhook se spustí v okamžiku vzniku záznamu, a proto je pro tuto situaci mnohem úspornější.

Neznamená to, že by webhooks byly oproti API lepší způsob, jak přenášet data mezi aplikacemi, jen se hodí na jiné případy. Typicky to jsou:

  • Zasílání notifikací a menších zpráv
  • Synchronizace dat s aplikacemi třetích stran
  • Spouštění automatizovaných procesů

Naproti tomu, API je zase vhodnější pro zpracování dat, vyhledávání nebo získání statistických údajů. Jsou to momenty, kdy nepotřebuji reagovat na konkrétní událost, ale naopak se na informace doptávám.

Anatomie webhooku

Základem každého webhooku je URL adresa, na kterou aplikace zasílá data. Adresa je jako telefonní číslo, na které se dovoláte a zanecháte zprávu. Akorát obsah zprávy není běžný text, ale speciální formát (např. JSON).

Formát obsahu zprávy záleží na cílové aplikaci. Nejčastěji se setkáte s HTTP požadavkem typu POST a obsahem v JSON. Můžete narazit i na aplikace, které přijímají XML nebo data zakódovaná přímo v URL adrese.

Automatizační aplikace umí obvykle přijímat více formátů, a proto se flexibilně přizpůsobí konkrétní situaci.

Integrace jako nástroj pro nové funkce

Prostředí webových aplikací se rychle vyvíjí. Zatímco dříve bylo nutné novou funkcionalitu programovat na míru, dnes lze díky API a webhooks propojit několik aplikací do jednoho celku, který přináší kompletně nové možnosti.

Limitem je jen vaše představivost, proto má smysl si tyto technologie pořádně osahat. Na konci dne totiž vyhraje ten, kdo výsledku dosáhne rychleji, efektivněji a s menšími náklady.

Sdílejte na sítích