Informe semanal automatizado del equipo de grupos de WhatsApp con resumen de Gemini AI

Avanzado

Este es unProject Management, AI Summarizationflujo de automatización del dominio deautomatización que contiene 47 nodos.Utiliza principalmente nodos como If, Set, Code, Filter, Switch. Informe semanal automatizado del equipo en grupos de WhatsApp con resumen de Gemini AI

Requisitos previos
  • Punto final de HTTP Webhook (n8n generará automáticamente)
  • Clave de API de Google Gemini
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
{
  "meta": {
    "instanceId": "e42ff03bc515cd7f9edc081a89072ca1985132e0d4a1cdabe6c26855a252768f",
    "templateId": "3969"
  },
  "nodes": [
    {
      "id": "f0e89c19-ee1f-4a4d-8176-c222c18e0514",
      "name": "Simplificar Mensaje",
      "type": "n8n-nodes-base.set",
      "position": [
        2220,
        2000
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "547e8934-e6f2-47f0-b8a0-c60bd9d8a0c3",
              "name": "ts",
              "type": "string",
              "value": "={{ $json.ts }}"
            },
            {
              "id": "22473b44-b1d9-4b85-b0d9-1a54c5511ff4",
              "name": "userId",
              "type": "string",
              "value": "={{ $('Get User').first().json.id }}"
            },
            {
              "id": "2059b147-8b12-42c9-bee8-488dc11a0bf7",
              "name": "userName",
              "type": "string",
              "value": "={{ $('Get User').first().json.name }}"
            },
            {
              "id": "34440ea6-ee99-4cd4-9e1c-cf561d335180",
              "name": "type",
              "type": "string",
              "value": "={{ $json.type }}"
            },
            {
              "id": "ff1155c5-43e1-4e0e-82a8-9e013a7f1db1",
              "name": "text",
              "type": "string",
              "value": "={{ $json.text.replace(/(<@[^>]+>)/ig, '').trim() }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "1293a7cf-1467-432f-b7ed-606146618808",
      "name": "Agrupar por Usuario",
      "type": "n8n-nodes-base.code",
      "position": [
        1540,
        1460
      ],
      "parameters": {
        "jsCode": "const keyByUser = $input.all()\n  .map(item => item.json)\n  .reduce((acc, message) => {\n    return {\n      ...acc,\n      [message.user]: Array.isArray(acc[message.user])\n        ?  acc[message.user].concat(message)\n        : [message]\n    }\n  }, {});\n\nreturn {\n  data: Object\n    .keys(keyByUser)\n    .map(key => keyByUser[key])\n};"
      },
      "typeVersion": 2
    },
    {
      "id": "681a2368-9688-4ebd-bb88-f48c7ccb3e54",
      "name": "Separar",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        1740,
        1460
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "data"
      },
      "typeVersion": 1
    },
    {
      "id": "38a5e6b0-ba4a-4aaa-93f2-ec2a73e5e1af",
      "name": "Mensajes a Elementos",
      "type": "n8n-nodes-base.code",
      "position": [
        2000,
        2000
      ],
      "parameters": {
        "jsCode": "return Object.values($('Switch').first().json.data)"
      },
      "typeVersion": 2
    },
    {
      "id": "c5d0b4d1-94eb-4e14-9985-85d384d6d96f",
      "name": "Agregar",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        2440,
        2000
      ],
      "parameters": {
        "options": {},
        "aggregate": "aggregateAllItemData",
        "destinationFieldName": "messages"
      },
      "typeVersion": 1
    },
    {
      "id": "47537a27-90d9-4edc-b9f4-66205bc4a4c2",
      "name": "Separar1",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        1780,
        2400
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "data.messages"
      },
      "typeVersion": 1
    },
    {
      "id": "0fc6664f-9076-4525-acaa-0f5009de2611",
      "name": "Agregar1",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        3320,
        2480
      ],
      "parameters": {
        "options": {},
        "aggregate": "aggregateAllItemData",
        "destinationFieldName": "replies"
      },
      "typeVersion": 1
    },
    {
      "id": "caf963e5-3d5b-42d8-88ce-1fb5bf03a528",
      "name": "Simplificar Comentarios del Hilo",
      "type": "n8n-nodes-base.set",
      "position": [
        3100,
        2400
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "82bc8cbe-c606-4717-b29d-2d8acc149271",
              "name": "ts",
              "type": "string",
              "value": "={{ $json.ts }}"
            },
            {
              "id": "8fcc957d-aa9f-47df-99e8-560228fde30f",
              "name": "userId",
              "type": "string",
              "value": "={{ $json.user }}"
            },
            {
              "id": "e6c6deb3-c3ba-4452-be7c-1a0c42c5dc2c",
              "name": "userName",
              "type": "string",
              "value": ""
            },
            {
              "id": "31d1206d-ecbd-48d3-a00a-845fd53d1cfa",
              "name": "type",
              "type": "string",
              "value": "={{ $json.type }}"
            },
            {
              "id": "da126e6c-8dfc-41aa-991a-231b3cb3004b",
              "name": "text",
              "type": "string",
              "value": "={{ $json.text }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "aab0ae1c-50da-49e5-a373-c32b39108041",
      "name": "Filtrar",
      "type": "n8n-nodes-base.filter",
      "position": [
        2880,
        2400
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "a6d43072-380e-40f2-985b-faeffdaffdce",
              "operator": {
                "type": "string",
                "operation": "notEquals"
              },
              "leftValue": "={{ $('Split Out1').item.json.ts }}",
              "rightValue": "={{ $json.ts }}"
            }
          ]
        }
      },
      "typeVersion": 2.2,
      "alwaysOutputData": true
    },
    {
      "id": "35cdb470-a9eb-4544-999c-5360dda0f1a3",
      "name": "Referencia de Mensaje",
      "type": "n8n-nodes-base.noOp",
      "position": [
        2220,
        2400
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "95500787-7965-4951-a729-615feb636021",
      "name": "Separar2",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        2220,
        2700
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "replyUsers"
      },
      "typeVersion": 1
    },
    {
      "id": "250d61cc-120d-4c0c-8220-f9a68a90b667",
      "name": "Mapear IDs de Usuario de Respuesta",
      "type": "n8n-nodes-base.set",
      "position": [
        1780,
        2780
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "dda6e3d8-0097-4621-9619-07cf39e93018",
              "name": "replyUsers",
              "type": "array",
              "value": "={{\n$json.data.messages\n  .flatMap(item => item.replies.flatMap(reply => reply.userId))\n  .compact()\n  .unique()\n}}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "e98acd0f-f1e3-47f4-ae9c-7259462cf231",
      "name": "Google Gemini Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        3640,
        3000
      ],
      "parameters": {
        "options": {},
        "modelName": "models/gemini-2.0-flash"
      },
      "typeVersion": 1
    },
    {
      "id": "0ffb9b87-43db-4417-8c37-384a33cbb830",
      "name": "Resumir Hilos",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        3540,
        2780
      ],
      "parameters": {
        "text": "=## Message\n{{ $json.userName }} (<@{{ $json.userId }}>) says at {{ new DateTime(parseFloat($json.ts)*1000).format('d MMM HH:mma') }}:\n> {{ $json.text }}\n\n## {{ ($json.replies ?? []).compact().length }} Replies\n{{\n($json.replies ?? [])\n  .compact()\n    .map(reply => ({\n      ...reply,\n      userName: $('Reply Users').item.json.data\n        .find(user => user.id === reply.userId)?.name\n    }))\n    .map(reply =>\n      `* ${new DateTime(parseFloat($json.ts)*1000).format('d MMM HH:mma')}, ${reply.userName} (<@${reply.userId}>) replies: ${reply.text}`\n)\n    .join('\\n')\n  \n}}",
        "messages": {
          "messageValues": [
            {
              "message": "=Summarize the topic of the slack message and the resulting conversation from the replies (if any). Highlight any achievements, accomplishments, attempts or challenges mentioned."
            }
          ]
        },
        "promptType": "define"
      },
      "typeVersion": 1.6
    },
    {
      "id": "678a48ec-acb1-4c42-b8c9-d4cd762e4a2a",
      "name": "Agregar2",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        3920,
        2780
      ],
      "parameters": {
        "options": {},
        "aggregate": "aggregateAllItemData"
      },
      "typeVersion": 1
    },
    {
      "id": "ab39b117-e1bd-495f-a92d-fb79973b3601",
      "name": "Agregar Usuarios de Respuesta",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        2880,
        2700
      ],
      "parameters": {
        "options": {},
        "aggregate": "aggregateAllItemData"
      },
      "typeVersion": 1
    },
    {
      "id": "c71b7ca6-8245-4262-b2f1-abea511390d6",
      "name": "Usuarios de Respuesta",
      "type": "n8n-nodes-base.set",
      "position": [
        3100,
        2780
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "9f721cde-2d36-40ee-b7d8-a920695157a9",
              "name": "data",
              "type": "array",
              "value": "={{ $json.data ?? [] }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "4b2c452b-4e68-4536-aa58-a85fd586c606",
      "name": "Google Gemini Chat Model1",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        3080,
        1620
      ],
      "parameters": {
        "options": {},
        "modelName": "models/gemini-2.0-flash"
      },
      "typeVersion": 1
    },
    {
      "id": "d65b4f27-52ab-4c29-8692-ee2835fddd17",
      "name": "Iterar sobre Elementos",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        2000,
        2400
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "cfb55c7f-a89d-4ce4-8709-31e5e119c6ee",
      "name": "Agregar3",
      "type": "n8n-nodes-base.set",
      "position": [
        2440,
        2200
      ],
      "parameters": {
        "mode": "raw",
        "options": {},
        "jsonOutput": "={{\n{\n  ...$('Split Out1').item.json,\n  replies: $json.replies.filter(reply => reply.ts)\n}\n}}\n"
      },
      "typeVersion": 3.4
    },
    {
      "id": "8b70e30c-99d5-4086-85aa-e6cfcc7f14e7",
      "name": "Agregar4",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        2660,
        2200
      ],
      "parameters": {
        "options": {},
        "aggregate": "aggregateAllItemData"
      },
      "typeVersion": 1
    },
    {
      "id": "1cef5853-d301-49cb-9f58-c1a9128b8b33",
      "name": "Cuando se Ejecuta por Otro Flujo de Trabajo",
      "type": "n8n-nodes-base.executeWorkflowTrigger",
      "position": [
        1120,
        2400
      ],
      "parameters": {
        "workflowInputs": {
          "values": [
            {
              "name": "action"
            },
            {
              "name": "data",
              "type": "object"
            }
          ]
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "b30c2433-3bfe-480f-a4bd-8c41900802a2",
      "name": "Interruptor",
      "type": "n8n-nodes-base.switch",
      "position": [
        1340,
        2400
      ],
      "parameters": {
        "rules": {
          "values": [
            {
              "outputKey": "users",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "fa924990-9f6e-40c4-aaec-50d4f5927414",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.action }}",
                    "rightValue": "users"
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "message_replies",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "26ce01b2-9e5b-43e8-926d-9d726c9ca74d",
                    "operator": {
                      "name": "filter.operator.equals",
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.action }}",
                    "rightValue": "message_replies"
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "message_summarize",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "45fd7264-6ac3-4bbd-8a91-c4cfb33b4545",
                    "operator": {
                      "name": "filter.operator.equals",
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.action }}",
                    "rightValue": "message_summarize"
                  }
                ]
              },
              "renameOutput": true
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 3.2
    },
    {
      "id": "b05735c3-4beb-4a80-8297-85e952e81270",
      "name": "Mapear Usuarios a Mensajes",
      "type": "n8n-nodes-base.executeWorkflow",
      "position": [
        2020,
        1460
      ],
      "parameters": {
        "mode": "each",
        "options": {},
        "workflowId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $workflow.id }}"
        },
        "workflowInputs": {
          "value": {
            "data": "={{ $json }}",
            "action": "users"
          },
          "schema": [
            {
              "id": "action",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "action",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "data",
              "type": "object",
              "display": true,
              "required": false,
              "displayName": "data",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": true
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "28ed52b2-b0c3-4f19-b394-347c8ff9e323",
      "name": "Obtener Información de Usuario",
      "type": "n8n-nodes-base.set",
      "position": [
        2660,
        2000
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "17344879-1e10-4738-8db0-6e0daddea920",
              "name": "user",
              "type": "object",
              "value": "={{\n{\n  id: $('Get User').item.json.id,\n  team_id: $('Get User').item.json.team_id,\n  name: $('Get User').item.json.name,\n  is_bot: $('Get User').item.json.is_bot\n}\n}}"
            }
          ]
        },
        "includeOtherFields": true
      },
      "typeVersion": 3.4
    },
    {
      "id": "bbd7c77e-2405-4e63-ae38-f064beafab9c",
      "name": "Obtener Respuestas de Mensajes",
      "type": "n8n-nodes-base.executeWorkflow",
      "position": [
        2240,
        1460
      ],
      "parameters": {
        "mode": "each",
        "options": {},
        "workflowId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $workflow.id }}"
        },
        "workflowInputs": {
          "value": {
            "data": "={{ $json }}",
            "action": "message_replies"
          },
          "schema": [
            {
              "id": "action",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "action",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "data",
              "type": "object",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "data",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": true
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "edf34e72-04b4-4fed-a3af-42dec1c7ed17",
      "name": "¿Tiene Usuarios de Respuesta?",
      "type": "n8n-nodes-base.if",
      "position": [
        2000,
        2780
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "813d9fea-9de0-4151-aa45-d38a42f808b8",
              "operator": {
                "type": "array",
                "operation": "notEmpty",
                "singleValue": true
              },
              "leftValue": "={{ $json.replyUsers }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "dc9c6cf0-c627-4311-9160-62204e9b67e0",
      "name": "Mensajes a Elementos1",
      "type": "n8n-nodes-base.code",
      "position": [
        3320,
        2780
      ],
      "parameters": {
        "jsCode": "return $('Switch').first().json.data.messages"
      },
      "typeVersion": 2
    },
    {
      "id": "0b830a49-c77e-41f3-8d70-47a26bfe0a0e",
      "name": "Agregar Resultados",
      "type": "n8n-nodes-base.set",
      "position": [
        2780,
        1460
      ],
      "parameters": {
        "mode": "raw",
        "options": {},
        "jsonOutput": "={{\n{\n  ...$('Map Users to Messages').item.json,\n  messages: $('Fetch Message Replies').item.json.data\n  .map((message,idx) => ({\n    ...message,\n    summary: $json.data[idx].text,\n  }))\n}\n}}"
      },
      "typeVersion": 3.4
    },
    {
      "id": "b0c66c7f-0fed-465c-8933-7b803c9b3b64",
      "name": "Agente de Informe Semanal de Miembro del Equipo",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        2980,
        1460
      ],
      "parameters": {
        "text": "={{\n$json.messages\n  .map((message,idx) =>\n    `${message.userName} (<@${message.userId}>) posted on ${new Date(parseFloat(message.ts) * 1000).format('d MMM')}:\\n> \\\"${message.text}\\\".\\nThe summary of this thread is as follows:\\n${message.summary.replaceAll('\\n', ' ')}`\n  )\n  .join('\\n---\\n')\n}}",
        "messages": {
          "messageValues": [
            {
              "message": "=Your are energetic assistant who produces weekly mini-reports on team members by analysing their slack messages from last week and posts these reports on the following Monday.\nThere has already been some work done to collect and summarise each thread made by the user within the last week.\nYour task is to summarize all the threads by this user and any interactions with other users involved and produce a mini report to share with other team members.\nFocus on wins and challenges.\nAim to motivate and call out any outstanding concerns where appropriate.\nWelcome any new team members who may have joined and say good bye to those who may have left."
            }
          ]
        },
        "promptType": "define"
      },
      "typeVersion": 1.6
    },
    {
      "id": "e4a487ae-8d71-4fe6-a760-7a0fb95a8fac",
      "name": "Combinar con Resultados",
      "type": "n8n-nodes-base.set",
      "position": [
        3480,
        1460
      ],
      "parameters": {
        "mode": "raw",
        "options": {},
        "jsonOutput": "={{\n{\n  ...$('Aggregate Results').item.json,\n  report: $json.text,\n}\n}}"
      },
      "typeVersion": 3.4
    },
    {
      "id": "06736a5c-7450-406a-ad3a-08a368d1addf",
      "name": "Agente de Informe Semanal del Equipo",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        3700,
        1460
      ],
      "parameters": {
        "text": "={{\n$input.all()\n  .map(item => item.json)\n  .map(item =>\n`user: ${item.user.name} <@${item.user.id}>\nmessage count: ${item.messages.length}\nreport: ${item.report.replaceAll('\\n', ' ')}`\n  ).join('\\n---\\n')\n}}",
        "messages": {
          "messageValues": [
            {
              "message": "=Your are energetic assistant who produces a team-wide weekly report from all activity of all team members in the prior last week and posts this single report on the following Monday.\nThere has already been some work done to collect individual reports from team members.\nYour task is generate a report covering the team to prepare and motivate them for the upcoming week.\nFocus on wins and challenges if available.\nLook out for similar activities between members and make a connection if possible.\nAim to motivate and call out any outstanding concerns where appropriate.\nWelcome any new team members who may have joined and say good bye to those who may have left."
            }
          ]
        },
        "promptType": "define"
      },
      "executeOnce": true,
      "typeVersion": 1.6
    },
    {
      "id": "eef36957-9bf0-4be3-95a8-73bbefdc0c85",
      "name": "Google Gemini Chat Model2",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        3780,
        1620
      ],
      "parameters": {
        "options": {},
        "modelName": "models/gemini-2.0-flash"
      },
      "typeVersion": 1
    },
    {
      "id": "b9a11c72-de41-4a45-85a0-672cf54ef152",
      "name": "Nota Adhesiva",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        860,
        1180
      ],
      "parameters": {
        "color": 7,
        "width": 820,
        "height": 520,
        "content": "## 1. Fetch All Activity from Last Week\n[Learn more about the WhapAround.pro node]\n\nWe'll start by fetching all activity in our whatsapp broupsl over the last 7 days and group them  by the message author. We can do this using the whapAround.pro configured with Webhook with a DateTime filter. This will give us the raw data to pick apart and analyse for reporting purposes."
      },
      "typeVersion": 1
    },
    {
      "id": "8afc048f-ce06-46c3-916f-cbcf14bcfe2b",
      "name": "Nota Adhesiva1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1700,
        1180
      ],
      "parameters": {
        "color": 7,
        "width": 760,
        "height": 520,
        "content": "## 2. Summarise Messages Threads & Conversations\n[Learn more about the Execute Workflow node](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.executeworkflow)\n\nWe'll do some more data mining by fetching all replies for each of these top level channel messages. By doing so, we get the full context of the conversation and can hopefully pick up some decisions, discoveries or concerns to add to our report. This data mining does require juggling a lot of \"items\" which becomes hard to manage so we'll use subworkflows to simplify this work.\n\nOnce the data mining is complete, we can summarize each thread with AI and ensure we're capturing only the significant events which are report-worthy."
      },
      "typeVersion": 1
    },
    {
      "id": "c9a7358c-fbe7-435a-b435-d7b07599bdc6",
      "name": "Nota Adhesiva2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2480,
        1180
      ],
      "parameters": {
        "color": 7,
        "width": 660,
        "height": 620,
        "content": "## 3. Generate Activity Reports for Each Team Member\n[Learn more about the Basic LLM node](https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.chainllm)\n\nWith our summarized threads which are grouped per user, we can aggregate them and give them to the AI again to generate a weekly report for the team member. This could include their wins, challenges, learnings or decisions - it really is up to you as to what the report looks like.\n\nA fun part of this output is getting to decide the tone of voice and delivery of the report. Don't be a bore and consider adding some personality and flair!"
      },
      "typeVersion": 1
    },
    {
      "id": "add32ef0-b515-44e6-a234-0a0fa77f4e84",
      "name": "Resumir Hilos de Mensajes",
      "type": "n8n-nodes-base.executeWorkflow",
      "position": [
        2460,
        1460
      ],
      "parameters": {
        "mode": "each",
        "options": {},
        "workflowId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $workflow.id }}"
        },
        "workflowInputs": {
          "value": {
            "data": "={{\n{\n  ...$('Map Users to Messages').item.json,\n  messages: $json.data\n}\n}}",
            "action": "message_summarize"
          },
          "schema": [
            {
              "id": "action",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "action",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "data",
              "type": "object",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "data",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": true
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "17f2f45e-2c95-4b3c-b6db-a2881ae88964",
      "name": "Nota Adhesiva3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3160,
        1180
      ],
      "parameters": {
        "color": 7,
        "width": 680,
        "height": 620,
        "content": "## 4. Generate Final Report for Whole Team\n[Learn more about the Basic LLM node](https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.chainllm)\n\nIn this step, we go one level higher and aggregate all individual team member reports together into a big team report. In this way, the overview can group similar activities and generalise activities in a broader sense. The message output will also be shorter which some may find easier to digest."
      },
      "typeVersion": 1
    },
    {
      "id": "18cc7fa7-603c-4165-97c6-80d72fd4a9a6",
      "name": "Nota Adhesiva4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3860,
        1180
      ],
      "parameters": {
        "color": 7,
        "width": 680,
        "height": 620,
        "content": "## 5. Post Report on Team Channel (on Monday Morning!)\n[Learn more about the Slack node](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.slack)\n\nFinally, we can post the weekly report in the team channel. This is a great way to automate quick recaps for the team after the weekend break, get others back on track if they've been away or update client team who may pop in now and again to collaborate."
      },
      "typeVersion": 1
    },
    {
      "id": "9cd8bdd6-5fc7-4e44-bcd0-058bc5d11335",
      "name": "Nota Adhesiva5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        860,
        1980
      ],
      "parameters": {
        "color": 7,
        "width": 560,
        "height": 340,
        "content": "## 5. SubWorkflows\n[Read more about Execute Workflow Trigger](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.executeworkflowtrigger)\n\nIncorporating Subworkflows into your main workflow is an advanced technique and sometimes necessary if you're working with a lot of nested items or loops.\n\nIn this scenario, we perform quite a few lookups to get the data we need; users, messages and replies, which in template terms would require many loop nodes to string together. However, when you nest loops nodes within loop nodes, item reference becomes difficult to keep track of.\n\nUsing subworkflows, we can break down each loop into a separate execution which handles items and item references in a simpler, linear way. The result is predictable data flow throughout our template. "
      },
      "typeVersion": 1
    },
    {
      "id": "6f6fc730-5fc8-4dcc-b86d-e3b2f0e792a0",
      "name": "Lunes a las 6am",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        920,
        1460
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "cronExpression",
              "expression": "0 6 * * 1"
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "ab94557c-debb-425c-ac83-62e39e43d28b",
      "name": "Nota Adhesiva6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        380,
        240
      ],
      "parameters": {
        "width": 420,
        "height": 1460,
        "content": "## Try It Out!\n# WhatsApp Weekly Summary Template\n\nThis n8n template automatically creates weekly summaries of your WhatsApp group activity and sends a report to keep your team in sync.\n\n## The Problem\nWhatsApp conversations move fast. Important ideas, decisions, and information get buried in endless message threads and are forgotten by Monday morning.\n\n## The Solution\nAI automatically reviews your group's past week of messages every Monday morning and creates a focused summary report to start the week right.\n\n## How It Works\n1. **Monday 6am**: Automatically collects all group messages from the past week\n2. **Groups messages**: Organizes conversations by user and identifies key discussions\n3. **AI analysis**: Extracts important highlights and observations from the raw messages\n4. **Individual summaries**: Creates focused reports for each team member's contributions\n5. **Team overview**: Combines individual reports into one weekly team summary\n6. **Delivery**: Posts the summary to your WhatsApp group first thing Monday morning\n\n## Best Use Cases\n- Project teams using WhatsApp as their main communication channel\n- Groups where most work discussions happen in one chat\n- Teams that need weekly alignment without endless scroll-back\n\n## Setup Tips\n- Filter for specific team members if you want focused updates\n- Customize the report tone (casual vs formal) based on your audience\n- Works best with active groups that have regular weekly activity\n\n## Requirements\n- WhapAround.pro\n- Gemini AI"
      },
      "typeVersion": 1
    },
    {
      "id": "f31ae57f-50c8-47bc-bebb-d5ad51b63f16",
      "name": "WhapAround.pro",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        1200,
        1460
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1.2
    },
    {
      "id": "2b423e5a-c7ed-4ea2-b4f8-c49a1be26587",
      "name": "Responder a Webhook",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        4240,
        1460
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1.2
    },
    {
      "id": "0b4af0d1-0d92-421c-b5c8-2847311204d2",
      "name": "whapAround.pro",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        1720,
        2100
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1.2
    },
    {
      "id": "9cc9571b-a8c7-4f5b-8886-aa9f95e2788d",
      "name": "whapAround.pro-2",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        2580,
        2700
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1.2
    },
    {
      "id": "d8d541b2-eee9-46f8-882c-835ace7c259d",
      "name": "whapAround.pro-1",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        2560,
        2400
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1.2
    }
  ],
  "pinData": {},
  "connections": {
    "aab0ae1c-50da-49e5-a373-c32b39108041": {
      "main": [
        [
          {
            "node": "caf963e5-3d5b-42d8-88ce-1fb5bf03a528",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b30c2433-3bfe-480f-a4bd-8c41900802a2": {
      "main": [
        [
          {
            "node": "0b4af0d1-0d92-421c-b5c8-2847311204d2",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "47537a27-90d9-4edc-b9f4-66205bc4a4c2",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "250d61cc-120d-4c0c-8220-f9a68a90b667",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c5d0b4d1-94eb-4e14-9985-85d384d6d96f": {
      "main": [
        [
          {
            "node": "28ed52b2-b0c3-4f19-b394-347c8ff9e323",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "681a2368-9688-4ebd-bb88-f48c7ccb3e54": {
      "main": [
        [
          {
            "node": "b05735c3-4beb-4a80-8297-85e952e81270",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "0fc6664f-9076-4525-acaa-0f5009de2611": {
      "main": [
        [
          {
            "node": "d65b4f27-52ab-4c29-8692-ee2835fddd17",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "678a48ec-acb1-4c42-b8c9-d4cd762e4a2a": {
      "main": [
        []
      ]
    },
    "cfb55c7f-a89d-4ce4-8709-31e5e119c6ee": {
      "main": [
        [
          {
            "node": "8b70e30c-99d5-4086-85aa-e6cfcc7f14e7",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "8b70e30c-99d5-4086-85aa-e6cfcc7f14e7": {
      "main": [
        []
      ]
    },
    "47537a27-90d9-4edc-b9f4-66205bc4a4c2": {
      "main": [
        [
          {
            "node": "d65b4f27-52ab-4c29-8692-ee2835fddd17",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "95500787-7965-4951-a729-615feb636021": {
      "main": [
        [
          {
            "node": "9cc9571b-a8c7-4f5b-8886-aa9f95e2788d",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "35cdb470-a9eb-4544-999c-5360dda0f1a3": {
      "main": [
        [
          {
            "node": "d8d541b2-eee9-46f8-882c-835ace7c259d",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c71b7ca6-8245-4262-b2f1-abea511390d6": {
      "main": [
        [
          {
            "node": "dc9c6cf0-c627-4311-9160-62204e9b67e0",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "6f6fc730-5fc8-4dcc-b86d-e3b2f0e792a0": {
      "main": [
        [
          {
            "node": "f31ae57f-50c8-47bc-bebb-d5ad51b63f16",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "1293a7cf-1467-432f-b7ed-606146618808": {
      "main": [
        [
          {
            "node": "681a2368-9688-4ebd-bb88-f48c7ccb3e54",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "f31ae57f-50c8-47bc-bebb-d5ad51b63f16": {
      "main": [
        [
          {
            "node": "1293a7cf-1467-432f-b7ed-606146618808",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "0b4af0d1-0d92-421c-b5c8-2847311204d2": {
      "main": [
        [
          {
            "node": "38a5e6b0-ba4a-4aaa-93f2-ec2a73e5e1af",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "edf34e72-04b4-4fed-a3af-42dec1c7ed17": {
      "main": [
        [
          {
            "node": "95500787-7965-4951-a729-615feb636021",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "c71b7ca6-8245-4262-b2f1-abea511390d6",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "d65b4f27-52ab-4c29-8692-ee2835fddd17": {
      "main": [
        [
          {
            "node": "cfb55c7f-a89d-4ce4-8709-31e5e119c6ee",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "35cdb470-a9eb-4544-999c-5360dda0f1a3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "f0e89c19-ee1f-4a4d-8176-c222c18e0514": {
      "main": [
        [
          {
            "node": "c5d0b4d1-94eb-4e14-9985-85d384d6d96f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "d8d541b2-eee9-46f8-882c-835ace7c259d": {
      "main": [
        [
          {
            "node": "aab0ae1c-50da-49e5-a373-c32b39108041",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "9cc9571b-a8c7-4f5b-8886-aa9f95e2788d": {
      "main": [
        [
          {
            "node": "ab39b117-e1bd-495f-a92d-fb79973b3601",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "0b830a49-c77e-41f3-8d70-47a26bfe0a0e": {
      "main": [
        [
          {
            "node": "b0c66c7f-0fed-465c-8933-7b803c9b3b64",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "250d61cc-120d-4c0c-8220-f9a68a90b667": {
      "main": [
        [
          {
            "node": "edf34e72-04b4-4fed-a3af-42dec1c7ed17",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "38a5e6b0-ba4a-4aaa-93f2-ec2a73e5e1af": {
      "main": [
        [
          {
            "node": "f0e89c19-ee1f-4a4d-8176-c222c18e0514",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "0ffb9b87-43db-4417-8c37-384a33cbb830": {
      "main": [
        [
          {
            "node": "678a48ec-acb1-4c42-b8c9-d4cd762e4a2a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e4a487ae-8d71-4fe6-a760-7a0fb95a8fac": {
      "main": [
        [
          {
            "node": "06736a5c-7450-406a-ad3a-08a368d1addf",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "dc9c6cf0-c627-4311-9160-62204e9b67e0": {
      "main": [
        [
          {
            "node": "0ffb9b87-43db-4417-8c37-384a33cbb830",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ab39b117-e1bd-495f-a92d-fb79973b3601": {
      "main": [
        [
          {
            "node": "c71b7ca6-8245-4262-b2f1-abea511390d6",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "bbd7c77e-2405-4e63-ae38-f064beafab9c": {
      "main": [
        [
          {
            "node": "add32ef0-b515-44e6-a234-0a0fa77f4e84",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b05735c3-4beb-4a80-8297-85e952e81270": {
      "main": [
        [
          {
            "node": "bbd7c77e-2405-4e63-ae38-f064beafab9c",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e98acd0f-f1e3-47f4-ae9c-7259462cf231": {
      "ai_languageModel": [
        [
          {
            "node": "0ffb9b87-43db-4417-8c37-384a33cbb830",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "caf963e5-3d5b-42d8-88ce-1fb5bf03a528": {
      "main": [
        [
          {
            "node": "0fc6664f-9076-4525-acaa-0f5009de2611",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "06736a5c-7450-406a-ad3a-08a368d1addf": {
      "main": [
        [
          {
            "node": "2b423e5a-c7ed-4ea2-b4f8-c49a1be26587",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "4b2c452b-4e68-4536-aa58-a85fd586c606": {
      "ai_languageModel": [
        [
          {
            "node": "b0c66c7f-0fed-465c-8933-7b803c9b3b64",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "eef36957-9bf0-4be3-95a8-73bbefdc0c85": {
      "ai_languageModel": [
        [
          {
            "node": "06736a5c-7450-406a-ad3a-08a368d1addf",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "add32ef0-b515-44e6-a234-0a0fa77f4e84": {
      "main": [
        [
          {
            "node": "0b830a49-c77e-41f3-8d70-47a26bfe0a0e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b0c66c7f-0fed-465c-8933-7b803c9b3b64": {
      "main": [
        [
          {
            "node": "e4a487ae-8d71-4fe6-a760-7a0fb95a8fac",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "1cef5853-d301-49cb-9f58-c1a9128b8b33": {
      "main": [
        [
          {
            "node": "b30c2433-3bfe-480f-a4bd-8c41900802a2",
            "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 proyectos, Resumen de IA

¿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 nodos47
Categoría2
Tipos de nodos16
Descripción de la dificultad

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

Autor
Jamot

Jamot

@jamot

Elevating Human Well-being Through Accessible AI Technologies.

Enlaces externos
Ver en n8n.io

Compartir este flujo de trabajo

Categorías

Categorías: 34