Automatisation du classement des tâches Jira et des rapports avec Slack, Gmail et IA

Avancé

Ceci est uncontenant 31 nœuds.Utilise principalement des nœuds comme If, Set, Jira, Gmail, Slack. Automatisation de l'organisation des tâches Jira et du rapportage avec Slack, Gmail et GPT-4

Prérequis
  • Compte Google et informations d'identification Gmail API
  • Token Bot Slack ou URL Webhook
  • Informations d'identification Google Sheets API
  • Clé API OpenAI

Catégorie

-
Aperçu du workflow
Visualisation des connexions entre les nœuds, avec support du zoom et du déplacement
Exporter le workflow
Copiez la configuration JSON suivante dans n8n pour importer et utiliser ce workflow
{
  "id": "0zvZIMYoz7Yavdpc",
  "meta": {
    "instanceId": "8443f10082278c46aa5cf3acf8ff0f70061a2c58bce76efac814b16290845177",
    "templateCredsSetupCompleted": true
  },
  "name": "Automate Jira Backlog Hygiene and Reporting with Slack ,Gmail and AI",
  "tags": [],
  "nodes": [
    {
      "id": "2c632cb2-a465-48a1-8615-646ae004a906",
      "name": "Aperçu du workflow",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2208,
        -672
      ],
      "parameters": {
        "color": 4,
        "width": 389,
        "height": 564,
        "content": "## 🎯 Backlog Hygiene & Auto-Grooming\n\nAutomated Jira backlog management that identifies issues, takes corrective actions, and generates AI-powered reports.\n\n**What it does:**\n- Runs weekdays at 9 AM to analyze backlog items\n- Identifies overdue tasks and missing priorities\n- Auto-tags issues needing attention\n- Logs all backlog items to Google Sheets\n- Sends real-time Slack alerts for critical issues\n- Generates AI-powered weekly digest emails\n\n**Use Case:** Perfect for engineering teams maintaining clean, prioritized Jira backlogs with minimal manual effort.\n\n**Required Setup:**\n- Jira Software Cloud credentials\n- Google Sheets for audit trail\n- Slack workspace for alerts\n- Gmail for email digests\n- Azure OpenAI API for AI summaries"
      },
      "typeVersion": 1
    },
    {
      "id": "ef8e559f-6e94-42c5-a70e-6cfd6ddea13f",
      "name": "Déclencheur - Programme quotidien",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -1680,
        -416
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "cronExpression",
              "expression": "0 9 * * 1-5"
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "30388334-2118-4d6d-a355-cc01ecf97bf5",
      "name": "Note - Programme",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1760,
        -272
      ],
      "parameters": {
        "width": 262,
        "height": 237,
        "content": "## ⏰ Weekday Mornings\n\nRuns Mon-Fri at 9:00 AM to groom backlog.\n\n**Schedule:** `0 9 * * 1-5`\n**Timing:** Daily at 09:00 on weekdays\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "c5ac2613-c23e-40c3-b0ff-0bb805b876e1",
      "name": "Récupérer le backlog Jira",
      "type": "n8n-nodes-base.jira",
      "position": [
        -1456,
        -416
      ],
      "parameters": {
        "options": {
          "jql": "project = YOUR_PROJECT_KEY AND status in (\"Backlog\") ORDER BY created DESC"
        },
        "operation": "getAll",
        "returnAll": true
      },
      "typeVersion": 1
    },
    {
      "id": "c56145cd-e7bd-47f2-945d-331c491d2eab",
      "name": "Note - Récupération",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1600,
        -704
      ],
      "parameters": {
        "width": 262,
        "height": 269,
        "content": "## 📋 Fetch Backlog Items\n\n**Setup Required:**\n1. Replace `YOUR_PROJECT_KEY` with your Jira project key\n2. Connect Jira credentials\n\n**Fetches:** All issues in \"Backlog\" status, ordered by creation date (newest first)"
      },
      "typeVersion": 1
    },
    {
      "id": "79cc28a5-7047-40ee-816e-ea61635ad230",
      "name": "Extraire les champs Jira",
      "type": "n8n-nodes-base.set",
      "position": [
        -1232,
        -416
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "65a9ad90-fc3a-4b15-a5db-57040972f1eb",
              "name": "id",
              "type": "string",
              "value": "={{ $json.id }}"
            },
            {
              "id": "a6e676d7-d345-4805-8947-c89246e250cb",
              "name": "Status",
              "type": "string",
              "value": "={{ $json.fields.status.name }}"
            },
            {
              "id": "329be7f5-f4b6-4c2d-8633-f4cc5c600f5a",
              "name": "Last Updated",
              "type": "string",
              "value": "={{ $json.fields.updated }}"
            },
            {
              "id": "6074d876-e5d4-4292-bdcc-dacce44367e9",
              "name": "Created",
              "type": "string",
              "value": "={{ $json.fields.created }}"
            },
            {
              "id": "f45794be-a5a2-4267-8959-6b3a628bdf33",
              "name": "Assignee",
              "type": "string",
              "value": "={{ $json.fields.reporter?.displayName || 'Unassigned' }}"
            },
            {
              "id": "d45594fe-3f25-4deb-9a33-1ae5da08a62a",
              "name": "Due Date",
              "type": "string",
              "value": "={{ $json.fields.duedate || '' }}"
            },
            {
              "id": "255fac2f-a504-4937-bfbb-4ab6d11ab85c",
              "name": "Priority",
              "type": "string",
              "value": "={{ $json.fields.priority?.name || '' }}"
            },
            {
              "id": "d1b9ba34-6836-470d-a4f8-06b50426f570",
              "name": "key",
              "type": "string",
              "value": "={{ $json.key }}"
            },
            {
              "id": "6df7df50-6844-498f-acad-125d0aac25e7",
              "name": "email",
              "type": "string",
              "value": "={{ $json.fields.creator?.emailAddress || '' }}"
            },
            {
              "id": "a4ffc18e-cc88-408d-bd22-fd915092b8c3",
              "name": "Summary",
              "type": "string",
              "value": "={{ $json.fields.summary || $json.fields.issuetype.description }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "cfe06dcd-cc9d-4eaf-898c-0aa823aa9d2a",
      "name": "Note - Extraction",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1296,
        -256
      ],
      "parameters": {
        "width": 262,
        "height": 309,
        "content": "## 🔄 Field Extraction\n\nMaps Jira fields to clean, usable data.\n\n**Extracted Fields:**\n- ID, Key, Status, Summary\n- Created & Last Updated dates\n- Assignee & Creator email\n- Due Date & Priority\n\n**Note:** Uses safe null handling with fallbacks"
      },
      "typeVersion": 1
    },
    {
      "id": "4c294ed5-4ae4-4d24-97f9-575cca486366",
      "name": "Enregistrer dans Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -1008,
        -368
      ],
      "parameters": {
        "columns": {
          "value": {},
          "schema": [
            {
              "id": "id",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "id",
              "defaultMatch": true,
              "canBeUsedToMatch": true
            },
            {
              "id": "Status",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Last Updated",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Last Updated",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Created",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Created",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Assignee",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Assignee",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Due Date",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Due Date",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Priority",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Priority",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "key",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "key",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "email",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "email",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Summary",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Summary",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "autoMapInputData",
          "matchingColumns": [
            "id"
          ]
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultName": "Backlogs"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "YOUR_SHEET_ID",
          "cachedResultName": "Backlog Audit Log"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "684448c6-3f51-401c-8e3c-3e40db0b6ce2",
      "name": "Note - Sheets",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1056,
        -480
      ],
      "parameters": {
        "width": 262,
        "height": 285,
        "content": "## 📊 Audit Trail\n\n**Setup Required:**\n1. Replace `YOUR_SHEET_ID` with Google Sheets document ID\n2. Connect Google OAuth2 credentials\n\n**Logs:** All backlog items with timestamps for historical tracking and reporting"
      },
      "typeVersion": 1
    },
    {
      "id": "ef72046f-dd55-429d-be00-c9324dbccaf1",
      "name": "Vérifier les tâches en retard",
      "type": "n8n-nodes-base.if",
      "position": [
        -1008,
        -704
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "c92605e8-e7aa-494b-86ba-ca0d20244af8",
              "operator": {
                "type": "dateTime",
                "operation": "before"
              },
              "leftValue": "={{ $json[\"Due Date\"] }}",
              "rightValue": "={{ new Date(Date.now())}}"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "b27e44f5-db46-4885-9f4a-c65ebecaeff7",
      "name": "Note - Vérification des retards",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1152,
        -992
      ],
      "parameters": {
        "width": 262,
        "height": 261,
        "content": "## ⏰ Overdue Filter\n\n**Logic:** Checks if Due Date is before today\n\n**True Branch:** Overdue tasks\n- Sends Jira notification\n- Posts Slack alert\n\n**False Branch:** Not overdue\n- Continues to priority check"
      },
      "typeVersion": 1
    },
    {
      "id": "11751464-7ff3-40fa-8dd1-c78b008a0dd2",
      "name": "Notifier le propriétaire du ticket",
      "type": "n8n-nodes-base.jira",
      "position": [
        -720,
        -896
      ],
      "parameters": {
        "issueKey": "={{ $json.key }}",
        "resource": "issue",
        "operation": "notify",
        "jiraVersion": "cloud",
        "jsonParameters": false,
        "additionalFields": {
          "subject": "Overdue Task: {{ $json.Summary }}",
          "textBody": "This issue is overdue and requires immediate attention. Please review and update the status or due date."
        },
        "notificationRecipientsUi": {
          "notificationRecipientsValues": {
            "users": [],
            "groups": [],
            "voters": false,
            "assignee": true,
            "reporter": true,
            "watchers": false
          }
        },
        "notificationRecipientsRestrictionsUi": {}
      },
      "typeVersion": 1
    },
    {
      "id": "d52caf19-6f96-4565-be5d-ed34d3f55158",
      "name": "Note - Notification Jira",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -832,
        -1168
      ],
      "parameters": {
        "width": 262,
        "height": 253,
        "content": "## 📧 Jira Notification\n\n**Setup Required:**\n1. Uses same Jira credentials\n2. Removed hardcoded user/group IDs\n\n**Sends:** In-app Jira notification to reporter and assignee for overdue tasks"
      },
      "typeVersion": 1
    },
    {
      "id": "ef9c4252-1781-4ee0-b0c7-583765206a89",
      "name": "Alerte Slack - Tâche en retard",
      "type": "n8n-nodes-base.slack",
      "position": [
        -720,
        -704
      ],
      "webhookId": "2a85d9b8-5e35-4003-800d-670563648534",
      "parameters": {
        "text": "=🔴 *Overdue Backlog Item*\n\n*Summary:* {{ $json.Summary }}\n*Issue:* {{ $json.key }}\n*Due Date:* {{ $json['Due Date'] }}\n*Assignee:* {{ $json.Assignee }}\n*Status:* {{ $json.Status }}\n\nThis item is overdue and needs immediate attention.",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "list",
          "value": "YOUR_CHANNEL_ID",
          "cachedResultName": "backlog-alerts"
        },
        "otherOptions": {}
      },
      "typeVersion": 2.3
    },
    {
      "id": "30057434-63d2-4d55-a527-a7f20d9233c3",
      "name": "Note - Slack Retard",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -736,
        -752
      ],
      "parameters": {
        "width": 262,
        "height": 221,
        "content": "## 💬 Slack - Overdue\n\n**Setup Required:**\n1. Replace `YOUR_CHANNEL_ID` with Slack channel ID\n2. Connect Slack API credentials\n\n**Posts:** Real-time alert for overdue items with full context"
      },
      "typeVersion": 1
    },
    {
      "id": "1e90d54a-7e05-4cce-859c-ddd62cb498d6",
      "name": "Vérifier les priorités manquantes",
      "type": "n8n-nodes-base.if",
      "position": [
        -720,
        -512
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "630bf2fe-1811-4058-846e-04563f4d8530",
              "operator": {
                "type": "string",
                "operation": "empty",
                "singleValue": true
              },
              "leftValue": "={{ $json.Priority }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "198c9966-323e-45a6-bdef-3dadb6c01105",
      "name": "Note - Vérification des priorités",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -768,
        -320
      ],
      "parameters": {
        "width": 262,
        "height": 309,
        "content": "## 🏷️ Priority Check\n\n**Logic:** Checks if Priority field is empty\n\n**True Branch:** Missing priority\n- Tags issue with \"Needs-Priority\" label\n- Posts Slack alert\n\n**False Branch:** Priority exists\n- No action needed"
      },
      "typeVersion": 1
    },
    {
      "id": "cfca36aa-3f46-4027-8d29-5ef5137e338c",
      "name": "Tagger avec 'Needs-Priority'",
      "type": "n8n-nodes-base.jira",
      "position": [
        -432,
        -608
      ],
      "parameters": {
        "issueKey": "={{ $json.key }}",
        "operation": "update",
        "updateFields": {
          "labels": "={{ [\"Needs-Priority\"] }}"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "f02e8cae-0ec8-4779-a5b2-6a48ede692ea",
      "name": "Note - Taggage",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -448,
        -832
      ],
      "parameters": {
        "width": 262,
        "height": 205,
        "content": "## 🏷️ Auto-Tag Issue\n\n**Setup Required:**\n1. Uses same Jira credentials\n\n**Action:** Automatically adds \"Needs-Priority\" label to issues missing priority field for easy filtering"
      },
      "typeVersion": 1
    },
    {
      "id": "11cc0368-975c-4bc0-a2ef-c467df83569d",
      "name": "Alerte Slack - Priorité manquante",
      "type": "n8n-nodes-base.slack",
      "position": [
        -432,
        -416
      ],
      "webhookId": "dfb76a4c-86f2-4812-87e9-f5c841be4336",
      "parameters": {
        "text": "=⚠️ *Missing Priority*\n\n*Summary:* {{ $json.Summary }}\n*Issue:* {{ $json.key }}\n*Assignee:* {{ $json.Assignee }}\n*Status:* {{ $json.Status }}\n*Due Date:* {{ $json['Due Date'] }}\n\nThis issue has been tagged with \"Needs-Priority\" label. Please assign a priority.",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "list",
          "value": "YOUR_CHANNEL_ID",
          "cachedResultName": "backlog-alerts"
        },
        "otherOptions": {}
      },
      "typeVersion": 2.3
    },
    {
      "id": "39461f27-b8b4-4d4c-baa9-bbc5f4ed29cc",
      "name": "Note - Slack Priorité",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -272,
        -416
      ],
      "parameters": {
        "width": 262,
        "height": 221,
        "content": "## 💬 Slack - Priority\n\n**Setup Required:**\n1. Use same Slack channel ID and credentials\n\n**Posts:** Alert for issues missing priority with action taken (tagged with label)"
      },
      "typeVersion": 1
    },
    {
      "id": "be03f5d0-6e99-44a8-8d3c-3c293fe58602",
      "name": "Agréger tous les éléments",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        -1008,
        -176
      ],
      "parameters": {
        "options": {},
        "aggregate": "aggregateAllItemData"
      },
      "typeVersion": 1
    },
    {
      "id": "5a04bac2-e1c5-4715-8413-776e5cd7f846",
      "name": "Note - Agrégation",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1152,
        64
      ],
      "parameters": {
        "width": 262,
        "height": 258,
        "content": "## 📦 Combine Data\n\nAggregates all backlog items into single payload for AI analysis.\n\n**Purpose:** Prepares comprehensive dataset for AI to analyze patterns and generate insights"
      },
      "typeVersion": 1
    },
    {
      "id": "289d850d-aeb2-475e-a810-822204ac98a6",
      "name": "Générer un résumé IA",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -784,
        -176
      ],
      "parameters": {
        "text": "=Analyze the following Jira backlog items and generate an email for the project manager.\n\nEach item includes: issue ID, key, assignee, status, due date, priority, and summary.\n\nYour goal:\n- Identify overdue tasks (due date before today).\n- Highlight items with missing priority.\n- Summarize the overall backlog health.\n- Suggest 2-3 actionable steps to improve backlog hygiene.\n- Mention how many issues fall into each category.\n\nBacklog data:\n{{ JSON.stringify($json) }}",
        "options": {
          "systemMessage": "You are an automation assistant for project management and engineering teams.\nYour role is to analyze Jira backlog data and generate a professional HTML email for a project or engineering manager that summarizes the backlog health and highlights key actions.\n\nOutput Requirements:\n- The output must be a valid JSON object with two keys:\n  {\n    \"Subject\": \"<email subject line>\",\n    \"Body\": \"<HTML formatted email body>\"\n  }\n\nFormatting & Tone Guidelines:\n- Maintain a clear, concise, and professional business tone.\n- Use semantic HTML tags such as <p>, <ul>, <li>, <strong>, <em>, and <table> for readability.\n- Do not include any Markdown or code formatting.\n- The HTML should be visually structured and ready to send directly via email.\n- Always start with a short greeting (e.g., \"Dear Project Manager,\").\n- Follow with a summary paragraph that states the purpose of the email (e.g., \"Here's the latest Jira backlog summary for this week.\").\n- Include clearly formatted sections for:\n  1. Overdue Tasks\n  2. Missing Priorities\n  3. General Backlog Health\n- Add an HTML table if helpful for listing issue details (Key, Summary, Assignee, Due Date, Priority).\n- End the email with an \"Actionable Recommendations\" section listing 2-3 clear next steps.\n- Close politely (e.g., \"Regards, Backlog Hygiene Assistant\").\n- Keep the email content under 300 words.\n\nBehavior:\n- Analyze patterns and highlight areas needing attention.\n- Summarize counts of overdue, missing priority, or stale issues.\n- Suggest actionable next steps to improve backlog hygiene.\n- The output must be clean, valid JSON and contain no Markdown or triple backticks."
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 2
    },
    {
      "id": "3a297cb4-3dde-4a58-88a1-a127062b3fca",
      "name": "Note - Analyse IA",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -864,
        32
      ],
      "parameters": {
        "width": 262,
        "height": 309,
        "content": "## 🤖 AI Analysis Engine\n\n**What it does:**\n- Analyzes all backlog items using AI\n- Identifies patterns and trends\n- Generates structured JSON output with Subject and HTML Body\n\n**Requires:** Azure OpenAI credentials and structured output parser"
      },
      "typeVersion": 1
    },
    {
      "id": "53379a85-d8d5-4be5-bf67-e8df4e4098d7",
      "name": "Modèle Azure OpenAI",
      "type": "@n8n/n8n-nodes-langchain.lmChatAzureOpenAi",
      "position": [
        -768,
        64
      ],
      "parameters": {
        "model": "gpt-4o-mini",
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "id": "c78017ec-f5b1-48ce-8586-fef3d75e35a3",
      "name": "Note - Azure",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -960,
        -176
      ],
      "parameters": {
        "width": 262,
        "height": 237,
        "content": "## 🔗 AI Model Config\n\n**Setup Required:**\n1. Replace credential ID with your Azure OpenAI credentials\n2. Model: gpt-4o-mini (cost-effective)\n\n**Connects:** To AI agent for language processing"
      },
      "typeVersion": 1
    },
    {
      "id": "6364596e-43e2-402a-a285-1740094c475f",
      "name": "Analyseur de sortie structurée",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        -640,
        64
      ],
      "parameters": {
        "jsonSchemaExample": "{\n\t\"Subject\": \"\",\n\t\"Body\": \"\"\n}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "8a53abde-9f29-41c7-9917-ccee228748a4",
      "name": "Note - Analyseur",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -592,
        64
      ],
      "parameters": {
        "width": 262,
        "height": 205,
        "content": "## 📋 Output Parser\n\nEnsures AI returns valid JSON with:\n- Subject: Email subject line\n- Body: HTML formatted email\n\n**No setup required** - connects to AI agent automatically"
      },
      "typeVersion": 1
    },
    {
      "id": "32153f43-2620-40d6-98d9-7793d756d206",
      "name": "Envoyer le résumé hebdomadaire par email",
      "type": "n8n-nodes-base.gmail",
      "position": [
        -432,
        -176
      ],
      "webhookId": "0ce2113a-ca08-405d-8a8b-58218e48cc02",
      "parameters": {
        "sendTo": "YOUR_EMAIL@example.com",
        "message": "={{ $json.output.Body }}",
        "options": {},
        "subject": "={{ $json.output.Subject }}"
      },
      "typeVersion": 2.1
    },
    {
      "id": "e71a8d4b-aff9-457c-bcbb-b521f9333bd2",
      "name": "Note - Email",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -288,
        -80
      ],
      "parameters": {
        "width": 262,
        "height": 301,
        "content": "## 📧 Send AI Digest\n\n**Setup Required:**\n1. Replace `YOUR_EMAIL@example.com` with manager's email\n2. Connect Gmail OAuth2 credentials\n\n**Sends:** AI-generated HTML email with backlog summary and actionable recommendations"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "a3faef09-d8b1-4083-baab-1ec097f35b4e",
  "connections": {
    "53379a85-d8d5-4be5-bf67-e8df4e4098d7": {
      "ai_languageModel": [
        [
          {
            "node": "289d850d-aeb2-475e-a810-822204ac98a6",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "c5ac2613-c23e-40c3-b0ff-0bb805b876e1": {
      "main": [
        [
          {
            "node": "79cc28a5-7047-40ee-816e-ea61635ad230",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "289d850d-aeb2-475e-a810-822204ac98a6": {
      "main": [
        [
          {
            "node": "32153f43-2620-40d6-98d9-7793d756d206",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "be03f5d0-6e99-44a8-8d3c-3c293fe58602": {
      "main": [
        [
          {
            "node": "289d850d-aeb2-475e-a810-822204ac98a6",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ef72046f-dd55-429d-be00-c9324dbccaf1": {
      "main": [
        [
          {
            "node": "11751464-7ff3-40fa-8dd1-c78b008a0dd2",
            "type": "main",
            "index": 0
          },
          {
            "node": "ef9c4252-1781-4ee0-b0c7-583765206a89",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "1e90d54a-7e05-4cce-859c-ddd62cb498d6",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "79cc28a5-7047-40ee-816e-ea61635ad230": {
      "main": [
        [
          {
            "node": "be03f5d0-6e99-44a8-8d3c-3c293fe58602",
            "type": "main",
            "index": 0
          },
          {
            "node": "ef72046f-dd55-429d-be00-c9324dbccaf1",
            "type": "main",
            "index": 0
          },
          {
            "node": "4c294ed5-4ae4-4d24-97f9-575cca486366",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "1e90d54a-7e05-4cce-859c-ddd62cb498d6": {
      "main": [
        [
          {
            "node": "cfca36aa-3f46-4027-8d29-5ef5137e338c",
            "type": "main",
            "index": 0
          },
          {
            "node": "11cc0368-975c-4bc0-a2ef-c467df83569d",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ef8e559f-6e94-42c5-a70e-6cfd6ddea13f": {
      "main": [
        [
          {
            "node": "c5ac2613-c23e-40c3-b0ff-0bb805b876e1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "6364596e-43e2-402a-a285-1740094c475f": {
      "ai_outputParser": [
        [
          {
            "node": "289d850d-aeb2-475e-a810-822204ac98a6",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    }
  }
}
Foire aux questions

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é ?

Avancé

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.

Informations sur le workflow
Niveau de difficulté
Avancé
Nombre de nœuds31
Catégorie-
Types de nœuds12
Description de la difficulté

Adapté aux utilisateurs avancés, avec des workflows complexes contenant 16+ nœuds

Auteur
Rahul Joshi

Rahul Joshi

@rahul08

Rahul Joshi is a seasoned technology leader specializing in the n8n automation tool and AI-driven workflow automation. With deep expertise in building open-source workflow automation and self-hosted automation platforms, he helps organizations eliminate manual processes through intelligent n8n ai agent automation solutions.

Liens externes
Voir sur n8n.io

Partager ce workflow

Catégories

Catégories: 34