8
n8n 中文网amn8n.com

我的工作流10

高级

这是一个Project Management, AI Chatbot领域的自动化工作流,包含 30 个节点。主要使用 If, Set, Code, Switch, Webhook 等节点。 带有Telegram通知和Supabase数据库的Trello任务管理

前置要求
  • HTTP Webhook 端点(n8n 会自动生成)
  • Supabase URL 和 API Key
  • Telegram Bot Token
  • 可能需要目标 API 的认证凭证
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "meta": {
    "instanceId": "aa06bc76d359095bcd3949ddab6b99f4eb7ae2c72d875bc120223db371af5420"
  },
  "name": "我的工作流 10",
  "tags": [],
  "nodes": [
    {
      "id": "cc23f775-67b6-47d1-b13f-fa91cb973d9b",
      "name": "Trello 触发器",
      "type": "n8n-nodes-base.trelloTrigger",
      "position": [
        128,
        -16
      ],
      "webhookId": "[WEBHOOK_ID]",
      "parameters": {
        "id": "[BOARD_ID]"
      },
      "credentials": {
        "trelloApi": {
          "id": "SIQqVMcXwaU1EyE1",
          "name": "Trello account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "b5f7a4e2-32e8-48cd-9bd8-5f6e6edf2e0c",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        128,
        544
      ],
      "webhookId": "[WEBHOOK_ID]",
      "parameters": {
        "path": "[WEBHOOK_PATH]",
        "options": {
          "responseData": "ok",
          "allowedOrigins": "*",
          "responseHeaders": {
            "entries": [
              {
                "name": "Content-Type",
                "value": "text/plain"
              }
            ]
          }
        },
        "httpMethod": "POST"
      },
      "typeVersion": 2.1
    },
    {
      "id": "be79211c-78c1-4823-b0ec-ada0f492bad1",
      "name": "发送文本消息",
      "type": "n8n-nodes-base.telegram",
      "position": [
        1024,
        880
      ],
      "webhookId": "[WEBHOOK_ID]",
      "parameters": {
        "text": "={{ $json.finalMessage }}\n\n*------------------------------------------------------------------------------*\n📝 *Card Name*: {{ $json.cardName }}\n📄 *Card Description*: {{ $json.description }}\n🔗 *Card URL*: [Link]({{ $json.url }})\n📅 *Assigned Date*: {{ $json.date }}\n⏰ *Due Date*: {{ $json.dueDate }}\n*------------------------------------------------------------------------------*\n\nFrom the Trello Bot.",
        "chatId": "[TELEGRAM_CHAT_ID]",
        "additionalFields": {
          "message_thread_id": null
        }
      },
      "credentials": {
        "telegramApi": {
          "id": "R4qlvr3J0sQZpNqy",
          "name": "Telegram account 2"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "d52b7cd0-d703-4eb9-af5d-55c3a861513a",
      "name": "用户名",
      "type": "n8n-nodes-base.set",
      "position": [
        576,
        880
      ],
      "parameters": {
        "mode": "raw",
        "options": {},
        "jsonOutput": "={\n\"username\": \"{{\n  ({\n    \"User1\": \"@user1\",\n    \"User2\": \"@user2\",\n    \"User3\": \"@user3\",\n    \"User4\": \"@user4\",\n    \"User5\": \"@user5\",\n    \"User6\": \"@user6\",\n    \"User7\": \"@user7\"\n  }[$json.body.action.data.member.name] || $json.body.action.data.member.name)\n}}\"\n}"
      },
      "typeVersion": 3.4
    },
    {
      "id": "acf6a2fe-e127-4ff9-b2b5-4484fa5eb401",
      "name": "创建卡片",
      "type": "n8n-nodes-base.supabase",
      "position": [
        352,
        -16
      ],
      "parameters": {
        "tableId": "cards",
        "fieldsUi": {
          "fieldValues": [
            {
              "fieldId": "id",
              "fieldValue": "={{ $json.action.data.card.id }}"
            },
            {
              "fieldId": "card_name",
              "fieldValue": "={{ $json.action.data.card.name }}"
            },
            {
              "fieldId": "board_name",
              "fieldValue": "={{ $json.action.data.board.name }}"
            }
          ]
        }
      },
      "credentials": {
        "supabaseApi": {
          "id": "nIpQmAOkFMtzITHR",
          "name": "Supabase account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "7ce79763-e35f-4f2c-af48-2f791d508ad0",
      "name": "创建卡片 Webhook",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        576,
        -16
      ],
      "parameters": {
        "url": "https://api.trello.com/1/tokens/[TRELLO_TOKEN]/webhooks/",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "sendHeaders": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "key",
              "value": "[TRELLO_API_KEY]"
            },
            {
              "name": "callbackURL",
              "value": "[WEBHOOK_URL]"
            },
            {
              "name": "idModel",
              "value": "={{ $('Trello Trigger').item.json.action.data.card.id }}"
            },
            {
              "name": "description",
              "value": "=webhook for card  {{ $('Trello Trigger').item.json.action.data.card.name }}"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "b024e07e-73ec-477f-85df-d2cbc2a1e521",
      "name": "获取用户行",
      "type": "n8n-nodes-base.supabase",
      "position": [
        576,
        448
      ],
      "parameters": {
        "filters": {
          "conditions": [
            {
              "keyName": "id",
              "keyValue": "={{ $json.body.action.data.member.id }}"
            }
          ]
        },
        "tableId": "users",
        "operation": "get"
      },
      "credentials": {
        "supabaseApi": {
          "id": "nIpQmAOkFMtzITHR",
          "name": "Supabase account"
        }
      },
      "typeVersion": 1,
      "alwaysOutputData": true
    },
    {
      "id": "7aebe854-c87e-4982-88e6-ecaead011ded",
      "name": "创建用户",
      "type": "n8n-nodes-base.supabase",
      "position": [
        1024,
        544
      ],
      "parameters": {
        "tableId": "users",
        "fieldsUi": {
          "fieldValues": [
            {
              "fieldId": "id",
              "fieldValue": "={{ $('Webhook').item.json.body.action.data.member.id }}"
            },
            {
              "fieldId": "name",
              "fieldValue": "={{ $('Webhook').item.json.body.action.data.member.name }}"
            }
          ]
        }
      },
      "credentials": {
        "supabaseApi": {
          "id": "nIpQmAOkFMtzITHR",
          "name": "Supabase account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "1579543f-8a23-4192-9f17-ab604a5bb78b",
      "name": "Trello 操作类型检查",
      "type": "n8n-nodes-base.if",
      "position": [
        336,
        896
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "or",
          "conditions": [
            {
              "id": "75ec232c-9f5d-44ca-b895-44746041412a",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.body.action.type }}",
              "rightValue": "addMemberToCard"
            },
            {
              "id": "bcc5b48a-6130-4a4a-99a5-f3e86088e77a",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.body.action.type }}",
              "rightValue": "removeMemberFromCard"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "4017bf8e-b104-4708-bac9-f04c5a8679a6",
      "name": "更新卡片截止日期",
      "type": "n8n-nodes-base.supabase",
      "position": [
        336,
        240
      ],
      "parameters": {
        "filters": {
          "conditions": [
            {
              "keyName": "id",
              "keyValue": "={{ $json.body.action.data.card.id }}",
              "condition": "eq"
            }
          ]
        },
        "tableId": "cards",
        "fieldsUi": {
          "fieldValues": [
            {
              "fieldId": "due_date",
              "fieldValue": "={{ new Date($json.body.model.badges.due).toLocaleDateString('en-US') }}"
            },
            {
              "fieldId": "completed",
              "fieldValue": "={{ $json.body.model.badges.dueComplete }}"
            },
            {
              "fieldId": "url",
              "fieldValue": "={{ $json.body.model.url }}"
            }
          ]
        },
        "operation": "update"
      },
      "credentials": {
        "supabaseApi": {
          "id": "nIpQmAOkFMtzITHR",
          "name": "Supabase account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "ed643ce9-83d6-4a70-8bc6-70cec72f264a",
      "name": "创建用户卡片关联",
      "type": "n8n-nodes-base.supabase",
      "position": [
        1472,
        432
      ],
      "parameters": {
        "tableId": "card_user",
        "fieldsUi": {
          "fieldValues": [
            {
              "fieldId": "cardId",
              "fieldValue": "={{ $json.cardId }}"
            },
            {
              "fieldId": "userId",
              "fieldValue": "={{ $json.userId }}"
            }
          ]
        }
      },
      "credentials": {
        "supabaseApi": {
          "id": "nIpQmAOkFMtzITHR",
          "name": "Supabase account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "693aafe2-8648-453f-93d6-2f10ba200cd8",
      "name": "JavaScript1 代码",
      "type": "n8n-nodes-base.code",
      "position": [
        1248,
        432
      ],
      "parameters": {
        "jsCode": "const cardId = $('Webhook').first().json.body.action.data.card.id;\nconst userIds = $('Webhook').first().json.body.model.idMembers;\n\nreturn userIds.map(userId => ({\n  json: { cardId, userId }\n}));\n"
      },
      "typeVersion": 2
    },
    {
      "id": "205f1a6d-de1a-4fe1-9bdb-11183fc1b2f8",
      "name": "用户是否存在?",
      "type": "n8n-nodes-base.if",
      "position": [
        800,
        448
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "c4747e03-d718-47bf-9e99-5c59b04bc1db",
              "operator": {
                "type": "string",
                "operation": "notEmpty",
                "singleValue": true
              },
              "leftValue": "={{ $json.id }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "e3059b04-4950-4bda-a130-3276952a1fbd",
      "name": "从 users-card 中删除",
      "type": "n8n-nodes-base.supabase",
      "position": [
        576,
        640
      ],
      "parameters": {
        "filters": {
          "conditions": [
            {
              "keyName": "userId",
              "keyValue": "={{ $json.body.action.data.member.id }}",
              "condition": "eq"
            },
            {
              "keyName": "cardId",
              "keyValue": "={{ $json.body.action.data.card.id }}",
              "condition": "eq"
            }
          ]
        },
        "tableId": "card_user",
        "operation": "delete"
      },
      "credentials": {
        "supabaseApi": {
          "id": "nIpQmAOkFMtzITHR",
          "name": "Supabase account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "ccdbc090-16c3-47e6-9a35-a3d55b1b2b2a",
      "name": "发送短信1",
      "type": "n8n-nodes-base.telegram",
      "position": [
        1520,
        1232
      ],
      "webhookId": "[WEBHOOK_ID]",
      "parameters": {
        "text": "=⚠️⚠️⚠️\nHey *{{ $json.username }}*, You have a task due *TODAY*! Take the appropriate action ASAP!!!\n⚠️⚠️⚠️\n\n*------------------------------------------------------------------------------*\n📝 *Card Name*: {{ $json.cardName }}\n📓 *Board Name*: {{ $json.boardName }}\n🔗 *Card URL*: [Link]({{ $json.url }})\n⏰ *Due Date*: {{ $json.dueDate }}\n*------------------------------------------------------------------------------*\n\nFrom the Trello Bot.",
        "chatId": "[TELEGRAM_CHAT_ID]",
        "additionalFields": {
          "message_thread_id": null
        }
      },
      "credentials": {
        "telegramApi": {
          "id": "R4qlvr3J0sQZpNqy",
          "name": "Telegram account 2"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "752e0fce-9711-49b5-ad6c-dce13d7acd83",
      "name": "JavaScript2 代码",
      "type": "n8n-nodes-base.code",
      "position": [
        1296,
        1232
      ],
      "parameters": {
        "jsCode": "const username = $input.first().json.username;\nconst cardName = $('Get all cards due today').first().json.card_name;\nconst boardName = $('Get all cards due today').first().json.board_name;\nconst dueDate = $('Get all cards due today').first().json.due_date;\nconst url = $('Get all cards due today').first().json.url;\n\nreturn { \n  username,\n  cardName,\n  boardName,\n  url, \n  dueDate\n};\n"
      },
      "typeVersion": 2
    },
    {
      "id": "6586d8fc-b019-4e9b-83f7-cce440fd66f2",
      "name": "获取卡片中的用户",
      "type": "n8n-nodes-base.supabase",
      "position": [
        848,
        1232
      ],
      "parameters": {
        "filters": {
          "conditions": [
            {
              "keyName": "id",
              "keyValue": "={{ $json.userId }}"
            }
          ]
        },
        "tableId": "users",
        "operation": "get"
      },
      "typeVersion": 1
    },
    {
      "id": "b4ed0a9c-6f23-4a73-bfb5-91437f91601e",
      "name": "获取用户-卡片",
      "type": "n8n-nodes-base.supabase",
      "position": [
        624,
        1232
      ],
      "parameters": {
        "filters": {
          "conditions": [
            {
              "keyName": "cardId",
              "keyValue": "={{ $json.id }}"
            }
          ]
        },
        "tableId": "card_user",
        "operation": "get"
      },
      "typeVersion": 1
    },
    {
      "id": "e35e0fc7-dec4-473f-b70f-a2767de4f941",
      "name": "JavaScript 代码",
      "type": "n8n-nodes-base.code",
      "position": [
        800,
        880
      ],
      "parameters": {
        "jsCode": "const actionType = $('Webhook').first().json.body.action.type;\nconst username = $('username').first().json.username;\nconst addedBy = $('Webhook').first().json.body.action.memberCreator.fullName;\nconst cardName = $('Webhook').first().json.body.action.data.card.name;\nconst date = new Date($('Webhook').first().json.body.action.date).toLocaleDateString('en-US');\nconst description = $('Webhook').first().json.body.model.desc\nconst url = $('Webhook').first().json.body.model.url\nconst dueDate = new Date($('Webhook').first().json.body.model.due).toLocaleDateString('en-US')\n\nfunction escapeMarkdownV2(text) {\n  return text.replace(/[_*[\\]()~`>#+\\-=|{}.!]/g, '\\\\$&');\n}\n\nconst escapedCardName = escapeMarkdownV2(cardName);\nconst escapedUsername = escapeMarkdownV2(username);\n\nconst addMessages = {\n  \"1\": `📝 Hey ${escapedUsername}, welcome aboard to a new card *${escapedCardName}*! Don’t mess it up…`,\n  \"2\": `📝 Yo ${escapedUsername}! You’ve been tossed onto the *${escapedCardName}* card. Good luck, champ!`,\n  \"3\": `📝 ${escapedUsername}, congrats! You’re now officially stuck with *${escapedCardName}*. Strap on a pair and get it done!`,\n  \"4\": `📝 Attention ${escapedUsername}! You’ve been drafted into *${escapedCardName}*. Try not to cry.`,\n  \"5\": `📝 ${escapedUsername}, get ready to shine on *${escapedCardName}*. Or fail spectacularly.`\n};\n\nconst removeMessages = {\n  \"1\": `🔥 Oh ${escapedUsername}, freedom at last! You’re off *${escapedCardName}*. Was the assigner even paying attention?`,\n  \"2\": `🔥 ${escapedUsername}, you’re free from *${escapedCardName}*. Don’t get too excited, there’s always another card!`,\n  \"3\": `🔥 ${escapedUsername}, you’ve been relieved from *${escapedCardName}* card. You lucky soul!`,\n  \"4\": `🔥 ${escapedUsername} vanished from *${escapedCardName}*. Did you even try? You have let your team down.`,\n  \"5\": `🔥 ${escapedUsername}, no more *${escapedCardName}* for you. Time to relax… or not.`\n};\n\nlet message = \"\";\n\nif (actionType === \"addMemberToCard\") {\n  const keys = Object.keys(addMessages);\n  const randomKey = keys[Math.floor(Math.random() * keys.length)];\n  message = addMessages[randomKey];\n} \nelse if (actionType === \"removeMemberFromCard\") {\n  const keys = Object.keys(removeMessages);\n  const randomKey = keys[Math.floor(Math.random() * keys.length)];\n  message = removeMessages[randomKey];\n}\nelse {\n  message = `ℹ️ Trello: ${actionType} on \"*${cardName}*\" by ${username} (triggered by ${addedBy}) at ${date}`;\n}\n\nreturn { \n  finalMessage: message,\n  actionType: actionType,\n  username: username,\n  addedBy: addedBy,\n  cardName: cardName,\n  date: date,\n  description,\n  url, \n  dueDate\n};\n"
      },
      "typeVersion": 2
    },
    {
      "id": "5afda61c-871d-489a-836a-3dea53931913",
      "name": "截止日期通知计划触发器",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        128,
        1232
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "hours",
              "hoursInterval": 12
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "7ad9809d-33bf-47d7-93f1-74e1ac4a95c8",
      "name": "获取所有今天到期的卡片",
      "type": "n8n-nodes-base.supabase",
      "position": [
        400,
        1232
      ],
      "parameters": {
        "filters": {
          "conditions": [
            {
              "keyName": "=due_date",
              "keyValue": "={{ new Date().toLocaleDateString('en-US') }}",
              "condition": "eq"
            }
          ]
        },
        "tableId": "cards",
        "operation": "getAll"
      },
      "typeVersion": 1
    },
    {
      "id": "bb94a9b2-c0fa-4d96-bf8d-e8c9539146f1",
      "name": "用户名 1",
      "type": "n8n-nodes-base.set",
      "position": [
        1072,
        1232
      ],
      "parameters": {
        "mode": "raw",
        "options": {},
        "jsonOutput": "={\n\"username\": \"{{\n  ({\n    \"User1\": \"@user1\",\n    \"User2\": \"@user2\",\n    \"User3\": \"@user3\",\n    \"User4\": \"@user4\",\n    \"User5\": \"@user5\",\n    \"User6\": \"@user6\",\n    \"User7\": \"@user7\"\n  }[$json.name] || $json.name)\n}}\"\n}"
      },
      "typeVersion": 3.4
    },
    {
      "id": "73521891-8c38-4723-b56d-39f71c551357",
      "name": "添加/移除卡片成员开关",
      "type": "n8n-nodes-base.switch",
      "position": [
        352,
        544
      ],
      "parameters": {
        "rules": {
          "values": [
            {
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "0e78dca3-f83f-464f-bcff-2431d7736b8c",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.body.action.type }}",
                    "rightValue": "addMemberToCard"
                  }
                ]
              }
            },
            {
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "11b358d2-154c-422b-b7b5-20c3d092b4ab",
                    "operator": {
                      "name": "filter.operator.equals",
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.body.action.type }}",
                    "rightValue": "removeMemberFromCard"
                  }
                ]
              }
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 3.2
    },
    {
      "id": "861b019d-e717-47c0-83e9-d59da9e6eacf",
      "name": "便签",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1568,
        224
      ],
      "parameters": {
        "width": 752,
        "height": 1152,
        "content": "# 工作流概览:Trello → Supabase → Telegram 自动化"
      },
      "typeVersion": 1
    },
    {
      "id": "df0e4a69-1d71-42fb-a4ea-36470b7c6a11",
      "name": "便签 1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -704,
        224
      ],
      "parameters": {
        "width": 576,
        "height": 688,
        "content": "# ⚙️ 使用说明"
      },
      "typeVersion": 1
    },
    {
      "id": "38e09c6c-4dd0-4c72-8c2e-a2eab7023ecb",
      "name": "便签 2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -192,
        -352
      ],
      "parameters": {
        "width": 368,
        "height": 352,
        "content": "将 `[BOARD_ID]` 替换为您的 Trello 看板 ID。以下是获取看板 ID 的方法:"
      },
      "typeVersion": 1
    },
    {
      "id": "d1c77fde-62d1-4a64-b632-f63cb83ecef6",
      "name": "便签 3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1120,
        768
      ],
      "parameters": {
        "width": 304,
        "height": 128,
        "content": "将 `[TELEGRAM_CHAT_ID]` 和可选的 `[THREAD_ID]`(如果您的聊天有多个主题)替换为您打算发送消息的 Telegram 聊天 ID。请注意,此聊天必须是您的机器人有权访问的聊天。"
      },
      "typeVersion": 1
    },
    {
      "id": "9806254c-c31f-4147-99e7-05fa63b781d7",
      "name": "便签 4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        544,
        1024
      ],
      "parameters": {
        "width": 160,
        "content": "如果您打算在 Telegram 上使用用户名来称呼用户,请在此处将每个用户的名称映射到他们各自的 Telegram 用户名。"
      },
      "typeVersion": 1
    },
    {
      "id": "802b8a33-2915-4360-b496-0eabb3b430c9",
      "name": "便签 5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        672,
        -176
      ],
      "parameters": {
        "width": 256,
        "height": 176,
        "content": "- 从 Atlassian 开发者仪表板获取 Trello API 后,替换 `[TRELLO_TOKEN]` 和 `[TRELLO_API_KEY]`"
      },
      "typeVersion": 1
    },
    {
      "id": "5e2c61d9-45ec-4f0c-83dd-c34ce112a7c2",
      "name": "便签6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        432
      ],
      "parameters": {
        "width": 176,
        "height": 128,
        "content": "- 将 `[WEBHOOK_PATH]` 替换为您希望 Webhook URL 具有的任何路径"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "",
  "connections": {
    "Webhook": {
      "main": [
        [
          {
            "node": "Trello Action Type Check",
            "type": "main",
            "index": 0
          },
          {
            "node": "Update card due-date",
            "type": "main",
            "index": 0
          },
          {
            "node": "Add/Remove Member from Card Switch",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "username": {
      "main": [
        [
          {
            "node": "Code in JavaScript",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create card": {
      "main": [
        [
          {
            "node": "Create Card Webhook",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create user": {
      "main": [
        [
          {
            "node": "Code in JavaScript1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "usernames 1": {
      "main": [
        [
          {
            "node": "Code in JavaScript2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get user row": {
      "main": [
        [
          {
            "node": "Does User Exist?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get user-card": {
      "main": [
        [
          {
            "node": "Get users in card",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Trello Trigger": {
      "main": [
        [
          {
            "node": "Create card",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Does User Exist?": {
      "main": [
        [
          {
            "node": "Code in JavaScript1",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Create user",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get users in card": {
      "main": [
        [
          {
            "node": "usernames 1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code in JavaScript": {
      "main": [
        [
          {
            "node": "Send a text message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code in JavaScript1": {
      "main": [
        [
          {
            "node": "Create user card relation",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code in JavaScript2": {
      "main": [
        [
          {
            "node": "Send a text message1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get all cards due today": {
      "main": [
        [
          {
            "node": "Get user-card",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Trello Action Type Check": {
      "main": [
        [
          {
            "node": "username",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Add/Remove Member from Card Switch": {
      "main": [
        [
          {
            "node": "Get user row",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Delete from users-card",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Due-Date Notification Schedule Trigger": {
      "main": [
        [
          {
            "node": "Get all cards due today",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

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

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

高级 - 项目管理, AI 聊天机器人

需要付费吗?

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

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

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

外部链接
在 n8n.io 查看

分享此工作流