n8n workflows
AI-Public może uruchamiać przepływy n8n za pomocą produkcyjnego webhooka. To wygodne, gdy chcesz uruchomić zautomatyzowany proces poza AI-Public, na przykład utworzenie zadania, aktualizację rekordu CRM, uruchomienie przepływu raportowego lub przekazanie danych formularza do innego systemu.
Przykład: artykuł na stronie organizacji
Załóżmy, że organizacja stworzyła przepływ n8n, który publikuje artykuł na stronie WordPress. W AI-Public wpisujesz wtedy tylko krótką treść, na przykład kilka zdań o spotkaniu, projekcie lub publicznym ogłoszeniu. Z tą treścią uruchamiasz przepływ w n8n.
Przepływ n8n może następnie na przykład:
- Z krótkiej treści stworzyć sensowny tekst roboczy za pomocą węzła LLM i prompta dopasowanego do tonu organizacji.
- Zlecić stworzenie odpowiedniej ilustracji za pomocą drugiego węzła LLM, na przykład w kolorach identyfikujących markę i w rozpoznawalnym stylu ilustracyjnym.
- Przygotować lub opublikować tekst i grafikę jako post na blogu na stronie WordPress.
Tak współpracują AI-Public i n8n: w AI-Public użytkownik wybiera workflow i wprowadza niezbędne informacje. następnie n8n wykonuje zautomatyzowane kroki i zapewnia, że artykuł pojawi się poprawnie na stronie.
Co robi ta integracja?
Rozpoczynasz workflow w n8n z widoku przepływu. Tylko produkcyjny webhook, POST i autoryzacja nagłówkiem są obowiązkowe. Pola i zwroty z n8n są opcjonalne i mogą być ustawiane niezależnie od siebie.
- Jeśli workflow nie ma pól, webhook zostaje natychmiast wywołany.
- Jeśli workflow ma pola, najpierw pojawi się formularz. Użytkownik wypełnia pola i następnie uruchamia workflow przyciskiem.
- Wartości wypełnione są przesyłane jako JSON w żądaniu POST do webhooka n8n.
- Bez zwrotów potwierdza AI-Public tylko, że workflow został uruchomiony i nadal działa w n8n. Okno nie pokazuje spinnera i można je od razu zamknąć.
- Jeśli to zostało włączone podczas rejestracji, workflow może wysyłać pośrednie kroki lub zakończenie z powrotem do AI-Public.
- Jeśli zatwierdzenie zostało włączone podczas rejestracji, użytkownik może dokonać wyboru bezpośrednio w AI-Public. Następnie n8n kontynuuje od kroku oczekującego.
Utworzenie n8n workflow w AI-Public
Admin rejestruje workflow w następujący sposób:
- Przejdź do Asystenci.
- Otwórz Przepływy.
- Wybierz Nowy n8n workflow.
- Wprowadź nazwę workflow i adres produkcyjny n8n.
- Skonfiguruj Header authentication z nazwą nagłówka i tajną wartością nagłówka.
- W sekcji Terugmeldingen uit n8n zaznacz tylko te elementy, które faktycznie zostały zbudowane w tym workflow w n8n: postęp, zatwierdzenie i/lub zakończenie przepływu.
- Opcjonalnie dodaj pola, które mają być przekazywane w żądaniu POST.
- Zapisz workflow.
Wszystkie trzy opcje zwrotów są domyślnie wyłączone. Jeśli później dodasz callbacks lub krok zatwierdzenia w n8n, zaktualizuj także rejestrację w AI-Public. Okno dialogowe wtedy wie, czy ma wyświetlać tylko potwierdzenie uruchomienia, czy dalej czekać na dalsze sygnały.
Pola
- Pola są opcjonalne.
- Każde pole ma jedną nazwę pola i typ.
- Obsługiwane typy pól to krótki tekst, długi tekst, liczba, tak/nie, data, pojedynczy wybór i wiele wyborów.
- W Pojedynczy wybór i Wielokrotny wybór dodasz dostępne opcje. Pojedynczy wybór będzie wyświetlany jako kompaktowa lista wyboru; Wielokrotny wybór pokazuje pola wyboru. Wybrana wartość lub wartości są wysyłane w JSON body.
- Wymagane pola muszą być wypełnione przed uruchomieniem workflow.
- Nazwa pola staje się kluczem w JSON body, który jest wysyłany do n8n.
Tworzenie kompatybilnego workflow w n8n
- Utwórz w n8n nowy workflow.
- Dodaj jako pierwszą kartę węzeł Webhook.
- Nadaj temu węzłowi dokładnie nazwę Start workflow. Przykładowe wyrażenia poniżej używają tej nazwy.
- Ustaw HTTP Method na POST.
- Wybierz Authentication: Header Auth i użyj tej samej nazwy nagłówka i wartości tajnej co w AI-Public.
- Ustaw Respond lub Response Mode na Immediately.
- Skopiuj Production URL do pola n8n production-url w AI-Public. Nie używaj testowego URL z
/webhook-test/. - Aktywuj workflow.
Odebrane dane znajdują się pod body; dane techniczne integracji znajdują się pod body.integration. Nie kasuj ich w edytowanych polach, ustawieniach ani w węźle Code.
Przykład JSON body
Jeżeli zdefiniujesz pola o nazwach prompt, klantnaam, doelgroepen i datum, n8n otrzyma na przykład takie body JSON. AI-Public automatycznie doda obiekt integration.
{
"prompt": "Maak een korte samenvatting van de aanvraag.",
"klantnaam": "Voorbeeldorganisatie",
"doelgroepen": ["inwoners", "medewerkers"],
"datum": "2026-09-22",
"integration": {
"runId": "chat-document-id",
"tenant": "default",
"callbackUrl": "https://europe-west1-ai-public-pro.cloudfunctions.net/n8nWorkflowCallback",
"callbackToken": "tijdelijk-token-voor-deze-uitvoering"
}
}
Token callback należy do jednej wykonania. Nie zapisywaj go w logach, w stałych konfiguracjach ani w innych systemach.
Opcjonalnie: zwroty postępu i zakończenia
AI-Public może pokazywać tylko to, co zwróci n8n. Używaj tych callbacków tylko, jeśli podczas rejestracji włączono Powiadamianie o postępach w czasie realizacji i/lub Powiadamianie o zakończeniu przepływu.
Skonfiguruj każdy callback-node następująco:
-
Wybierz Method: POST.
-
Kliknij przy URL na 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 tę wiadomość, gdy powinien się zacząć krok:
{
"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 stwierdzenia po holendersku
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
completedmożesz dodać obiektoutputz wynikiem. - Do
faileddołącz sensowny komunikat o błędzie. Realizacja zostaje również zatrzymana w aplikacji.
Opcjonalnie: prośba o zatwierdzenie w aplikacji
Użyj węzła n8n Wait z On Webhook Call, gdy przepływ może kontynuować dopiero po decyzji. 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ą poświadczenie Header Auth co dla Start workflow. Po węźle Wait dodaj węzeł Switch i sprawdź {{ $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": "Zgoda" },
{ "value": "reject", "label": "Odrzuć" }
]
}
}
Użytkownik widzi wybory w oknie realizacji. Po dokonaniu wyboru Wait node otrzymuje między innymi decision. Następnie użyj na przykład węzła Switch, aby określić dalsze kroki.
Wartość wyboru może zawierać tylko litery, cyfry, _ i -. Etykieta może zawierać zwykły tekst.
Ustawienie produkcyjnego URL callback
Produkcja callback-url dla AI-Public to:
https://europe-west1-ai-public-pro.cloudfunctions.net/n8nWorkflowCallback
Nie wklejaj tego URL jako stały tekst w każdą nodę callback. Wybierz w polu URL w węźle HTTP Request opcję Expression i użyj:
{{ $('Start workflow').first().json.body.integration.callbackUrl }}
AI-Public zapewni przy każdym uruchomieniu właściwy URL produkcyjny. Stały URL powyżej można użyć podczas testów, aby sprawdzić, czy wyrażenie odwołuje się do AI-Public, a nie do AI-School lub AI-Corporate.
Wywołania triggerCustomN8nWorkflow, triggerN8nWorkflow i resumeN8nWorkflow są wywoływane przez samą aplikację. Nie musisz konfigurować tych URL-i w n8n.
Obsługa błędów
Wysyłaj oczekiwane błędy za pomocą callbacka typu failed. Dla nieoczekiwanych błędów węzła utwórz także centralne przepływy błędów:
-
Utwórz nowy przepływ z węzłem Error Trigger.
-
Następnie dodaj węzeł HTTP Request z metodą POST.
-
Wypełnij w URL stały adres produkcyjny:
https://europe-west1-ai-public-pro.cloudfunctions.net/n8nWorkflowExecutionFailed -
Wybierz Authentication: None i dodaj nagłówek
n8n-handihow-namez domyślną tajną wartością platformowego 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 workflow i wybierz go jako Error Workflow.
Wyślij od razu po Start workflow co najmniej jeden callback z executionId: "{{ $execution.id }}". Tylko wtedy AI-Public może powiązać nieoczekiwany błąd z właściwym wykonaniem.
Ważne ograniczenia
- Obsługiwane są tylko wyzwalacze webhook.
- Obsługiwane są tylko produkcyjne URL-ysy webhooków.
- Testowe URL-e webhooków z
/webhook-test/są odrzucane. - Obsługiwane jest tylko POST.
- Obsługiwane jest tylko generic header authentication.
- Wartość nagłówka jest traktowana w aplikacji jako tajna.
- Tokeny zwrotne i URL-e wznowienia są przetwarzane wyłącznie po stronie serwera i nie są bezpośrednio dostępne dla użytkowników.
- Tenant jest okrełany po stronie serwera na podstawie zalogowanego użytkownika, nie na podstawie wartości przesyłanej przez przeglądarkę.
Rozwiązywanie problemów
- 404 lub webhook niezarejestrowany: aktywuj workflow w n8n i użyj produkcyjnego URL.
- Błąd uwierzytelnienia: sprawdź, czy nazwa nagłówka i wartość są identyczne w obu systemach.
- Brak danych: sprawdź, czy nazwy pól w aplikacji odpowiadają kluczom, których oczekuje n8n.
- Brak żądania w n8n: sprawdź, czy workflow zaczyna się od webhooka i używa POST.
- Okno realizatora się kręci: jeśli włączono Powiadamianie o zakończeniu przepływu, sprawdź, czy n8n wysyła końcowy callback
completed,failedlubrejected. Jeśli nie spodziewasz się zwrotów, wyłącz wszystkie trzy opcje w rejestracji. - Brak widocznego postępu: sprawdź, czy podczas rejestracji włączono Powiadamianie o postępach w czasie realizacji, lub czy obiekt
integrationzostał zachowany i czy każdy callback ma unikalnyeventId. - Przycisk zatwierdzania nie działa: sprawdź węzeł Wait,
resumeUrl, autoryzację nagłówków i dozwolone znaki wchoices[].value.