BFT Consulting — n8n Workflow
Trello via n8n Webhook Bridge
This guide walks you through building the n8n workflow that connects Claude to your Trello BFT Sales board. Once built, you can control Trello using plain English in Claude Desktop.
⚡
Manual
Trigger
Trigger
›
🗂
Create
Board
Board
›
📋
Create
Lists
Lists
›
🏷
Create
Labels
Labels
›
🔁
Prepare
Cards
Cards
›
🃏
Create
Card
Card
What you will buildA 6-node n8n workflow that creates your BFT Sales board in Trello — 12 lists, 28 cards, 8 labels — in one click. Then a second webhook workflow lets Claude talk to Trello in real time.
Prerequisites — all already donen8n running on Docker · Node.js v24 installed · Trello API Key and Token ready · Python sync script working
What you can say to Claude after setup
- Show me all cards on my BFT Sales board
- Move the DPR Monday card to Done
- Add a comment to the Lotus Capital Questionnaire card
- Create a new card in Prospecting for Zenith Bank outreach
- Show me all High priority cards this week
Step 1 of 8
Add Trello credentials
Set up your Trello API credentials in n8n once — all nodes will reuse them automatically.
Your credentials are already generatedYou created your Trello API Key and Token earlier today. Use the same ones from your Python script.
Create Trello credential in n8n
Settings → Credentials → New → search "Trello API"
| Credential name | Trello BFT |
| API Key | Paste from trello.com/power-ups/admin |
| API Token | Paste your token (the long one ~64 chars) |
| OAuth Secret | Leave blank — not needed |
Confirm n8n is running
Docker Desktop must be running
Open your terminal and check
docker ps | findstr n8n
Open n8n in browser
http://localhost:5678
Step 2 of 8
Manual Trigger node
This is the first node in your workflow. It starts everything when you click "Execute Workflow" in n8n. No configuration needed.
Manual Trigger
n8n built-in · no configuration required
| Node type | Manual Trigger |
| How to add | Click + in canvas → search "Manual" → select it |
| Settings | None — leave all defaults as they are |
Why Manual Trigger?This import runs once to set up your board. A manual trigger means you are in full control — it won't fire by accident.
Step 3 of 8
Create Board node
This HTTP Request node calls the Trello API to create your BFT Sales board. It returns a board ID that all subsequent nodes will use.
HTTP Request — Create Board
POST https://api.trello.com/1/boards/
| Node type | HTTP Request |
| Method | POST |
| URL | https://api.trello.com/1/boards/ |
| Authentication | None (params carry key+token) |
| Send query params | Toggle ON |
Query parameters to add
| name | BFT Sales — March 30 2026 |
| defaultLists | false |
| key | Your Trello API key |
| token | Your Trello token |
Output to noteThis node returns a JSON object. The board
id field is referenced in all subsequent nodes as {{ $json.id }}Step 4 of 8
Create Lists node
A Code node that loops through all 12 list names and creates them on your board via the Trello API.
Code node — Create all lists
Mode: Run Once for All Items · Language: JavaScript
| Node type | Code |
| Mode | Run Once for All Items |
| Language | JavaScript |
Paste this code into the Code node
Replace
YOUR_API_KEY and YOUR_TOKEN with your actual Trello credentials.const boardId = $('Create Board').first().json.id;
const KEY = 'YOUR_API_KEY';
const TOKEN = 'YOUR_TOKEN';
const lists = [
'Client: BlueChip Tech',
'Client: Pentagon Real Estate',
'Client: Lotus Capital',
'Prospecting',
'Client: Clear Path',
'AI Master Class',
'AI Applications',
'Scale Plus',
'Social Media',
'Sandra',
'N8N Automation Class',
'Scale Plus Applications'
];
const listIds = {};
for (const name of lists) {
const res = await fetch(
`https://api.trello.com/1/lists?name=${encodeURIComponent(name)}&idBoard=${boardId}&key=${KEY}&token=${TOKEN}`,
{ method: 'POST' }
);
const data = await res.json();
listIds[name] = data.id;
await new Promise(r => setTimeout(r, 150));
}
return [{ json: { listIds, boardId } }];
Step 5 of 8
Create Labels node
Creates 8 colour-coded labels on your board — 5 category labels and 3 priority labels.
🔵 client
🟢 pipeline
🟡 content
🟣 ops
🩵 product
🔴 Priority: High
🟡 Priority: Medium
🟢 Priority: Low
const { boardId, listIds } = $('Create Lists').first().json;
const KEY = 'YOUR_API_KEY';
const TOKEN = 'YOUR_TOKEN';
const labelDefs = [
{ name: 'client', color: 'blue' },
{ name: 'pipeline', color: 'green' },
{ name: 'content', color: 'orange' },
{ name: 'ops', color: 'purple' },
{ name: 'product', color: 'sky' },
{ name: 'Priority: High', color: 'red' },
{ name: 'Priority: Medium', color: 'yellow' },
{ name: 'Priority: Low', color: 'lime' },
];
const labelIds = {};
for (const lbl of labelDefs) {
const res = await fetch(
`https://api.trello.com/1/labels?name=${encodeURIComponent(lbl.name)}&color=${lbl.color}&idBoard=${boardId}&key=${KEY}&token=${TOKEN}`,
{ method: 'POST' }
);
const data = await res.json();
labelIds[lbl.name] = data.id;
await new Promise(r => setTimeout(r, 150));
}
return [{ json: { boardId, listIds, labelIds } }];
Step 6 of 8
Prepare Cards node
This Code node outputs 28 separate items — one per card. The next node (Create Card) will process each item automatically.
How this worksThis node outputs 28 items. n8n automatically runs the next node once for each item — so Create Card runs 28 times, one per card.
const { listIds, labelIds } = $('Create Labels').first().json;
const cards = [
['Client: BlueChip Tech','Onboarding Users','Follow up on user onboarding progress','client','High'],
['Client: BlueChip Tech','Customer Services Proposal','Prepare and send CS proposal','client','High'],
['Client: BlueChip Tech','ESOP Manager','Demo or deliver ESOP Manager platform','client','Medium'],
['Client: Pentagon Real Estate','Edit Report','Review and finalise client report','client','High'],
['Client: Pentagon Real Estate','Job Description & KPI','Draft JD and KPI framework','client','Medium'],
['Client: Lotus Capital','Questionnaire','Send discovery questionnaire to Lotus Capital','pipeline','High'],
['Client: Lotus Capital','AI Journey Proposal','Draft AI journey proposal for Lotus Capital','pipeline','High'],
['Prospecting','MTN - Outreach','Initial contact and qualification','pipeline','Medium'],
['Prospecting','Afrinvest - Outreach','Initial contact and qualification','pipeline','Medium'],
['Prospecting','Build New Prospect List','Research and compile new leads','pipeline','Low'],
['Client: Clear Path','Warri Refinery','Follow up on Warri Refinery engagement','client','High'],
['Client: Clear Path','DPR Monday','Prepare for DPR meeting on Monday','client','High'],
['AI Master Class','Finish Landing Page','Complete and publish the AI MasterClass landing page','product','High'],
['AI Master Class','Launch Plan','Finalise launch calendar and outreach strategy','product','Medium'],
['AI Applications','Website Application Portfolio','Update BFT app portfolio page','product','Medium'],
['AI Applications','David Lemon - Follow Up','Action items from David Lemon conversation','product','High'],
['AI Applications','App Review','Review current AI applications in use','product','Low'],
['AI Applications','Deal Tracker','Continue building BFT Deal Tracker on Supabase','product','High'],
['Scale Plus','Courses.gg','Explore Courses.gg integration or partnership','pipeline','Low'],
['Scale Plus','Using Applications','Document Scale Plus application use cases','pipeline','Low'],
['Social Media','FATE Foundation Post','Create LinkedIn post about FATE Foundation session','content','High'],
['Social Media','Salesforce Exam Passing Post','Celebrate Salesforce cert on LinkedIn','content','High'],
['Social Media','Subtopic 3 Post','Prepare third scheduled social post','content','Medium'],
['Sandra','Payment Plan','Agree payment plan with Sandra','ops','High'],
['Sandra','Workshop','Confirm workshop details with Sandra','ops','Medium'],
['Sandra','Research','Complete research task for Sandra','ops','Low'],
['N8N Automation Class','Plan N8N class curriculum','Outline modules for N8N automation training','product','Medium'],
['Scale Plus Applications','Review Scale Plus Applications','Assess and shortlist Scale Plus applications','ops','Medium'],
];
return cards.map(([list, title, desc, lbl, pri]) => ({
json: {
listId: listIds[list],
title,
desc,
labelIds: `${labelIds[lbl]},${labelIds['Priority: ' + pri]}`
}
}));
Step 7 of 8
Create Card node
An HTTP Request node that runs 28 times — once for each card item from the previous node. Uses n8n expressions to pull values dynamically.
HTTP Request — Create Card
POST https://api.trello.com/1/cards · runs 28 times
| Method | POST |
| URL | https://api.trello.com/1/cards |
| Authentication | None |
| Send query params | Toggle ON |
Query parameters
| name | {{ $json.title }} |
| desc | {{ $json.desc }} |
| idList | {{ $json.listId }} |
| idLabels | {{ $json.labelIds }} |
| key | Your Trello API key |
| token | Your Trello token |
Add a Wait node before thisAdd a Wait node (set to 100ms) between Prepare Cards and Create Card to avoid hitting Trello's rate limit when creating 28 cards rapidly.
Step 8 of 8
Test & Run
Before executing, run through this checklist. Then click Execute Workflow and watch your board come to life.
Pre-flight checklist
| 1. Credentials | API key + token saved in n8n as "Trello BFT" |
| 2. Code nodes | YOUR_API_KEY and YOUR_TOKEN replaced in both Code nodes |
| 3. Node connections | All 6 nodes connected left to right in canvas |
| 4. Docker running | docker ps shows n8n container active |
| 5. n8n URL | localhost:5678 loads in browser |
How to execute
| In n8n | Open workflow → click Execute Workflow (top right) |
| Watch progress | Each node turns green as it completes |
| Time to complete | ~40–60 seconds for all 28 cards |
| Result | Open Trello — your board will be live |
If a node failsClick the failed node to see the error message. Most common issue is wrong API key or token. Check you copied both values fully — the token is ~64 characters long.
Bonus — Claude ↔ Trello
Webhook Bridge
This second workflow lets Claude talk to your Trello board in real time via an n8n webhook — no MCP needed.
How the bridge worksn8n exposes a webhook URL. Claude calls that URL. n8n receives the request, talks to Trello, and returns the data. Claude reads the response and answers your question.
Build these 4 webhook workflows in n8n
Workflow 1 — Get all board cards
Webhook → HTTP Request (GET /boards/{id}/cards) → Respond
Say to Claude: "Check my Trello board for High priority cards"
Workflow 2 — Move a card
Webhook → HTTP Request (PUT /cards/{id}) → Respond
Say to Claude: "Move the DPR Monday card to Done"
Workflow 3 — Create a card
Webhook → HTTP Request (POST /cards) → Respond
Say to Claude: "Create a new card in Prospecting for Zenith Bank"
Workflow 4 — Add a comment
Webhook → HTTP Request (POST /cards/{id}/actions/comments) → Respond
Say to Claude: "Add a comment to the Lotus Capital card"
Ask Claude to build these workflowsCome back to Claude and say: "Build me the 4 n8n webhook workflows for Trello — get cards, move card, create card, add comment" — Claude will generate the full node configurations for each.
Setup complete!
Your n8n → Trello workflow guide is done. You now have everything you need to build and run the full system. Save this HTML file and open it any time you need a reference.