Aktualizátor dokončení

Toto je jeden z klíčových scénářů celé automatizace. Obecným popisem se stará o zjišťování provedených událostí v Trello a dle nich filtruje, zda se jedná o dokončení celé žádosti o pomoc.

Náhled celého scénáře

Použité moduly a napojení

  • Trello
    • Watch Activities (okamžitý, spustí se hned při provedení akce v Trellu a do Integromatu pošle všechny údaje o provedené akci)
  • Google Sheets
    • Search Rows (prohledává všechny řádky tabulky a vrátí data a souřadnice vždy jen jednoho řádku odpovídající nastavenému filtru)
    • Update a Cell (Aktualizuje data buňky dle obdržených souřadnic a vstupních dat)
  • Android
    • Poslat notifikaci (Posílá Push notifikaci do zvoleného telefonu, který má aplikaci Integromat)

Popis průchodu scénáře

Scénář se spouští při jakékoliv provedené změně v Trello - např. při posunutí karty do jiného sloupce, změně názvu atp. prakticky okamžitě po provedení. V tuto chvíli odchází z Trella datová struktura všech změn. Z této datové struktury nás reálně zajímají jen určitá data:

Zpracovávaná data
{{1.action.data.listAfter.name}} //Proměnná obsahující název sloupce, do kterého byla karta přesunuta
{{1.action.data.card.name}} //Proměnná obsahující název karty u které byla provedena akce

Pro Tip

Integromat nabízí ve svém rozhraní jen strukturu z posledních načtených dat a z nich nabízí možnost výběru proměnných. Zkusím to trochu přeložit - poslední data, která Integromat dostal z dané služby bude brát jako referenční, dokud člověk nezmění nějak zásadně nastavení modulu. Což občas může být problém obzvláště u takto otevřených modulů, které dávají občas různou strukturu dat v závislosti na tom, co za akci proběhlo. V tomto případě se může stát, že struktura, kterou dostal Integromat ve chvíli, kdy se scénářem pracuji, není úplně relevantní k provedené akci v Trellu, kterou chci sledovat. Proto tu nahoře vypisuji jen proměnné, které stačí zkopírovat. I když bude Integromat ukazovat proměnnou jako bílou s ohraničením, tak je platná - jen ji Integromat v tuto chvíli nezná.

Tím, že tento modul hlídá všechny změny provedené v Trellu, je potřeba vyfiltrovat jen ty relevantní vůči tomuto scénáři. To zajišťuje router a filtry za ním.


Router v této konfiguraci funguje částečně jako takový programátorský switch(); který projde všechny case(); a zpracuje je, pokud bude podmínka sedět s očekávanými vstupy. Zde jsou jen dva takové případy - pokud je karta přesunuta do jednoho ze sloupců označující dokončený stav, či nikoliv. Možná tu vyvstává otázka, proč vlastně zde není jen filtr, který se ptá zda byla škola dokončena. Dobrá otázka (wink)  - je to z toho důvodu, že se žádost o pomoc nemusí vždy posunout dopředu - tedy k dokončení - ale také i vzad, tedy pokud se například chybně označí žádost jako splněná, nebo když škola bude znovu potřebovat pomoc. V tuto chvíli mě zajímá, do jakého sloupce se karta přesunula a nesleduji jen dokončení. Jelikož je sloupců více, které stav dokončení značí, je tu i zároveň větev která kontroluje, zda se neposunula karta do nedokončeného stavu a přepíše stav.




Filtr "Není dokončeno" se skládá z různých OR (nebo, logický součet) výrazů, kde porovnávám proměnnou s názvem sloupce do kterého se karta přesunula s názvy sloupců, které značí stav, že žádost není dokončena. Pokud je nalezena shoda alespoň s jedním názvem, tak pokračuji větví která má za úkol nastavit stav na Nedokončeno ("Ne").

Filtr "Je dokončeno" se skládá z různých OR (nebo, logický součet) výrazů, kde porovnávám proměnnou s názvem sloupce do kterého se karta přesunula s názvy sloupců které značí stav, že žádost je dokončena. Pokud je nalezena shoda alespoň s jedním názvem, tak pokračuji větví, která má za úkol nastavit stav na Dokončeno ("Ano") a připravit k rozesílce feedback formulářů.

Ve chvíli, kdy vím, do jakého stavu mám žádost/kartu v tabulce dát, tak pokračuji korespondující větví. V obou případech jsou kromě konce tyto větve velmi podobné. 

Vyfiltruji si podle jména karty co byla upravena shodný řádek v Google Tabulce a získám data ze řádku včetně čísla toho řádku. Všimněte si důležitého nastavení na obrázku vlevo, kdy limituji maximální počet vrácených záznamů na jeden. Tímto se vyvarujeme problému, kdy se může stát, že v tabulce vzniknou možné duplicity názvů škol (viz podmínka ve filtru "Obsahuje"). Pokud duplicita vznikne, tak upravíme vždy ten úplně první záznam, kdy ten druhý duplikovaný zůstane stále nezpracovaný a při manuální kontrole tabulky tak bude viditelně neaktualizovaný, což zpravidla znamená, že někde před touto kartou bude duplikát.


V případě, že bude nalezen shodný řádek, tak se poté postupuje ve větvi, kdy se do daného řádku v daném sloupci upraví hodnota dle svého stromu - tedy přidá se do buňky Ano nebo Ne. Pokud se ovšem stane, že řádek nebude nalezen, tak scénář vygeneruje chybové hlášení v Integromatu a odešle Jiří Bartušek push notifikaci do telefonu. Toto hlášení zpravidla znamená, že někdo v Trellu vytvořil kartu manuálně, nebo přejmenoval kartu v Trellu a v tabulce nebyl název nalezen.

Pokud byla škola označena jako Dokončená, nastaví se i příznak do tabulky k danému řádku, že se může odeslat email s feedback formulářem. Tento formulář posílá jiná integrace přes SendGrid - a to každý pracovní den ve 13:00.


Nejčastější chyby

 Karta se po aktualizaci v Trello neaktualizovala v tabulce

V tomto případě jsou na místě otázky, zda tato karta není již v Trellu vytvořena. V takovém případě stačí jen v Trellu vyhledat název školy, která se neaktualizuje a pokud v Trellu bude více jak jedna, tak je to způsobené zpravidla tím, že škola opět odeslala další formulář.

 Oprava

Vzít v Trellu tuto duplikovanou kartu a archivovat ji. Zároveň je dobré tuto archivovanou kartu zmínit v komentáři původní karty, jen aby to nikde nezapadlo - lidi může možná i zajímat, proč se karta archivovala... Poté už jen stačí skrýt v Google Tabulce celý řádek s duplikovanou školou a škola tímto bude vyřazena z analytiky a automatizace.