मुख्य सामग्री पर जाएं

n8n workflows

AI-School AI-School n8n workflows शुरू कर सकता है production webhook के जरिए. यह उपयोगी है जब आप AI-School के बाहर एक स्वचालित प्रक्रिया शुरू करना चाहते हैं, जैसे एक टास्क बनाना, CRM रिकॉर्ड अपडेट करना, एक रिपोर्टिंग फ्लो शुरू करना या फॉर्म डेटा को किसी अन्य सिस्टम में भेजना।

उदाहरण: स्कूल वेबसाइट पर समाचार article

मान लें स्कूल ने एक n8n workflow बनाया है जो स्कूल की WordPress वेबसाइट पर एक समाचार लेख प्रकाशित करता है। AI-School में आप केवल एक छोटा सा टेक्स्ट इनपुट करते हैं, जैसे प्रोजेक्ट-विकाल, खेल-दिवस या ओपन डे के बारे में कुछ पंक्तियाँ। उस टेक्स्ट से आप n8n में workflow शुरू करते हैं।

n8n workflow फिर निम्न कर सकता है:

  1. छोटी टेक्स्ट से एक साफ़ कॉन्सेप्ट टेक्स्ट बनाना एक LLM node और ऐसी prompt के साथ जो स्कूल के टोन के अनुरूप हो।
  2. एक उपयुक्त illustration बनवाना दूसरी LLM node से, जैसा कि स्कूल के रंगों में और पहचानी जाने योग्य illustratieve स्टाइल में।
  3. टेक्स्ट और इमेज को ब्लॉग पोस्ट के रूप में तैयार रखना या WordPress वेबसाइट पर प्रकाशित करना।

ऐसे AI-School और n8n साथ में काम करते हैं: AI-School में उपयोगकर्ता workflow चुनता है और आवश्यक जानकारी भरता है। फिर n8n ऑटोमेटेड स्टेप्स चलाता है और सुनिश्चित करता है कि समाचार लेख वेबसाइट पर ठीक-ठीक पहुंच जाए।

इस इंटीग्रेशन से क्या होता है?

आप workflow overview से n8n workflow शुरू करते हैं। केवल production webhook, POST और Header Auth अनिवार्य हैं. Fields और n8n से मिलने वाले सूचक optinal हैं और एक दूसरे से स्वतंत्र रूप से सेट किए जा सकते हैं।

  • अगर workflow में fields नहीं हैं, webhook तुरंत कॉल किया जाएगा।
  • अगर workflow में fields हैं, तो पहले एक फार्म खुलता है। उपयोगकर्ता fields भरता है और फिर शुरू करने के लिए बटन दबाता है।
  • भरे गए मान POST- अनुरोध में JSON के रूप में n8n webhook को भेजे जाते हैं।
  • Без Rückmeldungen, AI-School सिर्फ पुष्टि करता है कि workflow शुरू हो गया है और n8n में आगे चलता है। विंडो में स्पिनर नहीं दिखता और तुरंत बंद किया जा सकता है।
  • यदि पंजीकरण में इसे सक्षम किया गया है, workflow intermediate steps या अंत AI-School में वापस भेज सकता है।
  • यदि पंजीकरण में अनुमोदन सक्षम है, उपयोगकर्ता सीधे AI-School में से चयन कर सकता है। उसके बाद n8n आगे प्रतीक्षा चरण से आगे बढ़ता है।

n8n workflow AI-School में बनाएं

एक व्यवस्थापक workflow इस प्रकार पंजीकृत करता है:

  1. जाएँ Assistenten
  2. खोलें Workflows
  3. चुनें Nieuwe n8n workflow
  4. workflow के नाम और n8n production URL भरें।
  5. Header authentication सेट करें एक header नाम और गुप्त header value के साथ।
  6. Terugmeldingen uit n8n के अंतर्गत केवल वे भाग चुनें जो सच में इस n8n-workflow में बने हैं: प्रगति, अनुमोदन और/या workflow का अंत।
  7. ऐसे fields जोड़ें जो POST-request में भेजे जाने चाहिए।
  8. workflow को सेव करें।

