Přeskočit na obsah

Webhooky

Webhook je nejjednodušší forma napojení: zpráva HTTP na adresu, kterou určíš. Slack, Discord a Microsoft Teams takové zprávy přijímají rovnou jako příspěvek do kanálu; vlastní systémy si s nimi mohou počít, co chtějí.

Typická nasazení: adresa podpory hlásí nové dotazy do týmového kanálu. Potvrzení objednávky nastartuje systém skladového hospodářství. Serverový poplach zákazníka se objeví v Discordu.

  1. Otevři Nastavení → Integrace → Webhooky a zapni Povolit webhooky.
  2. Zvol Přidat endpoint a zadej Název a Adresa URL.
  3. V poli Předvolba obsahu zvol Slack, Discord, Microsoft Teams nebo Generic JSON. Předvolba vyplní Šablona obsahu (JSON) vhodnou kostrou, kterou můžeš libovolně upravit.
  4. Test odešle zkušební zprávu s ukázkovými daty. U Slacku a spol. ji uvidíš okamžitě v kanálu.

Adresu URL dostaneš u příslušné služby:

  • Slack: na api.slack.com/apps vytvoř aplikaci s Incoming Webhooks; vzniklá adresa URL je ten endpoint.
  • Discord: nastavení kanálu → Integrace → Webhooky.
  • Teams: v kanálu přes aplikaci Workflows se šablonou, která po přijetí požadavku webhooku publikuje do kanálu.
  • Vlastní systémy: libovolná adresa, která přijímá JSON přes HTTP POST nebo PUT.

Více endpointů je možných a každý lze vypnout zvlášť: kanál podpory a vlastní skript mohou existovat vedle sebe.

Odesílá se výhradně přes automatizaci: akcí Odeslat webhook v pravidle, s endpointem podle tvojí volby jako cílem.

Co přesně se odešle, určuje šablona obsahu endpointu. Vkládáš do ní proměnné ve dvojitých složených závorkách, které se při odeslání naplní daty spouštěcího e-mailu: {{subject}}, {{from}}, {{from_name}}, {{to}}, {{cc}}, {{date}}, {{preview}} (začátek textu), {{tags}}, {{mailbox}}, {{account_id}} a {{rule_name}}. Přehled proměnných pod šablonou vysvětluje každou z nich. Hlášení do Slacku pro kanál podpory vypadá třeba takto:

{ "text": "Nový dotaz od {{from_name}}: {{subject}}" }
  • Podpis: když vyplníš HMAC tajný klíč (volitelné), obsahuje každý požadavek hlavičku X-YouniqMail-Signature: sha256=… s podpisem HMAC-SHA256 obsahu. Tvůj server jím ověří, že zpráva pochází od tebe.
  • Opakování: při chybách serveru (5xx) a potížích se sítí to YouniqMail zkusí znovu až třikrát, s pauzami 1, 2 a 4 sekundy. Odmítnutí (4xx) se neopakují. Časový limit nastavíš pro každý endpoint, nejvýše 30 sekund.
  • Metoda: POST je výchozí, PUT jen tehdy, když ho tvůj endpoint vyžaduje. Přesměrování se nesledují.
  • Zpráva jde na endpoint, který zadáš. Prověř adresu URL pečlivě, protože každý, kdo ji zná, může do kanálu psát. Zacházej s adresami URL webhooků jako s hesly.
  • Obsah určuješ ty: přenáší se to, co stojí v šabloně. Kdo použije jen předmět a odesílatele, také jen ty předá dál.
  • Funkce Pro: webhooky patří do rozsahu Pro.