Sari la conținutul principal

fluxuri de lucru n8n

AI-Public poate porni fluxuri de lucru n8n prin intermediul unui webhook de producție. Acest lucru este util atunci când vrei să pornești un proces automatizat în afara AI-Public, de exemplu creare o sarcină, actualizarea unui înregistrări CRM, inițierea unui flux de raportare sau transmiterea 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 flux de lucru n8n care publică un articol de știri pe site-ul WordPress. În AI-Public completezi atunci doar un scurt fragment de text, de exemplu câteva enunțuri despre o întâlnire, proiect sau anunț public. Cu acel text pornești fluxul de lucru în n8n.

Fluxul de lucru n8n poate apoi, de exemplu:

  1. Din scurtul text să creezi un text de redactare corespunzător cu ajutorul unei nod LLM și a unui prompt potrivit tonului organizației.
  2. Să creezi o ilustrație adecvată cu un al doilea nod LLM, de exemplu în culorile schemei vizuale a companiei și într-un stil ilustrativ recognoscibil.
  3. Să pregătești sau să publici textul și imaginea ca articol de blog pe site-ul WordPress.

Așa lucrează AI-Public și n8n împreună: în AI-Public utilizatorul alege fluxul de lucru și completează informațiile necesare. n8n execută apoi pașii automatizați și asigură că articolul de news ajunge corespunzător pe site.

Ce face această integrare?

Pornești un flux de lucru n8n din vizualizarea fluxului de lucru. Doar webhook-ul de producție, POST-ul și autentificarea prin header sunt obligatorii. Câmpurile și notificările din n8n sunt opționale și pot fi configurate independent.

  • Dacă fluxul de lucru nu are câmpuri, webhook-ul este apelat imediat.
  • Dacă fluxul de lucru are câmpuri, se deschide mai întâi un formular. Utilizatorul completează câmpurile și pornește apoi fluxul de lucru cu butonul.
  • Valorile introduse sunt trimise ca JSON într-un POST către webhook-ul n8n.
  • Fără notificări, AI-Public confirmă doar că fluxul de lucru a fost pornit și rulează în continuare în n8n. Fereastra nu arată un spinner și poate fi închisă imediat.
  • Dacă această opțiune este activată la înregistrare, fluxul de lucru poate trimite înapoi pașii intermediar sau finalul către AI-Public.
  • Dacă aprobarea este activată la înregistrare, utilizatorul poate face o selecție direct în AI-Public. n8n continuă apoi de la pasul așteptător.

Crearea fluxului de lucru n8n în AI-Public

Un administrator înregistrează fluxul de lucru după cum urmează:

  1. Accesează Asistenți.
  2. Deschide Fluxuri de lucru.
  3. Alege Flux de lucru n8n nou.
  4. Introdu numele fluxului de lucru și URL-ul de producție n8n.
  5. Configurează Autentificare header cu un nume de header și o valoare secretă a header-ului.
  6. Bifează sub Notificări din n8n doar componentele care sunt efectiv construite în acest flux de lucru n8n: progresul, aprobarea și/sau finalul fluxului de lucru.
  7. Adaugă eventual câmpurile care trebuie trimise în request-ul POST.
  8. Salvează fluxul de lucru.

Toate cele trei opțiuni de notificare sunt dezactivate implicit. Dacă mai târziu adaugi callbacks sau o etapă de aprobare în n8n, actualizează și înregistrarea în AI-Public. Dialogul știe astfel dacă trebuie să afișeze doar o confirmare de start sau să aștepte semnale suplimentare.

Câmpuri

  • Câmpurile sunt opționale.
  • Fiecare câmp are un nume de câmp și un tip.
  • Tipuri de câmp suportate: scurt text, 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 apare ca o listă de selecție compactă; Mai multe alegeri afișează casete de selectare. Valoarea sau valorile alese sunt trimise în corpul JSON.
  • Câmpurile obligatorii trebuie completate înainte de a porni fluxul de lucru.
  • Numele câmpului devine cheia în corpul JSON trimis către n8n.

Creare flux de lucru compatibil în n8n

  1. Creează în n8n un flux de lucru nou.
  2. Adaugă ca prim nod un Webhook.
  3. Denumește acest nod exact Start workflow. Expresiile de mai jos folosesc acest nume.
  4. Setează HTTP Method la POST.
  5. Alege Authentication: Header Auth și folosește același nume de header și valoarea secretă ca în AI-Public.
  6. Setează Respond sau Response Mode la Immediately.
  7. Copiază Production URL în câmpul n8n producție-url în AI-Public. Nu folosi URL-ul de test cu /webhook-test/.
  8. activează fluxul de lucru.

Datele primite sunt sub body; datele tehnice de integrare sunt sub body.integration. Șterge-le doar într-un nod Edit Fields, Set sau Code.

Exemplu al corpului JSON

Dacă definești câmpuri cu numele prompt, klantnaam, doelgroepen și datum, n8n va primi de exemplu acest corp JSON. AI-Public adaugă obiectul integration automat.

