n8n workflows
AI-Corporate może uruchamiać workflowy n8n za pośrednictwem webhooka produkcyjnego. Jest to przydatne, gdy chcesz uruchomić zautomatyzowany proces poza AI-Corporate, na przykład utworzenie zadania, aktualizację rekordu CRM, uruchomienie przepływu raportowania lub przekazanie danych z formularza do innego systemu.
Przykład: artykuł newsowy na stronie firmowej
Załóżmy, że organizacja utworzyła workflow n8n, który publikuje artykuł newsowy na stronie WordPress firmy. W AI-Corporate wpisujesz wtedy tylko krótki fragment tekstu, na przykład kilka zdań o case study klienta, wydarzeniu lub wewnętrznym kamieniu milowym. Na podstawie tego tekstu uruchamiasz workflow w n8n.
Workflow n8n może następnie na przykład:
- Zamienić krótki tekst na dopracowany szkic za pomocą noda LLM i promptu dobrze pasującego do tonu organizacji.
- Wygenerować odpowiednią ilustrację za pomocą drugiego noda LLM, na przykład w kolorach marki i w rozpoznawalnym stylu ilustracyjnym.
- Przygotować lub opublikować tekst i obraz jako wpis blogowy na stronie WordPress.
Tak współpracują AI-Corporate i n8n: w AI-Corporate użytkownik wybiera workflow i wypełnia potrzebne informacje. Następnie n8n wykonuje zautomatyzowane kroki i dba o to, aby artykuł newsowy trafił na stronę w uporządkowany sposób.
Co robi ta integracja?
Uruchamiasz workflow n8n z poziomu przeglądu workflowów. Wymagane są tylko produkcyjny webhook, POST i Header Auth. Pola oraz callbacki z n8n są opcjonalne i można je konfigurować niezależnie od siebie.
- Jeśli workflow nie ma pól, webhook zostanie wywołany od razu.
- Jeśli workflow ma pola, najpierw otworzy się formularz. Użytkownik wypełnia pola, a następnie uruchamia workflow przyciskiem.
- Wprowadzone wartości są wysyłane jako JSON w żądaniu POST do webhooka n8n.
- Bez callbacków AI-Corporate jedynie potwierdza, że workflow został uruchomiony i dalej działa w n8n. Okno nie pokazuje spinnera i można je od razu zamknąć.
- Jeśli zostało to włączone przy rejestracji, workflow może odsyłać do AI-Corporate informacje o etapach pośrednich lub o zakończeniu.
- Jeśli zostało włączone zatwierdzanie przy rejestracji, użytkownik może podjąć decyzję bezpośrednio w AI-Corporate. n8n kontynuuje następnie od oczekującego kroku.
Tworzenie workflow n8n w AI-Corporate
Administrator rejestruje workflow w następujący sposób:
- Przejdź do Assistanten.
- Otwórz kartę Workflow assistenten.
- W karcie u góry kliknij Nieuwe workflow i wybierz n8n workflow.
- Wpisz nazwę workflow i produkcyjny URL n8n.
- Skonfiguruj Header authentication za pomocą nazwy nagłówka i tajnej wartości nagłówka.
- W sekcji Terugmeldingen uit n8n zaznacz tylko te elementy, które rzeczywiście zostały zbudowane w tym workflow n8n: postęp, zatwierdzenie i/lub koniec workflow.
- Opcjonalnie dodaj pola, które mają być przesyłane w żądaniu POST.
- Zapisz workflow.
Wszystkie trzy opcje callbacków są domyślnie wyłączone. Jeśli później dodasz callbacki lub krok zatwierdzania w n8n, zaktualizuj również rejestrację w AI-Corporate. Dialog dzięki temu wie, czy ma tylko pokazać potwierdzenie startu, czy dalej czekać na kolejne sygnały.
Pola
- Pola są opcjonalne.
- Każde pole ma jedną nazwę pola i jeden typ.
- Obsługiwane typy pól to krótki tekst, długi tekst, liczba, tak/nie, data, jeden wybór i wiele wyborów.
- W przypadku Jeden wybór i Wiele wyborów dodaj dostępne opcje. Jeden wybór jest pokazany jako kompaktowa lista wyboru; Wiele wyborów pokazuje pola wyboru. Wybrana wartość lub wartości są przesyłane w body JSON.
- Pola wymagane muszą być wypełnione, zanim workflow będzie można uruchomić.
- Nazwa pola staje się kluczem w body JSON wysyłanym do n8n.
Tworzenie kompatybilnego workflow w n8n
- Utwórz nowy workflow w n8n.
- Dodaj jako pierwszy node Webhook.
- Nadaj temu node’owi dokładnie nazwę Start workflow. Poniższe przykładowe wyrażenia używają tej nazwy.
- Ustaw HTTP Method na POST.
- Wybierz Authentication: Header Auth i użyj tej samej nazwy nagłówka oraz tajnej wartości co w AI-Corporate.
- Ustaw Respond lub Response Mode na Immediately.
- Skopiuj Production URL do pola n8n productie-url w AI-Corporate. Nie używaj testowego URL z
/webhook-test/. - Aktywuj workflow.
Odebrane dane znajdują się pod body; techniczne dane integracji znajdują się pod body.integration. Nie usuwaj ich w nodzie Edit Fields, Set ani Code.
Przykład body JSON
Jeśli zdefiniujesz pola o nazwach prompt, klantnaam, doelgroepen i datum, n8n otrzyma na przykład takie body JSON. AI-Corporate automatycznie dodaje obiekt integration.
{
"prompt": "Stwórz krótkie podsumowanie zgłoszenia.",
"klantnaam": "Przykładowa organizacja",
"doelgroepen": ["pracownicy", "klienci"],
"datum": "2026-09-22",
"integration": {
"runId": "chat-document-id",
"tenant": "default",
"callbackUrl": "https://europe-west1-ai-corporate.cloudfunctions.net/n8nWorkflowCallback",
"callbackToken": "tymczasowy-token-dla-tego-uruchomienia"
}
}
Token callbacku należy do jednego uruchomienia. Nie zapisuj go w logach, stałej konfiguracji ani innych systemach.
Opcjonalnie: odsyłanie postępu i zakończenia
AI-Corporate może pokazywać tylko to, co zwróci n8n. Używaj tych callbacków tylko wtedy, gdy przy rejestracji włączono Tussentijdse voortgang melden i/lub Het einde van de workflow melden.
Skonfiguruj każdy node callbacku w następujący sposób:
-
Wybierz Method: POST.
-
Przy URL kliknij Expression i wklej:
{{ $('Start workflow').first().json.body.integration.callbackUrl }} -
Wybierz Authentication: None.
-
Włącz Send Headers i dodaj poniższe nagłówki.
-
Włącz Send Body i wybierz Body Content Type: JSON oraz Specify Body: Using JSON.
Użyj tych nagłówków:
Authorization: Bearer {{ $('Start workflow').first().json.body.integration.callbackToken }}
Content-Type: application/json
Na przykład wyślij taką wiadomość, gdy krok się rozpocznie:
{
"tenant": "{{ $('Start workflow').first().json.body.integration.tenant }}",
"runId": "{{ $('Start workflow').first().json.body.integration.runId }}",
"eventId": "document-maken-gestart",
"type": "progress",
"executionId": "{{ $execution.id }}",
"step": {
"id": "document_maken",
"label": "Tworzenie dokumentu"
},
"message": "Dokument jest tworzony."
}
- Dla każdego zdarzenia w ramach tego samego uruchomienia użyj unikalnego
eventId. - Używaj czytelnej holenderskiej wartości
step.label; ten tekst będzie wyświetlany w aplikacji. - Jeśli włączono Het einde van de workflow melden, na końcu zawsze wysyłaj
type: "completed",type: "failed"lubtype: "rejected". - W przypadku
completedmożna opcjonalnie dodać obiektoutputz wynikiem. - W przypadku
faileddołącz zrozumiały komunikat o błędzie. Uruchomienie zostanie wtedy także zatrzymane w aplikacji.
Opcjonalnie: proszenie o zatwierdzenie w aplikacji
Użyj noda n8n Wait z On Webhook Call, gdy workflow może przejść dalej dopiero po wyborze. Przed nodem Wait wyślij callback z type: "approval_required":
Ustaw node Wait na Resume: On Webhook Call, HTTP Method: POST oraz Authentication: Header Auth. Wybierz te same poświadczenia Header Auth co dla Start workflow. Po nodzie Wait dodaj node Switch i sprawdzaj w nim {{ $json.body.decision }}.
{
"tenant": "{{ $('Start workflow').first().json.body.integration.tenant }}",
"runId": "{{ $('Start workflow').first().json.body.integration.runId }}",
"eventId": "controle-document",
"type": "approval_required",
"executionId": "{{ $execution.id }}",
"step": {
"id": "controle_document",
"label": "Sprawdzanie dokumentu"
},
"approval": {
"question": "Czy workflow może kontynuować?",
"context": "Najpierw sprawdź wygenerowany dokument.",
"resumeUrl": "{{ $execution.resumeUrl }}",
"choices": [
{ "value": "approve", "label": "Zatwierdź" },
{ "value": "reject", "label": "Odrzuć" }
]
}
}
Użytkownik zobaczy wybory w oknie wykonania. Po dokonaniu wyboru node Wait otrzyma między innymi decision. Następnie użyj na przykład noda Switch, aby określić właściwy dalszy przebieg.
Wartość wyboru może zawierać wyłącznie litery, cyfry, _ i -. Etykieta może zawierać zwykły czytelny tekst.
Ustawianie produkcyjnego callback URL
Produkcjny callback URL dla AI-Corporate to:
https://europe-west1-ai-corporate.cloudfunctions.net/n8nWorkflowCallback
Nie wklejaj tego URL jako stałego tekstu do każdego node’a callbacku. W polu URL noda HTTP Request wybierz Expression i użyj:
{{ $('Start workflow').first().json.body.integration.callbackUrl }}
AI-Corporate automatycznie dostarcza przy każdym uruchomieniu właściwy produkcyjny URL. Stałego URL powyżej użyj, aby podczas testów sprawdzić, czy wyrażenie wskazuje na AI-Corporate, a nie na AI-School lub AI-Public.
Callable triggerCustomN8nWorkflow, triggerN8nWorkflow i resumeN8nWorkflow są wywoływane przez samą aplikację. Nie musisz ustawiać tych URL-i w n8n.
Obsługa błędów
Przewidywane błędy wysyłaj jako callback typu failed. Dla nieoczekiwanych błędów node’ów utwórz dodatkowo centralny Error Workflow:
-
Utwórz nowy workflow z node’em Error Trigger.
-
Dodaj następnie node HTTP Request z Method: POST.
-
W polu URL wpisz ten stały produkcyjny URL:
https://europe-west1-ai-corporate.cloudfunctions.net/n8nWorkflowExecutionFailed -
Wybierz Authentication: None i dodaj nagłówek
n8n-handihow-namez tajną domyślną wartością administratora platformy. -
Wybierz body JSON i wklej:
{
"executionId": "{{ $json.execution.id }}",
"workflowId": "{{ $json.workflow.id }}",
"workflowName": "{{ $json.workflow.name }}",
"lastNode": "{{ $json.execution.lastNodeExecuted }}",
"message": "{{ $json.execution.error.message }}"
}
- Aktywuj Error Workflow.
- Otwórz ustawienia zwykłego workflow i wybierz go w sekcji Error Workflow.
Bezpośrednio po Start workflow wyślij co najmniej jeden callback z executionId: "{{ $execution.id }}". Tylko wtedy AI-Corporate może powiązać nieoczekiwany błąd z właściwym uruchomieniem.
Ważne ograniczenia
- Obsługiwane są tylko triggery webhook.
- Obsługiwane są tylko produkcyjne URL-e webhooków.
- Testowe URL-e webhooków z
/webhook-test/są odrzucane. - Obsługiwany jest tylko POST.
- Obsługiwane jest tylko ogólne uwierzytelnianie nagłówkiem.
- Wartość nagłówka jest w aplikacji traktowana jako sekret.
- Tokeny callbacków i URL-e resume są przetwarzane wyłącznie po stronie serwera i nie są bezpośrednio dostępne dla użytkowników.
- Tenant jest ustalany po stronie serwera na podstawie zalogowanego użytkownika, a nie na podstawie wartości wysyłanej przez przeglądarkę.
Rozwiązywanie problemów
- 404 lub webhook nie jest zarejestrowany: aktywuj workflow w n8n i użyj produkcyjnego URL.
- Błąd uwierzytelniania: sprawdź, czy nazwa nagłówka i wartość w obu systemach są dokładnie takie same.
- Brak danych: sprawdź, czy nazwy pól w aplikacji odpowiadają kluczom oczekiwanym przez n8n.
- Brak żądania w n8n: sprawdź, czy workflow zaczyna się od webhook trigger i używa POST.
- Okno wykonania pozostaje otwarte: jeśli włączyłeś Het einde van de workflow melden, sprawdź, czy n8n wysyła końcowy callback
completed,failedlubrejected. Jeśli nie oczekujesz callbacków, wyłącz wszystkie trzy opcje przy rejestracji. - Brak widocznego postępu: sprawdź, czy przy rejestracji włączono Tussentijdse voortgang melden, czy obiekt
integrationzostał zachowany i czy każdy callback ma unikalnyeventId. - Przyciski zatwierdzania nie działają: sprawdź node Wait,
resumeUrl, uwierzytelnianie nagłówkiem i dozwolone znaki wchoices[].value.