# Što ćete izgraditi#
Ovaj vodič prikazuje produkcijski spreman pristup automatiziranom izvještavanju s n8n: tjedni KPI sažetak koji povlači podatke iz GA4, Stripea i Postgresa, agregira metrike, generira sažet narativ i šalje ga u Slack i e-mail prema rasporedu.
Fokus je na dijelovima koji dugoročno čine reporting workflowe uspješnima: stabilne definicije metrika, provjere kvalitete podataka, ponovni pokušaji, idempotentnost i struktura koju kolega može sigurno mijenjati.
# Preduvjeti i pretpostavke#
Možete pratiti vodič i ako se vaši KPI-jevi razlikuju, sve dok možete dohvatiti temeljne podatke.
| Zahtjev | Preporučeno | Napomene |
|---|---|---|
| n8n | 1.40 ili noviji | Novije verzije poboljšavaju rukovanje greškama i UX za credentials |
| GA4 pristup | Omogućen Analytics Data API | Koristite OAuth2 ili service account ovisno o pravilima organizacije |
| Stripe pristup | Restricted API key | Preferirajte restricted ključeve umjesto punih secret ključeva |
| Postgres pristup | Read-only korisnik za reporting | Dodajte zasebnu shemu za reporting tablice ako spremate agregate |
| Slack | Incoming webhook ili Slack credential | Webhook je najjednostavniji za jedan kanal |
| SMTP credential ili provider node | Koristite zajednički mailbox za poslovno izvještavanje |
ℹ️ Napomena: GA4 podaci često dolaze s odgodom. Mnogi timovi “tjedne” sažetke pokreću u utorak ujutro za prethodni prozor ponedjeljak–nedjelja kako bi izbjegli nepotpune brojke.
# Korak 1: Dizajnirajte KPI ugovor prije nego taknete n8n#
Najbrži način da napravite nepouzdano izvještavanje je krenuti spajati nodeove bez definiranih metrika. Definirajte KPI ugovor koji za svaku brojku odgovara na tri pitanja.
- 1Koja je točna definicija i izvor istine.
- 2Koji je izvještajni prozor i vremenska zona.
- 3Koje su prihvatljive granice i načini neuspjeha.
Dobar početni set KPI-jeva za SaaS ili pretplatnički proizvod izgleda ovako:
| KPI | Izvor | Definicija | Napomene |
|---|---|---|---|
| Sessions | GA4 | Sessions u izvještajnom prozoru | Osigurajte istu vremensku zonu pri svakom izvođenju |
| Conversions | GA4 | Broj ključnih eventova ili kupnji | Koristite eksplicitnu listu naziva eventova |
| New customers | Stripe | Broj kreiranih customers | Razmislite o deduplikaciji ako importate customers |
| Gross revenue | Stripe | Zbroj plaćenih invoices ili charges | Odlučite uključujete li refunds |
| Refunds | Stripe | Zbroj kreiranih refunds | Uključite djelomične refunds |
| Active users | Postgres | Korisnici s eventom aktivnosti u prozoru | Ovisi o vašoj shemi proizvoda |
| Trial to paid | Postgres plus Stripe | Pokrenuti trialovi naspram prve uplate | Često zahtijeva spajanje sustava |
🎯 Ključna poruka: Održivost počinje stabilnim definicijama metrika. Tretirajte KPI-jeve kao API: verzionirajte ih, dokumentirajte i mijenjajte namjerno.
# Korak 2: Arhitektura workflowa za održivost#
Tjedni sažetak lakše je održavati kada je workflow podijeljen u predvidljive faze.
Preporučene faze#
| Faza | Svrha | Izlaz |
|---|---|---|
| Schedule and window | Definirati početne i završne datume | reportContext objekt |
| Fetch | Povlačenje sirovih podataka iz svakog sustava | Sirovi odgovori spremljeni ili logirani |
| Normalize | Pretvaranje u zajedničku shemu metrika | Konzistentna numerička polja |
| Validate | Provjere kvalitete i potpunosti podataka | Prolaz/pad s jasnim razlozima |
| Aggregate | Izračun totala, delta i omjera | Finalni KPI objekt |
| Summarize | Generiranje kratkog narativa | Tekst spreman za Slack i tijelo e-maila |
| Deliver | Slanje u Slack i e-mail | ID-ovi poruka, status isporuke |
| Persist | Opcionalno: spremanje rezultata u Postgres | Tjedni snapshot za trendove |
Predloženi raspored n8n nodeova#
Koristite jedan glavni workflow koji orkestrira sub-workflowe ili sve držite u jednom workflowu s jasno označenim sekcijama.
| Uzorak | Kada koristiti | Prednosti | Nedostaci |
|---|---|---|---|
| Single workflow | Rana faza, manje metrika | Lakše debugirati na jednom canvasu | Može postati neuredno kroz mjesece |
| Orchestrator plus sub-workflows | Više izvora podataka, više timova | Ponovna upotreba, razdvajanje odgovornosti | Traži disciplinu u inputima i outputima |
Ako tim očekuje širenje reportinga, krenite s pristupom temeljenim na predlošku i ponovno koristite obrasce. To se dobro nadopunjuje s n8n predlošcima workflowa kako bi automatizacije ostale konzistentne dok dodajete nove sažetke.
# Korak 3: Kreirajte robustan tjedni izvještajni prozor#
Izvještajni prozor treba biti deterministički i siguran s obzirom na vremenske zone. Koristite ISO datume i izračunajte zadnji puni tjedan na jednom mjestu tako da svaki izvor podataka koristi isti prozor.
Logika prozora#
Čest izbor je zadnji puni ponedjeljak do nedjelje u poslovnoj vremenskoj zoni, a pokretanje u utorak u 08:00.
| Parametar | Primjer | Zašto je važno |
|---|---|---|
| Poslovna vremenska zona | Europe Zagreb | Usklađuje se s time kako dionici tumače “tjedno” |
| Početak tjedna | Monday | Odgovara uobičajenom EU reportingu |
| Vrijeme pokretanja | Tuesday 08:00 | Daje vremena za GA4 i Stripe processing lag |
| Prozor | Prior Mon 00:00 to Sun 23:59:59 | Sprječava podatke iz djelomičnog tjedna |
Evo sažetog isječka za Code node za izračun prozora zadnjeg punog tjedna (ponedjeljak–nedjelja). Držite ga među prvim nodeovima i proslijedite dalje.
// n8n Code node
const tz = 'Europe/Zagreb';
function toISODate(d) {
return d.toISOString().slice(0, 10);
}
// Use UTC dates to avoid local runtime differences, but keep business logic consistent.
const now = new Date();
// Find last Monday 00:00:00 for the previous full week.
const day = now.getUTCDay(); // Sun=0..Sat=6
const daysSinceMonday = (day + 6) % 7; // Mon=0..Sun=6
// Go to this week's Monday, then subtract 7 days to get last week's Monday.
const thisMonday = new Date(Date.UTC(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate() - daysSinceMonday));
const start = new Date(thisMonday.getTime() - 7 * 24 * 60 * 60 * 1000);
const end = new Date(thisMonday.getTime() - 1); // last millisecond of Sunday
return [
{
reportContext: {
timezone: tz,
windowStartISO: toISODate(start),
windowEndISO: toISODate(end),
windowStartUTC: start.toISOString(),
windowEndUTC: end.toISOString(),
weekLabel: `${toISODate(start)} to ${toISODate(end)}`,
},
},
];⚠️ Upozorenje: Izbjegavajte prozore tipa “zadnjih 7 dana” za tjedne izvještaje. Pomaknu se po danima i usporedbe tjedan-na-tjedan postaju varljive.
# Korak 4: Dohvatite GA4 KPI-jeve s konzistentnim dimenzijama i filterima#
Za GA4 koristite Analytics Data API. Odlučite unaprijed želite li metrike na razini cijelog propertyja ili filtrirane na određene hostnames, paths ili conversion eventove.
Primjeri GA4 metrika za povlačenje#
| Metrika | GA4 metric name | Tipična dimenzija | Napomene |
|---|---|---|---|
| Sessions | sessions | date | Bazni promet |
| Users | totalUsers | date | Korisno za provjeru smislenosti sessions |
| Key events | eventCount | eventName | Filtrirajte na ključne eventove |
| Purchases | purchases | date | Ako koristite GA4 ecommerce |
Koristite HTTP Request node za poziv GA4 runReport endpointa. Držite request i mapping odvojene kako promjene metrika ne bi razbile parsiranje.
# GA4 Analytics Data API endpoint
POST https://analyticsdata.googleapis.com/v1beta/properties/PROPERTY_ID:runReport{
"dateRanges": [{ "startDate": "2026-05-19", "endDate": "2026-05-25" }],
"metrics": [{ "name": "sessions" }, { "name": "totalUsers" }],
"dimensions": [{ "name": "date" }]
}Normalizirajte GA4 odgovor#
U Code nodeu pretvorite GA4 string vrijednosti u brojeve i proizvedite jedan objekt.
// Input: GA4 API JSON
const rows = $json.rows || [];
let sessions = 0;
let users = 0;
for (const r of rows) {
const m = r.metricValues || [];
sessions += Number(m[0]?.value || 0);
users += Number(m[1]?.value || 0);
}
return [{
ga4: { sessions, users }
}];💡 Savjet: Kad validacija padne, uvijek logirajte i request payload i sirovi GA4 odgovor. Znatno skraćuje debugging kad GA4 vrati sampled ili prazne podatke zbog filtera.
# Korak 5: Dohvatite Stripe KPI-jeve s jasnim definicijama prihoda#
Prihod u Stripeu može značiti različite stvari. Odaberite jednu definiciju i kodirajte je kao KPI ugovor.
Opcije definicije prihoda#
| Opcija | Što mjeri | Najbolje za | Česta zamka |
|---|---|---|---|
| Charges paid | Naplaćeni iznos | Jednokratna plaćanja | Izostavlja invoices i neke subscription tokove |
| Invoices paid | Prihod od pretplata | SaaS naplata | Treba prilagodbe za credits i proration |
| Balance transactions | Neto kretanje novca | Usklađenje s financijama | Složenije za tjedno usklađivanje |
Za tjedne KPI sažetke, “paid invoices” je često najbolji kompromis za SaaS jer prati lifecycle pretplate.
Dohvatite plaćene invoices u datom prozoru, zbrojite amount_paid, zatim povucite refunds u istom prozoru. Koristite auto-pagination kako ne biste propuštali zapise kad volumen poraste.
Stripe node je ok, ali HTTP Request vam daje eksplicitnu kontrolu. Držite svaki poziv mali i ograničen.
# List invoices paid during window
GET https://api.stripe.com/v1/invoices?limit=100&status=paid&created[gte]=START_TS&created[lte]=END_TSNormalizirajte u svoju KPI shemu:
const invoices = $json.data || [];
const gross = invoices.reduce((sum, inv) => sum + (inv.amount_paid || 0), 0);
return [{
stripe: {
invoiceCount: invoices.length,
grossRevenue: gross / 100
}
}];Provjere kvalitete podataka za Stripe#
Stripe je uglavnom konzistentan, ali svejedno želite zaštitne ograde.
| Provjera | Pravilo | Zašto |
|---|---|---|
| Konzistentnost valute | Sve invoices u istoj valuti | Sprječava zbrajanje EUR i USD |
| Razumnost iznosa | grossRevenue veći ili jednak 0 | Otkriva bugove u parsiranju |
| Razumnost volumena | invoiceCount u očekivanom rasponu | Otkriva greške u API paginaciji |
# Korak 6: Povucite produkt KPI-je iz Postgresa#
Postgres je mjesto gdje možete izračunati metrike korištenja proizvoda i lifecycle metrike koje ne postoje u GA4 ili Stripeu, poput weekly active users, signups po planu ili usvajanja featurea.
Koristite Postgres node s parametriziranim upitima. Držite SQL u zasebnim nodeovima i dodajte komentare kako bi promjene bile sigurne.
Primjeri KPI-jeva iz tipične produkt sheme#
| KPI | Primjer mete upita | Napomene |
|---|---|---|
| Weekly active users | events tablica | Broj jedinstvenih user ID-jeva u prozoru |
| New signups | users tablica | Filtrirajte po created_at |
| Trials started | subscriptions tablica | Filtrirajte po trial start |
| Activation rate | izvedeno | Activated podijeljeno sa signups |
Primjer upita za weekly active users:
SELECT
COUNT(DISTINCT user_id) AS wau
FROM events
WHERE occurred_at >= $1
AND occurred_at <= $2;U n8n proslijedite windowStartUTC i windowEndUTC iz reportContext.
ℹ️ Napomena: Ako vaša baza sprema timestamps bez vremenske zone, standardizirajte konverzije na granici upita. Bugovi u reportingu često nastaju miješanjem UTC-a i lokalnog vremena u usporedbama.
# Korak 7: Normalizirajte sve u jedan KPI objekt#
Kad svaki izvor vrati metrike, spojite ih u jedan objekt s konzistentnim imenovanjem i jedinicama.
Praktična normalizirana shema:
| Polje | Tip | Primjer | Izvor |
|---|---|---|---|
weekLabel | string | 2026-05-19 to 2026-05-25 | Kontekst |
sessions | number | 12450 | GA4 |
users | number | 8920 | GA4 |
grossRevenue | number | 18350.25 | Stripe |
refunds | number | 320.00 | Stripe |
wau | number | 1560 | Postgres |
signupCount | number | 210 | Postgres |
U n8n koristite Merge node u “merge by position” ako imate jedan item po grani, zatim Code node za finalni objekt.
const ctx = $json.reportContext;
const ga4 = $json.ga4 || {};
const stripe = $json.stripe || {};
const pg = $json.pg || {};
const kpis = {
weekLabel: ctx.weekLabel,
sessions: Number(ga4.sessions || 0),
users: Number(ga4.users || 0),
grossRevenue: Number(stripe.grossRevenue || 0),
invoiceCount: Number(stripe.invoiceCount || 0),
wau: Number(pg.wau || 0),
};
return [{ kpis, reportContext: ctx }];# Korak 8: Dodajte provjere kvalitete podataka koje sprječavaju loše izvještaje#
Automatizirano izvještavanje tiho podbaci kad upstream sustavi vrate djelomične podatke. Dodajte eksplicitne provjere i zaustavite workflow prije slanja bilo čega obmanjujućeg.
Praktična validacijska pravila#
| Pravilo | Primjer praga | Radnja ako padne |
|---|---|---|
| Obvezna polja prisutna | sessions, grossRevenue, wau | Fail i alert |
| Nenegativne metrike | svi numerički KPI-jevi veći ili jednaki 0 | Fail |
| GA4 potpunost | users veći od 0 u tjednima bez praznika | Warn ili fail |
| Stripe potpunost | invoiceCount konzistentan s povijesnim baselineom | Warn |
| Detekcija skokova | promjena tjedan-na-tjedan veća od 50 posto | Pošalji s warning bannerom |
| Svježina podataka | kraj prozora je barem 24 sata iza sada | Fail ako je previše recentno |
Implementirajte validaciju u Code nodeu koji emitira ili status: ok ili baca grešku. Greške trebaju ići kroz centraliziranu logiku ponovnih pokušaja i alertinga.
const k = $json.kpis;
const errors = [];
if (k.sessions <= 0) errors.push('GA4 sessions is 0 or missing');
if (k.grossRevenue < 0) errors.push('Stripe grossRevenue is negative');
if (k.wau <= 0) errors.push('Postgres WAU is 0 or missing');
if (errors.length) {
throw new Error(`KPI validation failed: ${errors.join(' | ')}`);
}
return [{ ...$json, validation: { status: 'ok' } }];⚠️ Upozorenje: Ne “šaljite svejedno” kad validacija padne. Dionici brzo gube povjerenje kad distribuirate pogrešne brojke, a povjerenje je teško vratiti.
Za dublji obrazac oko ponovnih pokušaja i notifikacija, uskladite ovaj workflow sa svojim standardnim pristupom za n8n rukovanje greškama, ponovne pokušaje i alerting.
# Korak 9: Dodajte ponovne pokušaje i idempotentnost kako bi tjedna izvođenja bila sigurna#
Tjedni reporting je idealan kandidat za strukturiranu logiku ponovnih pokušaja jer su padovi obično prolazni: GA4 API zastoji, Stripe rate limits ili kratki prozor održavanja Postgresa.
Preporučena strategija retryja po izvoru#
| Izvor | Čest problem | Retry pristup | Backoff |
|---|---|---|---|
| GA4 API | 429 rate limit, 5xx | Retry 3 puta | 30s, 2m, 5m |
| Stripe | 429, network timeouts | Retry 3 puta | 30s, 2m, 5m |
| Postgres | connection timeout | Retry 2 puta | 30s, 2m |
| Slack ili e-mail | prolazni network problem | Retry 2 puta | 30s, 2m |
Ako retryje implementirate u n8n na razini nodea, osigurajte da također pratite je li izvještaj već isporučen.
Idempotency obrazac#
Spremite zapis tjednog izvještaja u Postgres s jedinstvenim ključem za tjedan. Isporučite samo ako zapis nije označen kao isporučen.
| Stupac | Tip | Primjer |
|---|---|---|
week_start | date | 2026-05-19 |
week_end | date | 2026-05-25 |
payload | jsonb | normalizirani KPI-jevi i sažetak |
delivered_at | timestamptz | null ili timestamp |
delivery_channel | text | slack, email |
Zatim workflow može raditi ovako:
- 1Izračunaj prozor.
- 2Provjeri postoji li zapis i je li delivered.
- 3Ako je delivered, stani.
- 4Ako nije delivered, izračunaj KPI-jeve i sažetak, upsertaj zapis.
- 5Isporuči.
- 6Ažuriraj
delivered_at.
To sprječava duple Slack poruke kad ponovno pokrećete executions.
# Korak 10: Generirajte sažet pregled koji ljudi stvarno čitaju#
Executives i product leadovi žele priču, ne zid brojeva. Sažetak treba stati u jednu Slack poruku bez scrollanja na mobitelu.
Struktura sažetka koja radi#
| Sekcija | Sadržaj | Maks. duljina |
|---|---|---|
| Header | Oznaka tjedna, high-level ishod | 1 linija |
| Growth | Tjedan-na-tjedan delte za ključne KPI-jeve | 3 do 5 bulleta |
| Risks | Anomalije ili napomene o nedostajućim podacima | 1 do 2 bulleta |
| Next actions | Jedan prijedlog temeljen na podacima | 1 bullet |
Delte računajte ako spremate KPI-jeve od prošlog tjedna u Postgres. Ako ne spremate, usporedbe i dalje možete dobiti tako da paralelno povučete prošlotjedni prozor, ali spremanje agregata je jednostavnije i brže.
Primjer Code nodea za izradu Slack teksta:
const k = $json.kpis;
const week = k.weekLabel;
const lines = [];
lines.push(`Weekly KPI Digest: ${week}`);
lines.push(`Sessions: ${k.sessions.toLocaleString()} | Users: ${k.users.toLocaleString()}`);
lines.push(`Revenue: €${k.grossRevenue.toFixed(2)} from ${k.invoiceCount} invoices`);
lines.push(`WAU: ${k.wau.toLocaleString()}`);
lines.push(`Notes: Reply to this message to request a breakdown by channel or plan.`);
return [{ ...$json, message: { slackText: lines.join('\n') } }];💡 Savjet: Držite jedan “metric formatting” helper u jednom Code nodeu kako ne biste duplicirali logiku formatiranja između Slacka i e-maila.
# Korak 11: Šaljite u Slack i e-mail prema rasporedu#
Koristite Schedule Trigger node za tjedna pokretanja. Zatim šaljite poruke kroz Slack i e-mail nodeove paralelno, ali tek nakon što validacije prođu.
Isporuka u Slack#
Za Slack preferirajte jedan kanal poput #weekly-kpis i konzistentan format poruke. To olakšava pretragu i usporedbe.
| Detalj isporuke | Preporuka | Zašto |
|---|---|---|
| Kanal | jedan namjenski kanal | smanjuje šum drugdje |
| Threading | opcionalno, otvorite thread za drilldownove | održava kanal urednim |
| Attachments | izbjegavajte teško formatiranje | smanjuje probleme s renderiranjem |
| Linkovi | uključite linkove na dashboarde | omogućuje self-serve follow-up |
Isporuka e-mailom#
E-mail je koristan za leadove koji ne žive u Slacku. Neka bude kratak, s linkom na dashboarde ili dulji report.
| E-mail polje | Preporuka |
|---|---|
| From | ops ili analytics mailbox |
| To | group alias |
| Subject | Weekly KPI Digest: YYYY-MM-DD to YYYY-MM-DD |
| Body | isti tekst kao Slack plus linkovi |
# Korak 12: Observability i prakse održavanja#
Razlika između demo workflowa i produkcijskog workflowa je observability: trebate znati kada je pao, zašto je pao i je li poslao duplikate.
Minimalna operativna checklista#
| Područje | Što implementirati | Trud |
|---|---|---|
| Logovi | spremati sirove API odgovore samo za neuspjela izvođenja | nizak |
| Alerting | poslati sažetak greške u ops kanal | nizak |
| Verzije | držati KPI definicije na jednom mjestu | srednji |
| Vlasništvo | dodati polje “owner” i link na runbook u opis workflowa | nizak |
| Higijena tajni | restricted ključevi, rotacija credentials | srednji |
| Drift podataka | tjedne provjere anomalija | srednji |
Dobar sljedeći korak je standardizirati reporting workflowe s predlošcima i konvencijama iz n8n predložaka workflowa, tako da svaki novi sažetak prati iste faze i kontrole kvalitete.
Ako želite implementaciju od početka do kraja za vaš stack, uključujući dashboarde i governance, to je upravo ono što isporučujemo u Samioda Automation.
# Ključne poruke#
- Prvo definirajte KPI ugovor: izvor, prozor, vremenska zona i definicija za svaku metriku.
- Gradite workflow u fazama: fetch, normalize, validate, aggregate, summarize, deliver i opcionalno persist.
- Dodajte eksplicitne provjere kvalitete i “fail fast” umjesto slanja nepotpunih ili obmanjujućih brojki.
- Implementirajte retryje s backoffom po izvoru i dodajte idempotentnost kako biste spriječili duple isporuke.
- Sažetci neka budu kratki i konzistentni: jedna Slack poruka, jedan e-mail, s linkom za dublje drilldownove.
- Poboljšajte održivost centralizacijom definicija metrika, helpera za formatiranje i ponovo iskoristivih predložaka workflowa.
# Zaključak#
Automatizirano izvještavanje s n8n najbolje funkcionira kada ga tretirate kao produkcijski sustav: deterministički prozori, stabilne definicije KPI-jeva, validacijske “gate” točke i sigurna isporuka s retryjima i idempotentnošću. Kad je tjedni sažetak pouzdan, isti obrazac možete proširiti na dnevne alerte anomalija, cohort reporting i nadzor pipelinea bez gradnje ispočetka.
Ako želite održiv reporting workflow prilagođen vašoj GA4, Stripe i Postgres shemi, možemo ga brzo dizajnirati i implementirati, uključujući rukovanje greškama, alerting i handover dokumentaciju. Javite se putem Samioda Automation i pomoći ćemo vam isporučiti reporting kojem vaš tim može vjerovati.
FAQ
Više iz kategorije Poslovna automatizacija
Sve →n8n + Supabase/Postgres obrasci automatizacije: webhooks, RLS-sigurni upisi i pouzdana sinkronizacija
Praktičan vodič kroz obrasce automatizacije n8n + Supabase Postgres: ingestija webhooks događaja, idempotency ključevi, upserts, RLS-sigurni upisi i pouzdana dvosmjerna sinkronizacija za SaaS back-office tijekove rada.
Izgradnja workflowova AI agenata u n8n-u: RAG, korištenje alata i zaštitne ograde za produkciju
Praktičan end-to-end vodič za n8n AI agent RAG workflow: unos dokumenata, segmentiranje i izrada embeddinga, pohrana u vektorsku bazu, upit s LLM-om te sigurno puštanje u rad uz PII kontrole, obranu od prompt-injectiona, ograničenja troškova i ljudska odobrenja.
n8n web scraping i detekcija promjena: pouzdano pratite stranice, otkrivajte ažuriranja i pokrećite workflowe
Praktičan vodič za 2026. o n8n monitoringu detekcije promjena pri web scrapingu: dohvat i parsiranje HTML-a, normalizacija sadržaja, otkrivanje smislenih promjena uz hashing i diffing, izbjegavanje lažnih pozitivnih rezultata te pouzdano slanje upozorenja u Slack ili Email.
Trebate pomoć s projektom?
Gradimo prilagođena rješenja koristeći tehnologije iz ovog članka. Senior tim, fiksne cijene.
Povezani članci
Izrada n8n workflowa za odobravanje u 2026.: Slack ili Teams, e-mail i revizijski tragovi
Saznajte kako izgraditi n8n workflow za odobravanje spreman za produkciju s odobravanjima uz ljudsku intervenciju, timeoutima, podsjetnicima, eskalacijskim putevima i revizijskim logiranjem kako biste spriječili duple odluke.
n8n web scraping i detekcija promjena: pouzdano pratite stranice, otkrivajte ažuriranja i pokrećite workflowe
Praktičan vodič za 2026. o n8n monitoringu detekcije promjena pri web scrapingu: dohvat i parsiranje HTML-a, normalizacija sadržaja, otkrivanje smislenih promjena uz hashing i diffing, izbjegavanje lažnih pozitivnih rezultata te pouzdano slanje upozorenja u Slack ili Email.
n8n + Supabase/Postgres obrasci automatizacije: webhooks, RLS-sigurni upisi i pouzdana sinkronizacija
Praktičan vodič kroz obrasce automatizacije n8n + Supabase Postgres: ingestija webhooks događaja, idempotency ključevi, upserts, RLS-sigurni upisi i pouzdana dvosmjerna sinkronizacija za SaaS back-office tijekove rada.