Réponse automatisée aux e-mails avec GPT-4o, Outlook et approbation GoToHuman

Intermédiaire

Ceci est unTicket Management, AI Chatbotworkflow d'automatisation du domainecontenant 15 nœuds.Utilise principalement des nœuds comme If, Code, ManualTrigger, SplitInBatches, Agent. Réponse automatisée aux e-mails avec GPT-4o, Outlook et approbation GoToHuman

Prérequis
  • Clé API OpenAI
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
{
  "meta": {
    "instanceId": "efb474b59b0341d7791932605bd9ff04a6c7ed9941fdd53dc4a2e4b99a6f9439",
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "db46a99c-a87d-4203-925f-f94fed274bbe",
      "name": "Note adhésive",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        120,
        0
      ],
      "parameters": {
        "color": 5,
        "width": 1200,
        "height": 760,
        "content": "### 4. **Generate AI Response**\n- Text prompt to OpenAI:  \n  ```\n  subject: {{ $json.subject }}  \n  body: {{ $json.body.content }}\n  ```\n\n- System prompt:  \n  > You are a personal assistant helping respond to emails. I am an AI automation expert specializing in helping small and medium-size businesses automate processes. Create a short response to the email. Sign the email as Robert Breen.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "2b29c366-caf6-41e5-bf09-a6f60ab9d315",
      "name": "Outil : Injecter de la créativité",
      "type": "@n8n/n8n-nodes-langchain.toolThink",
      "position": [
        600,
        520
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "df07d826-251e-4b9f-927f-637280847891",
      "name": "Analyseur : Extraire JSON de l'idée",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        800,
        480
      ],
      "parameters": {
        "jsonSchemaExample": "[\n  {\n    \"body\": \"\"\n  }\n]\n"
      },
      "typeVersion": 1.2
    },
    {
      "id": "3f7eeefc-a208-4020-8b6a-7dc536126daa",
      "name": "openai",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        480,
        500
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o",
          "cachedResultName": "gpt-4o"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "ghJTvay8CvwXDsXz",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "c1d3fd0d-b84e-4346-aa2e-3c3b8cf358e3",
      "name": "Note adhésive1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -880,
        0
      ],
      "parameters": {
        "width": 980,
        "height": 760,
        "content": "### 1. **Trigger**  \nUse the Manual Trigger to test or schedule execution with a cron node.\n\n### 2. **Filter Emails from Today**\nA Code node outputs today's date in the proper `yyyy-mm-dd` format.\n\n```javascript\nconst today = new Date();\ntoday.setHours(0, 0, 0, 0);\nreturn [{ json: { searchQuery: `received:${today.toISOString().split('T')[0]}` } }];\n```\n\n### 3. **Search and Filter Outlook Messages**\n- Uses the Outlook node with a search query like:  \n  `received:2025-08-06 -from:rbreen@ynteractive.com` (Update to your email address)"
      },
      "typeVersion": 1
    },
    {
      "id": "af0105d8-5b95-4d82-8735-acb6358f607b",
      "name": "Note adhésive3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1340,
        0
      ],
      "parameters": {
        "color": 3,
        "width": 760,
        "height": 760,
        "content": "### 5. **Review with gotoHuman**\n- Submit AI output for human approval using the `gotoHuman` node.\n- The output schema should match the Review Template fields (e.g., \"email\", \"OriginalEmail\").\n\n### 6. **IF Node Decision**\n- If status is `approved`, send reply\n- If not, return to loop for revision or skip\n\n---"
      },
      "typeVersion": 1
    },
    {
      "id": "be573205-24d6-49e7-924e-d9bfd1879505",
      "name": "Test",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -800,
        420
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "807aecbb-fdc0-4a6b-9fbb-186aefdad240",
      "name": "Afficher la date du jour",
      "type": "n8n-nodes-base.code",
      "position": [
        -520,
        560
      ],
      "parameters": {
        "jsCode": "const today = new Date();\ntoday.setHours(0, 0, 0, 0); // Normalize to start of day\n\nconst formattedDate = today.toISOString().split('T')[0]; // \"2025-08-06\"\n\nreturn [\n  {\n    json: {\n      searchQuery: `received:${formattedDate}`\n    }\n  }\n];\n"
      },
      "typeVersion": 2
    },
    {
      "id": "b4d9154b-c7e8-437b-b6d8-ed22327bfccf",
      "name": "Agent IA : Créer une légende pour linkedin",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        560,
        300
      ],
      "parameters": {
        "text": "=subject: {{ $json.subject }} Body: {{ $json.body.content }}",
        "options": {
          "systemMessage": "=You are a personal assistant helping respond to emails. I am an ai automation expert specializing in helping small and medium size businesses automate processes. Create a short response to the email that you are analyzing. \n\nThe email that you write should be written to the sender who sent the email to us. \n\nSign the email as Robert Breen\n\noutput the data like this. \n\n[\n  {\n    \"body\": \"\"\n  }\n]\n"
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 1.9
    },
    {
      "id": "41d1ebef-9808-4d0b-ae30-2e8cd0ae597a",
      "name": "Note adhésive2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -880,
        -240
      ],
      "parameters": {
        "color": 6,
        "width": 2980,
        "height": 200,
        "content": "# 🤖AI-Powered Outlook Email Assistant with GoToHuman Approval Workflow\n## 📬 Need Help?\n\nMessage me on [LinkedIn](https://www.linkedin.com/in/robert-breen-29429625/) \nor email me at **robert@ynteractive.com**\n"
      },
      "typeVersion": 1
    },
    {
      "id": "a27db7b8-96b1-425e-98d9-e1dc5f939478",
      "name": "Microsoft Outlook",
      "type": "n8n-nodes-base.microsoftOutlook",
      "position": [
        -280,
        420
      ],
      "webhookId": "ae07c8b7-e0be-4a87-93a8-cfcb00303d0c",
      "parameters": {
        "limit": 2,
        "output": "raw",
        "options": {},
        "filtersUI": {
          "values": {
            "search": "={{ $json.searchQuery }} -from:rbreen@ynteractive.com\n",
            "filterBy": "search"
          }
        },
        "operation": "getAll"
      },
      "credentials": {
        "microsoftOutlookOAuth2Api": {
          "id": "VmTDwKgAl78H8pek",
          "name": "Microsoft Outlook account"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "3830b457-613f-4709-b70a-ae5d089d8a83",
      "name": "gotoHuman",
      "type": "@gotohuman/n8n-nodes-gotohuman.gotoHuman",
      "position": [
        1460,
        300
      ],
      "webhookId": "29fff214-9915-47fe-833f-c78d42709c76",
      "parameters": {
        "fields": {
          "value": {
            "email": "={{ $json.output[0].body }}",
            "OriginalEmail": "={{ $('Microsoft Outlook').item.json.body.content }}"
          },
          "schema": [
            {
              "id": "email",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "email (text)",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "OriginalEmail",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "OriginalEmail (emailHtml)",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "email"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "additionalFields": {},
        "reviewTemplateID": {
          "__rl": true,
          "mode": "list",
          "value": "7nYfIV9vrefvuHcccGEB",
          "cachedResultName": "Email Responses (7nYfIV9vrefvuHcccGEB)"
        }
      },
      "credentials": {
        "gotoHumanApi": {
          "id": "DDAwJMAARwFCF0fA",
          "name": "gotoHuman account"
        }
      },
      "executeOnce": true,
      "typeVersion": 1
    },
    {
      "id": "6484d15f-94d2-4078-93de-beee1985e085",
      "name": "Boucler sur les éléments",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -40,
        560
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "07ef9661-0df9-41a9-b412-3f2af84bba43",
      "name": "Microsoft Outlook1",
      "type": "n8n-nodes-base.microsoftOutlook",
      "position": [
        1920,
        520
      ],
      "webhookId": "0208ffbc-c796-47a4-8e71-aa175d970c54",
      "parameters": {
        "message": "={{ $json.responseValues.email.value }}",
        "options": {},
        "messageId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Microsoft Outlook').item.json.id }}"
        },
        "operation": "reply"
      },
      "credentials": {
        "microsoftOutlookOAuth2Api": {
          "id": "VmTDwKgAl78H8pek",
          "name": "Microsoft Outlook account"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "5b6f8868-ac73-44f0-9eaa-64250abab4d6",
      "name": "Si",
      "type": "n8n-nodes-base.if",
      "position": [
        1700,
        300
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "8516d970-6327-47de-83ab-1945acd928b2",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.response }}",
              "rightValue": "approved"
            }
          ]
        }
      },
      "typeVersion": 2.2
    }
  ],
  "pinData": {},
  "connections": {
    "5b6f8868-ac73-44f0-9eaa-64250abab4d6": {
      "main": [
        [
          {
            "node": "07ef9661-0df9-41a9-b412-3f2af84bba43",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "6484d15f-94d2-4078-93de-beee1985e085",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "be573205-24d6-49e7-924e-d9bfd1879505": {
      "main": [
        [
          {
            "node": "807aecbb-fdc0-4a6b-9fbb-186aefdad240",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "3f7eeefc-a208-4020-8b6a-7dc536126daa": {
      "ai_languageModel": [
        [
          {
            "node": "b4d9154b-c7e8-437b-b6d8-ed22327bfccf",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "3830b457-613f-4709-b70a-ae5d089d8a83": {
      "main": [
        [
          {
            "node": "5b6f8868-ac73-44f0-9eaa-64250abab4d6",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "6484d15f-94d2-4078-93de-beee1985e085": {
      "main": [
        [],
        [
          {
            "node": "b4d9154b-c7e8-437b-b6d8-ed22327bfccf",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "a27db7b8-96b1-425e-98d9-e1dc5f939478": {
      "main": [
        [
          {
            "node": "6484d15f-94d2-4078-93de-beee1985e085",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "07ef9661-0df9-41a9-b412-3f2af84bba43": {
      "main": [
        [
          {
            "node": "6484d15f-94d2-4078-93de-beee1985e085",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "807aecbb-fdc0-4a6b-9fbb-186aefdad240": {
      "main": [
        [
          {
            "node": "a27db7b8-96b1-425e-98d9-e1dc5f939478",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2b29c366-caf6-41e5-bf09-a6f60ab9d315": {
      "ai_tool": [
        [
          {
            "node": "b4d9154b-c7e8-437b-b6d8-ed22327bfccf",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "df07d826-251e-4b9f-927f-637280847891": {
      "ai_outputParser": [
        [
          {
            "node": "b4d9154b-c7e8-437b-b6d8-ed22327bfccf",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "b4d9154b-c7e8-437b-b6d8-ed22327bfccf": {
      "main": [
        [
          {
            "node": "3830b457-613f-4709-b70a-ae5d089d8a83",
            "type": "main",
            "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é ?

Intermédiaire - Gestion des tickets, Chatbot IA

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

Répondre automatiquement aux e-mails Gmail et créer des tickets Linear en utilisant GPT-5, gotoHuman et une vérification humaine
Répondre automatiquement aux e-mails de Gmail et créer des tickets Linear en utilisant GPT-5, gotoHuman et une révision humaine
Set
Code
Gmail
+
Set
Code
Gmail
37 NœudsgotoHuman
Gestion des tickets
Automatisation de la qualification des prospects et du support client avec un agent GPT-4o-mini
Automatisation de la qualification des prospects et du support client avec des agents GPT-4o-mini
If
Set
Code
+
If
Set
Code
16 NœudsRobert Breen
Nurturing de leads
AIgénérationLinkedIn帖子含人工审批
utilisationGPT-4、GoToHumanetBlotatodeAIgénérationLinkedIn帖子含人工审批
Code
Merge
Filter
+
Code
Merge
Filter
19 NœudsRobert Breen
Réseaux sociaux
Classification automatique des e-mails Outlook dans des catégories colorées avec GPT-4o
Utiliser GPT-4o pour classer automatiquement les e-mails Outlook dans des catégories de couleur
Set
Manual Trigger
Split In Batches
+
Set
Manual Trigger
Split In Batches
13 NœudsRobert Breen
Résumé IA
Réponses automatiques aux e-mails avec GPT-4O et mémoire de conversation Supabase
Réponses automatiques aux e-mails avec GPT-4O et mémoire de conversation Supabase
If
Code
Postgres
+
If
Code
Postgres
32 NœudsLukman
Chatbot de support
Débutant en analyse de données : fusion, filtrage et résumé dans Google Sheets avec GPT-4o
Analyse de données pour débutants : fusion, filtrage et résumé dans Google Sheets avec GPT-4o
If
Set
Code
+
If
Set
Code
21 NœudsRobert Breen
Extraction de documents
Informations sur le workflow
Niveau de difficulté
Intermédiaire
Nombre de nœuds15
Catégorie2
Types de nœuds11
Description de la difficulté

Adapté aux utilisateurs expérimentés, avec des workflows de complexité moyenne contenant 6-15 nœuds

Auteur
Robert Breen

Robert Breen

@rbreen

Professional services consultant with over 10 years of experience solving complex business problems across industries. I specialize in n8n and process automation—designing custom workflows that integrate tools like Google Calendar, Airtable, GPT, and internal systems. Whether you need to automate scheduling, sync data, or streamline operations, I build solutions that save time and drive results.

Liens externes
Voir sur n8n.io

Partager ce workflow

Catégories

Catégories: 34