Poptávka z WordPress CF7 do MS Flow a dál

V tomto návodu si ukážeme jednoduché použití MS Flow. Nebudeme se v kontaktních formulářích nespoléhat jen na e-mail, ale data z nich budeme posílat do služby Flow pomocí tzv. webhooku, díky kterému je jednoduše předáme do dalších systémů. Ohromná výhoda tohoto postupu je v tom, že pokud vyměníme/přidáme systém, kde poptávky evidujeme, můžeme ho velmi jednoduše napojit bez toho, abychom zasahovali do kódu webu a vytvářeli novou integraci. Postup si ukážeme na redakčním systému WordPress s oblíbeným pluginem Contact Form 7. Uvidíte, že je to mnohem jednodušší, než se ze zadání zdá.
Do Contact Form 7 není složité napsat vlastní integraci s libovolným API, pokud však nejsme příliš nároční, můžeme využít plugin Contact Form 7 TO API.
Příkladem budiž jednoduchý poptávkový formulář, jehož kód by mohl vypadat zhruba následovně:
<label> Vaše jméno (vyžadováno)
[text* jmeno] </label>
<label> Váš e-mail (vyžadováno)
[email* email] </label>
<label> Poptávka
[textarea text] </label>
[submit "Odeslat"]
Máme zde 3 formulářová pole - jmeno, email a text. S MS Flow se komunikuje ve formátu JSON a do tohoto formátu musíme naše pole doplnit. Není to nic složitého, využijeme zástupné řetězce pro jednotlivá pole stejně, jako když vyváříme e-mail. Vytvoříme seznam polí oddělený čárkami, vložený mezí složené závorky a všechna data uzavřeme mezi uvozovky. Výsledek bude vypadat následovně:
{
"jmeno":"[jmeno]",
"email":"[email]",
"text":"[text]"
}
S touto přípravou si můžeme otevřít MS Flow.
V sekci "Moje toky" si vybereme, že chceme vytvořit tok z prázdné šablony.

Nyní musíme nají příchozí webhook (Prohledejte stovky konektorů...) - dáme hledat "HTTP" a vybereme "Požadavek - Při přijetí požadavku HTTP".

Zvolíme "K vygenerování schématu použijte ukázkovou datovou část." a do dialogu vložíme námi vygenerovaný JSON:

Systém nám z naší vzorové zprávy vytvoří schéma ve formátu, který požaduje. Není potřeba do ní zasahovat.

Tím máme zpracovanou vstupní část. Nyní zvolíme akci, která se má stát po přijetí dat. Pro první test zkusíme odeslat poptávku do kanálu v MS Teams - nalezneme akci Teams - Post Message. Systém nás přihlásí do Teams a nechá nás zvolit tým, do kterého zprávu chceme poslat a kanál. Nakonec vytvoříme zprávu, která obsahuje všechna pole, které jsme přijali.

Po uložení nám bude vygenerována URL, na kterou z CF7 pošleme data. Celý Flow vypadá ve výsledku takto:

Nyní je třeba nastavit formulář, aby data poslal na naši URL:

Tím máme hotovo a můžeme zkusit poslat zprávu.

Do po odeslání nám přišel jak e-mail, tak se nám v Teams objevila nová zpráva.


Flow nám tedy funguje a pokud se rozhodneme změnit zpracování zpráv není to nejmenší problém a zvládneme to bez úprav webu samotného.
Několik příkladů:
Rozhodneme se, že chceme navíc poptávky evidovat v systému Redmine:

Nahradíme Teams Slackem:

Poptávku budeme evidovat v seznamu v SharePointu a kontakt pošleme do online CRM Insightly:

Možností je ohromné množství - seznam služeb, které můžeme využít je opravdu široký:

V ukázce jsme použili plugin pro poslání dat do MS Flow, nicméně i bez pluginu by integrace nebyla nijak složitá. V PHP můžeme využít funkcí cURL nebo file_get_contents (ukázka), nebo použít knihovnu Guzzle, pro Python nám poslouží oblíbená knihovna Requests.