Intermediate~15 min setupCommunication & Project ManagementVerified April 2026
Slack logo
Trello logo

How to Create Trello Cards from Slack Messages with Power Automate

Automatically convert Slack messages with specific keywords or reactions into Trello cards with full message context and thread details.

Steps and UI details are based on platform versions at time of writing β€” check each platform for the latest interface.

Best for

Microsoft 365 teams who need instant project visibility when decisions get made in Slack channels.

Not ideal for

Teams wanting complex message filtering logic or custom card templates beyond basic field mapping.

Sync type

real-time

Use case type

notification

Real-World Example

πŸ’‘

A 25-person marketing agency uses this to track client requests that come through #client-feedback Slack channel. When someone adds a 🎯 reaction to a message, Power Automate creates a Trello card in their 'Client Requests' board with the full message text and client name. Before automation, project managers missed 30% of client requests buried in Slack threads.

What Will This Cost?

Drag the slider to your expected monthly volume.

/mo
505005K50K

Each platform counts differently β€” Zapier: 1 task per trigger. Make: 1 operation per module per record. n8n: 1 execution per run.

Prices shown for annual billing. Based on published pricing as of April 2026.

Estimated ROI

1000

min saved/mo

$583

labor value/mo

Free

no platform cost

Based on ~2 min manual effort per operation at $35/hr fully loaded labor cost.

Implementation

Skip the setup

Import this workflow directly into Power Automate

Copy the pre-built Power Automate blueprint and paste it straight into Power Automate. All modules, filters, and field mappings are already configured β€” you just need to connect your accounts.

Before You Start

Make sure you have everything ready.

Admin access to your Slack workspace or pre-approved Power Automate app installation
Trello account with edit permissions on the target board where cards will be created
Microsoft 365 account with Power Automate access (included in most business plans)
Member access to the specific Slack channels you want to monitor for trigger messages

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
Card Name
Message Timestamp
Board Assignment
List Placement
4 optional fieldsβ–Έ show
Card Description
Source Channel
Message Author
Permalink

Step-by-Step Setup

1

Create > Automated cloud flow > Slack

Create new automated flow

Navigate to make.powerautomate.com and sign in with your Microsoft account. Click 'Create' in the left sidebar, then select 'Automated cloud flow'. Name your flow 'Slack to Trello Cards' and search for 'Slack' in the trigger selection. Choose 'When a message is posted to a channel' as your starting trigger.

  1. 1Click 'Create' in the left navigation
  2. 2Select 'Automated cloud flow'
  3. 3Type 'Slack to Trello Cards' as flow name
  4. 4Search for 'Slack' in the trigger box
  5. 5Choose 'When a message is posted to a channel'
βœ“ What you should see: You should see the Slack trigger block with empty configuration fields for Team and Channel.
2

Slack trigger > Sign in

Connect your Slack workspace

Click 'Sign in' next to the Slack connection field. This opens a new browser tab asking for Slack permissions. Select your workspace from the dropdown and click 'Allow' to grant Power Automate access to read messages and channel information. The connection process takes about 30 seconds to complete.

  1. 1Click 'Sign in' in the Slack trigger configuration
  2. 2Select your Slack workspace from the dropdown
  3. 3Click 'Allow' to grant permissions
  4. 4Wait for the green connection confirmation
βœ“ What you should see: You should see 'Connected to Slack' with your workspace name and the Team dropdown should populate with available workspaces.
⚠
Common mistake β€” You need admin permissions in your Slack workspace to install Power Automate. If you see permission errors, ask your Slack admin to pre-approve the app.
Power Automate settings
Connection
Choose a connection…Add
click Add
Slack
Log in to authorize
Authorize Power Automate
popup window
βœ“
Connected
green checkmark
3

Slack trigger > Team > Channel

Configure channel monitoring

Select your Slack team from the Team dropdown, then choose the specific channel you want to monitor from the Channel dropdown. The channel list shows all public channels you have access to. Private channels only appear if you're already a member. For keyword-based triggers, you'll add filtering logic in the next step.

  1. 1Select your workspace from the Team dropdown
  2. 2Choose the target channel from Channel dropdown
  3. 3Note the channel ID that appears in parentheses
  4. 4Click outside the dropdown to confirm selection
βœ“ What you should see: The trigger should show your selected team and channel name, with the trigger now marked as configured.
⚠
Common mistake β€” Private channels only appear if you're a member. Add yourself to private channels before setting up the flow.
4

New step > Control > Condition

Add keyword filtering condition

