N
n8n Store
Workflow Market
My workflow 10

My workflow 10

by hermong0 views

Description

Categories

🤖 AI & Machine Learning

Nodes Used

n8n-nodes-base.ifn8n-nodes-base.ifn8n-nodes-base.setn8n-nodes-base.setn8n-nodes-base.coden8n-nodes-base.coden8n-nodes-base.coden8n-nodes-base.switchn8n-nodes-base.webhookn8n-nodes-base.supabase
PriceFree
Views0
Last Updated11/28/2025
workflow.json
{
  "meta": {
    "instanceId": "aa06bc76d359095bcd3949ddab6b99f4eb7ae2c72d875bc120223db371af5420"
  },
  "name": "My workflow 10",
  "tags": [],
  "nodes": [
    {
      "id": "cc23f775-67b6-47d1-b13f-fa91cb973d9b",
      "name": "Trello Trigger",
      "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": "Send a text message",
      "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": "username",
      "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": "Create card",
      "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": "Create Card 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": "Get user row",
      "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": "Create user",
      "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 Action Type Check",
      "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": "Update card due-date",
      "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": "Create user card relation",
      "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": "Code in 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": "Does User Exist?",
      "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": "Delete from 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": "Send a text message1",
      "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": "Code in 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": "Get users in card",
      "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": "Get user-card",
      "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": "Code in 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": "Due-Date Notification Schedule Trigger",
      "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": "Get all cards due today",
      "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": "usernames 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": "Add/Remove Member from Card Switch",
      "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": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1568,
        224
      ],
      "parameters": {
        "width": 752,
        "height": 1152,
        "content": "# Workflow Overview: Trello → Supabase → Telegram Automation\n\n## Main Purpose\nAutomates the creation, update, and notification process for Trello cards by syncing users and due dates with Supabase, and sending timely Telegram reminders.\n\n## 📋 Workflows Summary\n\n### 1. Trello Trigger Flow\n**Trigger**: Activated when a new Trello card is created.\n\n- **Create Card → Create Webhook**  \n  Registers the card in Supabase and sets up a webhook for further updates (due date, members, etc.).\n\n- **Update Card**  \n  Keeps the due date and other details like card description synced between Trello and the database.\n\n- **Add/Remove Member from Card Switch**  \n  Detects when users are added or removed from a card.\n\n- **Get User Row → Does User Exist?**  \n  Checks if a Trello user already exists in Supabase.\n\n- **Create User (if not found)**  \n  Registers a new user in the database.\n\n- **Code + Create User-Card Relation**  \n  Establishes a link between the card and its assigned members in the `card_user` table.\n\n### 2. Webhook Event Flow\n- **Webhook → Trello Action Type Check**  \n  Handles Trello webhook payloads for updates like member changes or due date updates.\n\n- **Username + Code + Send Text Message**  \n  Sends formatted Telegram messages notifying users of relevant actions (e.g., being added to a card).\n\n### 3. Due-Date Notification Flow\n**Trigger**: Runs twice a day (scheduled execution).\n\n- **Get All Cards Due Today**  \n  Fetches cards whose due dates match the current day.\n\n- **Get Users in Card / Usernames**  \n  Retrieves users linked to each due card.\n\n- **Code + Send Text Message**  \n  Sends Telegram alerts to users reminding them that their assigned task is due today."
      },
      "typeVersion": 1
    },
    {
      "id": "df0e4a69-1d71-42fb-a4ea-36470b7c6a11",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -704,
        224
      ],
      "parameters": {
        "width": 576,
        "height": 688,
        "content": "# ⚙️ Instructions for Use\n\n## Webhook Setup\n- Ensure Trello webhooks are active for card events.\n- The webhook URL in Trello must match your n8n Webhook node’s public URL.\n- Follow the following instruction from the official Trello developer docs on how to make Trello invoke your webhook URL every time an action occurs in your Trello board: [Link](https://developer.atlassian.com/cloud/trello/guides/rest-api/webhooks)\n\n## Supabase Connection\n- Confirm Supabase credentials (URL, Key) are correctly configured in all Supabase nodes.\n- Tables used: `cards`, `users`, `card_user`.\n\n## Telegram Setup\n- Use your bot token and chat IDs in the Telegram nodes.\n\n## Scheduler\n- The “Due-Date Notification Schedule Trigger” should be set to run twice daily (change this according to your needs).\n\n## Testing\n- Create a test card in Trello → add a member → set a due date → verify:\n  - Card/user entries appear in Supabase.\n  - Telegram message is sent correctly."
      },
      "typeVersion": 1
    },
    {
      "id": "38e09c6c-4dd0-4c72-8c2e-a2eab7023ecb",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -192,
        -352
      ],
      "parameters": {
        "width": 368,
        "height": 352,
        "content": "Replace `[BOARD_ID]` with your Trello board Id. Here is how to get your board Id\n\n1. Go to your Trello board\n2. Open one of your cards in the board, if no card is created, create a new one\n3. On the URL, add \".json\" and hit enter.\n\nFor example, if your Trello board link is: \n`https://trello.com/c/0000000/11-board` \n\nSearch for: \n`https://trello.com/c/0000000/11-board.json`\n\n4. On the json, search for an \"idList\" field, take that value and insert it here.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "d1c77fde-62d1-4a64-b632-f63cb83ecef6",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1120,
        768
      ],
      "parameters": {
        "width": 304,
        "height": 128,
        "content": "Replace `[TELEGRAM_CHAT_ID]` and the optional `[THREAD_ID]` if your chat has multiple topics with the telegram chat id you intend to send messages to. Beware that this chat has to be one which your bot has access to."
      },
      "typeVersion": 1
    },
    {
      "id": "9806254c-c31f-4147-99e7-05fa63b781d7",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        544,
        1024
      ],
      "parameters": {
        "width": 160,
        "content": "If you intend to address users with their usernames on telegram, map each user's name to their respective telegram usernames here"
      },
      "typeVersion": 1
    },
    {
      "id": "802b8a33-2915-4360-b496-0eabb3b430c9",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        672,
        -176
      ],
      "parameters": {
        "width": 256,
        "height": 176,
        "content": "- Replace `[TRELLO_TOKEN]` and `[TRELLO_API_KEY]` after getting a Trello API from Atlassian Developer Dashboard\n\n- Replase `[WEBHOOK_URL]` with the URL of the \"webhook\" node below"
      },
      "typeVersion": 1
    },
    {
      "id": "5e2c61d9-45ec-4f0c-83dd-c34ce112a7c2",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        432
      ],
      "parameters": {
        "width": 176,
        "height": 128,
        "content": "- Replace `[WEBHOOK_PATH]` with whatever path you want your webhook URL have"
      },
      "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
          }
        ]
      ]
    }
  }
}

相关工作流