Przejdź do głównej treści

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:

  1. Zamienić krótki tekst w dopracowaną wersję roboczą za pomocą węzła LLM i promptu dobrze pasującego do tonu organizacji.
  2. Wygenerować odpowiednią ilustrację za pomocą drugiego węzła LLM, na przykład w kolorach identyfikacji wizualnej i w rozpoznawalnym stylu ilustracyjnym.
  3. 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:

  1. Przejdź do Asystenci.
  2. Otwórz zakładkę Asystenci przepływów pracy.
  3. Kliknij w kartę u góry na Nowy przepływ pracy i wybierz przepływ pracy n8n.
  4. Wprowadź nazwę przepływu pracy i produkcyjny URL n8n.
  5. Skonfiguruj Header authentication z nazwą nagłówka i tajną wartością nagłówka.
  6. 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.
  7. Opcjonalnie dodaj pola, które mają być wysyłane w żądaniu POST.
  8. 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​

  1. Utwórz nowy przepływ pracy w n8n.
  2. Dodaj jako pierwszy węzeł Webhook.
  3. Nadaj temu węzłowi dokładnie nazwę Start workflow. Poniższe przykładowe wyrażenia używają tej nazwy.
  4. Ustaw HTTP Method na POST.
  5. Wybierz Authentication: Header Auth i użyj tej samej nazwy nagłówka oraz tajnej wartości co w AI-Public.
  6. Ustaw Respond lub Response Mode na Immediately.
  7. Skopiuj Production URL do pola n8n productie-url w AI-Public. Nie używaj testowego URL z /webhook-test/.
  8. 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:

  1. Wybierz Method: POST.

  2. Kliknij przy URL na Expression i wklej:

    {{ $('Start workflow').first().json.body.integration.callbackUrl }}
  3. Wybierz Authentication: None.

  4. Włącz Send Headers i dodaj poniższe nagłówki.

  5. 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" lub type: "rejected".
  • Do completed możesz opcjonalnie dodać obiekt output z wynikiem.
  • W przypadku failed wyś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:

  1. Utwórz nowy przepływ pracy z węzłem Error Trigger.

  2. Następnie dodaj węzeł HTTP Request z Method: POST.

  3. W polu URL wpisz ten stały produkcyjny URL:

    https://europe-west1-ai-public-pro.cloudfunctions.net/n8nWorkflowExecutionFailed
  4. Wybierz Authentication: None i dodaj nagłówek n8n-handihow-name z tajną domyślną wartością administratora platformy.

  5. 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 }}"
}
  1. Aktywuj Error Workflow.
  2. 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, failed lub rejected. 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 integration pozostaje zachowany i czy każdy callback ma unikalny eventId.
  • Przyciski zatwierdzania nie działają: sprawdź węzeł Wait, resumeUrl, header authentication i dozwolone znaki w choices[].value.