{
"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 execuții. Nu îl stoca în jurnale, în configurații fixe sau în alte sisteme.

Opțional: trimiterea progresului și a finalizării

AI-Public poate afișa doar ceea ce Întoarce n8n. Folosește aceste callbacks doar dacă la înregistrare ai activat Raportare progres intermediar și/sau Raportare final a fluxului de lucru.

Setează fiecare nod callback astfel:

  1. Alege Metodă: POST.

  2. În URL, fă clic pe Expression și lipește:

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

  4. Activează Send Headers și adaugă header-ele de mai jos.

  5. 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

De exemplu, trimite acest mesaj când un pas începe:

{
"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": "Documentul este în curs de creare."
}
  • Pentru fiecare eveniment în cadrul aceleiași execuții, folosește un eventId unic.
  • Folosește un label clar în neerlandeză step.label; acest text este afișat în aplicație.
  • Dacă ai activat Raportare final a fluxului de lucru, atunci la final trimite întotdeauna type: "completed", type: "failed" sau type: "rejected".
  • Dacă ai completed, adaugă eventual un obiect output cu rezultatul.
  • Pentru failed trimite un mesaj de eroare inteligibil. Execuția se oprește apoi și în aplicație.

Opțional: cerere de aprobare în aplicație

Folosește o nod n8n Wait cu On Webhook Call când fluxul de lucru poate continua doar după o alegere. Trimite înainte de nodul Wait un callback cu type: "approval_required":

Configurează nodul Wait pentru Resume: On Webhook Call, HTTP Method: POST și Authentication: Header Auth. Selectează aceeași credential Header Auth ca la Start workflow. Adaugă după nodul Wait un nod Switch și validează în interior {{ $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 controlar"
},
"approval": {
"question": "Poate fluxul de lucru să continue?",
"context": "Verifică mai întâi documentul generat.",
"resumeUrl": "{{ $execution.resumeUrl }}",
"choices": [
{ "value": "approve", "label": "Aprobă" },
{ "value": "reject", "label": "Respingere" }
]
}
}

Utilizatorul vede alegerile în fereastra de execuție. După o alegere, nodul Wait va primi, printre altele, decision. Apoi folosește, de exemplu, un nod Switch pentru a determina urmele potrivite.

O valoare de alegere poate conține doar litere, cifre, _ și -. Eticheta poate conține text lizibil obișnuit.

Configurarea 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 callback. Alege în câmpul URL al nodului HTTP Request Expression și folosește:

{{ $('Start workflow').first().json.body.integration.callbackUrl }}

AI-Public oferă astfel, la fiecare pornire, URL-ul de producție corect. URL-ul fix de mai sus îl folosești pentru a verifica în timpul testării dacă expresia se referă către AI-Public și nu către AI-School sau AI-Corporate.

Funcțiile triggerCustomN8nWorkflow, triggerN8nWorkflow și resumeN8nWorkflow sunt apelate de aplicație singure. Nu este necesar să le configurezi în n8n.

Gestionarea erorilor

Trimite erori așteptate înapoi cu un callback de tip failed. Creează, de asemenea, un Flux de Lucru de Eroare central pentru erorile neașteptate ale nodurilor:

  1. Creează un flux de lucru nou cu un nod Error Trigger.

  2. Adaugă apoi un nod HTTP Request cu Method: POST.

  3. Completează în URL această adresă fixă de producție:

    https://europe-west1-ai-public-pro.cloudfunctions.net/n8nWorkflowExecutionFailed
  4. Alege Authentication: None și adaugă header-ul n8n-handihow-name cu valoarea secretă de la administratorul platformei.

  5. Alege un corp 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 }}"
}
  1. Activează Fluxul de Lucru de Eroare.
  2. Deschide setările fluxului de lucru obișnuit și selectează-l la Workflow de eroare.

Trimite imediat după Start workflow cel puțin un callback cu executionId: "{{ $execution.id }}". Doar astfel AI-Public poate asocia o eroare neașteptată execuției corecte.

Limitări importante

  • Doar declanșatoare Webhook sunt acceptate.
  • Doar URL-uri de webhook de producție sunt acceptate.
  • URL-urile de test webhook cu /webhook-test/ sunt refuzate.
  • Doar POST este acceptat.
  • Doar autenticare prin header generic este acceptată.
  • Valoarea header-ului este tratată ca secret în aplicație.
  • token-urile de callback și URL-urile de reluare sunt procesate doar pe server și nu sunt direct disponibile utilizatorilor.
  • Tenant-ul este determinat pe server din utilizatorul conectat, nu dintr-o valoare transmisă de browser.

Rezolvarea problemelor

  • 404 sau webhook neînregistrat: activează fluxul în n8n și folosește URL-ul de producție.
  • Eroare de autentificare: verifică dacă numele header-ului și valoarea sunt identice în ambele sisteme.
  • Date lipsă: verifică dacă numele câmpurilor din aplicație corespund cheilor pe care le așteaptă n8n.
  • Nefolosire a unei cereri în n8n: verifică dacă fluxul de lucru începe cu un trigger webhook și folosește POST.
  • Fereastra de execuție rămâne în funcțiune: dacă ai activat „Raportare final a fluxului de lucru”, verifică dacă n8n trimite un callback final completed, failed sau rejected. Dacă nu aștepți notificări, dezactivează toate cele trei opțiuni în înregistrare.
  • Nicio progresie vizibilă: verifică dacă Raportare progres intermediar este activată la înregistrare, sau dacă obiectul integration este păstrat și dacă fiecare callback are un eventId unic.
  • Butoanele de aprobare nu funcționează: verifică nodul Wait, resumeUrl, autentificarea header și caracterele permise în choices[].value.
WhatsApp