तीनों return options डिफ़ॉल्ट के अनुसार बंद रहते हैं। अगर आप बाद में callbacks या एक approval step जोड़ते हैं, तो AI-School में पंजीकरण भी अपडेट करें। dialog यह बताता है कि उसे केवल स्टार्ट-प्रत्यक्षीकरण दिखाना है या आगे संकेतों पर भी इंतजार करना है।

Fields

  • Field optional हैं।
  • हर field के पास एक field name और एक type है।
  • Supported field types: short text, long text, number, yes/no, date, single choice, multiple choices.
  • एक चयन और एकाधिक चयन में उपलब्ध विकल्प जोड़ें। एक चयन कॉम्पैक्ट ड्रॉप-डाउन के रूप में दिखता है; एकाधिक चयन चेकबॉक्स दिखाता है। चुनी गई value/values JSON body में भेजी जाती है।
  • आवश्यक fields को शुरू करने से पहले भरना अनिवार्य है।
  • field name JSON body में key बनकर n8n को भेजी जाती है।

Compatable workflow n8n में बनाएं

  1. n8n में एक नया workflow बनाएं।
  2. पहली node के रूप में एक Webhook जोड़ें।
  3. इस node को बिल्कुल नाम दें Start workflow. आगे के उदाहरण इसी नाम का उपयोग करते हैं।
  4. HTTP Method को POST रखें।
  5. Authentication में Header Auth चुनें और एक Header Auth credential चुनें।
  6. उस credential में उसी header name और secret value भर दें जो AI-School में workflow के लिए है।
  7. Respond या Response Mode को Immediately पर सेट करें। एप्लिकेशन को फिर तुरंत सफल start-acknowledgement मिल जाएगी, जबकि n8n आगे काम करता रहेगा।
  8. Webhook-node का Production URL कॉपी करके AI-School में n8nproduktion-url फ़ील्ड में डालें। परीक्षण URL /webhook-test/ का उपयोग न करें।
  9. workflow को activate करें।

AI-School से data n8n में body के अंतर्गत होते हैं। integration data इसलिए body.integration के अंतर्गत होते हैं। इन्हें Edit Fields-, Set- या Code-node में न हटाएं। नीचे के उदाहरण इन नोड से सीधे Start workflow के node से वापस पढ़ते रहते हैं।

JSON body का उदाहरण

अगर आप नामों के साथ fields define करते हैं: prompt, klantnaam, doelgroepen, और datum, तो n8n उदाहरण के तौर पर यह JSON body प्राप्त करेगा। AI-School स्वतः integration-object जोड़ देगा।

{
"prompt": "Maak een korte samenvatting van de aanvraag.",
"klantnaam": "Voorbeeldorganisatie",
"doelgroepen": ["medewerkers", "ouders"],
"datum": "2026-09-22",
"integration": {
"runId": "chat-document-id",
"tenant": "default",
"callbackUrl": "https://europe-west1-ai-school-pro.cloudfunctions.net/n8nWorkflowCallback",
"callbackToken": "tijdelijk-token-voor-deze-uitvoering"
}
}

Callbacktoken एक execution के साथ जुड़ा होता है। Logs, स्थायी कॉन्फ़िग, या अन्य सिस्टम में इसे न रखें।

वैकल्पिक: voortgang और afronding वापस भेजना

AI-School केवल n8n द्वारा return किए गए status दिखा सकता है. इन callbacks का उपयोग सिर्फ तब करें जब पंजीकरण में आपने Tussentijdse voortgang melden और/या Het einde van de workflow melden सक्षम किया हो।

