This workflow corresponds to n8n.io template #8102 — we link there as the canonical source.
This workflow follows the Chainllm → Execute Workflow Trigger recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"nodes": [
{
"id": "eeea3c68-1832-4187-9343-58ec67e2e176",
"name": "When clicking \u2018Test workflow\u2019",
"type": "n8n-nodes-base.manualTrigger",
"position": [
0,
600
],
"parameters": {},
"typeVersion": 1
},
{
"id": "1328690e-0cb9-4925-9340-137a25605860",
"name": "On form submission",
"type": "n8n-nodes-base.formTrigger",
"position": [
0,
320
],
"parameters": {
"options": {},
"formTitle": "Jira Full Project Generator",
"formFields": {
"values": [
{
"fieldLabel": "Project Name",
"requiredField": true
},
{
"fieldType": "textarea",
"fieldLabel": "Project Full Features",
"requiredField": true
}
]
}
},
"typeVersion": 2.2
},
{
"id": "d5e32e9f-1ea1-49be-904a-687e25644dbc",
"name": "OpenAI Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
900,
700
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-5-mini",
"cachedResultName": "gpt-5-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.2
},
{
"id": "9c1821ab-74c2-41a8-8d50-366a697c1d5a",
"name": "Structured Output Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
1080,
680
],
"parameters": {
"jsonSchemaExample": "[\n {\n \"task_title\": \"As a [user], I want to [goal], so that [benefit]\",\n \"description\": \"Brief but clear explanation of the user story, its purpose, and what outcome is expected.\",\n \"sub_tasks\": [\n {\n \"title\": \"Design UI for the feature\",\n \"description\": \"Create wireframes and UI mockups in Figma to visualize the user interaction and layout.\"\n },\n {\n \"title\": \"Implement frontend logic using React\",\n \"description\": \"Develop the user interface in React, handling user input and state updates as needed.\"\n },\n {\n \"title\": \"Build backend API endpoint\",\n \"description\": \"Create REST API endpoint to support frontend interactions, including data validation and business logic.\"\n },\n {\n \"title\": \"Write unit tests\",\n \"description\": \"Develop unit tests to ensure individual components and functions work as expected.\"\n },\n {\n \"title\": \"Perform integration testing\",\n \"description\": \"Test the interaction between frontend and backend components to verify end-to-end behavior.\"\n },\n {\n \"title\": \"Update project documentation\",\n \"description\": \"Document the implementation details, API contracts, and usage instructions for future maintenance.\"\n }\n ]\n },\n {\n \"task_title\": \"As a [user], I want to [another goal], so that [another benefit]\",\n \"description\": \"Brief explanation of this separate user story and the desired outcome.\",\n \"sub_tasks\": [\n {\n \"title\": \"Task A\",\n \"description\": \"Explanation of Task A\u2019s purpose and what needs to be done.\"\n },\n {\n \"title\": \"Task B\",\n \"description\": \"Explanation of Task B\u2019s purpose and what needs to be done.\"\n },\n {\n \"title\": \"Task C\",\n \"description\": \"Explanation of Task C\u2019s purpose and what needs to be done.\"\n }\n ]\n }\n]"
},
"typeVersion": 1.2
},
{
"id": "a7431feb-5531-4126-a43d-fb0b4e99847d",
"name": "Loop Over Items",
"type": "n8n-nodes-base.splitInBatches",
"position": [
1780,
500
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "427cb908-53cd-405b-a423-006d454ce142",
"name": "Split Out",
"type": "n8n-nodes-base.splitOut",
"position": [
1300,
500
],
"parameters": {
"options": {},
"fieldToSplitOut": "output"
},
"typeVersion": 1
},
{
"id": "70ad657e-4e8b-4f15-8980-e40dd88d4219",
"name": "Structured Output Parser1",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
480,
840
],
"parameters": {
"jsonSchemaExample": "{\n \"project_name\": \"Clean and professional project name here\",\n \"project_description\": \"Clear and concise one-paragraph description of the project with technical clarity and business relevance.\",\n \"project_key\": \"ABCDE\"\n}"
},
"typeVersion": 1.2
},
{
"id": "2727823f-e5a2-4c0b-a8dc-55afcfccc78d",
"name": "Project Naming",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
360,
500
],
"parameters": {
"text": "=You are a naming expert and technical writer. \nYour task is to clean up and enhance the following rough input into a professional-sounding **project name** and **concise, clear project description**, and generate a suitable **Jira project key**.\n\nThe project key must be 5 uppercase letters, randomly generated and not necessarily related to the project name. For example, it could be \"XQJTR\" or \"MBZKD\"\n\nReturn only the result in JSON format with three fields: `project_name`, `project_description`, and `project_key`.\n\n---\n\n### Input:\nRaw Project Name: `{{ $json['Project Name'] }}` \nRaw Project Description: `{{ $json['Project Full Features'] }}`\n\n---\n\n### Output format:\n```json\n{\n \"project_name\": \"Clean and professional project name here\",\n \"project_description\": \"Clear and concise one-paragraph description of the project with technical clarity and business relevance.\",\n \"project_key\": \"ABCDE\"\n}\n```\n\nOnly return the JSON. Do not include any commentary or explanation.\n",
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 1.6
},
{
"id": "1073eff2-637a-4d14-a703-7dfa08e4a3da",
"name": "Edit Fields",
"type": "n8n-nodes-base.set",
"position": [
2160,
520
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "b65992ed-e101-4975-9c54-fb6e13d1fd40",
"name": "sub_tasks",
"type": "array",
"value": "={{ $('Loop Over Items').item.json.sub_tasks }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "39f8bbce-362d-4de3-8d4c-f9478a00dd69",
"name": "Split Out1",
"type": "n8n-nodes-base.splitOut",
"position": [
2340,
520
],
"parameters": {
"options": {},
"fieldToSplitOut": "sub_tasks"
},
"typeVersion": 1
},
{
"id": "0a1df922-d08a-4ef6-8e62-de6a274ffe79",
"name": "Merge",
"type": "n8n-nodes-base.merge",
"position": [
2300,
1000
],
"parameters": {
"mode": "combine",
"options": {},
"combineBy": "combineAll"
},
"typeVersion": 3.1
},
{
"id": "72e8f384-8334-4872-8c50-4b8c116326e7",
"name": "Execute Workflow",
"type": "n8n-nodes-base.executeWorkflow",
"position": [
2540,
1000
],
"parameters": {
"options": {},
"workflowId": {
"__rl": true,
"mode": "list",
"value": "xkwdP019EsqYbPXp",
"cachedResultName": "ClickUp Project Generator Template Workflow"
},
"workflowInputs": {
"value": {
"list_id": "={{ $('ClickUp Create List').item.json.id }}",
"task_id": "={{ $json.id }}",
"subtask_title": "={{ $json.title }}",
"subtask_description": "={{ $json.description }}"
},
"schema": [
{
"id": "task_id",
"type": "string",
"display": true,
"required": false,
"displayName": "task_id",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "subtask_title",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "subtask_title",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "subtask_description",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "subtask_description",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "list_id",
"type": "string",
"display": true,
"required": false,
"displayName": "list_id",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": true
}
},
"typeVersion": 1.2
},
{
"id": "35a1d0d4-e293-453a-a753-6d569d9ad6d8",
"name": "Limit",
"type": "n8n-nodes-base.limit",
"position": [
1520,
500
],
"parameters": {},
"typeVersion": 1
},
{
"id": "69ab22b8-8626-4090-a9b4-17720228fd97",
"name": "Gmail",
"type": "n8n-nodes-base.gmail",
"position": [
2140,
320
],
"parameters": {
"sendTo": "user@example.com",
"message": "={{ $('Project Naming').first().json.output.project_name }} is successfully generated on ClickUp\nList ID: {{ $('ClickUp Create List').first().json.id }}\nProject Link: https://app.clickup.com/9014828465/v/li/{{ $('ClickUp Create List').first().json.id }}",
"options": {
"appendAttribution": false
},
"subject": "Project successfully generated",
"emailType": "text"
},
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "f99f4632-92d2-46cc-8e99-e91df234ad89",
"name": "Aggregate",
"type": "n8n-nodes-base.aggregate",
"position": [
1960,
320
],
"parameters": {
"options": {},
"fieldsToAggregate": {
"fieldToAggregate": [
{}
]
}
},
"typeVersion": 1
},
{
"id": "219dd0c7-61d6-47a0-8205-10fb15e46e8e",
"name": "Clickup Project Task Generator",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
980,
500
],
"parameters": {
"text": "=You are a professional Agile project manager and software architect. \nBased on the following input, generate a detailed list of tasks and their corresponding sub-tasks in **clean JSON format**, ready to be used in ClickUp.\n\nEach task should follow Agile best practices (clear, actionable, and structured as: \n\"As a [user], I want to [goal], so that [reason]\"). \nEach task and sub-task **must include a `description` field** with a clear, concise explanation of what needs to be done and why it matters.\n\nDescriptions must be detailed enough for a developer to understand the context, but not too long. Each sub-task should cover a distinct step in the development process (e.g. frontend work, backend, API, testing, documentation, etc).\n\n---\n\n### Input:\n**Project Name**: {{ $('When clicking \u2018Test workflow\u2019').item.json['Project Name'] }} \n**Full Project Feature Description**: \n{{ $('When clicking \u2018Test workflow\u2019').item.json['Project Full Features'] }}\n\n---\n\n### Output format:\njson\n[\n {\n \"task_title\": \"As a [user], I want to [goal], so that [benefit]\",\n \"description\": \"Brief but clear explanation of the user story, its purpose, and what outcome is expected.\",\n \"sub_tasks\": [\n {\n \"title\": \"Design UI for the feature\",\n \"description\": \"Create wireframes and UI mockups in Figma to visualize the user interaction and layout.\"\n },\n {\n \"title\": \"Implement frontend logic using React\",\n \"description\": \"Develop the user interface in React, handling user input and state updates as needed.\"\n },\n {\n \"title\": \"Build backend API endpoint\",\n \"description\": \"Create REST API endpoint to support frontend interactions, including data validation and business logic.\"\n },\n {\n \"title\": \"Write unit tests\",\n \"description\": \"Develop unit tests to ensure individual components and functions work as expected.\"\n },\n {\n \"title\": \"Perform integration testing\",\n \"description\": \"Test the interaction between frontend and backend components to verify end-to-end behavior.\"\n },\n {\n \"title\": \"Update project documentation\",\n \"description\": \"Document the implementation details, API contracts, and usage instructions for future maintenance.\"\n }\n ]\n },\n {\n \"task_title\": \"As a [user], I want to [another goal], so that [another benefit]\",\n \"description\": \"Brief explanation of this separate user story and the desired outcome.\",\n \"sub_tasks\": [\n {\n \"title\": \"Task A\",\n \"description\": \"Explanation of Task A\u2019s purpose and what needs to be done.\"\n },\n {\n \"title\": \"Task B\",\n \"description\": \"Explanation of Task B\u2019s purpose and what needs to be done.\"\n },\n {\n \"title\": \"Task C\",\n \"description\": \"Explanation of Task C\u2019s purpose and what needs to be done.\"\n }\n ]\n }\n]\n\nOnly return the JSON array. Do not include explanations.\n",
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 1.6
},
{
"id": "b9959cb5-bf3d-40c8-92b7-2a40e1e8ee1a",
"name": "ClickUp Create List",
"type": "n8n-nodes-base.clickUp",
"position": [
720,
500
],
"parameters": {
"name": "={{ $json.output.project_name }}",
"team": "9014828465",
"space": "90143504524",
"resource": "list",
"operation": "create",
"folderless": true,
"additionalFields": {}
},
"credentials": {
"clickUpApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "0d685661-99b0-41da-9246-42673d30baeb",
"name": "ClickUp Create Task",
"type": "n8n-nodes-base.clickUp",
"position": [
1920,
780
],
"parameters": {
"list": "={{ $('ClickUp Create List').item.json.id }}",
"name": "={{ $json.task_title }}",
"team": "9014828465",
"space": "90143504524",
"folderless": true,
"additionalFields": {
"content": "={{ $json.description }}"
}
},
"credentials": {
"clickUpApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "e4238efa-2a19-486a-b49b-310f5a8d66ce",
"name": "When Executed by Another Workflow",
"type": "n8n-nodes-base.executeWorkflowTrigger",
"position": [
2880,
1000
],
"parameters": {
"workflowInputs": {
"values": [
{
"name": "task_id"
},
{
"name": "subtask_title"
},
{
"name": "subtask_description"
},
{
"name": "list_id"
}
]
}
},
"typeVersion": 1.1
},
{
"id": "9dfdc8e6-7525-4d6a-bf4d-ec7b940e926c",
"name": "ClickUp Create Sub-Task",
"type": "n8n-nodes-base.clickUp",
"position": [
3440,
1020
],
"parameters": {
"list": "={{ $json.list_id }}",
"name": "={{ $json.subtask_title }}1",
"team": "9014828465",
"space": "90143504524",
"folderless": true,
"additionalFields": {
"content": "={{ $json.subtask_description }}",
"parentId": "={{ $json.task_id }}"
}
},
"credentials": {
"clickUpApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "7cd3bbd3-cf54-43e4-9be7-a805fe358f56",
"name": "Loop Over Items1",
"type": "n8n-nodes-base.splitInBatches",
"position": [
3140,
1000
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "a4f64885-49cd-43a7-9e39-4697b1b1a8af",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
2560,
-260
],
"parameters": {
"color": 4,
"width": 380,
"height": 760,
"content": "# \ud83d\udc4b Hi, I\u2019m Billy\n\nI help businesses build **n8n workflows** & **AI automation projects**. \nNeed help with n8n or AI Automation projects? \nContact me and let\u2019s build your automation together.\n\n\ud83d\udce9 **Email:** billychartanto@gmail.com \n\ud83e\udd1d **n8n Creator:** [n8n.io/creators/billy](https://n8n.io/creators/billy/)\n\ud83c\udf10 **My n8n Projects:** [billychristi.com/n8n](https://www.billychristi.com/n8n) \n\n\n\n---\n\ud83d\udca1 Feel free to get in touch if you\u2019d like help on your next automation project or if you have any feedback or thoughts to share.\n"
},
"typeVersion": 1
},
{
"id": "f46c3414-02ea-4902-86d7-5ec5f387ec7b",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
400,
-340
],
"parameters": {
"color": 4,
"width": 820,
"height": 340,
"content": "## \ud83d\ude80 ClickUp Project Generator & ClickUp Task Creator with Form Interface using GPT-5\n\nWhat This Template Does:\n\n- Accepts project details through a web form (Project Name and Full Features description)\n- Uses OpenAI GPT-5 to intelligently clean up and enhance project names and descriptions\n- Generates professional Jira-style project keys (5 random uppercase letters)\n- Creates comprehensive task breakdowns following Agile best practices with user story format\n- Automatically generates detailed sub-tasks for each main task with proper descriptions\n- Creates the complete project structure in ClickUp with lists, tasks, and sub-tasks\n- Sends email notifications upon successful project creation with direct ClickUp links\n- Processes everything through AI-driven automation for consistent, professional project setup"
},
"typeVersion": 1
},
{
"id": "b6543d16-d4a2-4cb7-9799-cecade114ad8",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
1260,
-300
],
"parameters": {
"color": 4,
"width": 1040,
"height": 300,
"content": "## \ud83d\udccb WORKFLOW PROCESS OVERVIEW\n\nStep 1: \ud83d\udcdd Form Trigger captures project details through \"Jira Full Project Generator\" web form\nStep 2: \ud83e\udd16 Project Naming (AI Agent) uses OpenAI to clean up project name, create professional description, and generate random project key\nStep 3: \ud83d\udcca ClickUp Create List establishes the main project list in ClickUp workspace\nStep 4: \ud83e\udde0 Clickup Project Task Generator (AI Agent) analyzes project features and creates detailed task breakdown following Agile user story format\nStep 5: \ud83d\udce4 Split Out breaks down the AI-generated task array into individual items\nStep 6: \ud83d\udd04 Loop Over Items processes each main task individually through batch processing\nStep 7: \u2705 ClickUp Create Task creates each main task with descriptions in the project list\nStep 8: \ud83d\udd00 Split Out1 extracts sub-tasks from each main task for individual processing\nStep 9: \u26a1 Execute Workflow triggers the sub-workflow to create all sub-tasks with proper parent-child relationships\nStep 10: \ud83d\udce7 Gmail sends success notification email with project link and list ID\nStep 11: \ud83d\udd01 Sub-workflow Loop handles individual sub-task creation in ClickUp with parent task relationships"
},
"typeVersion": 1
},
{
"id": "1f7f4a03-fa98-4751-ac79-0aaf233c7e2d",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
400,
40
],
"parameters": {
"color": 4,
"width": 820,
"height": 300,
"content": "## SETUP REQUIRED\n\nWorkflow Configurations:\n- Update the Gmail node email address from \"n8n_test_result_replace_me@yopmail.com\" to your actual email\n- Configure ClickUp team ID (currently: 9014828465) and space ID (currently: 90143504524) for your workspace\n- Adjust the Execute Workflow node to reference the correct sub-workflow ID for subtask creation\n- Update the form webhook URL and form fields as needed\n\nRequired Credentials:\n- OpenAI API Key\n- ClickUp API Credential\n- Gmail OAuth2 Credential"
},
"typeVersion": 1
},
{
"id": "101fcb7a-d1ea-4b13-b779-6a4ef8afa624",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
2100,
220
],
"parameters": {
"color": 4,
"width": 420,
"height": 280,
"content": "## Gmail - Send Notification\nYou can adjust the subject & body of the notification here.\nAlso, update the recipient email."
},
"typeVersion": 1
},
{
"id": "e2298b94-2270-44f9-a21a-66a399434fb5",
"name": "Sticky Note9",
"type": "n8n-nodes-base.stickyNote",
"position": [
2800,
860
],
"parameters": {
"color": 4,
"width": 840,
"height": 420,
"content": "## Sub-task creator workflow"
},
"typeVersion": 1
},
{
"id": "bf2be9c3-1890-4131-a3c8-6528851272f2",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
640,
400
],
"parameters": {
"color": 4,
"width": 320,
"height": 280,
"content": "## Create List\nConfiguration:\nUpdate the ClickUp credentials with yours."
},
"typeVersion": 1
}
],
"connections": {
"Limit": {
"main": [
[
{
"node": "Loop Over Items",
"type": "main",
"index": 0
}
]
]
},
"Merge": {
"main": [
[
{
"node": "Execute Workflow",
"type": "main",
"index": 0
}
]
]
},
"Aggregate": {
"main": [
[
{
"node": "Gmail",
"type": "main",
"index": 0
}
]
]
},
"Split Out": {
"main": [
[
{
"node": "Limit",
"type": "main",
"index": 0
}
]
]
},
"Split Out1": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 1
}
]
]
},
"Edit Fields": {
"main": [
[
{
"node": "Split Out1",
"type": "main",
"index": 0
}
]
]
},
"Project Naming": {
"main": [
[
{
"node": "ClickUp Create List",
"type": "main",
"index": 0
}
]
]
},
"Loop Over Items": {
"main": [
[
{
"node": "Aggregate",
"type": "main",
"index": 0
}
],
[
{
"node": "ClickUp Create Task",
"type": "main",
"index": 0
}
]
]
},
"Execute Workflow": {
"main": [
[
{
"node": "Loop Over Items",
"type": "main",
"index": 0
}
]
]
},
"Loop Over Items1": {
"main": [
[],
[
{
"node": "ClickUp Create Sub-Task",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "Project Naming",
"type": "ai_languageModel",
"index": 0
},
{
"node": "Clickup Project Task Generator",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"On form submission": {
"main": [
[
{
"node": "Project Naming",
"type": "main",
"index": 0
}
]
]
},
"ClickUp Create List": {
"main": [
[
{
"node": "Clickup Project Task Generator",
"type": "main",
"index": 0
}
]
]
},
"ClickUp Create Task": {
"main": [
[
{
"node": "Edit Fields",
"type": "main",
"index": 0
},
{
"node": "Merge",
"type": "main",
"index": 0
}
]
]
},
"ClickUp Create Sub-Task": {
"main": [
[
{
"node": "Loop Over Items1",
"type": "main",
"index": 0
}
]
]
},
"Structured Output Parser": {
"ai_outputParser": [
[
{
"node": "Clickup Project Task Generator",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Structured Output Parser1": {
"ai_outputParser": [
[
{
"node": "Project Naming",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Clickup Project Task Generator": {
"main": [
[
{
"node": "Split Out",
"type": "main",
"index": 0
}
]
]
},
"When Executed by Another Workflow": {
"main": [
[
{
"node": "Loop Over Items1",
"type": "main",
"index": 0
}
]
]
},
"When clicking \u2018Test workflow\u2019": {
"main": [
[
{
"node": "Project Naming",
"type": "main",
"index": 0
}
]
]
}
}
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
clickUpApigmailOAuth2openAiApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This workflow is perfect for: Project managers and Agile teams who want to automate project setup and task creation Software development teams looking to standardize their project initialization process Business analysts and product owners who need to quickly convert project…
Source: https://n8n.io/workflows/8102/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
This workflow is perfect for: Agile development teams and project managers who need to quickly set up Jira projects Product managers who want to convert feature ideas into structured user stories and
This template attempts to replicate OpenAI's DeepResearch feature which, at time of writing, is only available to their pro subscribers.
Typeform IA - YT. Uses typeformTrigger, agent, lmChatOpenAi, toolWorkflow. Event-driven trigger; 75 nodes.
This workflow streamlines how employees request equipment/items and how those requests reach the Procurement team. It validates the employee by enrollment number, detects whether a manager exists, and
The workflow runs every hour with a randomized delay of 5–20 minutes to help distribute load. It records the exact date and time a lead is emailed so you can track outreach. Follow-ups are automatical