Click '+ New step' below the Slack trigger and search for 'Control'. Select the 'Condition' action to add message filtering logic. This prevents every message from creating Trello cards. Set up the condition to check if the message text contains specific keywords like 'task', 'todo', or 'action item' that indicate a card should be created.

  1. 1Click '+ New step' under the Slack trigger
  2. 2Search for 'Control' in the connector list
  3. 3Select 'Condition' from the actions
  4. 4Click in the left value box to open dynamic content
βœ“ What you should see: You should see a condition block with 'Choose a value' fields on both sides and a comparison operator in the middle.
⚠
Common mistake β€” Don't skip the condition step or every Slack message will create a Trello card, burning through your API limits quickly.
Slack
SL
trigger
filter
Condition
matches criteria?
yes β€” passes through
no β€” skipped
Trello
TR
notified
5

Condition > Choose a value > Dynamic content > Text

Configure keyword detection logic

In the condition's left value field, select 'Text' from the dynamic content panel under the Slack section. Change the operator from 'is equal to' to 'contains'. In the right value field, type your trigger keyword like 'create card' or 'action item'. You can add multiple conditions using 'Add' to check for different keywords or reaction emojis.

  1. 1Click the left 'Choose a value' field
  2. 2Select 'Text' from Slack dynamic content
  3. 3Change operator dropdown to 'contains'
  4. 4Type 'create card' in the right value field
  5. 5Click 'Add' to include additional keyword checks
βœ“ What you should see: The condition should show 'Text contains create card' with options to add more conditions using 'And' or 'Or' logic.
6

Condition Yes > Add an action > Trello > Create a card

Connect to Trello

In the 'Yes' branch of your condition, click 'Add an action' and search for 'Trello'. Select 'Create a card' from the Trello actions list. Click 'Sign in' to connect your Trello account. Power Automate redirects to Trello where you'll authorize access to your boards and cards. The authentication process includes selecting which Trello workspace to connect.

  1. 1Click 'Add an action' in the Yes branch
  2. 2Search for and select 'Trello'
  3. 3Choose 'Create a card' action
  4. 4Click 'Sign in' for Trello connection
  5. 5Authorize Power Automate in the Trello popup
βœ“ What you should see: You should see 'Connected to Trello' with dropdowns for Board, List, and card configuration fields now visible.
⚠
Common mistake β€” Trello connection times out after 20 minutes of inactivity. If you see auth errors later, re-authenticate through the Connections menu.
7

Create a card > Board > List

Select target board and list

Choose your destination Trello board from the Board dropdown. All boards you have access to appear in this list, including shared boards. After selecting a board, the List dropdown populates with that board's lists. Choose the list where new cards should appear, typically 'To Do', 'Backlog', or 'Incoming Requests' depending on your board structure.

  1. 1Select target board from Board dropdown
  2. 2Wait for List dropdown to populate
  3. 3Choose the destination list (e.g., 'To Do')
  4. 4Verify the correct board and list are selected
βœ“ What you should see: Both Board and List fields should show your selections, and additional card fields like Name and Description should now be available for configuration.
⚠
Common mistake β€” If lists don't populate, refresh the page. Power Automate sometimes caches old board structures.
8

Create a card > Name > Dynamic content

Map message content to card fields

Configure the card creation fields using Slack message data. Click in the Name field and select dynamic content to build a card title. Use a combination of the channel name and timestamp, or extract the first few words from the message text. For the Description field, include the full message text, author name, and a link back to the original Slack message for context.

  1. 1Click in the Name field
  2. 2Select 'Channel' and 'Timestamp' from dynamic content
  3. 3Format as 'Action from #[Channel] - [Timestamp]'
  4. 4Click in Description field
  5. 5Add 'Text', 'User', and 'Permalink' from Slack data
βœ“ What you should see: Name field should show a dynamic expression combining channel and timestamp, Description should include message text and author information.
⚠
Common mistake β€” Map fields using the variable picker β€” don't type field names manually. Hand-typed variable names often have invisible spacing errors that produce blank output.
Slack fields
text
user
channel
ts
thread_ts
available as variables:
1.props.text
1.props.user
1.props.channel
1.props.ts
1.props.thread_ts
9

Insert new step > Trello > Get cards in a list

Add duplicate prevention logic

Above the Trello action, add another step to check for existing cards. Click 'Insert a new step' between the condition and Trello action. Search for 'Trello' and select 'Get cards in a list'. Configure it to search your target list, then add another condition to check if a card with the same Slack message timestamp already exists. This prevents duplicate cards from the same message.

  1. 1Click 'Insert a new step' before the Trello action
  2. 2Search for 'Trello' and select 'Get cards in a list'
  3. 3Select the same board and list as your create action
  4. 4Add another condition to check for existing timestamps
  5. 5Move the create card action inside the new condition's 'No' branch