HTTP Request node सेटअप

  1. एक HTTP Request node जोड़ें और इसे उदाहरण के लिए Meld voortgang नाम दें।

  2. Method को POST रखें।

  3. URL पर Expression चुनें।

  4. बिल्कुल यह एक्सप्रेशन पेस्ट करें:

    {{ $('Start workflow').first().json.body.integration.callbackUrl }}
  5. Authentication में None चुनें। अगली स्टेप में अस्थाई टोकन header के रूप में जोड़ा जाएगा।

  6. Send Headers चालू करें और ये दो headers जोड़ें:

    NameValue
    AuthorizationBearer {{ $('Start workflow').first().json.body.integration.callbackToken }}
    Content-Typeapplication/json
  7. Send Body चालू करें।

  8. Body Content Type: JSON और Specify Body: Using JSON चुनें।

  9. नीचे दिया JSON field JSON में पेस्ट करें:

{
"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."
}
  1. एप्लिकेशन से workflow को 테스트 करते समय Execute step चुनें। node को status 200 वापस मिलना चाहिए।

हर स्थिति संदेश के लिए इस HTTP Request node को कॉपी करें। हर कॉपी के साथ कम से कम eventId, step.id, step.label, और message को अपडेट करें।

आखिरी callback सेट करें

यदि Het einde van de workflow melden सक्षम है, तो हर संभव route के अंत में एक final callback होना चाहिए। सफल पर type: "completed", त्रुटि पर type: "failed", और उपयोगकर्ता द्वारा workflow अस्वीकृति पर type: "rejected" बनाएं।

एक सफल execution के लिए body नीचे जैसा दिख सकता है:

{
"tenant": "{{ $('Start workflow').first().json.body.integration.tenant }}",
"runId": "{{ $('Start workflow').first().json.body.integration.runId }}",
"eventId": "workflow-afgerond",
"type": "completed",
"executionId": "{{ $execution.id }}",
"step": {
"id": "afronding",
"label": "Workflow afgerond"
},
"message": "De workflow is afgerond.",
"output": {
"resultaat": "Korte omschrijving of link naar het resultaat"
}
}

एक ही execution में प्रत्येक callback के लिए अलग eventId होना चाहिए। उपयोगकर्ता को UI में दिखाई देने वाले स्पष्ट step.label हो यह भी ज़रूरी है।

Optioneel: app में approval माँगना

Wait node सेट करें

  1. जहां approval चाहिए वहां एक Wait node जोड़ें।
  2. Resume के लिए On Webhook Call चुनें।
  3. HTTP Method को POST रखें।
  4. Authentication में Header Auth चुनें।
  5. वही Header Auth credential चुनें जो Start workflow node के साथ था।
  6. Wait node से पहले पूर्व में सेट HTTP Request node की एक कॉपी बनाएं और इसे नाम दें Vraag goedkeuring
  7. इस node में वही dynamic URL और headers उपयोग करें। बस JSON body को नीचे दिए JSON से बदले:
{
"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" }
]
}
}

Vraag goedkeuring को Wait node के साथ जोड़ें। उपयोगकर्ता उसके बाद AI-School में बटन देखेंगे। gop गुप्त resume-url ब्राउज़र में नहीं दिखेगा; server सुरक्षित तरीके से Wait node को विकल्प भेजता है।

Wait node के बाद के चयन से प्रक्रिया

  1. Wait node के बाद एक Switch node जोड़ें।

  2. जाँचने योग्य value के रूप में इस्तेमाल करें:

    {{ $json.body.decision }}
  3. उदाहरण के तौर पर approve के लिए एक route और reject के लिए एक route बनाएं।

  4. प्रत्येक route को ایک उपयुक्त completed, rejected या failed callback के साथ समाप्त करें।

एक चुनाव value केवल अक्षरों, संख्याओं, _ और - हो सकता है। label सामान्य पढ़ने योग्य टेक्स्ट हो सकता है।

Production callback-url सेट करें

AI-School के लिए production callback-url है:

https://europe-west1-ai-school-pro.cloudfunctions.net/n8nWorkflowCallback

हर callback node में इसे स्थिर टेक्स्ट के रूप में न डालें। HTTP Request node के URL field में Expression चुनकर निम्न प्रयोग करें:

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

