Przejdź do głównej treści

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:

  1. Z krótkiej treści stworzyć sensowny tekst roboczy za pomocą węzła LLM i prompta dopasowanego do tonu organizacji.
  2. Zlecić stworzenie odpowiedniej ilustracji za pomocą drugiego węzła LLM, na przykład w kolorach identyfikujących markę i w rozpoznawalnym stylu ilustracyjnym.
  3. 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:

  1. Przejdź do Asystenci.
  2. Otwórz Przepływy.
  3. Wybierz Nowy n8n workflow.
  4. Wprowadź nazwę workflow i adres produkcyjny n8n.
  5. Skonfiguruj Header authentication z nazwą nagłówka i tajną wartością nagłówka.
  6. 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.
  7. Opcjonalnie dodaj pola, które mają być przekazywane w żądaniu POST.
  8. 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

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

  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

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" lub type: "rejected".
  • Do completed możesz dodać obiekt output z wynikiem.
  • Do failed dołą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:

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

  2. Następnie dodaj węzeł HTTP Request z metodą POST.

  3. Wypełnij w URL stały adres produkcyjny:

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

  5. 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 }}"
}
  1. Aktywuj Error Workflow.
  2. 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, failed lub rejected. 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 integration został zachowany i czy każdy callback ma unikalny eventId.
  • Przycisk zatwierdzania nie działa: sprawdź węzeł Wait, resumeUrl, autoryzację nagłówków i dozwolone znaki w choices[].value.
WhatsApp