n8n workflows
AI-Corporate może uruchamiać przepływy n8n za pomocą produkcyjnego webhooka. Jest to przydatne, gdy poza AI-Corporate chcesz uruchomić zautomatyzowany proces, na przykład utworzenie zadania, aktualizację rekordu CRM, uruchomienie przepływu raportowania lub przekazanie danych z formularza do innego systemu.
Przykład: artykuł informacyjny na stronie firmowej
Załóżmy, że organizacja stworzyła przepływ n8n, który publikuje artykuł informacyjny na stronie WordPress firmy. W AI-Corporate wpisujesz wtedy jedynie krótki fragment tekstu, na przykład kilka zdań o studium przypadku klienta, wydarzeniu lub wewnętrznym kamieniu milowym. Z tym tekstem uruchamiasz przepływ w n8n.
Przepływ n8n może następnie zrobić między innymi:
- Z krótkiego tekstu stworzyć ładny szkic tekstu za pomocą węzła LLM i promptu dopasowanego do tonu organizacji.
- Zlecić stworzenie odpowiedniej ilustracji za pomocą drugiego węzła LLM, na przykład w kolorach marki i w rozpoznawalnym stylu ilustracyjnym.
- Przygotować lub opublikować tekst i obraz jako wpis na blogu na stronie WordPress.
Tak AI-Corporate i n8n współpracują: w AI-Corporate użytkownik wybiera przepływ i wprowadza niezbędne informacje. Następnie n8n wykonuje zautomatyzowane kroki i zapewnia, że artykuł pojawi się na stronie w odpowiedni sposób.
Co robi ta integracja?
Uruchamiasz przepływ n8n z widoku przepływu. Tylko produkcyjny webhook, POST i autoryzacja nagłówkami są obowiązkowe. Pola i potwierdzenia zwrotne z n8n są opcjonalne i mogą być skonfigurowane niezależnie od siebie.
- Jeśli przepływ nie ma pól, webhook zostanie wywołany od razu.
- Jeśli przepływ ma pola, najpierw otworzy się formularz. Użytkownik wypełnia pola i uruchamia przepływ przyciskiem.
- Wartości wypełnione są przesyłane jako JSON w żądaniu POST do webhooka n8n.
- Bez zwrotnych potwierdzeń AI-Corporate potwierdza tylko, że przepływ został uruchomiony i działa dalej w n8n. Okno nie pokazuje spinnera i można je natychmiast zamknąć.
- Jeśli to w rejestracji włączono, przepływ może wysyłać pośrednie kroki lub koniec z powrotem do AI-Corporate.
- Jeśli zatwierdzenie w rejestracji jest włączone, użytkownik może dokonać wyboru bezpośrednio w AI-Corporate. Następnie n8n kontynuuje od stanu oczekującego.
Jak działa ta integracja w AI-Corporate?
Administrator rejestruje przepływ następująco:
- Przejdź do Asystenci.
- Otwórz Przepływy.
- Wybierz Nowy przepływ n8n.
- Wpisz nazwę przepływu i adres produkcyjny n8n.
- Skonfiguruj Header authentication z nazwą nagłówka i sekretnego wartości nagłówka.
- W sekcji Powiadomienia z n8n zaznacz tylko te elementy, które faktycznie zostały zbudowane w tym przepływie n8n: postęp, zatwierdzenie i/lub koniec przepływu.
- Opcjonalnie dodaj pola, które mają być wysyłane w żądaniu POST.
- Zapisz przepływ.
Wszystkie trzy opcje zwrotów domyślnie są 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 jedynie wyświetlać potwierdzenie uruchomienia, czy ma czekać na dalsze sygnały.
Pól
- Pola są opcjonalne.
- Każde pole ma nazwę pola i 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 Jeden wybór i Wiele wyborów dodaj dostępne opcje. Jeden wybór będzie wyświetlany jako kompaktowa lista rozwijana; Wiele wyborów wyświetla pola wyboru. Wybrana wartość (lub wartości) są przesyłane w JSON body.
- Pola obowiązkowe muszą być wypełnione przed uruchomieniem przepływu.
- Nazwa pola staje się kluczem w JSON body wysyłanym do n8n.
Tworzenie kompatybilnego przepływu w n8n
- Utwórz nowy przepływ w n8n.
- Dodaj na początku węzeł Webhook.
- Nadaj temu węzł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 i wartości sekretnych co w AI-Corporate.
- Ustaw Respond lub Response Mode na Immediately.
- Skopiuj Production URL do pola n8n production-url w AI-Corporate. Nie używaj testowego URL z
/webhook-test/. - Aktywuj przepływ.
Odebrane dane znajdują się pod body; dane techniczne integracji pod body.integration. Nie usuwaj ich w edytorze pól, ustawianym lub węźle Code.
Przykład JSON body
Gdy definiujesz pola o nazwach prompt, klantnaam, doelgroepen i datum, n8n otrzymuje na przykład następujący JSON body. AI-Corporate automatycznie dodaje obiekt integration.
{
"prompt": "Maak een korte samenvatting van de aanvraag.",
"klantnaam": "Voorbeeldorganisatie",
"doelgroepen": ["medewerkers", "klanten"],
"datum": "2026-09-22",
"integration": {
"runId": "chat-document-id",
"tenant": "default",
"callbackUrl": "https://europe-west1-ai-corporate.cloudfunctions.net/n8nWorkflowCallback",
"callbackToken": "tijdelijk-token-voor-deze-uitvoering"
}
}
Token callbacka powinien być przypisany do jednego uruchomienia. Nie zapisuj go w logach, w stałej konfiguracji ani w innych systemach.
Opcjonalnie: zwrotnie info o postępie i zakończeniu
AI-Corporate może pokazywać tylko to, co zwraca n8n. Używaj tych callbacków tylko wtedy, gdy w rejestracji włączysz opcje Powiadamiaj o postępie w trakcie i/lub Powiadom o zakończeniu przepływu.
Skonfiguruj każdy węzeł callback następująco:
-
Wybierz Method: POST.
-
W polu 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 następujących nagłówków:
Authorization: Bearer {{ $('Start workflow').first().json.body.integration.callbackToken }}
Content-Type: application/json
Na przykład wyślij ten komunikat, gdy krok się zaczyna:
{
"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": "Document maken"
},
"message": "Het document wordt gemaakt."
}
- Dla każdego zdarzenia w tej samej realizacji użyj unikalnego
eventId. - Użyj jasnego polskiego
step.label; ten tekst będzie wyświetlany w aplikacji. - Jeśli włączono Powiadamianie o zakończeniu przepływu, na końcu zawsze wyślij
type: "completed",type: "failed"lubtype: "rejected". - Do
completeddodaj opcjonalnie obiektoutputz wynikiem. - W przypadku
failedwyślij zrozumiały komunikat błędu. Wykonanie zakończy się również w aplikacji.
Opcjonalnie: prośba o zatwierdzenie w aplikacji
Użyj węzła n8n Wait z opcją On Webhook Call, gdy przepływ może kontynuować dopiero po wyborze. Wyślij przed węzłem Wait callback z type: "approval_required":
Skonfiguruj węzeł Wait na Resume: On Webhook Call, HTTP Method: POST i Authentication: Header Auth. Wybierz tę samą wiarygodność Header Auth co przy Start workflow. Dodaj po w Wait węzeł Switch i sprawdź 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": "Document controleren"
},
"approval": {
"question": "Mag przepływ kontynuować?",
"context": "Najpierw sprawdź wygenerowany dokument.",
"resumeUrl": "{{ $execution.resumeUrl }}",
"choices": [
{ "value": "approve", "label": "Zatwierdzić" },
{ "value": "reject", "label": "Odrzucić" }
]
}
}
Użytkownik widzi wybory w oknie wykonania. Po dokonaniu wyboru Wait node otrzymuje między innymi decision. Następnie użyj np. węzła Switch, aby określić właściwy dalszy krok.
Wartość wyboru może zawierać tylko litery, cyfry, _ i -; etykieta może zawierać zwykły, czytelny tekst.
Produkcyjny ustawienie URL-a callback
Produkcja callback-url dla AI-Corporate to:
https://europe-west1-ai-corporate.cloudfunctions.net/n8nWorkflowCallback
Nie wklejaj tego URL-a jako stałego tekstu w każdej węzł callbacka. W polu URL w węźle HTTP Request wybierz Expression i użyj:
{{ $('Start workflow').first().json.body.integration.callbackUrl }}
AI-Corporate dostarcza przy każdym uruchomieniu właściwy production-url. Stały URL powyżej służy podczas testów do weryfikacji, czy wyrażenie odnosi się do AI-Corporate, a nie do AI-School lub AI-Public.
Wywołujące triggerCustomN8nWorkflow, triggerN8nWorkflow i resumeN8nWorkflow są wywoływane przez samą aplikację. Nie trzeba ich konfigurować w n8n.
Obsługa błędów
Zwracaj spodziewane błędy za pomocą callbacka o typie failed. Dla nieoczekiwanych błędów węzłów utwórz centralny przepływ błędów:
-
Utwórz nowy przepływ z węzłem Error Trigger.
-
Dodaj następnie węzeł HTTP Request z metodą POST.
-
Wypełnij w polu URL stały URL produkcyjny:
https://europe-west1-ai-corporate.cloudfunctions.net/n8nWorkflowExecutionFailed -
Wybierz Authentication: None i dodaj nagłówek
n8n-handihow-namez domyślną, secretvalue platform administratora. -
Wybierz JSON body 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 przepływu i wybierz ten przepływ przy Error Workflow.
Wysyłaj bezpośrednio po Start workflow co najmniej jeden callback z executionId: "{{ $execution.id }}". Tylko wtedy AI-Corporate będzie mogło powiązać nieoczekiwany błąd z właściwym uruchomieniem.
Ważne ograniczenia
- Obsługiwane są tylko wyzwalacze webhook.
- Obsługiwane są tylko produkcyjne URL-e webhooków.
- URL-e testowe webhooków z
/webhook-test/są odrzucane. - Obsługiwane jest tylko POST.
- Obsługiwane jest tylko ogólne uwierzytelnianie nagłówków.
- Wartość nagłówka traktowana jest w aplikacji jako tajna.
- Tokeny callback i URL-e resume są przetwarzane wyłącznie po stronie serwera i nie są bezpośrednio dostępne dla użytkowników.
- Tenant jest określany po stronie serwera na podstawie zalogowanego użytkownika, a nie z wartości wysyłanej przez przeglądarkę.
Rozwiązywanie problemów
- 404 lub webhook nie zarejestrowany: aktywuj przepływ w n8n i użyj produkcyjnego URL.
- Błąd uwierzytelniania: sprawdź, czy nazwa nagłówka i wartość są identyczne w obu systemach.
- Brak danych: sprawdź, czy nazwy pól w aplikacji odpowiadają kluczom, które n8n oczekuje.
- Brak żądania w n8n: sprawdź, czy przepływ zaczyna się od wyzwalacza webhook i czy używany jest POST.
- Okno wykonania kręci się w nieskończoność: jeśli włączona jest opcja zakończenia przepływu, sprawdź, czy n8n wysyła ostatni callback
completed,failedlubrejected. Jeśli nie spodziewasz się zwrotnych informacji, wyłącz wszystkie trzy opcje w rejestracji. - Brak widocznego postępu: sprawdź, czy w rejestracji włączono Powiadamianie o postępie w trakcie, lub czy obiekt
integrationjest zachowany i czy każdy callback ma unikalnyeventId. - Przyciski zatwierdzania nie działają: sprawdź węzeł Wait,
resumeUrl, uwierzytelnianie nagłówków i dozwolone znaki wchoices[].value.