Generación automática de borradores de respuestas de Gmail con asistente de OpenAI

Avanzado

Este es unTicket Management, Multimodal AIflujo de automatización del dominio deautomatización que contiene 23 nodos.Utiliza principalmente nodos como Set, Code, Gmail, Limit, Markdown. Generación automática de borradores de respuestas de Gmail con un asistente de OpenAI

Requisitos previos
  • Cuenta de Google y credenciales de API de Gmail
  • Pueden requerirse credenciales de autenticación para la API de destino
  • Clave de API de OpenAI
Vista previa del flujo de trabajo
Visualización de las conexiones entre nodos, con soporte para zoom y panorámica
Exportar flujo de trabajo
Copie la siguiente configuración JSON en n8n para importar y usar este flujo de trabajo
{
  "nodes": [
    {
      "id": "a99b3164-fe36-4dde-9525-110c1ae08afb",
      "name": "Convertir raw a base64",
      "type": "n8n-nodes-base.code",
      "position": [
        3320,
        580
      ],
      "parameters": {
        "mode": "runOnceForEachItem",
        "jsCode": "const encoded = Buffer.from($json.raw).toString('base64');\n\nreturn { encoded };"
      },
      "typeVersion": 2
    },
    {
      "id": "f0f731bd-7b2f-4c39-bc06-42fd57bc4ae8",
      "name": "Agregar borrador de email al hilo",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        3580,
        580
      ],
      "parameters": {
        "url": "https://www.googleapis.com/gmail/v1/users/me/drafts",
        "method": "POST",
        "options": {},
        "jsonBody": "={\"message\":{\"raw\":\"{{ $json.encoded }}\", \"threadId\": \"{{ $('Map fields for further processing').item.json[\"threadId\"] }}\"}}",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "gmailOAuth2"
      },
      "credentials": {
        "gmailOAuth2": {
          "id": "uBcIMfsTtKjexw7I",
          "name": "Gmail (workfloowstutorial@gmail.com)"
        }
      },
      "typeVersion": 4.1
    },
    {
      "id": "c1ce3400-4582-46c7-a85d-8fa9c325ff7b",
      "name": "Eliminar etiqueta AI del email",
      "type": "n8n-nodes-base.gmail",
      "position": [
        3820,
        580
      ],
      "parameters": {
        "resource": "thread",
        "threadId": "={{ $('Map fields for further processing').item.json[\"threadId\"] }}",
        "operation": "removeLabels"
      },
      "credentials": {
        "gmailOAuth2": {
          "id": "uBcIMfsTtKjexw7I",
          "name": "Gmail (workfloowstutorial@gmail.com)"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "65f0508a-ca2e-49ce-b02f-ef6505b5e983",
      "name": "Programar activador (1 min)",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        960,
        580
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "minutes",
              "minutesInterval": 1
            }
          ]
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "ca4a209b-a79d-4911-b69b-1db22808be60",
      "name": "Mapear campos para procesamiento posterior",
      "type": "n8n-nodes-base.set",
      "position": [
        2620,
        580
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "a77b2d79-1e70-410c-a657-f3d618154ea1",
              "name": "response",
              "type": "string",
              "value": "={{ $json.output }}"
            },
            {
              "id": "20850cac-f82c-4f02-84f0-3de31871a5b8",
              "name": "threadId",
              "type": "string",
              "value": "={{ $('Get single message content').item.json[\"threadId\"] }}"
            },
            {
              "id": "d270c18e-39a0-4d87-85f0-cc1ffc9c10ff",
              "name": "to",
              "type": "string",
              "value": "={{ $('Get single message content').item.json[\"from\"][\"text\"] }}"
            },
            {
              "id": "30acb50b-bdde-44bf-803c-76e0ae65f526",
              "name": "subject",
              "type": "string",
              "value": "={{ $('Get single message content').item.json[\"subject\"] }}"
            },
            {
              "id": "88914536-8c25-4877-8914-feab5e32fae3",
              "name": "messageId",
              "type": "string",
              "value": "={{ $('Get threads with specific labels').item.json[\"id\"] }}"
            }
          ]
        }
      },
      "typeVersion": 3.3
    },
    {
      "id": "93eb3844-f1fe-4b09-bcae-3e372a19ab6f",
      "name": "Convertir respuesta a HTML",
      "type": "n8n-nodes-base.markdown",
      "position": [
        2860,
        580
      ],
      "parameters": {
        "mode": "markdownToHtml",
        "options": {
          "simpleLineBreaks": false
        },
        "markdown": "={{ $json.response }}",
        "destinationKey": "response"
      },
      "typeVersion": 1
    },
    {
      "id": "da35eda9-b63e-49f9-8fe8-7517c1445c92",
      "name": "Construir email raw",
      "type": "n8n-nodes-base.set",
      "position": [
        3100,
        580
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "913e9cb1-10de-4637-bf48-40272c7c7fe3",
              "name": "raw",
              "type": "string",
              "value": "=To: {{ $json.to }}\nSubject: {{ $json.subject }}\nContent-Type: text/html; charset=\"utf-8\"\n\n{{ $json.response }}"
            }
          ]
        }
      },
      "typeVersion": 3.3
    },
    {
      "id": "b667a399-a178-42e3-a587-4eccd2a153d8",
      "name": "Nota Adhesiva",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        460,
        460
      ],
      "parameters": {
        "color": 4,
        "width": 420.4803040774015,
        "height": 189.69151356225348,
        "content": "## Reply draft with OpenAI Assistant\nThis workflow automatically transfers content of incoming email messages with specific labels into OpenAI Assitant and returns reply draft. After draft is composed, trigger label is deleted from the thread.\n\n**Please remember to configure your OpenAI Assistant first.**"
      },
      "typeVersion": 1
    },
    {
      "id": "fe47636b-2142-4c40-a937-2ec360b230ae",
      "name": "Nota Adhesiva2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        900,
        460
      ],
      "parameters": {
        "width": 451.41125086385614,
        "height": 313.3056033573073,
        "content": "### Schedule trigger and get emails\nRun the workflow in equal intervals and check for threads with specific labels (trigger labels)."
      },
      "typeVersion": 1
    },
    {
      "id": "c9bfa42c-a045-404d-aebe-d87dceb68f1a",
      "name": "Nota Adhesiva1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        460,
        680
      ],
      "parameters": {
        "color": 3,
        "width": 421.0932411886662,
        "height": 257.42916378714597,
        "content": "## ⚠️ Note\n\n1. Complete video guide for this workflow is available [on my YouTube](https://youtu.be/a8Dhj3Zh9vQ). \n2. Remember to add your credentials and configure nodes (covered in the video guide).\n3. If you like this workflow, please subscribe to [my YouTube channel](https://www.youtube.com/@workfloows) and/or [my newsletter](https://workfloows.com/).\n\n**Thank you for your support!**"
      },
      "typeVersion": 1
    },
    {
      "id": "40424340-c0ec-435a-9ce0-0e0dc3b94cfc",
      "name": "Nota Adhesiva4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2160,
        460
      ],
      "parameters": {
        "width": 381.6458068293894,
        "height": 313.7892229150129,
        "content": "### Generate reply\nTransfer email content to OpenAI Assitant and return AI-generated reply.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "e7cce507-6658-414d-8cbc-3af847dad124",
      "name": "Nota Adhesiva5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2800,
        460
      ],
      "parameters": {
        "width": 219.88389496558554,
        "height": 314.75072291501283,
        "content": "### Create HTML message\nConvert incoming Markdown from OpenAI Assistant into HTML content."
      },
      "typeVersion": 1
    },
    {
      "id": "2b383967-0a23-46a1-9a19-a9532a3c3425",
      "name": "Nota Adhesiva7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3040,
        460
      ],
      "parameters": {
        "width": 461.3148409669012,
        "height": 314.75072291501283,
        "content": "### Build and encode message\nCreate raw message in RFC standard and encode it into base64 string (please see [Gmail API reference](https://developers.google.com/gmail/api/reference/rest/v1/users.drafts/create) for more details)."
      },
      "typeVersion": 1
    },
    {
      "id": "07685b17-cf22-4adf-a6b7-7acc2d863115",
      "name": "Nota Adhesiva8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3520,
        460
      ],
      "parameters": {
        "width": 219.88389496558554,
        "height": 314.75072291501283,
        "content": "### Insert reply draft\nAdd reply draft from OpenAI Assistant to specific Gmail thread."
      },
      "typeVersion": 1
    },
    {
      "id": "1e8109f8-7dd3-4308-a5e8-32382aa41805",
      "name": "Nota Adhesiva9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3760,
        460
      ],
      "parameters": {
        "width": 219.88389496558554,
        "height": 314.75072291501283,
        "content": "### Remove label\nDelete trigger label from the Gmail thread."
      },
      "typeVersion": 1
    },
    {
      "id": "d488db90-7367-49fa-b366-ccdfc796b5b3",
      "name": "Obtener hilos con etiquetas específicas",
      "type": "n8n-nodes-base.gmail",
      "position": [
        1180,
        580
      ],
      "parameters": {
        "filters": {
          "labelIds": []
        },
        "resource": "thread",
        "returnAll": true
      },
      "credentials": {
        "gmailOAuth2": {
          "id": "uBcIMfsTtKjexw7I",
          "name": "Gmail (workfloowstutorial@gmail.com)"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "9f5262c5-d319-4a9d-af6e-aa42970d1a6f",
      "name": "Consultar al Asistente OpenAI",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        2220,
        580
      ],
      "parameters": {
        "text": "={{ $json.text }}",
        "prompt": "define",
        "options": {},
        "resource": "assistant",
        "assistantId": {
          "__rl": true,
          "mode": "list",
          "value": "asst_kmKeAtwF2rv0vgF0ujY4jlp6",
          "cachedResultName": "Customer assistant"
        }
      },
      "credentials": {
        "openAiApi": {
          "id": "jazew1WAaSRrjcHp",
          "name": "OpenAI (workfloows@gmail.com)"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "6ffd7d66-40b6-49a4-9e15-9742bda73d2f",
      "name": "Iterar sobre hilos",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        1440,
        580
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "8afc47c8-075f-4f3d-a89d-fda81fc270fc",
      "name": "Obtener mensajes del hilo",
      "type": "n8n-nodes-base.gmail",
      "position": [
        1700,
        820
      ],
      "parameters": {
        "options": {
          "returnOnlyMessages": true
        },
        "resource": "thread",
        "threadId": "={{ $json.id }}",
        "operation": "get"
      },
      "credentials": {
        "gmailOAuth2": {
          "id": "uBcIMfsTtKjexw7I",
          "name": "Gmail (workfloowstutorial@gmail.com)"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "2286bfa7-dcb8-4a61-a71b-ea58e21bf7ab",
      "name": "Devolver último mensaje del hilo",
      "type": "n8n-nodes-base.limit",
      "position": [
        1920,
        820
      ],
      "parameters": {
        "keep": "lastItems"
      },
      "typeVersion": 1
    },
    {
      "id": "44c52e61-dd88-4499-85db-69ce4704c2b2",
      "name": "Obtener contenido de mensaje individual",
      "type": "n8n-nodes-base.gmail",
      "position": [
        1700,
        460
      ],
      "parameters": {
        "simple": false,
        "options": {},
        "messageId": "={{ $json.id }}",
        "operation": "get"
      },
      "credentials": {
        "gmailOAuth2": {
          "id": "uBcIMfsTtKjexw7I",
          "name": "Gmail (workfloowstutorial@gmail.com)"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "7ca62611-f02e-47bf-b940-3a56ece443b7",
      "name": "Nota Adhesiva10",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1640,
        340
      ],
      "parameters": {
        "width": 219.88389496558554,
        "height": 314.75072291501283,
        "content": "### Return message content\nRetrieve content of the last message in the thread."
      },
      "typeVersion": 1
    },
    {
      "id": "165df2a4-3c94-456d-9906-be8020098802",
      "name": "Nota Adhesiva11",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1640,
        680
      ],
      "parameters": {
        "width": 470.88389496558545,
        "height": 314.75072291501283,
        "content": "### Get last message from thread\nReturn all messages for a single thread and pass for further processing only the last one."
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "connections": {
    "da35eda9-b63e-49f9-8fe8-7517c1445c92": {
      "main": [
        [
          {
            "node": "a99b3164-fe36-4dde-9525-110c1ae08afb",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "6ffd7d66-40b6-49a4-9e15-9742bda73d2f": {
      "main": [
        [
          {
            "node": "44c52e61-dd88-4499-85db-69ce4704c2b2",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "8afc47c8-075f-4f3d-a89d-fda81fc270fc",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "8afc47c8-075f-4f3d-a89d-fda81fc270fc": {
      "main": [
        [
          {
            "node": "2286bfa7-dcb8-4a61-a71b-ea58e21bf7ab",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "9f5262c5-d319-4a9d-af6e-aa42970d1a6f": {
      "main": [
        [
          {
            "node": "ca4a209b-a79d-4911-b69b-1db22808be60",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "a99b3164-fe36-4dde-9525-110c1ae08afb": {
      "main": [
        [
          {
            "node": "f0f731bd-7b2f-4c39-bc06-42fd57bc4ae8",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "93eb3844-f1fe-4b09-bcae-3e372a19ab6f": {
      "main": [
        [
          {
            "node": "da35eda9-b63e-49f9-8fe8-7517c1445c92",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "65f0508a-ca2e-49ce-b02f-ef6505b5e983": {
      "main": [
        [
          {
            "node": "d488db90-7367-49fa-b366-ccdfc796b5b3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "f0f731bd-7b2f-4c39-bc06-42fd57bc4ae8": {
      "main": [
        [
          {
            "node": "c1ce3400-4582-46c7-a85d-8fa9c325ff7b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "44c52e61-dd88-4499-85db-69ce4704c2b2": {
      "main": [
        [
          {
            "node": "9f5262c5-d319-4a9d-af6e-aa42970d1a6f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2286bfa7-dcb8-4a61-a71b-ea58e21bf7ab": {
      "main": [
        [
          {
            "node": "6ffd7d66-40b6-49a4-9e15-9742bda73d2f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "d488db90-7367-49fa-b366-ccdfc796b5b3": {
      "main": [
        [
          {
            "node": "6ffd7d66-40b6-49a4-9e15-9742bda73d2f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ca4a209b-a79d-4911-b69b-1db22808be60": {
      "main": [
        [
          {
            "node": "93eb3844-f1fe-4b09-bcae-3e372a19ab6f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Preguntas frecuentes

¿Cómo usar este flujo de trabajo?

Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.

¿En qué escenarios es adecuado este flujo de trabajo?

Avanzado - Gestión de tickets, IA Multimodal

¿Es de pago?

Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.

Información del flujo de trabajo
Nivel de dificultad
Avanzado
Número de nodos23
Categoría2
Tipos de nodos10
Descripción de la dificultad

Adecuado para usuarios avanzados, flujos de trabajo complejos con 16+ nodos

Autor

Water Engineer, learning to integrate AI, ML, DL, NNA into Water Engineering for LMI Countries.

Enlaces externos
Ver en n8n.io

Compartir este flujo de trabajo

Categorías

Categorías: 34