Tri des priorités des tâches du COO
Ceci est unAI, IT Opsworkflow d'automatisation du domainecontenant 15 nœuds.Utilise principalement des nœuds comme Asana, Postgres, Agent, ScheduleTrigger, LmChatOpenAi, combinant la technologie d'intelligence artificielle pour une automatisation intelligente. Tri des priorités des tâches Asana piloté par l'IA, basé sur GPT-4 et la mémoire Pinecone
- •Informations de connexion à la base de données PostgreSQL
- •Clé API OpenAI
- •Clé API Pinecone
Nœuds utilisés (15)
{
"id": "czDg0Q7wsAoqYQIx",
"meta": {
"instanceId": "84ad02d6104594179f43f1ce9cfe3a81637b2faedb57dafcb9e649b7542988db"
},
"name": "COO Task Prioritization",
"tags": [],
"nodes": [
{
"id": "39d955ab-7c8e-4faa-ae3d-948dfa5e0615",
"name": "Pinecone Vector Store",
"type": "@n8n/n8n-nodes-langchain.vectorStorePinecone",
"position": [
640,
500
],
"parameters": {
"options": {},
"pineconeIndex": {
"__rl": true,
"mode": "list",
"value": ""
}
},
"credentials": {
"pineconeApi": {
"id": "PSI5CiZnLRSkEgJg",
"name": "PineconeApi account"
}
},
"typeVersion": 1.1
},
{
"id": "923a5e54-785a-4c4f-b6b8-f540bb1c4e19",
"name": "Déclencheur quotidien 9h",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
0,
0
],
"parameters": {
"rule": {
"interval": [
{
"triggerAtHour": 9
}
]
}
},
"typeVersion": 1.2
},
{
"id": "28adcd8d-e4cf-45f7-ad32-16ffe30a525b",
"name": "Récupérer les tâches",
"type": "n8n-nodes-base.asana",
"position": [
220,
0
],
"parameters": {
"filters": {
"project": ""
},
"operation": "getAll",
"returnAll": true
},
"typeVersion": 1
},
{
"id": "b43946e1-1b62-46fc-9211-72551b6c55c7",
"name": "Agent COO",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
660,
0
],
"parameters": {
"text": "={{ $json.data }}",
"options": {
"systemMessage": "=You are a COO AI agent that helps prioritize operational tasks. Use the retrieved context from vector_database_tool to assess task urgency and strategic importance.\n\nFor the most priority task, output:\n\nTask Name\n\nPriority Level: High / Medium / Low\n\nDue Date\n\nReason for Priority\n\nConsider urgency (due date), impact on operations, and dependencies retrieved from vector knowledge.\nJust give back the most important task"
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 1.9
},
{
"id": "b716a7b4-0357-4730-89b2-8bc295d5a22a",
"name": "Enregistrer la tâche priorisée",
"type": "n8n-nodes-base.postgres",
"position": [
1600,
0
],
"parameters": {
"table": {
"__rl": true,
"mode": "list",
"value": "prioritized_tasks",
"cachedResultName": "prioritized_tasks"
},
"schema": {
"__rl": true,
"mode": "list",
"value": "public"
},
"columns": {
"value": {
"task_name": "={{ $json.output.tasks[0][\"Task Name\"] }}",
"priority_level": "={{ $json.output.tasks[0][\"Priority Level\"] }}",
"reason_for_priority": "={{ $json.output.tasks[0][\"Reason for Priority\"] }}"
},
"schema": [
{
"id": "id",
"type": "number",
"display": true,
"removed": true,
"required": false,
"displayName": "id",
"defaultMatch": true,
"canBeUsedToMatch": true
},
{
"id": "task_name",
"type": "string",
"display": true,
"required": true,
"displayName": "task_name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "priority_level",
"type": "string",
"display": true,
"required": false,
"displayName": "priority_level",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "reason_for_priority",
"type": "string",
"display": true,
"required": false,
"displayName": "reason_for_priority",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"id"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {}
},
"credentials": {
"postgres": {
"id": "6DsmtQnULFUnNgy4",
"name": "Postgres account"
}
},
"typeVersion": 2.6
},
{
"id": "759f799a-d046-4609-8894-99a9b951e43f",
"name": "Modèle de raisonnement sur les tâches",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
560,
260
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "wYwTjEv45IzlAOAu",
"name": "OpenAi account 2"
}
},
"typeVersion": 1.2
},
{
"id": "4e3a60ec-d900-44e9-beaf-0de5905d9b2e",
"name": "Analyseur de sortie de priorité",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
1120,
180
],
"parameters": {
"jsonSchemaExample": "{\n \"tasks\": [\n {\n \"Task Name\": \"Review quarterly KPIs\",\n \"Priority Level\": \"High\",\n \"Reason for Priority\": \"Provides critical performance metrics for all departments; deadline is approaching.\"\n },\n"
},
"typeVersion": 1.2
},
{
"id": "d7ae1305-e2f2-44c0-9c21-8cb29310a5d8",
"name": "Base de vecteurs de connaissances des tâches",
"type": "@n8n/n8n-nodes-langchain.toolVectorStore",
"position": [
820,
220
],
"parameters": {
"name": "vector_database_tool",
"description": "The information related to task prioritization is here"
},
"typeVersion": 1
},
{
"id": "906b83fc-d501-4442-b470-3e90148ace33",
"name": "Modèle de requête vectorielle",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
960,
440
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "wYwTjEv45IzlAOAu",
"name": "OpenAi account 2"
}
},
"typeVersion": 1.2
},
{
"id": "e2b8e43c-1f7e-43e0-bba1-d186776d1e2b",
"name": "Générer des embeddings de tâches",
"type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
"position": [
580,
720
],
"parameters": {
"options": {}
},
"credentials": {
"openAiApi": {
"id": "wYwTjEv45IzlAOAu",
"name": "OpenAi account 2"
}
},
"typeVersion": 1.2
},
{
"id": "61c92166-6068-4884-ac39-af52ae4a496a",
"name": "Note adhésive",
"type": "n8n-nodes-base.stickyNote",
"position": [
-40,
-480
],
"parameters": {
"color": 6,
"width": 400,
"height": 680,
"content": "## 🔁 Section 1: Trigger & Data Retrieval\n\n### 🔹 **Node: `Daily 9AM Trigger`**\n\n* **Function**: Starts the workflow every day at 9:00 AM.\n* **Type**: Time-based scheduler.\n* **Why**: Ensures task processing is automated and consistent on a daily schedule.\n\n### 🔹 **Node: `Fetch Asana Tasks`**\n\n* **Function**: Retrieves all tasks from Asana that are due or assigned.\n* **Type**: API Connector to Asana.\n* **Why**: Acts as the entry point for incoming task data that needs prioritization.\n"
},
"typeVersion": 1
},
{
"id": "c9d36c9c-2cd3-407c-bc97-c765e6cb3bc6",
"name": "Note adhésive 1",
"type": "n8n-nodes-base.stickyNote",
"position": [
500,
-600
],
"parameters": {
"color": 5,
"width": 760,
"height": 1480,
"content": "## 🧠 Section 2: AI Prioritization\n\n### 🔹 **Node: `COO Task Prioritization Agent`**\n\n* **Function**: Uses an AI Agent to evaluate and assign a priority to each task.\n* **Inputs**: Raw task data from Asana.\n* **Outputs**:\n\n * `task_name`\n * `priority_level` (e.g., High, Medium, Low)\n * `reason_for_priority` (a justification provided by the AI)\n* **Why**: Simulates a COO’s judgment to focus on strategic and urgent tasks.\n\n### 🔹 **Node: `Task Reasoning Model`**\n\n* **Function**: Enhances the AI Agent's decision-making by providing natural language reasoning.\n* **Model**: OpenAI Chat Model.\n* **Why**: Adds contextual understanding to why a task is important.\n\n### 🔹 **Node: `Priority Output Parser`**\n\n* **Function**: Extracts structured data (task name, priority level, reasoning) from the AI’s output.\n* **Why**: Ensures only clean, usable data is passed to the database layer."
},
"typeVersion": 1
},
{
"id": "4030c4f7-140c-453b-8441-4ed230da0928",
"name": "Note adhésive 2",
"type": "n8n-nodes-base.stickyNote",
"position": [
1460,
-460
],
"parameters": {
"color": 3,
"width": 380,
"height": 640,
"content": "## 🗃️ Section 3: Data Storage & Enrichment\n\n### 🔹 **Node: `Save Prioritized Tasks`**\n\n* **Function**: Inserts each prioritized task into a PostgreSQL database.\n* **Fields**:\n\n * `task_name`\n * `priority_level`\n * `reason_for_priority`\n* **Why**: Provides a persistent store for further reporting, monitoring, or automation."
},
"typeVersion": 1
},
{
"id": "cd768682-0aee-41d9-bdbc-0b3e8509a042",
"name": "Note adhésive 9",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1980,
-460
],
"parameters": {
"color": 4,
"width": 1300,
"height": 320,
"content": "=======================================\n WORKFLOW ASSISTANCE\n=======================================\nFor any questions or support, please contact:\n Yaron@nofluff.online\n\nExplore more tips and tutorials here:\n - YouTube: https://www.youtube.com/@YaronBeen/videos\n - LinkedIn: https://www.linkedin.com/in/yaronbeen/\n=======================================\n"
},
"typeVersion": 1
},
{
"id": "019cb716-597a-49b3-8eeb-fc523f210c8f",
"name": "Note adhésive 4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1980,
-120
],
"parameters": {
"color": 4,
"width": 1289,
"height": 2238,
"content": "Absolutely! Here's a **very detailed, polished explanation** of your workflow — structured in a **clean, professional format** with icons and broken into **three logical sections**. This is suitable for documentation, presentations, or onboarding team members.\n\n---\n\n# 🧠 COO Task Automation Workflow Documentation\n\nThis intelligent automation workflow simulates a **COO’s decision-making** by prioritizing daily tasks fetched from Asana using AI. It operates autonomously every morning at 9 AM, analyzes the tasks using an AI reasoning engine with memory and context, and stores the prioritized outcomes in a structured database for operational use.\n\n---\n\n## ⏰ 1. Trigger & Task Collection\n\n### 📅 **Automated Daily Start**\n\n* **Time-based Scheduling**: The system is configured to initiate **automatically every day at 9:00 AM** without any manual input.\n* This guarantees consistency in daily planning and ensures tasks are prioritized early in the workday.\n\n### 🔗 **Integration with Asana**\n\n* The workflow connects directly to the **Asana task management platform**.\n* It fetches tasks assigned to the team or specific users, filtered by criteria such as due date, project, or tag.\n* These tasks include metadata like task name, description, due date, assignee, and any custom fields.\n* All this information becomes the **raw input** for the AI decision-making engine.\n\n---\n\n## 🧠 2. Intelligent Task Prioritization\n\n### 🤖 **AI-Powered Prioritization Logic**\n\n* Once tasks are collected, they are passed to a custom **AI Agent**.\n* This AI agent plays the role of a **virtual COO**, applying strategic reasoning to prioritize tasks based on business urgency, impact, and context.\n\n### 🧩 **Reasoning Through Language Models**\n\n* Behind the scenes, the agent leverages a **large language model (LLM)** to:\n\n * Analyze each task's content.\n * Cross-reference it with similar past tasks or organizational priorities.\n * Generate an intelligent output:\n\n * **Task Name**\n * **Priority Level** (High, Medium, Low)\n * **Reason for Priority** (justification written in natural language).\n\n### 🗂️ **Structured Output Conversion**\n\n* Since the AI outputs natural language, the system uses a **parser** to extract structured fields.\n* This step ensures that the response is normalized and can be cleanly inserted into a relational database.\n\n---\n\n## 📦 3. Enrichment & Persistent Storage\n\n### 🧾 **Saving to PostgreSQL**\n\n* The structured data is stored in a **PostgreSQL database** with the following schema:\n\n * `task_name`: The name or summary of the task.\n * `priority_level`: Categorized as High, Medium, or Low.\n * `reason_for_priority`: A brief but clear explanation of why the task received this priority.\n\n### 📚 **Contextual Intelligence with Vector Embeddings**\n\n* To make future decisions more intelligent, the system incorporates a **semantic memory layer** using **vector databases** and **embeddings**.\n* All task-related text is converted into **numerical vector representations** using an embeddings model.\n* These embeddings are stored in a **vector database**, enabling the AI agent to:\n\n * Recall similar past tasks.\n * Understand historical context.\n * Find patterns across time and projects.\n\n### 🔍 **Semantic Search & Retrieval**\n\n* When making prioritization decisions, the AI queries the vector database to retrieve **semantically similar tasks**.\n* This enables **context-aware decision-making**, allowing the AI to make better judgments based on past learnings, not just current inputs."
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "8c201cdf-caaa-423e-ad38-f6ac7955ff32",
"connections": {
"b43946e1-1b62-46fc-9211-72551b6c55c7": {
"main": [
[
{
"node": "b716a7b4-0357-4730-89b2-8bc295d5a22a",
"type": "main",
"index": 0
}
]
]
},
"28adcd8d-e4cf-45f7-ad32-16ffe30a525b": {
"main": [
[
{
"node": "b43946e1-1b62-46fc-9211-72551b6c55c7",
"type": "main",
"index": 0
}
]
]
},
"923a5e54-785a-4c4f-b6b8-f540bb1c4e19": {
"main": [
[
{
"node": "28adcd8d-e4cf-45f7-ad32-16ffe30a525b",
"type": "main",
"index": 0
}
]
]
},
"906b83fc-d501-4442-b470-3e90148ace33": {
"ai_languageModel": [
[
{
"node": "d7ae1305-e2f2-44c0-9c21-8cb29310a5d8",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"759f799a-d046-4609-8894-99a9b951e43f": {
"ai_languageModel": [
[
{
"node": "b43946e1-1b62-46fc-9211-72551b6c55c7",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"39d955ab-7c8e-4faa-ae3d-948dfa5e0615": {
"ai_vectorStore": [
[
{
"node": "d7ae1305-e2f2-44c0-9c21-8cb29310a5d8",
"type": "ai_vectorStore",
"index": 0
}
]
]
},
"4e3a60ec-d900-44e9-beaf-0de5905d9b2e": {
"ai_outputParser": [
[
{
"node": "b43946e1-1b62-46fc-9211-72551b6c55c7",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"e2b8e43c-1f7e-43e0-bba1-d186776d1e2b": {
"ai_embedding": [
[
{
"node": "39d955ab-7c8e-4faa-ae3d-948dfa5e0615",
"type": "ai_embedding",
"index": 0
}
]
]
},
"d7ae1305-e2f2-44c0-9c21-8cb29310a5d8": {
"ai_tool": [
[
{
"node": "b43946e1-1b62-46fc-9211-72551b6c55c7",
"type": "ai_tool",
"index": 0
}
]
]
}
}
}Comment utiliser ce workflow ?
Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.
Dans quelles scénarios ce workflow est-il adapté ?
Intermédiaire - Intelligence Artificielle, Opérations IT
Est-ce payant ?
Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.
Workflows recommandés
Yaron Been
@yaron-nofluffBuilding AI Agents and Automations | Growth Marketer | Entrepreneur | Book Author & Podcast Host If you need any help with Automations, feel free to reach out via linkedin: https://www.linkedin.com/in/yaronbeen/ And check out my Youtube channel: https://www.youtube.com/@YaronBeen/videos
Partager ce workflow