workflow-uri n8n
AI-Public poate porni workflow-uri n8n printr-un webhook de producție. Acest lucru este util atunci când vrei să pornești un proces automatizat din afara AI-Public, de exemplu crearea unei sarcini, actualizarea unei înregistrări CRM, pornirea unui flux de raportare sau trimiterea datelor dintr-un formular către un alt sistem.
Exemplu: articol de știri pe site-ul organizației
Să presupunem că organizația a creat un workflow n8n care publică un articol de știri pe site-ul WordPress. În AI-Public completezi doar un scurt text, de exemplu câteva fraze despre o întâlnire, un proiect sau un anunț public. Cu acel text pornești workflow-ul în n8n.
Workflow-ul n8n poate apoi, de exemplu:
- Să transforme textul scurt într-un text de schiță bine redactat cu un nod LLM și un prompt potrivit tonului organizației.
- Să genereze o ilustrație adecvată cu un al doilea nod LLM, de exemplu în culorile brandului și într-un stil ilustrativ recognoscibil.
- Să pregătească sau să publice textul și imaginea ca articol de blog pe site-ul WordPress.
Așa colaborează AI-Public și n8n: în AI-Public, utilizatorul alege workflow-ul și completează informațiile necesare. n8n execută apoi pașii automatizați și se asigură că articolul ajunge ordonat pe site.
Ce face această integrare?
Pornești un workflow n8n din lista de workflow-uri. Doar webhook-ul de producție, POST și Header Auth sunt obligatorii. Câmpurile și notificările de revenire din n8n sunt opționale și pot fi configurate independent unele de altele.
- Dacă workflow-ul nu are câmpuri, webhook-ul este apelat imediat.
- Dacă workflow-ul are câmpuri, se deschide mai întâi un formular. Utilizatorul completează câmpurile și apoi pornește workflow-ul cu butonul.
- Valorile completate sunt trimise ca JSON într-un POST-request către webhook-ul n8n.
- Fără notificări de revenire, AI-Public confirmă doar că workflow-ul a fost pornit și continuă în n8n. Fereastra nu afișează un spinner și poate fi închisă imediat.
- Dacă acest lucru a fost activat la înregistrare, workflow-ul poate trimite înapoi către AI-Public pași intermediari sau finalizarea.
- Dacă aprobarea a fost activată la înregistrare, utilizatorul poate face o alegere direct în AI-Public. n8n continuă apoi de la pasul de așteptare.
Crearea unui workflow n8n în AI-Public
Un administrator înregistrează workflow-ul astfel:
- Mergi la Asistenți.
- Deschide fila Asistenți workflow.
- În cardul din partea de sus, apasă pe New workflow și alege n8n workflow.
- Completează numele workflow-ului și URL-ul de producție n8n.
- Configurează Header authentication cu un nume de header și o valoare secretă pentru header.
- Sub Notificări de revenire din n8n, bifează doar componentele care sunt într-adevăr construite în acest workflow n8n: progres, aprobare și/sau finalul workflow-ului.
- Adaugă, opțional, câmpurile care trebuie trimise în POST-request.
- Salvează workflow-ul.
Toate cele trei opțiuni de notificare de revenire sunt dezactivate implicit. Dacă mai târziu adaugi callback-uri sau un pas de aprobare în n8n, actualizează și înregistrarea în AI-Public. Dialogul știe astfel dacă trebuie să afișeze doar o confirmare de pornire sau să aștepte semnale suplimentare.
Câmpuri
- Câmpurile sunt opționale.
- Fiecare câmp are un singur nume de câmp și un tip.
- Tipurile de câmpuri acceptate sunt text scurt, text lung, număr, da/nu, dată, o singură alegere și mai multe alegeri.
- La O singură alegere și Mai multe alegeri adaugi opțiunile disponibile. O singură alegere este afișată ca o listă compactă; Mai multe alegeri afișează casete de selectare. Valoarea sau valorile alese sunt trimise în body-ul JSON.
- Câmpurile obligatorii trebuie completate înainte ca workflow-ul să poată fi pornit.
- Numele câmpului devine cheia din body-ul JSON trimis către n8n.
Crearea unui workflow compatibil în n8n
- Creează în n8n un workflow nou.
- Adaugă ca prim nod un Webhook.
- Dă acestui nod exact numele Start workflow. Exemplele de expresii de mai jos folosesc acest nume.
- Setează HTTP Method la POST.
- Alege Authentication: Header Auth și folosește același nume de header și aceeași valoare secretă ca în AI-Public.
- Setează Respond sau Response Mode la Immediately.
- Copiază Production URL în câmpul n8n productie-url din AI-Public. Nu folosi URL-ul de test cu
/webhook-test/. - Activează workflow-ul.
Datele primite se află sub body; datele tehnice de integrare se află sub body.integration. Nu le elimina într-un nod Edit Fields, Set sau Code.
Exemplu de body JSON
Dacă definești câmpuri cu numele prompt, klantnaam, doelgroepen și datum, n8n primește de exemplu acest body JSON. AI-Public adaugă automat obiectul 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"
}
}
Tokenul de callback aparține unei singure execuții. Nu îl salva în loguri, configurații fixe sau alte sisteme.
Opțional: trimiterea progresului și a finalizării
AI-Public poate afișa doar ceea ce raportează n8n. Folosește aceste callback-uri numai dacă la înregistrare ai activat Raportează progresul intermediar și/sau Raportează finalul workflow-ului.
Configurează fiecare nod de callback astfel:
-
Alege Method: POST.
-
La URL, apasă pe Expression și lipește:
{{ $('Start workflow').first().json.body.integration.callbackUrl }} -
Alege Authentication: None.
-
Activează Send Headers și adaugă header-ele de mai jos.
-
Activează Send Body și alege Body Content Type: JSON și Specify Body: Using JSON.
Folosește aceste header-e:
Authorization: Bearer {{ $('Start workflow').first().json.body.integration.callbackToken }}
Content-Type: application/json
Trimite, de exemplu, acest mesaj când începe un pas:
{
"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."
}
- Folosește pentru fiecare eveniment din aceeași execuție un
eventIdunic. - Folosește un
step.labelclar în limba neerlandeză; acest text este afișat în aplicație. - Dacă ai activat Raportează finalul workflow-ului, trimite la final întotdeauna
type: "completed",type: "failed"sautype: "rejected". - La
completed, poți adăuga opțional un obiectoutputcu rezultatul. - La
failed, trimite un mesaj de eroare ușor de înțeles. Execuția se oprește atunci și în aplicație.
Opțional: cererea de aprobare în aplicație
Folosește un nod n8n Wait cu On Webhook Call atunci când workflow-ul poate continua doar după o alegere. Trimite înainte de nodul Wait un callback cu type: "approval_required":
Configurează nodul Wait la Resume: On Webhook Call, HTTP Method: POST și Authentication: Header Auth. Selectează același credential Header Auth ca la Start workflow. Adaugă după nodul Wait un nod Switch și verifică în el {{ $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 de workflow doorgaan?",
"context": "Controleer eerst het gegenereerde document.",
"resumeUrl": "{{ $execution.resumeUrl }}",
"choices": [
{ "value": "approve", "label": "Goedkeuren" },
{ "value": "reject", "label": "Afwijzen" }
]
}
}
Utilizatorul vede opțiunile în fereastra de execuție. După o alegere, nodul Wait primește printre altele decision. Folosește apoi, de exemplu, un nod Switch pentru a determina continuarea corectă.
O valoare de alegere poate conține doar litere, cifre, _ și -. Eticheta poate conține text lizibil obișnuit.
Setarea URL-ului de callback de producție
URL-ul de callback de producție pentru AI-Public este:
https://europe-west1-ai-public-pro.cloudfunctions.net/n8nWorkflowCallback
Nu lipi acest URL ca text fix în fiecare nod de callback. În câmpul URL al nodului HTTP Request alege Expression și folosește:
{{ $('Start workflow').first().json.body.integration.callbackUrl }}
Astfel, AI-Public furnizează automat la fiecare pornire URL-ul corect de producție. URL-ul fix de mai sus îl folosești pentru a verifica în timpul testării dacă expresia indică spre AI-Public și nu spre AI-School sau AI-Corporate.
Callable-urile triggerCustomN8nWorkflow, triggerN8nWorkflow și resumeN8nWorkflow sunt apelate de aplicație în mod automat. Nu trebuie să configurezi aceste URL-uri în n8n.
Tratarea erorilor
Trimite erorile așteptate cu un callback de tip failed. Pentru erorile neașteptate ale nodurilor, creează și un Error Workflow central:
-
Creează un workflow nou cu un nod Error Trigger.
-
Adaugă apoi un nod HTTP Request cu Method: POST.
-
Completează la URL această adresă fixă de producție:
https://europe-west1-ai-public-pro.cloudfunctions.net/n8nWorkflowExecutionFailed -
Alege Authentication: None și adaugă header-ul
n8n-handihow-namecu valoarea secretă standard a administratorului platformei. -
Alege un body JSON și lipește:
{
"executionId": "{{ $json.execution.id }}",
"workflowId": "{{ $json.workflow.id }}",
"workflowName": "{{ $json.workflow.name }}",
"lastNode": "{{ $json.execution.lastNodeExecuted }}",
"message": "{{ $json.execution.error.message }}"
}
- Activează Error Workflow.
- Deschide setările workflow-ului obișnuit și selectează-l la Error Workflow.
Trimite imediat după Start workflow cel puțin un callback cu executionId: "{{ $execution.id }}". Doar astfel AI-Public poate lega o eroare neașteptată de execuția corectă.
Limitări importante
- Sunt acceptate doar trigger-e webhook.
- Sunt acceptate doar URL-uri de webhook de producție.
- URL-urile de test webhook cu
/webhook-test/sunt respinse. - Este acceptat doar POST.
- Este acceptată doar autentificarea generică prin header.
- Valoarea header-ului este tratată ca secret în aplicație.
- Tokenurile de callback și URL-urile de resume sunt procesate doar server-side și nu sunt disponibile direct utilizatorilor.
- Tenant-ul este determinat server-side din utilizatorul autentificat, nu dintr-o valoare trimisă de browser.
Rezolvarea problemelor
- 404 sau webhook neregistrat: activează workflow-ul în n8n și folosește URL-ul de producție.
- Eroare de autentificare: verifică dacă numele și valoarea header-ului sunt exact identice în ambele sisteme.
- Date lipsă: verifică dacă numele câmpurilor din aplicație corespund cu cheile așteptate de n8n.
- Nu apare nicio cerere în n8n: verifică dacă workflow-ul începe cu un webhook trigger și folosește POST.
- Fereastra de execuție rămâne deschisă: dacă ai activat Raportează finalul workflow-ului, verifică dacă n8n trimite un ultim callback
completed,failedsaurejected. Dacă nu aștepți notificări de revenire, dezactivează toate cele trei opțiuni la înregistrare. - Nu este vizibil niciun progres: verifică dacă Raportează progresul intermediar este activat la înregistrare, dacă obiectul
integrationeste păstrat și dacă fiecare callback are uneventIdunic. - Butoanele de aprobare nu funcționează: verifică nodul Wait,
resumeUrl, autentificarea prin header și caracterele permise închoices[].value.