przepływy pracy n8n
AI-Public może uruchamiać przepływy pracy n8n za pomocą produkcyjnego webhooka. Jest to przydatne, gdy chcesz uruchomić zautomatyzowany proces poza AI-Public, na przykład tworzenie zadania, aktualizację rekordu CRM, uruchomienie przepływu raportowania lub przekazanie danych formularza do innego systemu.
Przykład: artykuł informacyjny na stronie organizacji
Załóżmy, że organizacja utworzyła przepływ pracy n8n, który publikuje artykuł informacyjny na stronie WordPress. W AI-Public wpisujesz wtedy tylko krótki tekst, na przykład kilka zdań o spotkaniu, projekcie lub publicznym ogłoszeniu. Tym tekstem uruchamiasz przepływ pracy w n8n.
Przepływ pracy n8n może następnie na przykład:
- Zamienić krótki tekst w dopracowaną wersję roboczą za pomocą węzła LLM i promptu dobrze pasującego do tonu organizacji.
- Wygenerować odpowiednią ilustrację za pomocą drugiego węzła LLM, na przykład w kolorach identyfikacji wizualnej i w rozpoznawalnym stylu ilustracyjnym.
- Przygotować lub opublikować tekst i obraz jako wpis na blogu na stronie WordPress.
Tak współpracują AI-Public i n8n: w AI-Public użytkownik wybiera przepływ pracy i wypełnia wymagane informacje. Następnie n8n wykonuje zautomatyzowane kroki i dba o to, aby artykuł informacyjny trafił na stronę.
Co robi ta integracja?
Uruchamiasz przepływ pracy n8n z poziomu przeglądu przepływów pracy. Wymagane są tylko produkcyjny webhook, POST i Header Auth. Pola i zwroty z n8n są opcjonalne i można je konfigurować niezależnie od siebie.
- Jeśli przepływ pracy nie ma pól, webhook jest wywoływany natychmiast.
- Jeśli przepływ pracy ma pola, najpierw otwiera się formularz. Użytkownik wypełnia pola, a następnie uruchamia przepływ pracy przyciskiem.
- Wprowadzone wartości są wysyłane jako JSON w żądaniu POST do webhooka n8n.
- Bez zwrotów AI-Public potwierdza tylko, że przepływ pracy 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, przepływ pracy może zwracać do AI-Public pośrednie kroki lub zakończenie.
- Jeśli zostało włączone zatwierdzanie przy rejestracji, użytkownik może dokonać wyboru bezpośrednio w AI-Public. Następnie n8n kontynuuje od kroku oczekującego.
Tworzenie przepływu pracy n8n w AI-Public
Administrator rejestruje przepływ pracy w następujący sposób:
- Przejdź do Asystenci.
- Otwórz zakładkę Asystenci przepływów pracy.
- Kliknij w kartę u góry na Nowy przepływ pracy i wybierz przepływ pracy n8n.
- Wprowadź nazwę przepływu pracy i produkcyjny URL n8n.
- Skonfiguruj Header authentication z nazwą nagłówka i tajną wartością nagłówka.
- W sekcji Zwroty z n8n zaznacz tylko te elementy, które rzeczywiście są zbudowane w tym przepływie pracy n8n: postęp, zatwierdzenie i/lub zakończenie przepływu pracy.
- Opcjonalnie dodaj pola, które mają być wysyłane w żądaniu POST.
- Zapisz przepływ pracy.
Wszystkie trzy opcje zwrotów są domyślnie wyłączone. Jeśli później dodasz callbacki lub krok zatwierdzenia w n8n, zaktualizuj także rejestrację w AI-Public. Dzięki temu dialog wie, czy ma pokazać tylko potwierdzenie startu, czy też 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, jeden wybór i wiele wyborów.
- Dla Jednego wyboru i Wielu wyborów dodaj dostępne opcje. Jeden wybór jest wyświetlany 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 będzie można uruchomić przepływ pracy.
- Nazwa pola staje się kluczem w body JSON wysyłanym do n8n.
Tworzenie kompatybilnego przepływu pracy w n8n
- Utwórz nowy przepływ pracy w n8n.
- Dodaj jako pierwszy 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 oraz tajnej wartości co w AI-Public.
- Ustaw Respond lub Response Mode na Immediately.
- Skopiuj Production URL do pola n8n productie-url w AI-Public. Nie używaj testowego URL z
/webhook-test/. - Aktywuj przepływ pracy.
Otrzymane dane znajdują się w body; techniczne dane integracyjne znajdują się w body.integration. Nie usuwaj ich w węźle 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-Public automatycznie dodaje obiekt integration.
{
"prompt": "Stwórz krótkie podsumowanie zgłoszenia.",
"klantnaam": "Przykładowa organizacja",
"doelgroepen": ["mieszkańcy", "pracownicy"],
"datum": "2026-09-22",
"integration": {
"runId": "chat-document-id",
"tenant": "default",
"callbackUrl": "https://europe-west1-ai-public-pro.cloudfunctions.net/n8nWorkflowCallback",
"callbackToken": "tymczasowy-token-dla-tego-wykonania"
}
}
Token callbacka należy do jednego wykonania. Nie zapisuj go w logach, stałej konfiguracji ani w innych systemach.
Opcjonalnie: wysyłanie postępu i zakończenia
AI-Public może wyświetlić tylko to, co n8n zwróci. Używaj tych callbacków tylko wtedy, gdy przy rejestracji włączyłeś Zgłaszaj pośredni postęp i/lub Zgłaszaj zakończenie przepływu pracy.
Skonfiguruj każdy węzeł callbacka w następujący sposób:
-
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
Wyślij na przykład taką wiadomość, gdy rozpoczyna się 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": "Tworzenie dokumentu"
},
"message": "Dokument jest tworzony."
}
- Dla każdego zdarzenia w obrębie tego samego wykonania użyj unikalnego
eventId. - Użyj czytelnego holenderskiego
step.label; ten tekst jest wyświetlany w aplikacji. - Jeśli włączyłeś Zgłaszaj zakończenie przepływu pracy, na końcu zawsze wysyłaj
type: "completed",type: "failed"lubtype: "rejected". - Do
completedmożesz opcjonalnie dodać obiektoutputz wynikiem. - W przypadku
failedwyślij zrozumiały komunikat o błędzie. Wykonanie zatrzyma się wtedy także w aplikacji.
Opcjonalnie: proszenie o zatwierdzenie w aplikacji
Użyj węzła n8n Wait z On Webhook Call, gdy przepływ pracy ma kontynuować dopiero po wyborze. Przed węzłem Wait wyślij 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 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": "Sprawdzenie dokumentu"
},
"approval": {
"question": "Czy przepływ pracy 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 węzeł Wait otrzymuje między innymi decision. Następnie użyj na przykład węzła Switch, aby określić właściwy dalszy przebieg.
Wartość wyboru może zawierać tylko litery, cyfry, _ i -. Etykieta może natomiast zawierać zwykły czytelny tekst.
Ustawienie produkcyjnego callback-url
Produkcjny callback-url dla AI-Public to:
https://europe-west1-ai-public-pro.cloudfunctions.net/n8nWorkflowCallback
Nie wklejaj tego URL-a jako stałego tekstu w każdym węźle callbacka. W polu URL węzła HTTP Request wybierz Expression i użyj:
{{ $('Start workflow').first().json.body.integration.callbackUrl }}
AI-Public dostarcza dzięki temu przy każdym uruchomieniu automatycznie właściwy produkcyjny URL. Powyższy stały URL służy do sprawdzenia podczas testów, czy wyrażenie wskazuje na AI-Public, a nie na AI-School lub AI-Corporate.
Callable triggerCustomN8nWorkflow, triggerN8nWorkflow i resumeN8nWorkflow są wywoływane przez samą aplikację. Nie musisz ustawiać tych URL-i w n8n.
Obsługa błędów
Wysyłaj oczekiwane błędy z powrotem za pomocą callbacka typu failed. Dla nieoczekiwanych błędów węzłów utwórz dodatkowo centralny Error Workflow:
-
Utwórz nowy przepływ pracy z węzłem Error Trigger.
-
Następnie dodaj węzeł HTTP Request z Method: POST.
-
W polu URL wpisz ten stały produkcyjny URL:
https://europe-west1-ai-public-pro.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 przepływu pracy i wybierz go w polu Error Workflow.
Bezpośrednio po Start workflow wyślij 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-e webhooków.
- Testowe URL-e webhooków z
/webhook-test/są odrzucane. - Obsługiwany jest tylko POST.
- Obsługiwane jest tylko generic header authentication.
- 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 określany po stronie serwera na podstawie zalogowanego użytkownika, a nie na podstawie wartości przesyłanej przez przeglądarkę.
Rozwiązywanie problemów
- 404 lub webhook niezarejestrowany: aktywuj przepływ pracy w n8n i użyj produkcyjnego URL-a.
- 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 przepływ pracy zaczyna się od wyzwalacza webhook i używa POST.
- Okno wykonania cały czas się obraca: jeśli włączyłeś Zgłaszaj zakończenie przepływu pracy, sprawdź, czy n8n wysyła końcowy callback
completed,failedlubrejected. Jeśli nie oczekujesz zwrotów, wyłącz wszystkie trzy opcje przy rejestracji. - Brak widocznego postępu: sprawdź, czy Zgłaszaj pośredni postęp jest włączone przy rejestracji, czy obiekt
integrationpozostaje zachowany i czy każdy callback ma unikalnyeventId. - Przyciski zatwierdzania nie działają: sprawdź węzeł Wait,
resumeUrl, header authentication i dozwolone znaki wchoices[].value.