TL;DR
- N8N oferuje 106 funkcji JavaScript podzielonych na 6 kategorii: string, number, array, object, boolean i datetime
- W praktyce używasz głównie 10-15 funkcji – reszta to niszowe zastosowania dla specjalistycznych przypadków
- Map i filter to najważniejsze funkcje array – rozwiązują 99% problemów z transformacją danych
- Split i replace dominują w manipulacji stringów – szczególnie przy web scrapingu i czyszczeniu danych
- Funkcje extract (domain, email, URL) oszczędzają mnóstwo czasu przy przetwarzaniu nieprzewidywalnych danych
- Datetime funkcje przez Luxon umożliwiają zaawansowane operacje na datach i czasie
- Większość problemów rozwiązujesz kombinacją 3-5 podstawowych funkcji zamiast szukania egzotycznych rozwiązań
N8N JavaScript – potęga automatyzacji w Twoich rękach
N8N udostępnia kompleksową bibliotekę 106 funkcji JavaScript, które przekształcają platformę z prostego narzędzia automatyzacji w potężny silnik przetwarzania danych. Doświadczenie autora, który skalował agencję automatyzacji do 72 tysięcy miesięcznie, pokazuje realną wartość tych funkcji.
Funkcje dzielą się na sześć głównych kategorii:
- String – manipulacja tekstu, web scraping, czyszczenie danych
- Array – transformacja kolekcji, filtrowanie, łączenie danych
- Number – obliczenia, formatowanie, konwersje matematyczne
- Object – praca z JSON, strukturalne dane, klucze i wartości
- Boolean – operacje logiczne, proste konwersje true/false
- Datetime – zaawansowane operacje na datach przez Luxon
Choć lista może wydawać się przytłaczająca, praktyka pokazuje inne podejście.
Funkcje stringów – fundament manipulacji tekstu
Podstawowe operacje, które używasz codziennie
Funkcje stringów stanowią trzon większości automatyzacji. Split należy do najczęściej używanych funkcji – przekształca dowolny tekst w użyteczną tablicę danych.
Najważniejsze funkcje string:
- Split – dzieli tekst na tablicę według separatora (przecinek, spacja, znak specjalny)
- Replace/ReplaceAll – zmienia pierwszy/wszystkie wystąpienia znaku na inny
- Trim – usuwa białe znaki z początku i końca tekstu
- Includes – sprawdza obecność podciągu w tekście
- Length – zlicza znaki, przydatne przy walidacji i limitach API oraz obliczaniu tokenów dla LLM
Przykład praktyczny: string „Sarah, Sally, Stephanie” po zastosowaniu split(", ")
staje się tablicą trzech imion. Ta sama logika działa z danymi CSV, URL-ami czy jakimikolwiek strukturalnymi tekstami.
Length ma szczególne znaczenie przy pracy z LLM. Autor pokazuje konkretne obliczenie: string o długości 1000 znaków dzielony przez średnią 4.7 znaku na słowo daje 212 słów. Następnie 212 słów pomnożone przez współczynnik 1/0.75 (słowa na token) równa się około 283 tokenów – pozwala to przewidzieć koszty API przed wysłaniem zapytania.
Replace i replaceAll rozwiązują problem formatowania danych. Replace zmienia tylko pierwsze wystąpienie znaku, podczas gdy replaceAll przekształca wszystkie. Przy czyszczeniu danych z web scrapingu funkcje te usuwają niepotrzebne białe znaki i standaryzują format.
Funkcje czyszczenia treści
RemoveMarkdown i removeTags to niedoceniane narzędzia web scrapingu. Gdy wykonujesz HTTP request do strony internetowej, otrzymujesz surowy HTML pełen tagów formatujących. RemoveTags przekształca chaotyczny kod HTML w czysty tekst, idealny do analizy przez LLM.
Autor demonstruje to na własnym przykładzie: po pobraniu treści strony funkcja removeTags automatycznie usuwa wszystkie znaczniki HTML, pozostawiając tylko czytelny tekst. To drastycznie redukuje liczbę tokenów potrzebnych do przetworzenia treści przez AI.
Funkcje extract – automatyczne rozpoznawanie wzorców
Extract functions (extractDomain, extractEmail, extractURL) to prawdziwe klejnoty automatyzacji. Zamiast budować skomplikowane wyrażenia regularne, funkcje te automatycznie wyciągają potrzebne informacje z nieuporządkowanego tekstu.
Checklist: Kiedy używać funkcji extract
□ ExtractEmail – gdy potrzebujesz wyciągnąć adresy email z długich tekstów (strony, dokumenty, scraped content)
□ ExtractDomain – przy czyszczeniu list URL-i lub analizowaniu ruchu sieciowego
□ ExtractURL – gdy musisz znaleźć pełne linki w nieuporządkowanym tekście
□ ExtractURLPath – do analizy struktury stron lub parametrów w URL-ach
ExtractEmail działa nawet z długimi tekstami. Jeśli na stronie internetowej gdzieś ukryty jest adres „nick@leftclick.ai”, funkcja go znajdzie niezależnie od otaczającego contentu. Podobnie extractDomain wyciąga nazwę domeny z pełnego URL-a, oszczędzając godziny pracy przy przetwarzaniu list stron internetowych.
Formatowanie i walidacja
Case functions standaryzują format tekstu – toLowerCase, toUpperCase, toSentenceCase i toSnakeCase sprawdzają się przy tworzeniu slug-ów do URL-ów czy ujednolicaniu danych z różnych źródeł.
Funkcje walidacyjne (isDomain, isEmail, isURL, isNumeric) sprawdzają poprawność danych przed wysłaniem do API. Zamiast otrzymywać błędy od zewnętrznych serwisów, możesz filtrować nieprawidłowe dane na etapie przetwarzania.
Funkcje specjalistyczne dla API
Base64encode i base64decode obsługują kodowanie danych wymagane przez niektóre API. Wiele serwisów wymaga zakodowania kluczy API lub credentials w formacie base64 przed wysłaniem.
ParseJSON konwertuje stringi JSON na obiekty, umożliwiając dostęp do zagnieżdżonych danych bez dodatkowych nodes. Zamiast parsować JSON w osobnym kroku, możesz to zrobić bezpośrednio w expression editorze.
Regex i zaawansowane wyszukiwanie
Match i search functions wykorzystują wyrażenia regularne do zaawansowanego wyszukiwania wzorców. Choć regex może wydawać się skomplikowany, autor poleca dwa sposoby na jego opanowanie:
- Regex101.com – interaktywny edytor gdzie testuje się wyrażenia na żywo
- Wsparcie AI – ChatGPT i podobne modele są „naprawdę, naprawdę dobre” w generowaniu regex na podstawie opisu potrzeb
Autor przyznaje: „AI has gotten to the point where you can do this” i że AI potrafi zrobić lepszą robotę niż on sam w 90% przypadków. Zamiast budować własny regex do wyciągania 3-literowych słów, wystarczy poprosić AI o pomoc z opisem potrzeb.
Funkcje array – potęga transformacji danych
Map i filter – najważniejsze narzędzia
Map i filter rozwiązują 99% problemów z transformacją danych w N8N. Map przekształca każdy element tablicy według zadanej reguły, filter pozostawia tylko elementy spełniające określone warunki.
Praktyczny przykład z doświadczenia: tablica imion [„Sarah”, „Sally”, „Stephanie”] po zastosowaniu map(i => i.concat("@gmail.com").toLowerCase())
staje się tablicą adresów email w poprawnym formacie.
Filter działa podobnie, ale usuwa niepotrzebne elementy. Kombinacja filter(i => i.length > 6)
na tej samej tablicy zwróci tylko „Stephanie” – jedyne imię dłuższe niż 6 znaków.
Operacje na kolekcjach danych
Unique usuwa duplikaty z tablic – nieocenione przy łączeniu danych z różnych źródeł. Intersection i difference porównują tablice, pokazując wspólne elementy lub różnice.
Przykład z monitorowania konkurencji na YouTube: autor śledzi twórców o podobnej wielkości, pobierając ich RSS feedy z nowymi filmami. „Używając difference do porównania nowej listy postów z poprzednią, natychmiast identyfikuje nowe publikacje”. Różnica między tablicami to dokładnie te posty, które wymagają dodania do bazy danych.
Kluczowe funkcje array:
- Unique – usuwanie duplikatów z tablic
- Intersection – znajdowanie wspólnych elementów między tablicami
- Difference – identyfikowanie różnic między zbiorami danych
- Join – przekształcanie tablicy w string z wybranym separatorem
- Sort – organizowanie danych alfabetycznie lub według własnych reguł
Join przekształca tablicę z powrotem w string z wybranym separatorem. Idealne do tworzenia plików CSV czy formatowania danych do prezentacji.
Zaawansowane manipulacje
Funkcje jak append, concat i splice pozwalają modyfikować tablice w locie. RandomItem wybiera losowy element – autor używa go „cały czas” przy random scheduling i testach A/B.
Sort organizuje dane alfabetycznie lub według własnych reguł, a połączenie z reverse daje pełną kontrolę nad kolejnością elementów. Funkcje jak pluck wyciągają wartości z obiektów w tablicy, choć w praktyce używa się ich rzadziej.
Funkcje numeryczne i datetime – precyzyjna kontrola danych
Operacje matematyczne i formatowanie
Funkcje numeryczne to podstawa obliczeń w automatyzacji. Round, floor, ceiling kontrolują precyzję liczb. Format przekształca liczby w przyjazne dla człowieka stringi z separatorami tysięcy i odpowiednią lokalizacją.
Praktyczne zastosowanie: cena 3459221 po zastosowaniu format staje się czytelną „3,459,221” czy „3.459.221” w zależności od ustawień locale.
Datetime przez Luxon – zaawansowane operacje na czasie
Funkcje datetime wykorzystują bibliotekę Luxon, oferując profesjonalne możliwości manipulacji czasu. Plus i minus dodają lub odejmują okresy, diff2 oblicza różnice między datami.
Format pozwala na dowolne formatowanie dat. Zamiast standardowego „2025-01-31”, możesz otrzymać „31 stycznia 2025” czy „Jan 31, ’25” – wszystko zależy od potrzeb.
Extract wyciąga komponenty dat (rok, miesiąc, dzień, godzina). StartOf i endOf zaokrąglają do początku czy końca okresów – przydatne przy raportowaniu miesięcznym czy rocznym.
$now to specjalna zmienna która automatycznie zwraca bieżący czas w formacie Luxon, gotowy do dalszych operacji bez konwersji. IsWeekend sprawdza czy data wypada w weekend – autor sugeruje zastosowanie przy automatyzacji emails: „można określić czy to weekend, a jeśli tak, dodać dzień lub dwa i wysłać w poniedziałek zamiast tego”.
Funkcje obiektów i boolean – struktura i logika
Manipulacja strukturą danych
Funkcje obiektów to narzędzia do pracy ze strukturalnymi danymi JSON. Keys i values wyciągają nazwy pól lub ich wartości. HasField sprawdza istnienie konkretnych kluczy przed próbą dostępu.
Compact usuwa puste wartości z obiektów, czyszcząc dane przed dalszym przetwarzaniem. UrlEncode przekształca obiekty w parametry URL – nieocenione przy budowaniu zapytań GET.
Proste konwersje boolean
Boolean functions to najbardziej minimalistyczna kategoria. ToNumber przekształca true/false na 1/0, toString umożliwia dalszą manipulację jako tekst. Choć proste, funkcje te są kluczowe przy integracjach API, gdzie różne systemy oczekują różnych formatów wartości logicznych.
Praktyczne wskazówki z realnego doświadczenia
Najczęściej używane funkcje w codziennej pracy
Checklist: 15 najważniejszych funkcji N8N do opanowania
String (6 funkcji):
□ Split – podział tekstu na tablice
□ Replace/ReplaceAll – zamiana znaków i fraz
□ Trim – usuwanie białych znaków
□ ExtractEmail/ExtractDomain – wyciąganie wzorców
□ ToLowerCase – standaryzacja tekstu
Array (5 funkcji):
□ Map – transformacja każdego elementu
□ Filter – filtrowanie według warunków
□ Join – łączenie w string
□ Unique – usuwanie duplikatów
□ RandomItem – losowy wybór elementu (scheduling, testy A/B)
Number/Datetime (4 funkcje):
□ Format – formatowanie liczb i dat
□ Plus/Minus – operacje na datach
□ ToNumber – konwersja na liczby
□ Now – bieżący czas
Z 106 dostępnych funkcji, te 15 rozwiązuje 90% problemów automatyzacji. String functions dominują przy web scrapingu i czyszczeniu danych. Array functions są kluczowe przy transformacji i analizie. Datetime functions wspomagają scheduling i raportowanie.
Konkretne przypadki użycia
Web scraping wymaga kombinacji extractEmail z trim i replaceSpecialChars dla obsługi międzynarodowych znaków. API integration często łączy format z urlEncode dla poprawnego przesyłania danych.
Quote function rozwiązuje problem z escapowaniem cudzysłowów w stringach. Autor wyjaśnia: „przydatne przy konstruowaniu JSON, SQL” – czyli sytuacjach gdzie potrzebujesz zagnieżdżone cytaty bez ręcznego dodawania znaków ucieczki.
Monitoring konkurencji wykorzystuje difference do wykrywania nowych treści. Raportowanie automatyczne korzysta z datetime functions do obliczania okresów i formatowania dat.
Kiedy szukać zaawansowanych rozwiązań
Większość problemów rozwiązujesz kombinacją podstawowych funkcji zamiast szukania egzotycznych rozwiązań. Hash, quote czy regex functions mają swoje miejsce, ale w niszowych zastosowaniach.
Jeśli łapiesz się na używaniu bardzo specjalistycznych funkcji, warto sprawdzić, czy problem da się rozłożyć na prostsze kroki z podstawowymi narzędziami. Sprawdzone podejście to rozpoczęcie od split, map i filter, a dopiero później szukanie bardziej zaawansowanych opcji.
Ciekawostka z praktyki: autor szczerze przyznaje, że z 106 dostępnych funkcji większość ma niszowe zastosowania. Funkcje jak chunk „praktycznie nigdy nie używam”, merge „czy kiedykolwiek tego używam? Nie”, czy hash używa „może 5% czasu”. To potwierdza, że skupienie się na podstawowym zestawie to właściwa strategia uczenia się N8N.
Ten wpis jest częścią mojej kolekcji notatek z ciekawych podcastów, webinarów i innych treści, które uważam za wartościowe i do których sam chcę wracać. Materiał oparty na video „Every N8N JavaScript Function Explained (106 + 7 Extras)„.
Dodaj komentarz
Musisz się zalogować, aby móc dodać komentarz.