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

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

scheduled

Use case type

reporting

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

/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 account with API access enabled and personal access token generated
Slack workspace admin permissions to install apps and create bot connections
Microsoft 365 or Power Automate license (included in most business Office subscriptions)
Basecamp projects with active tasks and deadlines to generate meaningful reports

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
Task Titletitle
Task Completion Datecompleted_at
Project Namebucket.name
Schedule Entry Titlesummary
Schedule Entry Datestarts_at
4 optional fieldsā–ø show
Task Assigneeassignee.name
Due Datedue_on
Task Notesnotes
Todolist Nameparent.title

Step-by-Step Setup

1

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.

  1. 1Click 'Create' in the left navigation
  2. 2Select 'Scheduled cloud flow'
  3. 3Enter 'Daily Basecamp Standup Report' as the flow name
  4. 4Set repeat interval to 1 day
  5. 5Choose your standup time (e.g., 8:00 AM)
āœ“ What you should see: You should see the flow designer with a Recurrence trigger configured for daily execution.
⚠
Common mistake — Power Automate uses UTC internally, so verify your timezone setting matches your team's standup schedule.
2

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.

  1. 1Click '+ New step' below the Recurrence trigger
  2. 2Search for 'HTTP' in the connector search
  3. 3Select 'HTTP' connector
  4. 4Choose 'HTTP' action
āœ“ What you should see: The HTTP action appears with method, URI, and headers fields ready for configuration.
⚠
Common mistake — Basecamp requires specific User-Agent headers in API requests or they'll return 403 errors.
3

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.

  1. 1Set Method to 'GET'
  2. 2Enter URI: https://3.basecampapi.com/YOUR_ACCOUNT_ID/projects.json
  3. 3Click 'Add new parameter' and select 'Headers'
  4. 4Add Authorization header with Bearer token
  5. 5Add User-Agent header with your app name
āœ“ What you should see: The HTTP action shows your configured endpoint and authentication headers.
4

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.

  1. 1Click '+ New step' and search for 'Parse JSON'
  2. 2Select 'Parse JSON' from Data Operations
  3. 3Click in Content field and select 'body' from HTTP action
  4. 4Click 'Use sample payload to generate schema'
  5. 5Paste sample Basecamp projects JSON response
āœ“ What you should see: Parse JSON action shows generated schema with project properties like id, name, and status.
⚠
Common mistake — The schema generation is picky about JSON format - remove any trailing commas or comments from your sample.
5

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.

  1. 1Add new HTTP action
  2. 2Set method to GET
  3. 3Enter completed tasks endpoint URL
  4. 4Copy same headers from previous HTTP action
  5. 5Replace PROJECT_ID with actual project ID
āœ“ What you should see: HTTP action configured to pull completed tasks from your target Basecamp project.
⚠
Common mistake — Basecamp's completed endpoint only returns tasks finished in the last 30 days, not all historical completions.
6

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.

  1. 1Add another HTTP action
  2. 2Set method to GET
  3. 3Enter schedule endpoint URL
  4. 4Use same authentication headers
  5. 5Target same project ID
āœ“ What you should see: Third HTTP action ready to pull schedule data including deadlines and events.
7

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.

  1. 1Search for and add 'Compose' action
  2. 2Click in Inputs field
  3. 3Build message template with static text and dynamic content
  4. 4Add expressions for date formatting
  5. 5Structure sections for completed, upcoming, and overdue tasks
āœ“ What you should see: Compose action shows your formatted message template with placeholders for Basecamp data.
⚠
Common mistake — Power Automate's expression editor is sensitive to syntax - test complex formulas in smaller pieces first.
8

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.

  1. 1Click '+ New step' and search 'Slack'
  2. 2Select Slack connector
  3. 3Choose 'Post message' action
  4. 4Sign in to your Slack workspace when prompted
  5. 5Select target channel from dropdown
āœ“ What you should see: Slack connection established with channel selected and message field ready for your report content.
9

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.

  1. 1Click in Message field
  2. 2Select 'Outputs' from Compose action in dynamic content
  3. 3Optionally set custom bot name
  4. 4Choose an emoji icon for the bot
  5. 5Preview the message formatting
āœ“ What you should see: Slack message configured with your formatted report content and custom bot appearance.
⚠
Common mistake — Slack formatting uses different markdown than Basecamp - test your message format before going live.
10

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.

  1. 1Click 'Save' in the top toolbar
  2. 2Click 'Test' button
  3. 3Select 'Manually' test option
  4. 4Click 'Run flow' to execute immediately
  5. 5Check Slack channel for the generated report
āœ“ What you should see: Flow executes successfully and posts a formatted standup report to your target Slack channel.
⚠
Common mistake — The first run might fail if Basecamp projects are empty - ensure you have tasks and deadlines to test with.

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'),
    ')'
  ),
  ''
)
Power Automate
ā–¶ Test flow
executed
āœ“
Slack
āœ“
Basecamp
Basecamp
šŸ”” notification
received

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.

1

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.

2

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.

3

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

VerdictWhy n8n for this workflow

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.

Cost

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.

Tradeoffs

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

Was this guide helpful?
← Slack + Basecamp overviewPower Automate profile →