N8N automatiseerimine & erinevate süsteemide / APIde integreerimine

Kaspar L. Palgi
CrewNew.ee
Published in
5 min readSep 7, 2022

N8N on low-code avatud lähtekoodiga (tasuta, ilus kood, igaüks võib endale sobivalt kohandada) visuaalne workflow automation (töövoogude automatsiooni) platform.

Piltdi allikas n8n.io

Ülal pildil näeme kastikesi, mis on node’d. Vasakult liigub see paremale ja kolm viimast sammu nagu näeme on sõnum Slack’i mingisse kanalisse või NoOp ehk ei järgne mingit operatsiooni, kui see paremalt kolmas rohelineIF node vastas mingile tingimusele. Tingimus võib olla misiganes. N8N eelis teiste sarnaste automatiseerimisplatformide ees on võimalus workflow’sse kirjutada puhast JavaScripti ning kasutada ka NodeJS (populaarseim JavaScript backend lahendus juba mitmed aastad).

N8N integreerub natively hetkel ca. 400 erineva API / äppiga ja neid tehakse kogu aeg juurde. RESTful ja GraphQL API ühendusega saab muidugi N8N’ga siduda ükskõik millise teenusega (APIga), et native integratsiooni pole tegelikult vajagi. Teeb lihtsalt veidi mugavamaks.

Kõige vasakpoolsem Webhook sõlm ehk node käivitab antud flow. Webhook (või callback või eesti keeles veebikonks) on URL, mis on kogu aeg valmis infot vastu võtma ning teine äpp/skript/teenus/misiganes saab sinna infot saata. Kui teed Webhook node’i, siis saad unikaalse URL’i, mille saab siis mõnda välisesse teenusesse sisestada. Kui seal äppis miski kindel asi juhtub, siis ta saadab sellele webhook’le mingi info. Webhook (kutsutakse ka callback) püüab info kinni ja flow ehk ülesannete jada hakkab pihta. Ülal näeme veel Rename Keys, mis muudab sissetulevate andmete nimesid enne, kui järgmised kaks Postgres ja Google Sheets sisse tulnud andmed salvestuvad vastavalt siis andmebaasi ja Google’i tabelisse.

Reaalelu kliendi automatsiooni näide ka

Kliendiks oli Rummu vangla muuseum ning hooaja väliselt oli neil vaja, et kui keegi on ostnud pileti Fienta piletiostu keskkonnast, siis ta saab ust kaks korda avada. Ühe korra sisse minnes ja ühe korra välja minnes. Kõik pakkusid selle töö mahuks nädal ja enam ning siin pildil on näha, kuidas ma tegin selle ühe tööpäevaga:

Klikka pildil, et näha suuremalt

