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

n8n वर्कफ़्लोज़

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

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

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

n8n वर्कफ़्लो इसके बाद उदाहरण के लिए यह कर सकता है:

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

इस तरह AI-School और n8n साथ काम करते हैं: AI-School में उपयोगकर्ता वर्कफ़्लो चुनता है और आवश्यक जानकारी भरता है। इसके बाद n8n स्वचालित चरणों को निष्पादित करता है और सुनिश्चित करता है कि समाचार लेख वेबसाइट पर सही ढंग से पहुँच जाए।

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

आप workflow overview से n8n वर्कफ़्लो शुरू करते हैं। केवल production webhook, POST और Header Auth अनिवार्य हैं। n8n से fields और callbacks वैकल्पिक हैं और इन्हें एक-दूसरे से स्वतंत्र रूप से सेट किया जा सकता है।

  • अगर वर्कफ़्लो में कोई fields नहीं हैं, तो webhook तुरंत कॉल हो जाता है।
  • अगर वर्कफ़्लो में fields हैं, तो पहले एक form खुलता है। उपयोगकर्ता fields भरता है और फिर button से वर्कफ़्लो शुरू करता है।
  • भरे गए values JSON के रूप में n8n webhook को एक POST request में भेजे जाते हैं।
  • बिना callbacks के AI-School केवल यह पुष्टि करता है कि वर्कफ़्लो शुरू हो गया है और आगे n8n में चलता है। विंडो कोई spinner नहीं दिखाती और तुरंत बंद की जा सकती है।
  • यदि registration में यह चालू किया गया है, तो वर्कफ़्लो बीच के steps या अंत को AI-School को वापस भेज सकता है।
  • यदि registration में approval चालू किया गया है, तो उपयोगकर्ता सीधे AI-School में कोई चयन कर सकता है। इसके बाद n8n waiting step से आगे बढ़ता है।

AI-School में n8n वर्कफ़्लो बनाना​

एक admin वर्कफ़्लो को इस प्रकार register करता है:

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

तीनों callback विकल्प डिफ़ॉल्ट रूप से बंद रहते हैं। यदि आप बाद में n8n में callbacks या कोई approval step जोड़ते हैं, तो AI-School में registration भी अपडेट करें। इससे dialog जानता है कि उसे केवल start confirmation दिखानी है या आगे के signals का इंतज़ार करना है।

Fields​

  • Fields वैकल्पिक हैं।
  • हर field में एक field name और एक type होता है।
  • समर्थित field types हैं short text, long text, number, yes/no, date, single choice और multiple choices।
  • Single choice और Multiple choices में उपलब्ध options जोड़ें। Single choice compact dropdown के रूप में दिखता है; Multiple choices checkboxes दिखाता है। चुनी गई value या values JSON body में भेजी जाती हैं।
  • अनिवार्य fields को भरना ज़रूरी है, तभी वर्कफ़्लो शुरू हो सकता है।
  • field name वह key बन जाता है जो n8n को भेजी जाने वाली JSON body में होती है।

n8n में संगत वर्कफ़्लो बनाना​

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

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

JSON body का उदाहरण​

यदि आप prompt, klantnaam, doelgroepen और datum नाम से fields परिभाषित करते हैं, तो n8n को उदाहरण के लिए यह JSON body मिलेगी। AI-School integration object अपने आप जोड़ देता है।

{
"prompt": "अनुरोध का एक संक्षिप्त सारांश बनाएं।",
"klantnaam": "उदाहरण संगठन",
"doelgroepen": ["कर्मचारी", "माता-पिता"],
"datum": "2026-09-22",
"integration": {
"runId": "chat-document-id",
"tenant": "default",
"callbackUrl": "https://europe-west1-ai-school-pro.cloudfunctions.net/n8nWorkflowCallback",
"callbackToken": "इस निष्पादन के लिए अस्थायी टोकन"
}
}

callback token एक ही execution से संबंधित होता है। इसे logs, स्थायी configuration या अन्य systems में सेव न करें।

वैकल्पिक: progress और completion वापस भेजना​

AI-School केवल वही दिखा सकता है जो n8n वापस भेजता है। इन callbacks का उपयोग केवल तभी करें जब आपने registration में 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. यह expression बिल्कुल इसी तरह पेस्ट करें:

    {{ $('Start workflow').first().json.body.integration.callbackUrl }}
  5. Authentication में None चुनें। अगली step में temporary token 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 JSON field में पेस्ट करें:

{
"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": "दस्तावेज़ बनाना"
},
"message": "दस्तावेज़ बनाया जा रहा है।"
}
  1. app के माध्यम से वर्कफ़्लो का परीक्षण करते समय Execute step चुनें। node को status 200 वापस मिलना चाहिए।

हर status update के लिए इस HTTP Request node की एक कॉपी बनाएं। हर कॉपी में कम से कम eventId, step.id, step.label और message बदलें।

अंतिम callback सेट करना​

