

How to Build Daily Standup Reports from Basecamp with Power Automate
Generate automated daily project status reports from Basecamp data and post them to Slack channels with completed tasks and deadlines.
Steps and UI details are based on platform versions at time of writing ā check each platform for the latest interface.
Best for
Teams already using Office 365 who want native Microsoft integration with their daily standup reports
Not ideal for
Teams needing real-time task updates or complex conditional formatting in their reports
Sync type
scheduledUse case type
reportingReal-World Example
A 12-person marketing team runs this flow every weekday at 8 AM to pull yesterday's completed tasks, today's deadlines, and overdue items from 3 Basecamp projects. The formatted report hits #daily-standup before their 8:30 meeting, giving everyone context without manually checking each project.
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 | ||
| Task Title | title | |
| Task Completion Date | completed_at | |
| Project Name | bucket.name | |
| Schedule Entry Title | summary | |
| Schedule Entry Date | starts_at | |
4 optional fieldsāø show
| Task Assignee | assignee.name |
| Due Date | due_on |
| Task Notes | notes |
| Todolist Name | parent.title |
Step-by-Step Setup
Home > Create > Scheduled cloud flow
Create scheduled cloud flow
Navigate to make.powerautomate.com and click 'Create' in the left sidebar. Select 'Scheduled cloud flow' from the options. Name it 'Daily Basecamp Standup Report' and set the schedule to repeat every 1 day at your preferred time. Choose your timezone carefully since this affects when reports generate.
- 1Click 'Create' in the left navigation
- 2Select 'Scheduled cloud flow'
- 3Enter 'Daily Basecamp Standup Report' as the flow name
- 4Set repeat interval to 1 day
- 5Choose your standup time (e.g., 8:00 AM)
Flow designer > New step > HTTP
Connect to Basecamp
Click 'New step' and search for 'HTTP' in the connector list. Basecamp doesn't have a native Power Automate connector, so you'll use HTTP requests with Basecamp's API. You'll need your Basecamp account ID and API token from your Basecamp settings page.
- 1Click '+ New step' below the Recurrence trigger
- 2Search for 'HTTP' in the connector search
- 3Select 'HTTP' connector
- 4Choose 'HTTP' action
HTTP action configuration
Configure Basecamp projects API call
Set the HTTP method to GET and enter the Basecamp projects endpoint URL. In headers, add 'Authorization' with your encoded credentials and 'User-Agent' with your app identifier. The URL format is https://3.basecampapi.com/YOUR_ACCOUNT_ID/projects.json. This retrieves all projects you'll filter for relevant ones.
- 1Set Method to 'GET'
- 2Enter URI: https://3.basecampapi.com/YOUR_ACCOUNT_ID/projects.json
- 3Click 'Add new parameter' and select 'Headers'
- 4Add Authorization header with Bearer token
- 5Add User-Agent header with your app name
New step > Data Operation > Parse JSON
Parse project data
Add a 'Parse JSON' action to structure the Basecamp projects response. Click 'Use sample payload to generate schema' and paste a sample projects JSON response from Basecamp's API documentation. This creates the schema Power Automate needs to reference project IDs and names in later steps.
- 1Click '+ New step' and search for 'Parse JSON'
- 2Select 'Parse JSON' from Data Operations
- 3Click in Content field and select 'body' from HTTP action
- 4Click 'Use sample payload to generate schema'
- 5Paste sample Basecamp projects JSON response
New step > HTTP
Get completed tasks
Add another HTTP action to fetch completed todolists for your target projects. Use Basecamp's completed endpoint: https://3.basecampapi.com/YOUR_ACCOUNT_ID/projects/PROJECT_ID/todolists/completed.json. You'll need to repeat this for each project you want in the report.
- 1Add new HTTP action
- 2Set method to GET
- 3Enter completed tasks endpoint URL
- 4Copy same headers from previous HTTP action
- 5Replace PROJECT_ID with actual project ID
New step > HTTP
Get upcoming due dates
Add a third HTTP action for Basecamp's schedule endpoint to fetch upcoming deadlines. The endpoint https://3.basecampapi.com/YOUR_ACCOUNT_ID/projects/PROJECT_ID/schedule_entries.json returns events and deadlines. You'll filter these for items due today and tomorrow in the report formatting.
- 1Add another HTTP action
- 2Set method to GET
- 3Enter schedule endpoint URL
- 4Use same authentication headers
- 5Target same project ID
New step > Data Operation > Compose
Format the report data
Add a 'Compose' action to build your Slack message format. Use Power Automate expressions to structure the data into a readable standup report. Reference the parsed JSON outputs from previous steps using dynamic content. Include sections for completed tasks, upcoming deadlines, and overdue items.
- 1Search for and add 'Compose' action
- 2Click in Inputs field
- 3Build message template with static text and dynamic content
- 4Add expressions for date formatting
- 5Structure sections for completed, upcoming, and overdue tasks
New step > Slack > Post message
Connect to Slack
Add the Slack connector and choose 'Post message' action. Sign in with your Slack account when prompted. Select the target channel for your standup reports from the dropdown. The channel list populates from your connected Slack workspace automatically.
- 1Click '+ New step' and search 'Slack'
- 2Select Slack connector
- 3Choose 'Post message' action
- 4Sign in to your Slack workspace when prompted
- 5Select target channel from dropdown
Slack Post message configuration
Configure message content
In the message field, click and select the output from your Compose action. This inserts the formatted report as the Slack message content. Optionally set the bot name and add an emoji icon for the automated posts to distinguish them from human messages.
- 1Click in Message field
- 2Select 'Outputs' from Compose action in dynamic content
- 3Optionally set custom bot name
- 4Choose an emoji icon for the bot
- 5Preview the message formatting
Flow designer toolbar > Save > Test
Test and activate
Click 'Save' to store your flow configuration. Then click 'Test' and choose 'Manually' to run it once immediately. Check your Slack channel to verify the report appears correctly with real Basecamp data. If successful, the flow will run automatically on your configured schedule.
- 1Click 'Save' in the top toolbar
- 2Click 'Test' button
- 3Select 'Manually' test option
- 4Click 'Run flow' to execute immediately
- 5Check Slack channel for the generated report
Add this expression in your Compose action to format completion dates and filter tasks from the last 24 hours. Paste it in the expression editor when building your message template.
JavaScript ā Code Stepif(āø Show code
if(
greater(
ticks(items('Apply_to_each')?['completed_at']),... expand to see full code
if(
greater(
ticks(items('Apply_to_each')?['completed_at']),
ticks(addDays(utcNow(), -1))
),
concat(
'⢠',
items('Apply_to_each')?['title'],
' (',
items('Apply_to_each')?['assignee']?['name'],
' - ',
formatDateTime(items('Apply_to_each')?['completed_at'], 'MMM d'),
')'
),
''
)Scaling Beyond 50+ tasks per day across multiple projects+ Records
If your volume exceeds 50+ tasks per day across multiple projects records, apply these adjustments.
Batch API calls efficiently
Group multiple project calls using parallel branches instead of sequential HTTP actions. This reduces total execution time from minutes to under 30 seconds.
Implement smart filtering
Add date range filters directly in Basecamp API calls using since parameters rather than filtering in Power Automate. This reduces data transfer and processing time.
Break into multiple flows
Split high-volume reports into separate flows per project or team. Use a master flow to coordinate timing and combine results for very large organizations.
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 you're already deep in the Microsoft ecosystem and want native integration with Office 365. The HTTP connector handles Basecamp's API well, and the scheduling is rock solid once configured. The expression language is powerful enough for date filtering and text formatting. Skip it if you need real-time updates - Make handles webhook triggers from Basecamp much better.
This costs 1 run per day at the basic level, but jumps to 5-8 runs if you're pulling multiple projects separately. On the cheapest Power Automate plan at $15/month, you get 750 runs, so daily reports barely register. Zapier costs $20/month for the same volume but includes 1000 tasks. Make starts at $9/month with 1000 operations, making it the budget winner.
Make beats Power Automate on error handling - its built-in retry logic and webhook support make it more reliable for API-heavy workflows. Zapier wins on simplicity with its Basecamp connector, eliminating the HTTP configuration entirely. n8n gives you better debugging tools when your date expressions inevitably break. But Power Automate wins if you're already paying for Office 365 and want everything in one Microsoft stack.
You'll hit timezone confusion first - Power Automate internally uses UTC but displays your local time, making date filtering tricky. Basecamp's API is pickier than most about headers and rate limits, causing random 403 errors that aren't obvious from Power Automate's error messages. The expression editor crashes on complex formulas, forcing you to build them in pieces. Plan for an extra hour of debugging date logic.
Ideas for what to build next
- āAdd weekend skip logic ā Modify the recurrence trigger to skip Saturday and Sunday executions when your team doesn't work weekends.
- āCreate weekly summary version ā Duplicate the flow with weekly recurrence to generate broader project status reports every Friday.
- āInclude blocked tasks alerts ā Add HTTP calls to fetch tasks with specific keywords like 'blocked' or 'waiting' to highlight impediments.
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