Gmail AI auto-responder: create draft replies to incoming emails
Automate the creation of personalized draft replies for your incoming Gmail messages using the power of AI. This workflow connects your Gmail account to OpenAI's advanced language models, intelligently assessing each new email to determine if a response is needed and then generating a contextually relevant draft reply. It begins with the Gmail Trigger, which listens for new emails, passing their content to an OpenAI Chat node (Assess if message needs a reply) to decide if a reply is warranted. If a reply is deemed necessary, another OpenAI Chat node (Generate email reply) crafts a suitable response, which is then sent to the Gmail - Create Draft node to be saved as a draft in your inbox, ready for your review and final send. This is ideal for busy professionals, customer support teams, or anyone managing a high volume of emails, significantly reducing the manual effort of drafting responses and ensuring timely communication, ultimately saving valuable time and improving responsiveness without compromising on personalization.
Workflow JSON
{"id": "aOQANirVMuWrH0ZD", "meta": {"instanceId": "b78ce2d06ac74b90a581919cf44503cf07404c11eda5c3847597226683145618"}, "name": "Gmail AI auto-responder: create draft replies to incoming emails", "tags": [], "nodes": [{"id": "2a9ff08f-919a-41a8-980b-8c2bca3059e4", "name": "Gmail Trigger", "type": "n8n-nodes-base.gmailTrigger", "position": [-332.809175564116, 566.0845437534399], "parameters": {"simple": false, "filters": {"q": "-from:me"}, "options": {}, "pollTimes": {"item": [{"mode": "everyMinute"}]}}, "credentials": {"gmailOAuth2": {"id": "", "name": "[Your gmailOAuth2]"}}, "typeVersion": 1}, {"id": "3ef14615-0045-404f-a21b-2c65a52f4be8", "name": "If Needs Reply", "type": "n8n-nodes-base.if", "position": [240, 560], "parameters": {"options": {}, "conditions": {"options": {"leftValue": "", "caseSensitive": true, "typeValidation": "strict"}, "combinator": "and", "conditions": [{"id": "53849246-ad32-4845-9976-9f9688f5a6f2", "operator": {"type": "boolean", "operation": "true", "singleValue": true}, "leftValue": "={{ $json.needsReply }}", "rightValue": "true"}]}}, "typeVersion": 2}, {"id": "36968dd5-8d51-4184-a05a-587b6c95aa82", "name": "JSON Parser", "type": "@n8n/n8n-nodes-langchain.outputParserStructured", "position": [100, 720], "parameters": {"jsonSchema": "{\n \"type\": \"object\",\n \"properties\": {\n \"needsReply\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\"needsReply\"]\n}\n"}, "typeVersion": 1}, {"id": "2a64dce8-e2f0-475e-a366-a02084293aad", "name": "OpenAI Chat", "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", "position": [-92.809175564116, 726.0845437534399], "parameters": {"model": "gpt-4o", "options": {"temperature": 0, "responseFormat": "json_object"}}, "credentials": {"openAiApi": {"id": "", "name": "[Your openAiApi]"}}, "typeVersion": 1}, {"id": "be892ff8-0981-4b34-9c93-7674ddd90360", "name": "Sticky Note", "type": "n8n-nodes-base.stickyNote", "position": [-429.809175564116, 461.08454375343996], "parameters": {"width": 304.10628068244364, "height": 394.42512272977456, "content": "## When I receive an Email\n"}, "typeVersion": 1}, {"id": "9d92839a-9ff2-436c-8abb-2f43e07c1ace", "name": "Sticky Note1", "type": "n8n-nodes-base.stickyNote", "position": [-112.809175564116, 460.08454375343996], "parameters": {"width": 556, "height": 397, "content": "## ... that Needs a Reply\n"}, "typeVersion": 1}, {"id": "3cd77609-684c-44e2-9cdc-9479cfd836bd", "name": "Sticky Note2", "type": "n8n-nodes-base.stickyNote", "position": [460, 460], "parameters": {"width": 333.19082443588354, "height": 400.08454375343996, "content": "## Generate a Reply"}, "typeVersion": 1}, {"id": "b123cf31-767d-48bb-a0ba-79a69f6da585", "name": "Sticky Note3", "type": "n8n-nodes-base.stickyNote", "position": [807.190824435884, 461.08454375343996], "parameters": {"width": 326, "height": 395, "content": "## ...as a Draft in the conversation"}, "typeVersion": 1}, {"id": "1a87c416-6b1c-4526-a2b6-20468c95ea0e", "name": "OpenAI Chat Model", "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", "position": [480, 680], "parameters": {"model": "gpt-4-turbo", "options": {}}, "credentials": {"openAiApi": {"id": "", "name": "[Your openAiApi]"}}, "typeVersion": 1}, {"id": "84b4d516-252e-444e-b998-2d4aa0f89653", "name": "Gmail - Create Draft", "type": "n8n-nodes-base.gmail", "position": [900, 560], "parameters": {"message": "={{ $json.text.replace(/\\n/g, \"<br />\\n\") }}", "options": {"sendTo": "={{ $('Gmail Trigger').item.json.headers.from }}", "threadId": "={{ $('Gmail Trigger').item.json.threadId }}"}, "subject": "=Re: {{ $('Gmail Trigger').item.json.headers.subject }}", "resource": "draft", "emailType": "html"}, "credentials": {"gmailOAuth2": {"id": "", "name": "[Your gmailOAuth2]"}}, "typeVersion": 2.1}, {"id": "86017ff4-9c57-4b2a-9cd9-f62571a05ffd", "name": "Assess if message needs a reply", "type": "@n8n/n8n-nodes-langchain.chainLlm", "position": [-92.809175564116, 566.0845437534399], "parameters": {"prompt": "=Subject: {{ $json.subject }}\nMessage:\n{{ $json.textAsHtml }} ", "messages": {"messageValues": [{"message": "Your task is to assess if the message requires a response. Return in JSON format true if it does, false otherwise.\nMarketing emails don't require a response."}]}}, "typeVersion": 1.3}, {"id": "cab1e7e5-93dc-4850-a471-e285cdbe2058", "name": "Generate email reply", "type": "@n8n/n8n-nodes-langchain.chainLlm", "position": [500, 520], "parameters": {"text": "=Subject: {{ $('Gmail Trigger').item.json.subject }}\nMessage: {{ $('Gmail Trigger').item.json.textAsHtml }}", "messages": {"messageValues": [{"message": "You're a helpful personal assistant and your task is to draft replies on my behalf to my incoming emails. Whenever I provide some text from an email, return an appropriate draft reply for it and nothing else.\nEnsure that the reply is suitable for a professional email setting and addresses the topic in a clear, structured, and detailed manner.\nDo not make things up.\n\nDetailed instructions:\n- Be concise and maintain a business casual tone.\n- Start with \"Hello,\", and end with \"Best,\"\n- When replying to yes-no questions, draft 2 responses: one affirmative and one negative separated by \" - - - - - - - OR - - - - - - - \"\n- If you don't know an answer, you can leave placeholders like \"[YOUR_ANSWER_HERE]\".\n- Don't use any special formatting, only plain text.\n- Reply in the same language as the inbound email."}]}, "promptType": "define"}, "typeVersion": 1.4}], "active": true, "pinData": {}, "settings": {"executionOrder": "v1"}, "versionId": "c4448c34-1f75-4479-805e-20d8a69a7e00", "connections": {"JSON Parser": {"ai_outputParser": [[{"node": "Assess if message needs a reply", "type": "ai_outputParser", "index": 0}]]}, "OpenAI Chat": {"ai_languageModel": [[{"node": "Assess if message needs a reply", "type": "ai_languageModel", "index": 0}]]}, "Gmail Trigger": {"main": [[{"node": "Assess if message needs a reply", "type": "main", "index": 0}]]}, "If Needs Reply": {"main": [[{"node": "Generate email reply", "type": "main", "index": 0}]]}, "OpenAI Chat Model": {"ai_languageModel": [[{"node": "Generate email reply", "type": "ai_languageModel", "index": 0}]]}, "Generate email reply": {"main": [[{"node": "Gmail - Create Draft", "type": "main", "index": 0}]]}, "Assess if message needs a reply": {"main": [[{"node": "If Needs Reply", "type": "main", "index": 0}]]}}}How to Import This Workflow
- 1Copy the workflow JSON above using the Copy Workflow JSON button.
- 2Open your n8n instance and go to Workflows.
- 3Click Import from JSON and paste the copied workflow.
Don't have an n8n instance? Start your free trial at n8nautomation.cloud
Related Templates
Summarize emails with A.I. then send to messenger
Automatically summarize incoming emails using artificial intelligence and then instantly share those summaries to your preferred messenger application with this efficient n8n workflow. This automation connects your IMAP email account to an AI summarization service via an HTTP Request, extracting key information from your messages. The summarized content is then sent to a messenger platform, also through an HTTP Request, ensuring important updates reach your team or personal devices without delay. Businesses can leverage this to quickly disseminate critical client communications, project updates, or urgent alerts from various email accounts directly to team chat channels, saving valuable time spent sifting through lengthy emails. This workflow significantly reduces manual effort in information processing and dissemination, allowing for faster decision-making and improved communication efficiency across your organization.
Send specific PDF attachments from Gmail to Google Drive using OpenAI
Automatically extract and categorize specific PDF attachments from incoming Gmail emails and upload them to designated Google Drive folders based on their content, leveraging OpenAI's advanced text analysis capabilities. This marketing workflow begins with the Gmail trigger "On email received," which then checks if the email "Has attachments?" If attachments are present, the workflow iterates through them, identifying if each is a PDF. For each identified PDF, the "Read PDF" node extracts its textual content. This content is then evaluated by the "Is text within token limit?" node to ensure it's suitable for OpenAI processing. If within limits, the "OpenAI matches PDF textual content" node analyzes the text against predefined criteria. Based on whether the PDF is "matched" by OpenAI, the "Upload file to folder" node in Google Drive stores the relevant PDFs, while unmatched or non-PDF attachments are handled accordingly. This workflow is ideal for marketing teams needing to automatically sort client contracts, campaign reports, or specific vendor invoices received via email, ensuring critical documents are filed correctly without manual intervention. It significantly reduces the time spent on document organization and improves data accessibility, allowing teams to focus on strategic marketing initiatives rather than administrative tasks.
Effortless Email Management with AI
Automate your email management by intelligently processing incoming messages, summarizing their content, and drafting personalized replies with AI. This powerful workflow connects your Gmail inbox via an IMAP trigger to a Text Classifier that categorizes emails, then uses OpenAI for summarization and drafting responses, and Qdrant for vector storage of relevant documents from Google Drive. It’s ideal for marketing teams, customer support, or busy professionals who need to efficiently handle high volumes of correspondence, saving significant time on reading, understanding, and responding to emails by leveraging AI to streamline communication and ensure timely, relevant replies. The system also allows for reviewing AI-generated drafts before sending, ensuring quality control while drastically reducing manual effort.