यदि Het einde van de workflow melden चालू है, तो हर संभावित route के अंत में एक अंतिम callback होना चाहिए। सफलता के लिए type: "completed", आपके द्वारा संभाली गई error के लिए type: "failed" और जब उपयोगकर्ता वर्कफ़्लो को अस्वीकार करे तब 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": "वर्कफ़्लो पूर्ण"
},
"message": "वर्कफ़्लो पूरा हो गया है।",
"output": {
"resultaat": "परिणाम का संक्षिप्त वर्णन या लिंक"
}
}

एक execution के भीतर हर callback के लिए अलग eventId उपयोग करें। हमेशा एक स्पष्ट step.label भी उपयोग करें: उपयोगकर्ता यह text execution window में देखता है।

वैकल्पिक: 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 select करें जो Start workflow node में है।
  6. Wait node से पहले पहले से सेट किए गए HTTP Request node की एक कॉपी रखें और उसका नाम Vraag goedkeuring रखें।
  7. इस node में वही dynamic URL और headers उपयोग करें। केवल JSON body को इससे बदलें:
{
"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": "दस्तावेज़ जाँचना"
},
"approval": {
"question": "क्या वर्कफ़्लो आगे बढ़ सकता है?",
"context": "पहले उत्पन्न दस्तावेज़ की जाँच करें।",
"resumeUrl": "{{ $execution.resumeUrl }}",
"choices": [
{ "value": "approve", "label": "स्वीकृत" },
{ "value": "reject", "label": "अस्वीकृत" }
]
}
}

Vraag goedkeuring को Wait node से जोड़ें। इसके बाद उपयोगकर्ता को AI-School में buttons दिखाई देंगे। गुप्त resume-url browser को नहीं दी जाती; 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 पर समाप्त करें।

एक choice value में केवल अक्षर, अंक, _ और - हो सकते हैं। label में सामान्य पठनीय text हो सकता है।

production callback URL सेट करना​

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

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

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

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

इस तरह AI-School हर start पर अपने आप सही production URL प्रदान करता है। ऊपर दिया गया स्थायी URL केवल परीक्षण के दौरान यह जांचने के लिए उपयोग करें कि expression AI-School की ओर इंगित कर रहा है या नहीं।

triggerCustomN8nWorkflow, triggerN8nWorkflow और resumeN8nWorkflow callables को app स्वयं कॉल करती है। इन URLs को आपको n8n में सेट करने की आवश्यकता नहीं है।

अप्रत्याशित errors वापस भेजना​

साधारण failed callback केवल तभी काम करता है जब वर्कफ़्लो संबंधित HTTP Request node तक पहुँचता है। अप्रत्याशित node errors के लिए इसके अलावा एक केंद्रीय n8n Error Workflow भी उपयोग करें।

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

  1. n8n में 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-nameplatform administrator से प्राप्त secret default value
    Content-Typeapplication/json
  8. Send Body चालू करें, JSON चुनें और यह body पेस्ट करें:

{
"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 के तुरंत बाद हमेशा कम से कम एक progress callback executionId: "{{ $execution.id }}" के साथ भेजें। इससे app जानती है कि अप्रत्याशित n8n error किस execution से संबंधित है।

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

  • केवल webhook triggers समर्थित हैं।
  • केवल production webhook URLs समर्थित हैं।
  • /webhook-test/ वाली test webhook URLs अस्वीकार की जाती हैं।
  • केवल POST समर्थित है।
  • केवल generic header authentication समर्थित है।
  • header value को application में secret माना जाता है।
  • callback tokens और resume URLs केवल server-side संसाधित होते हैं और उपयोगकर्ताओं के लिए सीधे उपलब्ध नहीं होते।
  • tenant server-side पर logged-in user से निर्धारित होता है, browser द्वारा भेजी गई value से नहीं।

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

  • 404 या webhook registered नहीं: n8n में workflow सक्रिय करें और production URL उपयोग करें।
  • authentication error: जाँचें कि दोनों systems में header name और value बिल्कुल समान हैं।
  • missing data: जाँचें कि application में field names n8n द्वारा अपेक्षित keys से मेल खाते हैं।
  • n8n में कोई request नहीं: जाँचें कि workflow webhook trigger से शुरू होता है और POST उपयोग करता है।
  • execution window चलता रहता है: क्या आपने Het einde van de workflow melden चालू किया है? तो जाँचें कि n8n अंतिम completed, failed या rejected callback भेज रहा है। यदि आप callbacks की अपेक्षा नहीं कर रहे हैं, तो registration में तीनों विकल्प बंद कर दें।
  • कोई progress दिखाई नहीं दे रही: जाँचें कि registration में Tussentijdse voortgang melden चालू है, integration object बरकरार है और हर callback का eventId unique है।
  • approval buttons काम नहीं कर रहे: Wait node, resumeUrl, header authentication और choices[].value में अनुमत characters जाँचें।