Daily Basecamp morning digest in Slack
Every weekday at 9am ET, get a single Slack message summarizing your overdue, due today, and due this week Basecamp to-dos so you can start without opening Basecamp.
Every weekday at 9am America/New_York, build a personal Basecamp digest and post it to my Slack. The trigger is a cron schedule: Monday through Friday at 09:00 ET.
Pull my assignments from Basecamp using the Get Due Assignments operation. I need three buckets: overdue, due today, and due this week. Basecamp's Get Due Assignments natively scopes by due date, so call it for each scope rather than filtering client-side. Treat the assignments as 'mine' based on the authenticated Basecamp user.
If all three buckets are empty, do nothing. Do not post a 'nothing to do' message. The whole point is to skip noisy days.
Otherwise, format a single Slack message in Slack mrkdwn with this structure: a one-line opening summary like '3 overdue, 5 due today, 7 due this week across 4 projects', then a section per non-empty bucket in this order: Overdue, Today, This Week. Inside each section, group items by Basecamp project (project name as a subheader), and list each to-do as a bullet with the to-do title linked to its Basecamp URL using Slack's <url|text> link syntax. Show the due date next to each item. Within the Overdue section, prefix any to-do that has been overdue for more than 3 calendar days with a 🔥 emoji and the number of days overdue, so stale items are easy to spot.
Post the message to Slack using the Send a Message operation. The destination should be configurable: either my personal DM (conversation with myself) or a specific channel I choose at setup. Send it as a single top-level message, not a thread reply. Keep it as one message even if the lists are long; truncate gracefully only if Slack's message size limit would otherwise be exceeded.
Use the Slack user OAuth integration (slug: slack), not slackbot. The message should be sent as me so it lands cleanly in my own DM. Use the Basecamp integration (slug: basecamp) for the to-do data.
Configurable inputs I want exposed: schedule time and timezone (default 09:00 America/New_York, weekdays), Slack destination (channel ID or DM), and the 'stale overdue' threshold in days (default 3).
Additional information
What does this prompt do?
- Pulls every Basecamp to-do assigned to you, grouped into overdue, due today, and due this week.
- Posts one clean Slack message with sections per bucket, each item linking back to Basecamp.
- Groups items by project and flags anything stuck overdue for more than three days so it does not slip again.
- Stays silent on quiet days. If nothing is overdue or due, nothing gets posted.
What do I need to use this?
- A Basecamp 3 account where to-dos are assigned to you.
- A Slack workspace, and a channel or DM you want the digest posted in.
- A weekday morning you would like the message to land at, in your timezone.
How can I customize it?
- Move the schedule to a different time, switch to daily including weekends, or run it twice a day.
- Send the digest to a private DM, a personal channel, or a shared team channel.
- Change the overdue threshold from three days to whatever counts as stale on your team.
Frequently asked questions
Will it spam my channel on days I have nothing due?
Can I send the digest to a private channel or DM instead of a public channel?
Does this only show my to-dos, or everyone's?
Can I change the 9am ET schedule?
Do the items in the message link back to Basecamp?
Stop opening Basecamp first thing in the morning.
Connect Basecamp and Slack once, and Geni delivers your prioritized to-do list every weekday at 9am.