8
n8n 中文网amn8n.com

基于参与度自动化Zoom参会者分群到KlickTipp

高级

这是一个Content Creation, Multimodal AI领域的自动化工作流,包含 22 个节点。主要使用 Klicktipp, If, Set, Wait, Crypto 等节点。 基于参与度自动化Zoom参会者分群到KlickTipp

前置要求
  • HTTP Webhook 端点(n8n 会自动生成)
  • 可能需要目标 API 的认证凭证
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "meta": {
    "instanceId": "95b3ab5a70ab1c8c1906357a367f1b236ef12a1409406fd992f60255f0f95f85",
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "0659ddd3-cbad-4f95-a993-f2362e5fdd97",
      "name": "加密货币",
      "type": "n8n-nodes-base.crypto",
      "notes": "This node prepares the response to the Zoom endpoint in order to answer to the validation.",
      "position": [
        -160,
        -112
      ],
      "parameters": {
        "type": "SHA256",
        "value": "={{ $json.body.payload.plainToken }}",
        "action": "hmac",
        "secret": "dm4D484mTSKT67HpYQ8U0w"
      },
      "notesInFlow": true,
      "typeVersion": 1
    },
    {
      "id": "f66d1b66-7059-4261-94df-f5fa65bea7a1",
      "name": "构建验证主体",
      "type": "n8n-nodes-base.set",
      "notes": "This node builds the body for the response to the Zoom endpoint in order to answer for validation.",
      "position": [
        64,
        -112
      ],
      "parameters": {
        "values": {
          "string": [
            {
              "name": "plainToken",
              "value": "={{ $json.body.payload.plainToken }}"
            },
            {
              "name": "encryptedToken",
              "value": "={{ $json.data }}"
            }
          ]
        },
        "options": {},
        "keepOnlySet": true
      },
      "notesInFlow": true,
      "typeVersion": 2
    },
    {
      "id": "e6cdca55-ccaf-4786-8dc5-530ef2cc0394",
      "name": "响应Webhook(验证)",
      "type": "n8n-nodes-base.respondToWebhook",
      "notes": "This node sends the response back to the Zoom endpoint.",
      "position": [
        272,
        -112
      ],
      "parameters": {
        "options": {}
      },
      "notesInFlow": true,
      "typeVersion": 1
    },
    {
      "id": "106611cd-1631-4fd8-871d-28fdda7ee5b2",
      "name": "构建正常事件主体",
      "type": "n8n-nodes-base.set",
      "notes": "This node builds a body for a response to the endpoint in case of a regular event.",
      "position": [
        -160,
        80
      ],
      "parameters": {
        "values": {
          "string": [
            {
              "name": "status",
              "value": "ok"
            }
          ]
        },
        "options": {},
        "keepOnlySet": true
      },
      "notesInFlow": true,
      "typeVersion": 2
    },
    {
      "id": "dbec7433-2faf-47d0-8f06-6d7c4c20971b",
      "name": "响应Webhook(事件)",
      "type": "n8n-nodes-base.respondToWebhook",
      "notes": "This node answers to the endpoint in case of regular Zoom events - such as ending meetings in this case.",
      "position": [
        64,
        80
      ],
      "parameters": {
        "options": {}
      },
      "notesInFlow": true,
      "typeVersion": 1
    },
    {
      "id": "dd1d32e6-ab68-4aaf-b1f4-6df83223724e",
      "name": "URL验证检查",
      "type": "n8n-nodes-base.if",
      "notes": "This node checks whether the received data was a ending meeting or a URL validation call by Zoom.",
      "position": [
        -384,
        -16
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "8516a75f-6aa9-4b72-828a-f5627d066ecc",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.body.event }}",
              "rightValue": "endpoint.url_validation"
            }
          ]
        }
      },
      "notesInFlow": true,
      "typeVersion": 2.2
    },
    {
      "id": "78ecf8f8-9fb4-4b14-b079-6038e0693c79",
      "name": "便签",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -656,
        -304
      ],
      "parameters": {
        "color": 4,
        "width": 1104,
        "height": 752,
        "content": "## 会议数据接收"
      },
      "typeVersion": 1
    },
    {
      "id": "ee6d0810-3968-481b-b214-dd81e7afeb69",
      "name": "便签1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        448,
        -304
      ],
      "parameters": {
        "color": 2,
        "width": 448,
        "height": 752,
        "content": "## 拉取网络研讨会数据 - 参与者和缺席者"
      },
      "typeVersion": 1
    },
    {
      "id": "b115c42e-89c4-48ab-aad8-2557978053bd",
      "name": "便签 2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        896,
        -304
      ],
      "parameters": {
        "color": 3,
        "width": 1312,
        "height": 752,
        "content": "## 从过去的网络研讨会中分割所有参与者和缺席者"
      },
      "typeVersion": 1
    },
    {
      "id": "6de2ce31-dca8-43aa-ab89-4aeebc327822",
      "name": "标记全勤参与者1",
      "type": "CUSTOM.klicktipp",
      "notes": "This node tags the contacts of your first webinar branch  for the full attendance if they have attended more than 90% of the webinar.",
      "position": [
        2016,
        224
      ],
      "parameters": {
        "email": "={{ $json.email }}",
        "tagId": [
          "13445224"
        ],
        "resource": "contact-tagging"
      },
      "credentials": {
        "klickTippApi": {
          "id": "K9JyBdCM4SZc1cXl",
          "name": "DEMO KlickTipp account"
        }
      },
      "notesInFlow": true,
      "typeVersion": 2
    },
    {
      "id": "27d21cf7-6378-466d-b196-bf11806e2ed8",
      "name": "标记全勤参与者",
      "type": "CUSTOM.klicktipp",
      "notes": "This node tags the contacts of your first webinar branch  for the full attendance if they have attended more than 90% of the webinar.",
      "position": [
        2000,
        -48
      ],
      "parameters": {
        "email": "={{ $json.email }}",
        "tagId": [
          "13440472"
        ],
        "resource": "contact-tagging"
      },
      "credentials": {
        "klickTippApi": {
          "id": "K9JyBdCM4SZc1cXl",
          "name": "DEMO KlickTipp account"
        }
      },
      "notesInFlow": true,
      "typeVersion": 2
    },
    {
      "id": "5296bb95-1c28-4a95-b776-11997cf344be",
      "name": "便签 3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        96,
        480
      ],
      "parameters": {
        "color": 7,
        "width": 1104,
        "height": 1920,
        "content": "社区节点免责声明:此工作流使用KlickTipp社区节点。"
      },
      "typeVersion": 1
    },
    {
      "id": "4ac87f98-1281-41d5-b607-3a4e2919ac2e",
      "name": "过滤内部用户",
      "type": "n8n-nodes-base.filter",
      "notes": "This node filters out internal users from the webinar such as the host.",
      "position": [
        976,
        80
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "6c66e073-723a-44a2-83c7-0ece10385a3b",
              "operator": {
                "type": "boolean",
                "operation": "true",
                "singleValue": true
              },
              "leftValue": "={{ $('Split webinar participants').item.json.internal_user }}",
              "rightValue": ""
            }
          ]
        }
      },
      "notesInFlow": true,
      "typeVersion": 2.2
    },
    {
      "id": "fc1718e5-321e-4e7e-8cdd-cd6bf34e78e6",
      "name": "分割网络研讨会参与者",
      "type": "n8n-nodes-base.splitOut",
      "notes": "This node iterates through all participants.",
      "position": [
        752,
        80
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "participants"
      },
      "notesInFlow": true,
      "typeVersion": 1
    },
    {
      "id": "3a7eb266-fc42-4448-a750-287230ccc4cc",
      "name": "按网络研讨会名称路由",
      "type": "n8n-nodes-base.switch",
      "notes": "This node filters for the different webinars via the name in order to process them.",
      "position": [
        1184,
        80
      ],
      "parameters": {
        "rules": {
          "values": [
            {
              "outputKey": "E-Mail Zustellung für Anfänger",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "8de9cdc6-5393-4daa-acbd-7d14fbcd2586",
                    "operator": {
                      "type": "string",
                      "operation": "contains"
                    },
                    "leftValue": "={{ $('Listen to ending Zoom meetings').item.json.body.payload.object.topic }}",
                    "rightValue": "E-Mail Zustellung für Anfänger"
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "E-Mail Zustellung für Experten",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "bb59b2cb-b22c-4325-8373-f2a50dcb5ef1",
                    "operator": {
                      "type": "string",
                      "operation": "contains"
                    },
                    "leftValue": "={{ $('Listen to ending Zoom meetings').item.json.body.payload.object.topic }}",
                    "rightValue": "E-Mail Zustellung für Experten"
                  }
                ]
              },
              "renameOutput": true
            }
          ]
        },
        "options": {}
      },
      "notesInFlow": true,
      "typeVersion": 3.2
    },
    {
      "id": "9e068327-0a37-41a0-95b0-31fdd60ae887",
      "name": "检查全勤",
      "type": "n8n-nodes-base.if",
      "notes": "This node checks whether the participants have spent more than 90% in the webinar or not.",
      "position": [
        1744,
        -32
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "55a73ac0-4754-4ae4-b6ac-cc3b46b19580",
              "operator": {
                "type": "number",
                "operation": "gt"
              },
              "leftValue": "={{ $('Split webinar participants').item.json.duration }}",
              "rightValue": "={{ $('Listen to ending Zoom meetings').item.json.body.payload.object.duration * 60 * 0.9 }}"
            }
          ]
        }
      },
      "notesInFlow": true,
      "typeVersion": 2.2
    },
    {
      "id": "6da889bc-4e87-4a27-93bb-a3875469ab7b",
      "name": "检查全勤1",
      "type": "n8n-nodes-base.if",
      "notes": "This node checks whether the participants have spent more than 90% in the webinar or not.",
      "position": [
        1760,
        240
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "f3673baa-a23b-4f19-91d9-5b1bac26e064",
              "operator": {
                "type": "number",
                "operation": "gt"
              },
              "leftValue": "={{ $('Split webinar participants').item.json.duration }}",
              "rightValue": "={{ $('Listen to ending Zoom meetings').item.json.body.payload.object.duration * 60 * 0.9 }}"
            }
          ]
        }
      },
      "notesInFlow": true,
      "typeVersion": 2.2
    },
    {
      "id": "3368dabc-71e4-4b5d-a5d7-2cd767806672",
      "name": "等待1秒",
      "type": "n8n-nodes-base.wait",
      "notes": "This node waits 1 second to avoid calling the past webinar to early before it is available.",
      "position": [
        272,
        80
      ],
      "webhookId": "bc96ac17-e335-45dc-bd96-0dcfbfc2e374",
      "parameters": {
        "amount": 1
      },
      "notesInFlow": true,
      "typeVersion": 1.1
    },
    {
      "id": "05b7c7ee-4a94-4f6f-b8a7-daddb0f774c9",
      "name": "监听结束的Zoom会议",
      "type": "n8n-nodes-base.webhook",
      "notes": "This node is listening to Zoom events and triggers when a webinar was ended.",
      "position": [
        -608,
        -16
      ],
      "webhookId": "0149ebe4-2dd9-420d-af7c-d60439f22451",
      "parameters": {
        "path": "0149ebe4-2dd9-420d-af7c-d60439f22451",
        "options": {},
        "httpMethod": "POST",
        "responseMode": "responseNode"
      },
      "notesInFlow": true,
      "typeVersion": 2.1
    },
    {
      "id": "0c825304-48c3-4d03-9228-9a0f4b806b62",
      "name": "获取过往Zoom会议参与者",
      "type": "n8n-nodes-base.httpRequest",
      "notes": "This node pulls data of the webinar participants in order to process them.",
      "position": [
        512,
        80
      ],
      "parameters": {
        "url": "=https://api.zoom.us/v2/past_meetings/{{ $('Listen to ending Zoom meetings').item.json.body.payload.object.uuid }}/participants",
        "options": {},
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "zoomOAuth2Api"
      },
      "credentials": {
        "zoomOAuth2Api": {
          "id": "qmYwItfGtnNF2XQQ",
          "name": "Ricardo's Zoom account"
        }
      },
      "notesInFlow": true,
      "typeVersion": 4.2
    },
    {
      "id": "fc622fae-a156-41a2-a10f-601f8aca4dc5",
      "name": "订阅参与者",
      "type": "n8n-nodes-klicktipp.klicktipp",
      "notes": "This node subscribes the participant based on the meeting data as a new contact in KlickTipp or updates it.",
      "position": [
        1536,
        -32
      ],
      "parameters": {
        "email": "={{ $json.user_email }}",
        "tagId": "13327964",
        "fields": {
          "dataFields": [
            {
              "fieldId": "fieldFirstName",
              "fieldValue": "={{ \n  // Take the \"name\" field from the current JSON item\n  $json.name\n    // Remove leading/trailing spaces (just in case)\n    .trim()\n    // Split the string into an array, using a space as the separator\n    .split(\" \")\n    // Select the first element of the array (the first word)\n    [0] \n}}"
            },
            {
              "fieldId": "fieldLastName",
              "fieldValue": "={{ \n  /* take \"name\" or empty string if missing */ ($json.name || '')\n    /* trim leading/trailing whitespace */ .trim()\n    /* split into words by any whitespace */ .split(/\\s+/)\n    /* get last word */ .slice(-1)[0]\n    /* fallback */ || ''\n}}"
            }
          ]
        },
        "listId": "358895",
        "resource": "subscriber",
        "operation": "subscribe"
      },
      "credentials": {
        "klickTippApi": {
          "id": "K9JyBdCM4SZc1cXl",
          "name": "DEMO KlickTipp account"
        }
      },
      "notesInFlow": true,
      "typeVersion": 3
    },
    {
      "id": "bd71ca87-dbd7-4525-9ae6-a072069baa67",
      "name": "订阅参与者1",
      "type": "n8n-nodes-klicktipp.klicktipp",
      "notes": "This node subscribes the participant based on the meeting data as a new contact in KlickTipp or updates it.",
      "position": [
        1536,
        240
      ],
      "parameters": {
        "email": "={{ $json.user_email }}",
        "tagId": "13327965",
        "fields": {
          "dataFields": [
            {
              "fieldId": "fieldFirstName",
              "fieldValue": "={{ \n  // Take the \"name\" field from the current JSON item\n  $json.name\n    // Remove leading/trailing spaces (just in case)\n    .trim()\n    // Split the string into an array, using a space as the separator\n    .split(\" \")\n    // Select the first element of the array (the first word)\n    [0] \n}}"
            },
            {
              "fieldId": "fieldLastName",
              "fieldValue": "={{    /* take \"name\" or empty string if missing */ ($json.name || '')     /* trim leading/trailing whitespace */ .trim()     /* split into words by any whitespace */ .split(/\\s+/)     /* get last word */ .slice(-1)[0]     /* fallback */ || '' }}"
            }
          ]
        },
        "listId": "358895",
        "resource": "subscriber",
        "operation": "subscribe"
      },
      "credentials": {
        "klickTippApi": {
          "id": "K9JyBdCM4SZc1cXl",
          "name": "DEMO KlickTipp account"
        }
      },
      "notesInFlow": true,
      "typeVersion": 3
    }
  ],
  "pinData": {
    "Listen to ending Zoom meetings": [
      {
        "body": {
          "event": "meeting.ended",
          "payload": {
            "object": {
              "id": "89034789500",
              "type": 8,
              "uuid": "VYiYZEtvRKOkALJpZPP7Yw==",
              "topic": "E-Mail Zustellung für Experten",
              "host_id": "imnEs0zeTWSDBv5eq2M4tg",
              "duration": 30,
              "end_time": "2025-09-19T10:31:19Z",
              "timezone": "Europe/Berlin",
              "start_time": "2025-09-19T10:30:43Z"
            },
            "account_id": "t0mC6eOWQ6KZg4QL1sUQgg"
          },
          "event_ts": 1758277879717
        },
        "query": {},
        "params": {},
        "headers": {
          "host": "n8n-test-u24934.vm.elestio.app",
          "clientid": "jDZWANnaRpGCbjH9lZqA_A",
          "x-real-ip": "170.114.6.87",
          "connection": "close",
          "user-agent": "Zoom Marketplace/1.0a",
          "traceparent": "00-d3e223800451ec8e49b6e2165a46ed34-174f4b5b0cc9cd0f-00",
          "content-type": "application/json; charset=utf-8",
          "authorization": "wmnEKko8Q5KhGKWGtM2UCA",
          "content-length": "362",
          "x-zm-signature": "v0=39bc87ae68445bfd78f163e39273ef6fe6e50c437702e7d7363e962d9fbe1244",
          "x-forwarded-for": "170.114.6.87",
          "x-zm-request-id": "9ad68e27_30ca_4983_b464_bfd4b540a86e",
          "x-zm-trackingid": "v=2.0;clid=us06;rid=WEB_613edca7cc9fbbae8f60b949bb6e49b6",
          "x-forwarded-port": "443",
          "x-forwarded-proto": "https",
          "x-zm-request-timestamp": "1758277900"
        },
        "webhookUrl": "https://n8n-test-u24934.vm.elestio.app/webhook/0149ebe4-2dd9-420d-af7c-d60439f22451",
        "executionMode": "production"
      }
    ]
  },
  "connections": {
    "Crypto": {
      "main": [
        [
          {
            "node": "Build Validation Body",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait 1 second": {
      "main": [
        [
          {
            "node": "Get past Zoom meeting participants",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "URL Validation check": {
      "main": [
        [
          {
            "node": "Crypto",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Build Normal Event Body",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Build Validation Body": {
      "main": [
        [
          {
            "node": "Respond to Webhook (Validation)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check full attendance": {
      "main": [
        [
          {
            "node": "Tag participant for full attendance",
            "type": "main",
            "index": 0
          }
        ],
        []
      ]
    },
    "Filter internal users": {
      "main": [
        [
          {
            "node": "Route by webinar name",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Route by webinar name": {
      "main": [
        [
          {
            "node": "Subscribe participant",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Subscribe participant1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Subscribe participant": {
      "main": [
        [
          {
            "node": "Check full attendance",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check full attendance1": {
      "main": [
        [
          {
            "node": "Tag participant with full attendance1",
            "type": "main",
            "index": 0
          }
        ],
        []
      ]
    },
    "Subscribe participant1": {
      "main": [
        [
          {
            "node": "Check full attendance1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Build Normal Event Body": {
      "main": [
        [
          {
            "node": "Respond to Webhook (Events)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split webinar participants": {
      "main": [
        [
          {
            "node": "Filter internal users",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Respond to Webhook (Events)": {
      "main": [
        [
          {
            "node": "Wait 1 second",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Listen to ending Zoom meetings": {
      "main": [
        [
          {
            "node": "URL Validation check",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get past Zoom meeting participants": {
      "main": [
        [
          {
            "node": "Split webinar participants",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

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

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

高级 - 内容创作, 多模态 AI

需要付费吗?

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

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

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

作者
KlickTipp

KlickTipp

@KlickTipp

Reach more people. 100% GDPR compliant. Quickly create automated email campaigns, SMS and marketing automations. Market your knowledge independently of Google & Co., sell lucrative products and activate your customers.

外部链接
在 n8n.io 查看

分享此工作流