{
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "edea30b9-4fe9-4c32-a10b-4775910ef67e",
      "name": "When clicking \u2018Execute workflow\u2019",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -368,
        2544
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "5bb5ef97-8ddd-4a66-b5c2-00a5062fe85a",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -896,
        2400
      ],
      "parameters": {
        "width": 400,
        "height": 928,
        "content": "## \u2699\ufe0f Setup Instructions\n\n### 1\ufe0f\u20e3 Connect Trello (Developer API)\n1. Get your **API key** here \u2192 [Trello App Key](https://trello.com/app-key)  \n2. On the same page, generate a **Token** (click **Token**).  \n3. In n8n \u2192 **Credentials \u2192 New \u2192 Trello API** \u2192 paste **API Key** + **Token**, then save.  \n4. Open each Trello node (**Get Board**, **Get Lists**, **Get Cards**) and select your Trello credential.  \n\n---\n\n### 2\ufe0f\u20e3 Connect Slack\n1. Go to [Slack API Apps](https://api.slack.com/apps) and create a new app.  \n2. Add **OAuth & Permissions** \u2192 include scopes like:  \n   - `chat:write` (to send messages)  \n   - `users:read` (if targeting specific users)  \n3. Install the app to your workspace \u2192 copy the **Bot User OAuth Token**.  \n4. In n8n \u2192 **Credentials \u2192 New \u2192 Slack OAuth2 API** \u2192 paste the token and save.  \n5. In your **Slack node** (e.g., *Send a message*), select your Slack credential, and choose whether to send messages to a **channel** or a **user**.  \n\n\n## \ud83d\udcec Contact\nNeed help customizing this workflow or building automations?  \n\n\ud83d\udce7 [robert@ynteractive.com](mailto:robert@ynteractive.com)  \n\ud83d\udd17 [Robert Breen](https://www.linkedin.com/in/robert-breen-29429625/)  \n\ud83c\udf10 [ynteractive.com](https://ynteractive.com)  \n"
      },
      "typeVersion": 1
    },
    {
      "id": "f0ec26ef-3b96-40f9-a387-2353d880d44a",
      "name": "Sticky Note44",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -448,
        2400
      ],
      "parameters": {
        "color": 7,
        "width": 1248,
        "height": 928,
        "content": "# \ud83d\udccb Trello \u2192 Slack Daily Task Reporter  \nAutomatically pulls tasks from your Trello board and sends a daily summary to Slack.  \nPerfect for staying on top of admin tasks, due dates, and project updates without leaving Slack.  \n"
      },
      "typeVersion": 1
    },
    {
      "id": "ba24e584-d77a-42a4-871e-a543f1284a0d",
      "name": "Sticky Note45",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        448,
        2544
      ],
      "parameters": {
        "color": 3,
        "width": 288,
        "height": 528,
        "content": "### 2\ufe0f\u20e3 Connect Slack\n1. Go to [Slack API Apps](https://api.slack.com/apps) and create a new app.  \n2. Add **OAuth & Permissions** \u2192 include scopes like:  \n   - `chat:write` (to send messages)  \n   - `users:read` (if targeting specific users)  \n3. Install the app to your workspace \u2192 copy the **Bot User OAuth Token**.  \n4. In n8n \u2192 **Credentials \u2192 New \u2192 Slack OAuth2 API** \u2192 paste the token and save.  \n5. In your **Slack node** (e.g., *Send a message*), select your Slack credential, and choose whether to send messages to a **channel** or a **user**.  "
      },
      "typeVersion": 1
    },
    {
      "id": "b5b38c6b-459b-47b6-852c-58b3a7f9f43f",
      "name": "Get Board1",
      "type": "n8n-nodes-base.trello",
      "position": [
        -368,
        2752
      ],
      "parameters": {
        "id": {
          "__rl": true,
          "mode": "url",
          "value": "https://trello.com/b/DCpuJbnd/administrative-tasks"
        },
        "resource": "board",
        "operation": "get",
        "additionalFields": {}
      },
      "credentials": {
        "trelloApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "8de617cc-e356-4414-986c-dc20bf58f672",
      "name": "Get Lists1",
      "type": "n8n-nodes-base.trello",
      "position": [
        -304,
        3184
      ],
      "parameters": {
        "id": "={{ $json.id }}",
        "resource": "list",
        "operation": "getAll",
        "additionalFields": {}
      },
      "credentials": {
        "trelloApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "1b518650-0d57-4128-8630-94af9de6ecdc",
      "name": "Get Cards1",
      "type": "n8n-nodes-base.trello",
      "position": [
        -112,
        2800
      ],
      "parameters": {
        "id": "={{ $json.id }}",
        "resource": "list",
        "operation": "getCards",
        "additionalFields": {}
      },
      "credentials": {
        "trelloApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "3351a653-38cb-4b52-80e9-8d73b0c1aaeb",
      "name": "Map Fields1",
      "type": "n8n-nodes-base.set",
      "position": [
        64,
        2656
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "3c2613df-a000-4c8e-bd27-2aef696f5ced",
              "name": "Board Name",
              "type": "string",
              "value": "={{ $('Get Board1').item.json.name }}"
            },
            {
              "id": "e4048a3f-d352-4b1f-a76a-4fbf9b74b163",
              "name": "List Name",
              "type": "string",
              "value": "={{ $('Get Lists1').item.json.name }}"
            },
            {
              "id": "d0236a8a-8129-4370-b241-9e27adcb9952",
              "name": "Task Name",
              "type": "string",
              "value": "={{ $json.name }}"
            },
            {
              "id": "8b6b23c1-1661-4af7-b62d-4facaf0d2651",
              "name": "Task Description",
              "type": "string",
              "value": "={{ $json.desc }}"
            },
            {
              "id": "1bc7f7c2-9121-4059-81e3-7f6962e509cc",
              "name": "Due Date",
              "type": "string",
              "value": "={{ $json.badges.due.trim().substring(0, 10) }}"
            },
            {
              "id": "d6410de8-9d2f-4ef4-9e41-4f5eb6224534",
              "name": "url",
              "type": "string",
              "value": "={{ $json.url }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "c7292203-397b-4acf-90ce-6c7a42bf23cf",
      "name": "Sticky Note46",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -352,
        2960
      ],
      "parameters": {
        "color": 3,
        "width": 224,
        "height": 352,
        "content": "### 1\ufe0f\u20e3 Connect Trello (Developer API)\n1. Get your **API key**: https://trello.com/app-key  \n2. Generate a **token** (from the same page \u2192 **Token**)\n3. In n8n \u2192 **Credentials \u2192 New \u2192 Trello API**, paste **API Key** and **Token**, save.  "
      },
      "typeVersion": 1
    },
    {
      "id": "2eed1cdb-da3a-4617-af78-7fa8de716213",
      "name": "Filter",
      "type": "n8n-nodes-base.filter",
      "position": [
        272,
        3168
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "8fa541be-ccd3-4893-836a-10335a45e8bf",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.badges.today }}",
              "rightValue": "={{ $('Map Fields1').item.json['Due Date'] }}"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "5389e9b4-7d3c-41d7-8b06-0c5f6f42dc2b",
      "name": "Merge",
      "type": "n8n-nodes-base.merge",
      "position": [
        240,
        2544
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "combineBy": "combineAll"
      },
      "typeVersion": 3.2
    },
    {
      "id": "008dffe5-5b07-43d7-8fbe-2c163ce56fc7",
      "name": "Send a message",
      "type": "n8n-nodes-base.slack",
      "position": [
        544,
        2944
      ],
      "parameters": {
        "text": "=Task Due Today: {{ $json.url }}",
        "user": {
          "__rl": true,
          "mode": "list",
          "value": "U09ADJPB7QA",
          "cachedResultName": "rbreen672"
        },
        "select": "user",
        "otherOptions": {},
        "authentication": "oAuth2"
      },
      "credentials": {
        "slackOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "f818165d-f36b-49bb-80ae-15a8bb73c436",
      "name": "Today's Date",
      "type": "n8n-nodes-base.code",
      "position": [
        -80,
        2528
      ],
      "parameters": {
        "jsCode": "return [\n  {\n    json: {\n      badges: {\n        today: new Date().toISOString().split('T')[0]  \n      }\n    }\n  }\n];\n"
      },
      "typeVersion": 2
    }
  ],
  "connections": {
    "Merge": {
      "main": [
        [
          {
            "node": "Filter",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter": {
      "main": [
        [
          {
            "node": "Send a message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Board1": {
      "main": [
        [
          {
            "node": "Get Lists1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Cards1": {
      "main": [
        [
          {
            "node": "Map Fields1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Lists1": {
      "main": [
        [
          {
            "node": "Get Cards1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Map Fields1": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Today's Date": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking \u2018Execute workflow\u2019": {
      "main": [
        [
          {
            "node": "Get Board1",
            "type": "main",
            "index": 0
          },
          {
            "node": "Today's Date",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}