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

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-time

Use case type

notification

Real-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.

/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.

Basecamp 3 account with admin or project access to receive webhooks
Slack workspace where you can add apps or existing Power Automate bot permissions
Microsoft 365 account or Power Automate license for creating automated flows
Permission to post messages in your target Slack channels

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
Project Name
Update Title
Creator Name
4 optional fieldsβ–Έ show
Update Content
Basecamp URL
Recording Type
Created Date

Step-by-Step Setup

1

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.

  1. 1Click 'My flows' in the left navigation panel
  2. 2Click the blue '+ New flow' button at the top
  3. 3Select 'Automated cloud flow' from the options
  4. 4Name your flow 'Basecamp to Slack Notifications'
βœ“ What you should see: You should see the flow creation dialog with a text field for the flow name and trigger selection below.
2

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.

  1. 1Type 'Basecamp' in the search trigger box
  2. 2Click 'Basecamp 3' from the connector list
  3. 3Select 'When a recording is created' trigger
  4. 4Click 'Create' to proceed to authentication
βœ“ What you should see: The flow designer opens with the Basecamp trigger at the top requiring connection setup.
⚠
Common mistake β€” Basecamp Classic (old version) won't work with this trigger - make sure you select Basecamp 3
Power Automate
+
click +
search apps
Slack
SL
Slack
Search and select Basecamp t…
Slack
SL
module added
3

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.

  1. 1Click the blue 'Sign in' button in the trigger
  2. 2Enter your Basecamp email and password
  3. 3Click 'Yes, I'll allow access' on the permission screen
  4. 4Wait for the redirect back to Power Automate
βœ“ What you should see: You should see 'Connected to Basecamp 3' with your account email displayed in the trigger configuration.
⚠
Common mistake β€” If you have multiple Basecamp accounts, verify you're connecting the right one - check the account name in the top right
Power Automate settings
Connection
Choose a connection…Add
click Add
Slack
Log in to authorize
Authorize Power Automate
popup window
βœ“
Connected
green checkmark
4

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.

  1. 1Click the 'Project' dropdown and select your target project
  2. 2Leave 'Recording Type' empty for all updates
  3. 3Optionally set 'Person' to filter by specific team members
  4. 4Click outside the dropdown to confirm selection
βœ“ What you should see: The trigger shows your selected project name and any filters you applied.
⚠
Common mistake β€” Selecting multiple projects requires separate flows - this trigger handles one project at a time
Slack
SL
trigger
filter
Condition
matches criteria?
yes β€” passes through
no β€” skipped
Basecamp
BA
notified
5

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.

  1. 1Click the '+ New step' button below the trigger
  2. 2Type 'Slack' in the search connectors box
  3. 3Click 'Slack' from the connector list
  4. 4Select 'Post message' from the available actions
βœ“ What you should see: A new Slack action appears with connection and configuration fields to complete.
6

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.

  1. 1Click 'Sign in' in the Slack Post message action
  2. 2Choose your target Slack workspace
  3. 3Click 'Allow' to grant posting permissions
  4. 4Confirm the connection shows your workspace name
βœ“ What you should see: The Slack action shows 'Connected to [Your Workspace Name]' with channel selection now available.
⚠
Common mistake β€” Power Automate needs posting permissions - if you see authorization errors, check with your Slack admin about app restrictions
7

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.

  1. 1Click the 'Channel' dropdown field
  2. 2Scroll through the channel list or type to search
  3. 3Select your target channel (e.g., #project-updates)
  4. 4Verify the channel name appears in the field
βœ“ What you should see: Your selected channel name shows in the Channel field with a # prefix.
⚠
Common mistake β€” Private channels only appear if you're already a member - add the Power Automate bot to private channels first
message template
πŸ”” New Record: {{text}} {{user}}
channel: {{channel}}
ts: {{ts}}
#sales
πŸ”” New Record: Jane Smith
Company: Acme Corp
8

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.

  1. 1Click in the large 'Message' text box
  2. 2Type 'New update in ' followed by a space
  3. 3Click 'Title' from the dynamic content panel
  4. 4Add ' by ' and then click 'Creator Name'
  5. 5Optionally add 'Content' for the full update text
βœ“ What you should see: Your message field shows a mix of static text and blue dynamic content tokens that will populate with live data.
⚠
Common mistake β€” Long Basecamp content can make messages huge - test with your typical update lengths before going live
9

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.

  1. 1Click 'Save' in the top right toolbar
  2. 2Click 'Test' next to the Save button
  3. 3Select 'Manually' and click 'Save & Test'
  4. 4Create a test update in your Basecamp project
  5. 5Return to check the test results
βœ“ What you should see: You should see green checkmarks next to each step and the test message should appear in your Slack channel.
⚠
Common mistake β€” Tests timeout after 10 minutes - if your Basecamp webhook is slow, you might need to retry the test
Power Automate
β–Ά Test flow
executed
βœ“
Slack
βœ“
Basecamp
Basecamp
πŸ”” notification
received
10

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.

  1. 1Click 'Turn on' in the flow status toggle
  2. 2Confirm the flow shows 'On' status in green
  3. 3Check 'Run history' to see live executions
  4. 4Monitor notifications in your Slack channel
βœ“ What you should see: The flow header shows 'On' in green and run history begins populating with successful executions.

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'), '<[^>]*>', ''), '&nbsp;', ' ')}",
  "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'), '<[^>]*>', ''), '&nbsp;', ' ')}",
  "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

VerdictWhy n8n for this workflow

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.

Cost

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.

Tradeoffs

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

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