βœ“ What you should see: You should see a Get cards action followed by a condition checking for duplicates, with Create card nested inside the 'No' branch.
⚠
Common mistake β€” Without duplicate checking, editing a message in Slack will create multiple Trello cards since Power Automate treats edits as new messages.
10

Save > Test > Manually

Test and activate the flow

Click 'Save' in the top right to save your flow configuration. Then click 'Test' and choose 'Manually' to test with a real Slack message. Go to your configured Slack channel and post a message containing your trigger keyword. Return to Power Automate within 2-3 minutes to see the test results and verify the Trello card was created correctly.

  1. 1Click 'Save' in the top toolbar
  2. 2Click 'Test' next to the Save button
  3. 3Select 'Manually' test option
  4. 4Post a test message in your Slack channel
  5. 5Check the flow run history for results
βœ“ What you should see: You should see a successful flow run with green checkmarks on each step, and a new card should appear in your Trello list.
⚠
Common mistake β€” Test messages can take up to 5 minutes to trigger during initial setup. Wait before assuming the flow failed.

Add this expression in a Compose step before the Trello action to clean message formatting and extract the first 50 characters for the card title. Paste this in the Compose action's Inputs field.

JavaScript β€” Code Step{
β–Έ Show code
{
  "cleanTitle": "@{take(replace(replace(triggerOutputs()?['body/text'], '<[^>]*>', ''), '&nbsp;', ' '), 50)}",
  "fullDescription": "@{triggerOutputs()?['body/text']}\n\nPosted by: @{triggerOutputs()?['body/user']}\nChannel: #@{triggerOutputs()?['body/channel']}\nOriginal: @{triggerOutputs()?['body/permalink']}",

... expand to see full code

{
  "cleanTitle": "@{take(replace(replace(triggerOutputs()?['body/text'], '<[^>]*>', ''), '&nbsp;', ' '), 50)}",
  "fullDescription": "@{triggerOutputs()?['body/text']}\n\nPosted by: @{triggerOutputs()?['body/user']}\nChannel: #@{triggerOutputs()?['body/channel']}\nOriginal: @{triggerOutputs()?['body/permalink']}",
  "priorityLevel": "@{if(contains(triggerOutputs()?['body/text'], 'urgent'), 'high', 'normal')}"
}
Power Automate
β–Ά Test flow
executed
βœ“
Slack
βœ“
Trello
Trello
πŸ”” notification
received

Going live

Production Checklist

Before you turn this on for real, confirm each item.

Troubleshooting

Common errors and how to fix them.

Frequently Asked Questions

Common questions about this workflow.

Analysis

VerdictWhy n8n for this workflow

Use Power Automate for this if you're already in the Microsoft ecosystem and need simple keyword-based triggers. The native Office 365 integration means no additional authentication headaches, and the condition logic handles basic filtering without custom code. Skip Power Automate if you need complex message parsing or want to trigger on emoji reactions - Zapier handles Slack's reaction events much better.

Cost

This workflow costs about $0.02 per card created through the standard connectors. At 200 cards per month, you're looking at $4 total. Zapier charges $0.01 per task for the same volume but requires a paid plan at $19.99/month minimum, making Power Automate cheaper until you hit 1,000+ cards monthly. Make.com handles this volume free on their starter plan.

Tradeoffs

Zapier beats Power Automate on Slack trigger options - they support emoji reactions, thread replies, and mention detection out of the box. Make.com offers better message parsing with built-in regex and text manipulation functions. N8n gives you full JavaScript access for complex filtering logic. Pipedream's event handling is faster with sub-60-second triggers. But Power Automate wins on simplicity - the condition builder handles most filtering needs without coding, and the Trello integration includes automatic board discovery.

You'll hit Slack's API rate limits faster than expected if multiple people use trigger keywords frequently. Power Automate doesn't batch requests, so 50 messages in 5 minutes can cause temporary failures. The timestamp-based duplicate detection breaks if your Slack workspace changes time zones. Message formatting gets messy - Slack's rich text becomes HTML that Trello displays literally unless you add expression formulas to clean it up.

Ideas for what to build next

  • β†’
    Add reaction-based triggers β€” Modify the flow to trigger on specific emoji reactions instead of keywords. Use the 'When a reaction is added' Slack trigger for more precise control.
  • β†’
    Create reverse sync for updates β€” Build a companion flow that updates Slack when Trello cards move between lists or get completed. Helps keep both tools in sync.
  • β†’
    Add automatic assignment logic β€” Use Slack user mappings to automatically assign Trello cards to board members based on who posted the original message or mentioned users.

Related guides

Was this guide helpful?
← Slack + Trello overviewPower Automate profile β†’