8
n8n 中文网amn8n.com

每日WhatsApp摘要与群组级别控制

高级

这是一个Personal Productivity, Multimodal AI领域的自动化工作流,包含 39 个节点。主要使用 If, Set, Code, Merge, Switch 等节点。 WhatsApp群组摘要工作流

前置要求
  • HTTP Webhook 端点(n8n 会自动生成)
  • 可能需要目标 API 的认证凭证
  • Google Sheets API 凭证
  • OpenAI API Key
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "id": "O7q3gHu1yd1THJjl",
  "meta": {
    "instanceId": "01b3c21040055da927cdacd88650fdf6b378a3eba7221da4c263f074ad09ab91"
  },
  "name": "每日 WhatsApp 摘要与群组级别控制",
  "tags": [
    {
      "id": "I6EGQCOkBeLvHxOs",
      "name": "n8n-creator",
      "createdAt": "2025-08-07T16:15:38.552Z",
      "updatedAt": "2025-08-07T16:15:38.552Z"
    }
  ],
  "nodes": [
    {
      "id": "8156015a-9436-4fe3-b0ca-b835fd90936d",
      "name": "编辑字段",
      "type": "n8n-nodes-base.set",
      "position": [
        256,
        -112
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "e68c4981-9f37-4b5e-a307-c90465878cc1",
              "name": "remoteJid_grupo",
              "type": "string",
              "value": "={{ $json.body.data.key.remoteJid }}"
            },
            {
              "id": "9a448f08-b6b6-487d-ada6-0579f23a843c",
              "name": "fromMe",
              "type": "boolean",
              "value": "={{ $json.body.data.key.fromMe }}"
            },
            {
              "id": "d7aee245-e55f-492e-945f-c65b5d351aea",
              "name": "remoteJid_enviou_mensagem",
              "type": "string",
              "value": "={{ $json.body.data.key.participant }}"
            },
            {
              "id": "c2b109cb-f9a0-4fa3-8543-879095f01f59",
              "name": "pessoa_enviou_mensagem",
              "type": "string",
              "value": "={{ $json.body.data.pushName }}"
            },
            {
              "id": "cb8a217b-8d8b-4995-9166-b9f88fc8b7d2",
              "name": "mensagem",
              "type": "string",
              "value": "={{ $json.body.data.message.conversation }}"
            },
            {
              "id": "9513828b-4b63-47f7-8d5b-00871ac48552",
              "name": "messageType",
              "type": "string",
              "value": "={{ $json.body.data.messageType }}"
            },
            {
              "id": "85243ada-e0db-45d4-8406-1ea220faadbc",
              "name": "hora_recebida_mensagem",
              "type": "string",
              "value": "={{ $json.body.date_time }}"
            },
            {
              "id": "0784260f-6554-4d2e-b107-07c9b6cb5f92",
              "name": "evento_webhook",
              "type": "string",
              "value": "={{ $json.body.event }}"
            },
            {
              "id": "53838930-bf56-4145-959c-6af9d6034cce",
              "name": "instancia",
              "type": "string",
              "value": "={{ $json.body.instance }}"
            },
            {
              "id": "5daa687b-15a9-45d5-af74-881c5ed879eb",
              "name": "id_msg",
              "type": "string",
              "value": "={{ $json.body.data.key.id }}"
            },
            {
              "id": "edcb0c7e-654e-49b8-ab38-411df06f84a8",
              "name": "resposta_mensagem_origem",
              "type": "string",
              "value": "={{ $json.body.data.contextInfo.quotedMessage.conversation }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "56eb0e1d-d84e-4108-8357-99dd0e90ed4e",
      "name": "切换",
      "type": "n8n-nodes-base.switch",
      "position": [
        400,
        -112
      ],
      "parameters": {
        "rules": {
          "values": [
            {
              "outputKey": "texto",
              "conditions": {
                "options": {
                  "version": 1,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "bc64f125-d93c-4d1d-97ae-65c0adb08b79",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.messageType }}",
                    "rightValue": "conversation"
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "audio",
              "conditions": {
                "options": {
                  "version": 1,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "14860c9c-9421-4d8a-861e-9d1bf1110635",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.messageType }}",
                    "rightValue": "audioMessage"
                  }
                ]
              },
              "renameOutput": true
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 3.1
    },
    {
      "id": "29d17f2d-b3cf-4cae-ab5e-c99a009c906b",
      "name": "转录音频",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        944,
        0
      ],
      "parameters": {
        "options": {
          "language": "pt"
        },
        "resource": "audio",
        "operation": "transcribe",
        "binaryPropertyName": "=data"
      },
      "credentials": {
        "openAiApi": {
          "id": "kJGFmbvVUSpARMJo",
          "name": "OpenAi - Acc Luís -> API Sabrina"
        }
      },
      "typeVersion": 1.4
    },
    {
      "id": "d47bb0da-553f-4dd7-8b20-61b0e3b8aa2b",
      "name": "转换为文件",
      "type": "n8n-nodes-base.convertToFile",
      "position": [
        768,
        0
      ],
      "parameters": {
        "options": {
          "fileName": "audio",
          "mimeType": "={{ $json.mimetype }}"
        },
        "operation": "toBinary",
        "sourceProperty": "base64"
      },
      "typeVersion": 1.1
    },
    {
      "id": "94987a7d-92e2-4c73-8281-70aacd4e872e",
      "name": "音频 - HTTP 请求",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        608,
        0
      ],
      "parameters": {
        "url": "=https://evolution.modexflow.com/chat/getBase64FromMediaMessage/{{ $('Webhook').item.json.body.instance }}",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n    \"message\": {\n        \"key\": {\n            \"id\": \"{{ $json.id_msg }}\"\n        }\n    },\n    \"convertToMp4\": true\n} ",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "Ms4N4cblTDO7EO5h",
          "name": "Header Auth - EVOAPI - Sabrina"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "103ea5f3-2d64-43cf-a63b-879acf5dff9c",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -80,
        -112
      ],
      "webhookId": "4662467e-ff22-413e-8276-3c54bedb8fcb",
      "parameters": {
        "path": "resumir_grupos",
        "options": {},
        "httpMethod": "POST"
      },
      "typeVersion": 2
    },
    {
      "id": "db0c6ad3-f934-4935-88da-8e7cffe7e60d",
      "name": "在电子表格中保存消息",
      "type": "n8n-nodes-base.googleSheets",
      "onError": "continueErrorOutput",
      "position": [
        1440,
        -112
      ],
      "parameters": {
        "columns": {
          "value": {
            "Data": "={{ $now.format('dd/MM/yyyy')}}",
            "mensagem": "={{ $('Edit Fields').first().json.pessoa_enviou_mensagem }}: {{ $json.mensagem }}",
            "ID Mensagem": "={{ $('Edit Fields').first().json.id_msg }}",
            "Evento Webhook": "={{ $('Edit Fields').first().json.evento_webhook }}",
            "RemoteJid Grupo": "={{ $('Edit Fields').first().json.remoteJid_grupo }}",
            "Número Whatsapp": "={{ $('Edit Fields').first().json.remoteJid_grupo.replace('@s.whatsapp.net', '') }}",
            "Pessoa enviou mensagem": "={{ $('Edit Fields').first().json.pessoa_enviou_mensagem }}"
          },
          "schema": [
            {
              "id": "Data",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Data",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Evento Webhook",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Evento Webhook",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "RemoteJid Grupo",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "RemoteJid Grupo",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Pessoa enviou mensagem",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Pessoa enviou mensagem",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Número Whatsapp",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Número Whatsapp",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "ID Mensagem",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "ID Mensagem",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "mensagem",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "mensagem",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "categoria",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "categoria",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "ID Mensagem"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1WNX4TNB0AEFXGnBbGYJqz0by9TcHcUd5Z5cH4GsGZ6g/edit#gid=0",
          "cachedResultName": "Página1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1WNX4TNB0AEFXGnBbGYJqz0by9TcHcUd5Z5cH4GsGZ6g",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1WNX4TNB0AEFXGnBbGYJqz0by9TcHcUd5Z5cH4GsGZ6g/edit?usp=drivesdk",
          "cachedResultName": "Log - Resumo de Grupos"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "UgNctXs1hcHDq3gI",
          "name": "Google Sheets - Luís"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "667a0010-994e-452d-b8b9-a3681e48f1b4",
      "name": "获取群组",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1648,
        -96
      ],
      "parameters": {
        "url": "=https://evolution.modexflow.com/group/findGroupInfos/Sabrina - Business?groupJid={{ $json['RemoteJid Grupo'] }}",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "Ms4N4cblTDO7EO5h",
          "name": "Header Auth - EVOAPI - Sabrina"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "a6ada830-dac1-4f10-aa8b-6d0dcbe9a4a0",
      "name": "如果",
      "type": "n8n-nodes-base.if",
      "position": [
        80,
        -112
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "4f32d4fa-ea90-4dff-9131-faa17607a1e7",
              "operator": {
                "type": "string",
                "operation": "contains"
              },
              "leftValue": "={{ $json.body.data.key.remoteJid }}",
              "rightValue": "@g.us"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "2e2fa4c6-25f4-40ea-a417-8799b3fb4b3d",
      "name": "结束流程",
      "type": "n8n-nodes-base.noOp",
      "position": [
        320,
        128
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "f111e292-37f6-49a1-92f8-f1a0dfcdd6bf",
      "name": "条件判断1",
      "type": "n8n-nodes-base.if",
      "position": [
        2000,
        -96
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "6eff3567-7b1f-4064-b420-4c8d4676fff8",
              "operator": {
                "type": "string",
                "operation": "notExists",
                "singleValue": true
              },
              "leftValue": "={{ $json['ID do Grupo'] }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "e78d2dc2-82e7-4512-a100-0c88039f2747",
      "name": "检查群组筛选标签页",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1840,
        -96
      ],
      "parameters": {
        "options": {},
        "filtersUI": {
          "values": [
            {
              "lookupValue": "={{ $json.id }}",
              "lookupColumn": "ID do Grupo"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 1244658672,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1WNX4TNB0AEFXGnBbGYJqz0by9TcHcUd5Z5cH4GsGZ6g/edit#gid=1244658672",
          "cachedResultName": "Filtro de Grupos"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1WNX4TNB0AEFXGnBbGYJqz0by9TcHcUd5Z5cH4GsGZ6g",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1WNX4TNB0AEFXGnBbGYJqz0by9TcHcUd5Z5cH4GsGZ6g/edit?usp=drivesdk",
          "cachedResultName": "Log - Resumo de Grupos"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "UgNctXs1hcHDq3gI",
          "name": "Google Sheets - Luís"
        }
      },
      "typeVersion": 4.6,
      "alwaysOutputData": true
    },
    {
      "id": "b803ca71-5675-4064-99c9-6a3af1c08e6a",
      "name": "结束流程2",
      "type": "n8n-nodes-base.noOp",
      "position": [
        2224,
        160
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "9d1f3027-3059-4c26-833c-11c66e08cebb",
      "name": "保存群组用于发送",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2208,
        -96
      ],
      "parameters": {
        "columns": {
          "value": {
            "ID do Grupo": "={{ $('Buscar Grupos').item.json.id }}",
            "Mandar Resumo": "FALSE",
            "Nome do Grupo": "={{ $('Buscar Grupos').item.json.subject }}"
          },
          "schema": [
            {
              "id": "ID do Grupo",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "ID do Grupo",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Nome do Grupo",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Nome do Grupo",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Mandar Resumo",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Mandar Resumo",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 1244658672,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1WNX4TNB0AEFXGnBbGYJqz0by9TcHcUd5Z5cH4GsGZ6g/edit#gid=1244658672",
          "cachedResultName": "Filtro de Grupos"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1WNX4TNB0AEFXGnBbGYJqz0by9TcHcUd5Z5cH4GsGZ6g",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1WNX4TNB0AEFXGnBbGYJqz0by9TcHcUd5Z5cH4GsGZ6g/edit?usp=drivesdk",
          "cachedResultName": "Log - Resumo de Grupos"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "UgNctXs1hcHDq3gI",
          "name": "Google Sheets - Luís"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "3330b6e0-7330-49af-9b14-ebc98ceac9d2",
      "name": "便签",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -128,
        -192
      ],
      "parameters": {
        "width": 340,
        "height": 260,
        "content": "## 接收消息"
      },
      "typeVersion": 1
    },
    {
      "id": "ec7bceb5-2adb-4b7a-8a93-23997842bc9d",
      "name": "便签1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        256,
        96
      ],
      "parameters": {
        "color": 3,
        "height": 180,
        "content": "### 如果不是,结束流程"
      },
      "typeVersion": 1
    },
    {
      "id": "6a341bca-8fd7-4392-9f7b-765b9d8e835f",
      "name": "便签2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        240,
        -192
      ],
      "parameters": {
        "color": 3,
        "width": 300,
        "height": 260,
        "content": "### 整理消息并定义格式(文本、音频)"
      },
      "typeVersion": 1
    },
    {
      "id": "817b285e-9301-427c-99ae-e6123b0e45b9",
      "name": "便签3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        560,
        -48
      ],
      "parameters": {
        "color": 5,
        "width": 684,
        "height": 200,
        "content": "### 转录音频"
      },
      "typeVersion": 1
    },
    {
      "id": "aa1772a8-4d57-4ce3-8067-8142e3034381",
      "name": "便签4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1280,
        -160
      ],
      "parameters": {
        "color": 5,
        "width": 320,
        "height": 220,
        "content": "### 在电子表格中保存消息"
      },
      "typeVersion": 1
    },
    {
      "id": "ba974cdb-c1f0-44e7-ae85-5e3fa05936af",
      "name": "便签5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1616,
        -160
      ],
      "parameters": {
        "color": 5,
        "width": 150,
        "height": 220,
        "content": "### 获取群组"
      },
      "typeVersion": 1
    },
    {
      "id": "755cabcb-7be7-4c15-a7bb-2c723ae6e50c",
      "name": "便签6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2160,
        112
      ],
      "parameters": {
        "color": 3,
        "width": 200,
        "height": 180,
        "content": "### 如果是,结束流程"
      },
      "typeVersion": 1
    },
    {
      "id": "318ae320-903f-43d9-a96f-795736cfa67b",
      "name": "便签7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1792,
        -160
      ],
      "parameters": {
        "color": 4,
        "width": 320,
        "height": 220,
        "content": "### 检查群组是否存在于电子表格中"
      },
      "typeVersion": 1
    },
    {
      "id": "686ebd9c-b8db-4b3a-bd05-37f8513108f7",
      "name": "便签8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2160,
        -176
      ],
      "parameters": {
        "color": 5,
        "width": 190,
        "height": 240,
        "content": "### 启用发送摘要选项"
      },
      "typeVersion": 1
    },
    {
      "id": "e7feadad-c73e-4bec-b64c-6a700818a70e",
      "name": "合并",
      "type": "n8n-nodes-base.merge",
      "position": [
        1296,
        -112
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "joinMode": "keepEverything",
        "fieldsToMatchString": "mensagem"
      },
      "typeVersion": 3.2
    },
    {
      "id": "82708e37-6a00-40ba-a84b-20a560af4c8b",
      "name": "编辑字段 2",
      "type": "n8n-nodes-base.set",
      "position": [
        1104,
        0
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "fc4c2ed3-6c15-4eb6-90fc-e4ac834222b0",
              "name": "mensagem",
              "type": "string",
              "value": "={{ $json.text }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "0b5800d4-81cb-4afa-bae1-9aa0821015dc",
      "name": "计划触发器",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -64,
        576
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "triggerAtHour": 8
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "64317e8e-b50a-476c-811b-604daddbebb4",
      "name": "按群组分离消息",
      "type": "n8n-nodes-base.code",
      "position": [
        368,
        576
      ],
      "parameters": {
        "jsCode": "let grupos = {};\n\nfor (const item of items) {\n  const grupo = item.json[\"RemoteJid Grupo\"];  // com espaço no nome\n\n  if (!grupos[grupo]) grupos[grupo] = [];\n\n  grupos[grupo].push(item.json.mensagem); // campo \"mensagem\" vem limpo mesmo\n}\n\nlet resultados = [];\n\nfor (const grupoId in grupos) {\n  resultados.push({\n    json: {\n      grupo: grupoId,\n      mensagens: grupos[grupoId].join('\\n')\n    }\n  });\n}\n\nreturn resultados;\n"
      },
      "typeVersion": 2
    },
    {
      "id": "3f60aea9-578f-416b-ad19-8cee684cd906",
      "name": "访问电子表格中的对话",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        176,
        576
      ],
      "parameters": {
        "options": {},
        "filtersUI": {
          "values": [
            {
              "lookupValue": "={{ $now.plus(-1, 'day').format('dd/MM/yyyy') }}",
              "lookupColumn": "Data"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1WNX4TNB0AEFXGnBbGYJqz0by9TcHcUd5Z5cH4GsGZ6g/edit#gid=0",
          "cachedResultName": "Log1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1WNX4TNB0AEFXGnBbGYJqz0by9TcHcUd5Z5cH4GsGZ6g",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1WNX4TNB0AEFXGnBbGYJqz0by9TcHcUd5Z5cH4GsGZ6g/edit?usp=drivesdk",
          "cachedResultName": "Log - Resumo de Grupos"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "UgNctXs1hcHDq3gI",
          "name": "Google Sheets - Luís"
        }
      },
      "typeVersion": 4.6,
      "alwaysOutputData": true
    },
    {
      "id": "f63ccae6-4dc0-4eeb-8743-a43b208bdcaa",
      "name": "遍历项目",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        752,
        576
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "583bc065-2c88-410c-a587-06f5f9c5e3e6",
      "name": "替换我",
      "type": "n8n-nodes-base.noOp",
      "position": [
        1472,
        720
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "8b8ab6a1-fdff-4a21-9f90-ec5051750197",
      "name": "发送消息",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1280,
        608
      ],
      "parameters": {
        "url": "=https://evolution.modexflow.com/message/sendText/Sabrina - Business",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "authentication": "genericCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "number",
              "value": "={{ $('Loop Over Items').item.json['ID do Grupo'] }}"
            },
            {
              "name": "text",
              "value": "={{ $json.output }}"
            }
          ]
        },
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "Ms4N4cblTDO7EO5h",
          "name": "Header Auth - EVOAPI - Sabrina"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "64316869-bd04-45d0-b607-97fe50f669a3",
      "name": "验证群组",
      "type": "n8n-nodes-base.googleSheets",
      "notes": "Verifica se este grupo está habilitado para mandar o resumo",
      "position": [
        544,
        576
      ],
      "parameters": {
        "options": {},
        "filtersUI": {
          "values": [
            {
              "lookupValue": "={{ $json.grupo }}",
              "lookupColumn": "ID do Grupo"
            },
            {
              "lookupValue": "true",
              "lookupColumn": "Mandar Resumo"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 1244658672,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1WNX4TNB0AEFXGnBbGYJqz0by9TcHcUd5Z5cH4GsGZ6g/edit#gid=1244658672",
          "cachedResultName": "Filtro de Grupos"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1WNX4TNB0AEFXGnBbGYJqz0by9TcHcUd5Z5cH4GsGZ6g",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1WNX4TNB0AEFXGnBbGYJqz0by9TcHcUd5Z5cH4GsGZ6g/edit?usp=drivesdk",
          "cachedResultName": "Log - Resumo de Grupos"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "UgNctXs1hcHDq3gI",
          "name": "Google Sheets - Luís"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "109e8f79-fac4-4bde-b7c1-1560e5fd7633",
      "name": "便签9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -112,
        496
      ],
      "parameters": {
        "width": 220,
        "height": 260,
        "content": "### 每天运行"
      },
      "typeVersion": 1
    },
    {
      "id": "891a53c0-78a7-4869-aaf0-990d459d1f32",
      "name": "便签10",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        128,
        496
      ],
      "parameters": {
        "color": 2,
        "width": 540,
        "height": 260,
        "content": "### 访问最后一天的日期"
      },
      "typeVersion": 1
    },
    {
      "id": "5e485cb0-f014-4093-b23f-829b73e593bf",
      "name": "便签 11",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        688,
        496
      ],
      "parameters": {
        "color": 6,
        "width": 940,
        "height": 440,
        "content": "### AI 总结前一天的消息并在相关群组中发送。"
      },
      "typeVersion": 1
    },
    {
      "id": "f32c28e1-ea18-4f50-9a84-bef3c2eb123f",
      "name": "OpenAI 聊天模型",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        944,
        784
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini",
          "cachedResultName": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "kJGFmbvVUSpARMJo",
          "name": "OpenAi - Acc Luís -> API Sabrina"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "5d995287-02b1-4280-9afd-1f6b2abddf9f",
      "name": "AI Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        976,
        608
      ],
      "parameters": {
        "text": "=texto a ser lido e resumido. Não se esqueça de resumí-lo com contexto:\n\n{{ $('Separar mensagens por grupos').item.json.mensagens }}",
        "options": {
          "systemMessage": "=Você é um agente de resumo de conversas do WhatsApp. Sua missão é gerar um resumo temático, fiel e direto, com no máximo 1500 caracteres.\n\n⚠️ INSTRUÇÕES OBRIGATÓRIAS:\n\n- Não substitua, modifique ou resuma nomes, projetos, empresas, pessoas ou produtos.\n- Use os nomes **exatamente como estão** nos resumos recebidos.\n- Nunca use termos genéricos como “Projeto X” ou “Cliente Y”.\n- Não alucine nem invente nomes. Caso não tenha certeza de qual nome usar, **não cite o nome**.\n- O conteúdo deve ter no máximo **1500 caracteres**.\n\n📌 ESTRUTURA:\n\n1. Comece com a frase:\n   \"Segue um resumo do que rolou ontem *{{ $now.plus(-1, 'day').format('DDDD') }}* por aqui no grupo:\"\n   → Traduza a data para o formato em **português do Brasil** (ex: terça-feira, 18 de junho).\n\n2. Agrupe os pontos por blocos temáticos **se houver volume suficiente** de acordo com os temas que você ver que existem, como por exemplo:\n   - *Conversas importantes*\n   - *Reuniões marcadas*\n   - *Próximos passos*\n   - *Assuntos delicados*\n   - *Dúvidas ou decisões pendentes*\n\n   (Inclua apenas os blocos relevantes com base no conteúdo real.)\n\n2.1 Faça os resumos por assuntos e não somente pelo o que as pessoas falaram.\n\n3. Dentro de cada bloco:\n   - Use `-` no início de cada item (bullet point).\n   - Use *apenas um asterisco de cada lado* para destacar nomes, termos e títulos dos blocos ou tópicos.\n\n4. Organize os pontos por ordem lógica e elimine repetições.\n\n5. Quando ver datas que podem ser consideradas em toda a conversa, apresente-as no resumo.\n\n🚫 Não inclua emojis, links com thumbnail ou mensagens de encerramento como:\n- “se precisarem de mais informações”\n- “essa foi a pauta do dia”\n- “fiquem à vontade para perguntar”\n\nEm caso de Links coloque os links dentro de aspas para que não apareça thumbnail:\n- \"vectorizer.com\"\n- \"www.linktal.com\"\n\n🎯 Lembre-se: Seu objetivo é gerar um resumo fiel, coeso, tematicamente organizado e compacto (até 1500 caracteres), pronto para ser enviado no WhatsApp — **sem perder nenhuma informação sensível ou nome real**.\n\n## Importante:\n- Tenha atenção e mande sempre o conteúdo referente ao dia de ontem. Para seu conhecimento a data do dia de hoje é {{ $now.format('DDDD') }}"
        },
        "promptType": "define"
      },
      "typeVersion": 2
    },
    {
      "id": "75b98ac9-14fd-4143-93ad-1a893d237585",
      "name": "便签12",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -608,
        -192
      ],
      "parameters": {
        "color": 5,
        "width": 320,
        "height": 256,
        "content": "## 第 1 部分 - 消息捕获和存储"
      },
      "typeVersion": 1
    },
    {
      "id": "7e5de8cf-34de-41a3-abc9-6ba5c8a2f7b2",
      "name": "便签13",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -608,
        496
      ],
      "parameters": {
        "color": 5,
        "width": 320,
        "height": 256,
        "content": "## 第 2 部分 - 摘要生成和发送"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {
    "Schedule Trigger": [
      {
        "json": {
          "Hour": "08",
          "Year": "2025",
          "Month": "August",
          "Minute": "00",
          "Second": "00",
          "Timezone": "America/Sao_Paulo (UTC-03:00)",
          "timestamp": "2025-08-06T08:00:00.010-03:00",
          "Day of week": "Wednesday",
          "Day of month": "06",
          "Readable date": "August 6th 2025, 8:00:00 am",
          "Readable time": "8:00:00 am"
        }
      }
    ]
  },
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "630fc9c1-3b7c-4784-a1ee-047007d708dc",
  "connections": {
    "If": {
      "main": [
        [
          {
            "node": "Edit Fields",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Finaliza Fluxo",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If1": {
      "main": [
        [
          {
            "node": "Salva grupo para Envio",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Finaliza Fluxo2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge": {
      "main": [
        [
          {
            "node": "Salvar mensagens na planilha",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Switch": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Audio - HTTP Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Webhook": {
      "main": [
        [
          {
            "node": "If",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent": {
      "main": [
        [
          {
            "node": "Enviar mensagem",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Replace Me": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit Fields": {
      "main": [
        [
          {
            "node": "Switch",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Buscar Grupos": {
      "main": [
        [
          {
            "node": "Verifica Aba Filtro de Grupos",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit Fields 2": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Validar Grupo": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Convert to File": {
      "main": [
        [
          {
            "node": "Transcrever Áudio",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Enviar mensagem": {
      "main": [
        [
          {
            "node": "Replace Me",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items": {
      "main": [
        [],
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "Acessar conversas na Planilha",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Transcrever Áudio": {
      "main": [
        [
          {
            "node": "Edit Fields 2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Audio - HTTP Request": {
      "main": [
        [
          {
            "node": "Convert to File",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Salvar mensagens na planilha": {
      "main": [
        [
          {
            "node": "Buscar Grupos",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Separar mensagens por grupos": {
      "main": [
        [
          {
            "node": "Validar Grupo",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Acessar conversas na Planilha": {
      "main": [
        [
          {
            "node": "Separar mensagens por grupos",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Verifica Aba Filtro de Grupos": {
      "main": [
        [
          {
            "node": "If1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。

这个工作流适合什么场景?

高级 - 个人效率, 多模态 AI

需要付费吗?

本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。

工作流信息
难度等级
高级
节点数量39
分类2
节点类型16
难度说明

适合高级用户,包含 16+ 个节点的复杂工作流

作者
Luís Philipe Trindade

Luís Philipe Trindade

@luistrindade

Business Ops Analyst with over 3 years experience helping sales and marketing teams to streamline their processes

外部链接
在 n8n.io 查看

分享此工作流