Kogu ülesande lahendamiseks on tegelikult kaks flow’d. Esimene on lihtsam ja lihtsalt salvestab Fienta piletimüügikeskkonnast andmebaasi pileti ja kliendi info ning saadab kliendile emailiga kinnituse, kus on ka link millele klikates värav avaneb. Pildil olev flow…

  1. …käivitubki selle peale, et klient klikkas emailis olevat linki, mis viis selle flow vasakpoolseima redirectStart URL peale.
  2. Antud webhook andis endaga kaasa ka unikaalse token koodi, mida kohe järgmine Does the token exist? node kontrollib.
  3. a)Kui token eksisteerib, siis tehakse Query Ticket By ID andmebaasi, et järgmise Does it have remaining calls IF node’ga kontrollida kas piletil on veel järgi jäänus uste avamisi. b) Kui ei eksisteeri token’it siis showTokenMissing` kuvab kasutajale veateate.
  4. a) Kui antud piletiga polnud veel 2 kõnet tehtud, siis Set Call helistab Twilio API’t kasutades kindlalt numbrilt teisele kindlale telefoni numbrile, mis reaalselt avab värava. b) Kui 2 korda oli uks juba avatud, siis kuvatakse kasutajale veateade, kus informeeritakse, et saab vaid 2 korda avada ja need 2 korda on täis.
  5. Pärast värava avamist Mutation Ticket Call kirjutab andmebaasi, et see pilet avas just värava ning avamistele läheb +1 kord.

Tehakse andmebaasi Query Ticket Again uuesti päring, et saada kogu kliendi piletiajalugu ning seejärel Set Redirect Data suunab sõltuvalt kas pileteid järel või mitte erinevale veebilehele koos kliendi infoga, mida seal kuvatakse.

N8N vs sarnased automatiseerimise platformid

Võrdleme N8N vs Zapier kuna Zapier on suurim automatiseerimise turul. Zapier’i eelis N8N ees on peamiselt see, et tal on rohkem native integratsioone. Ta on vanem ja seega loogiline, et on jõutud rohkem teha aga seal ka Zapieri eelised piirduvad. N8N sai $12 millionit investeeringut 2021 nii, et areneb tohutu kiirusega ja nagu juba mainitud, siis saab N8N ühendada misiganes APIga. Peamised N8N eelised:

  • Kõige tähtsam 1: N8N on open-source (avatud lähtekoodiga) ja see annab palju eeliseid. Üks tähtsamaid on agiilsus — kui on midagi, mida suletud lähtekoodiga tarkvara teha ei saa, siis nii ongi. Avatud lähtekoodi puhul saab kõike teha. Vabadus kõike teha on aga üks suurimaid võite. Nagu mainitud juba, siis saab JavaScript ja NodeJS vabalt oma flow sisse kirjutada aga lisaks sellele saab ka N8N core koodibaasile ligi. Lisaks ligipääsule on vabavaraline kood alati hästi struktureeritud ning loodud eeldusega, et iga arendaja saaks seal mugavalt toimetada.
  • Zapier ei paku andmetest varukoopia tegemist. Ei saa kogu oma aastate jooksul loodud elu sealt eksportida, maksmist lõpetada ja kunagi teisele kontole importida. Loogiline ju — nad tahavd Sind kinni hoida kuupõhise maksva kliendina.
  • Bugivabam. Rohkem silmapaare jälgimas iga uuendust ja lisa. Bugid parandatakse kiiresti.
  • Zapier on nn. general-purpose tool, seega pole suurt kontrolli, kui tihti su flow’d jooksevad. See on loogiline sest Zapier hostib oma serveris miljoneid kasutajaid ning ta peab balanseerima resursse nende vahel. N8N saad panna enda serverisse ning kasutada vabalt täpselt nii nagu vaja. Kui on vaja andmemahukaid ja mälu nõudvaid protsesse jooksutada siis tuleb Zapieri puhul võtta €299/kuu “Team” pakett. Ja isegi see ei anna näiteks “Advanced admin permissions”, mille saab alles €599/kuu paketiga.
  • Hind. Vabavara on tasuta. Jah, N8N saab ka alates €20/kuu pilveteenusena osta nagu Zapier’i aga enamasti ikkagi installeeritakse see enda masinasse, kuna see annab lisaks hinnale ka muid eeliseid.
  • Kommuun. Vabavaraliste lahenduse ümber on alati suur kommuun. Kui soovid mingit erilahendust, mida N8N/Zapier ei paku, siis N8N puhul on kommuun, kust võib leida probleemile lahenduse, mis keegi juba teinud. Ja kui ei leia, siis saab alati ise teha ning hätta jäädes abi küsida. Zapier võib vaatamata N8N $12m investeeringule veel rikkam olla aga N8N’i arendab tänu vabavaralisusele juba praegu palju enam suurepäraseid arendajaid.
  • Tulevik. Vabavaraliste lahenduste areng on viimasel ajal hüppeliselt kasvanud ning ka suuremad ettevõtted teevad mitmeid omi projekte vabavaralisteks. 2022 seisuga on 90% veebis olevast tarkvarast vabavaraline.
  • Privaatsus. Kogu info on Sinu kätes ja keegi ei pääse sellele ligi ega seda kuidagi moodi kasutama enda äriliste huvide või misiganes eesmärgil.

Veel lihtsaid näiteid

Lõpetuseks veel mõned ideed ja näited eriti lihtsatest flow’dest, mille seadistus võtab alla tunni töö. Tihti pigem 10min või nii.

  • Email pangalt -> maksja/saaja + summa + makse kirjelduse inf → #maksed Slack/Discord/Zulip/jne kanalisse
  • Sisesta sõnum ja sõnumi saaja (SMS, email, WhatsApp, Discord, Slack, misiganes) ja periood, iga mille tagant sõnum saata (CRON) kuni asjaga lõpuks korras ja peatad manuaalselt. Näiteks, mingi meeldetuletus kellegile.
  • PDF arve kellegilt või uus e-poe tellimus → raamatupidamissüsteemi
  • Uus kontakt CRM’is ja X päeva möödas, siis see kiri. Kui X päeva pärast ei vastanud, siis WhatsApp sõnum. Samuti lisa kontakt Google Contacts.
  • Discordis daily standupil osalenute kohta baasi märge, et oleks kuu lõpus näha osalejate arv.
  • Baasi lisati uus puhkus töötaja poolt → Google Calendrisse
  • Keegi töötajatest lisas uue kontakti Google Contacts → Lisa see kõigi Google Contacts
  • Lisades uue töötaja baasi → Teeme talle ka automaatselt firma konto Trello, Slack, Zulip, NextCloud jne. jne.
  • Konkurendi kodulehel miskit muutub (uus toode, blogipostitus jms) → sõnum Slacki, emailivõi kuskile.
  • Postitus firma erinevatesse sotsiaalmeedia kanalitesse korraga
  • jne. jne. jne.

Soovid ka enda äriprotsesse automatiseerida?

Kirjuta mulle otse WhatsApp’i, Facebook’i või loe meie programmeerijate tiimi kohta rohkem siit>> Meie inglise keelses veebis crewnew.com muidugi oluliselt rohkem infot. Olen koolitaja ja arendusteemalise raamatu autor. Võta ühendus ja räägime — mulle meeldib alati tehnoloogiast rääkida.

--

--

Kaspar L. Palgi
CrewNew.ee

Backend programmer and veteran tech enthusiast. Mentoring and writing tech books. Team lead at CrewNew.com / lead developer at Klarity.app