AI-School हर स्टार्ट के साथ सही production-url दे देता है। ऊपर की स्थिर URL केवल टेस्ट के दौरान सही expression को जाँचने के लिए है।

callables triggerCustomN8nWorkflow, triggerN8nWorkflow और resumeN8nWorkflow एप्लिकेशन द्वारा ही कॉल किए जाते हैं। इन्हें n8n में सेट करने की ज़रूरत नहीं है।

अंजाने_ERRORS वापस भेजना

साधारण failed callback तभी काम करता है जब workflow उस HTTP Request node तक पहुँचता है। अनअपेक्षित node-एरर के लिए एक केंद्रीय n8n Error Workflow भी बनाएं।

केंद्रीय Error Workflow बनाएं

  1. n8n में एक अलग workflow बनाएँ जिसका नाम हो AI-School - fouten terugsturen

  2. एक Error Trigger node जोड़ें।

  3. फिर एक HTTP Request node जोड़ें।

  4. Method को POST रखें।

  5. URL में स्थिर production URL डालें:

    https://europe-west1-ai-school-pro.cloudfunctions.net/n8nWorkflowExecutionFailed
  6. Authentication: None चुनें।

  7. Send Headers चालू करें और ये जोड़ें:

    NameValue
    n8n-handihow-nameप्लेटफॉर्म एडमिन से मिलने वाला गुप्त डिफ़ॉल्ट मान
    Content-Typeapplication/json
  8. Send Body चालू करें, JSON चुनें और यह बॉडी पेस्ट करें:

{
"executionId": "{{ $json.execution.id }}",
"workflowId": "{{ $json.workflow.id }}",
"workflowName": "{{ $json.workflow.name }}",
"lastNode": "{{ $json.execution.lastNodeExecuted }}",
"message": "{{ $json.execution.error.message }}"
}
  1. Error Workflow को सक्रिय करें।
  2. साधारण workflow की settings खोलें और Error Workflow में यह नया Error Workflow चुनें।

Start workflow के तुरंत बाद कम से कम एक voortgangscallback के साथ executionId: "{{ $execution.id }}" भेजना चाहिए। इससे ऐप पता लगा सके कि कौन सी execution पर anunexpected n8n error आई है।

महत्वपूर्ण सीमाएं

  • केवल webhook triggers समर्थित हैं।
  • केवल production-webhook-urls समर्थित हैं।
  • test-webhook-urls with /webhook-test/ अस्वीकार हैं।
  • सिर्फ POST समर्थित है।
  • सिर्फ generic header authentication समर्थित है।
  • header value एप्लिकेशन में secret के रूप में व्यवहार करता है।
  • Callback tokens और resume-url सर्वर-साइड प्रोसेस होते हैं और उपयोगकर्ताओं के लिए सीधे पहुंचयोग्य नहीं।
  • tenant server-side निर्धारित होता है, लॉगिन यूजर से।

समस्याओं का समाधान

  • 404 या webhook पंजीकृत नहीं: n8n में workflow सक्रिय करें और production-url इस्तेमाल करें।
  • Authentication error: अचूक header name और value दोनों दोनों सिस्टमों में समान हों।
  • Missing data: सत्यापित करें कि app के field नाम n8n की keys के साथ मेल खाते हैं।
  • No request in n8n: जांचें कि workflow webhook trigger से शुरू होता है और POST उपयोग होता है।
  • Execution window घूमना जारी रहता है: अगर आपने Het einde van de workflow melden चालू किया है, तो देखें कि n8n ने अंतिम completed, failed या rejected callback भेजा या नहीं। अगर आपको callbacks नहीं चाहिए, तो सभी तीन विकल्प पंजीकरण से बंद रखें।
  • No progress visible: चेक करें कि Tussentijdse voortgang melden पंजीकरण में ऑन है, या integration-object बना रहेगा और हर callback में एक यूनिक eventId है।
  • Approval buttons works नहीं: Wait node, resumeUrl, header authentication और choices[].value की अनुमति देखिए।
WhatsApp