

How to Send Basecamp Updates to Slack with Power Automate
Automatically post Basecamp project updates, milestones, and task completions to designated Slack channels when events occur.
Steps and UI details are based on platform versions at time of writing β check each platform for the latest interface.
Best for
Microsoft-first teams who need instant Slack notifications when Basecamp projects change without manual checking
Not ideal for
Teams wanting complex conditional logic or advanced message formatting should use Make or n8n instead
Sync type
real-timeUse case type
notificationReal-World Example
A 12-person marketing agency uses this to notify #projects-general in Slack whenever milestones complete or deliverables get approved in Basecamp. Before automation, the project manager checked Basecamp every 30 minutes and sent manual Slack updates, missing 40% of status changes until the next business day.
What Will This Cost?
Drag the slider to your expected monthly volume.
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
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.
Field Mapping
Map these fields between your apps.
| Field | API Name | |
|---|---|---|
| Required | ||
| Project Name | ||
| Update Title | ||
| Creator Name | ||
4 optional fieldsβΈ show
| Update Content | |
| Basecamp URL | |
| Recording Type | |
| Created Date |
Step-by-Step Setup
My flows > + New flow > Automated cloud flow
Create automated flow in Power Automate
Navigate to make.powerautomate.com and sign in with your Microsoft account. Click 'My flows' in the left sidebar, then the blue '+ New flow' button in the top toolbar. Select 'Automated cloud flow' from the dropdown menu since we want real-time triggers from Basecamp.
- 1Click 'My flows' in the left navigation panel
- 2Click the blue '+ New flow' button at the top
- 3Select 'Automated cloud flow' from the options
- 4Name your flow 'Basecamp to Slack Notifications'
Flow builder > Choose trigger > Basecamp 3
Search and select Basecamp trigger
In the trigger search box, type 'Basecamp' and select the Basecamp 3 connector from the results. Choose 'When a recording is created' as your trigger since this catches project updates, task completions, and milestone events. This trigger fires immediately when content changes in your Basecamp account.
- 1Type 'Basecamp' in the search trigger box
- 2Click 'Basecamp 3' from the connector list
- 3Select 'When a recording is created' trigger
- 4Click 'Create' to proceed to authentication
Basecamp trigger > Sign in > Authorization
Connect your Basecamp account
Click 'Sign in' to authenticate with Basecamp. You'll be redirected to Basecamp's authorization page where you enter your Basecamp credentials. Grant Power Automate permission to access your projects and receive webhooks. The connection appears in your Connections list for reuse across flows.
- 1Click the blue 'Sign in' button in the trigger
- 2Enter your Basecamp email and password
- 3Click 'Yes, I'll allow access' on the permission screen
- 4Wait for the redirect back to Power Automate
Basecamp trigger > Project selection > Recording filters
Configure project and recording filters
Select which Basecamp project to monitor from the 'Project' dropdown - this populates with all projects you have access to. Leave 'Recording Type' blank to catch all updates (todos, milestones, documents, messages) or select specific types. Setting filters here prevents noise from irrelevant project activity.
- 1Click the 'Project' dropdown and select your target project
- 2Leave 'Recording Type' empty for all updates
- 3Optionally set 'Person' to filter by specific team members
- 4Click outside the dropdown to confirm selection
Flow builder > + New step > Slack > Post message
Add Slack action step
Click '+ New step' below the Basecamp trigger to add an action. Search for 'Slack' in the connector search and select it from the results. Choose 'Post message' as the action since we're sending notifications to a channel. This creates a new Slack message each time the trigger fires.
- 1Click the '+ New step' button below the trigger
- 2Type 'Slack' in the search connectors box
- 3Click 'Slack' from the connector list
- 4Select 'Post message' from the available actions
Slack action > Sign in > Workspace selection
Authenticate with your Slack workspace
Click 'Sign in' in the Slack action to connect your workspace. Select your Slack workspace from the authorization screen if you belong to multiple workspaces. Grant Power Automate permission to post messages and read channel information. This connection lets you access all public channels and private channels you belong to.
- 1Click 'Sign in' in the Slack Post message action
- 2Choose your target Slack workspace
- 3Click 'Allow' to grant posting permissions
- 4Confirm the connection shows your workspace name
Slack action > Channel dropdown > Channel selection
Select target Slack channel
Click the 'Channel' dropdown to see all channels you can post to. Select your target channel like #project-updates or #general. The list includes public channels and private channels you're a member of. Channel selection determines where notifications appear for your team to see.
- 1Click the 'Channel' dropdown field
- 2Scroll through the channel list or type to search
- 3Select your target channel (e.g., #project-updates)
- 4Verify the channel name appears in the field
channel: {{channel}}
ts: {{ts}}
Slack action > Message field > Dynamic content
Build the notification message content
Click in the 'Message' text box to compose your notification. Use the dynamic content panel on the right to insert Basecamp data like Title, Creator Name, and Content. Create a format like 'New update in [Project Name]: [Title] by [Creator Name]' for consistency. The dynamic content pulls live data from each Basecamp event.
- 1Click in the large 'Message' text box
- 2Type 'New update in ' followed by a space
- 3Click 'Title' from the dynamic content panel
- 4Add ' by ' and then click 'Creator Name'
- 5Optionally add 'Content' for the full update text
Top toolbar > Save > Test > Manual trigger
Test the flow with sample data
Click 'Save' in the top toolbar to save your flow, then click 'Test' to run a live test. Select 'Manually' and click 'Save & Test' to start monitoring. Go to your Basecamp project and create a test todo or post a message. Return to Power Automate to see if the trigger fired and the Slack message posted successfully.
- 1Click 'Save' in the top right toolbar
- 2Click 'Test' next to the Save button
- 3Select 'Manually' and click 'Save & Test'
- 4Create a test update in your Basecamp project
- 5Return to check the test results
Flow header > Turn on > Run history monitoring
Enable the flow for production
After successful testing, click 'Turn on' in the flow header to activate automatic triggering. The flow now runs whenever matching events occur in your Basecamp project. Monitor the run history in the first few days to catch any authentication issues or message formatting problems that need adjustment.
- 1Click 'Turn on' in the flow status toggle
- 2Confirm the flow shows 'On' status in green
- 3Check 'Run history' to see live executions
- 4Monitor notifications in your Slack channel
Add this expression in a Compose action before the Slack step to clean HTML formatting from Basecamp content and create better-looking notifications.
JavaScript β Code Step{βΈ Show code
{
"cleanContent": "@{replace(replace(replace(triggerBody()?['content'], '<br>', '\n'), '<[^>]*>', ''), ' ', ' ')}",
"shortTitle": "@{if(greater(length(triggerBody()?['title']), 50), concat(substring(triggerBody()?['title'], 0, 47), '...'), triggerBody()?['title'])}",... expand to see full code
{
"cleanContent": "@{replace(replace(replace(triggerBody()?['content'], '<br>', '\n'), '<[^>]*>', ''), ' ', ' ')}",
"shortTitle": "@{if(greater(length(triggerBody()?['title']), 50), concat(substring(triggerBody()?['title'], 0, 47), '...'), triggerBody()?['title'])}",
"urgentFlag": "@{if(contains(toLower(triggerBody()?['title']), 'urgent'), 'π¨ ', '')}"
}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
Use Power Automate for this if your team already lives in Microsoft 365 and wants native integration with Teams alongside Slack. The webhook-based trigger fires within 15 seconds of Basecamp updates, and authentication stays stable longer than Zapier's connections. Skip Power Automate if you need complex message formatting - Make handles Slack's block kit much better.
This workflow costs nothing on Power Automate's free tier until you hit 750 runs per month. At 20 project updates per day, that's 600 monthly runs = free. Zapier charges $20/month for the same volume on their Starter plan. Make's free tier handles 1,000 operations monthly, making it cheaper for high-volume projects.
Make beats Power Automate on Slack formatting - its Slack modules support rich attachments and conditional message styling out of the box. Zapier's Basecamp trigger includes more filter options like update priority and assignee changes. n8n gives you full control over webhook parsing and can batch multiple updates into digest messages. But Power Automate wins on reliability - its webhook registration stays active longer and handles Basecamp API changes automatically.
You'll hit Basecamp's 10 webhook limit per account if you monitor many projects. Large project updates with embedded images make Slack messages unreadable - strip HTML aggressively. Teams using Basecamp Classic instead of Basecamp 3 won't find compatible triggers in Power Automate's connector library.
Ideas for what to build next
- βAdd conditional filtering β Use Power Automate conditions to only notify on specific update types like milestones or high-priority todos instead of every change.
- βCreate digest notifications β Build a daily summary flow that collects all project updates and sends one consolidated message instead of individual notifications.
- βExpand to multiple projects β Clone this flow for other Basecamp projects or create a parent flow that routes updates to different Slack channels based on project type.
Related guides
How to Share Notion Meeting Notes to Slack with Pipedream
~15 min setup
How to Share Notion Meeting Notes to Slack with Power Automate
~15 min setup
How to Share Notion Meeting Notes to Slack with n8n
~20 min setup
How to Send Notion Meeting Notes to Slack with Zapier
~8 min setup
How to Share Notion Meeting Notes to Slack with Make
~12 min setup
How to Create Notion Tasks from Slack with Pipedream
~15 min setup