Daily client meeting prep brief from Basecamp in Slack
Every weekday at 7:30am, get a Slack DM that previews today's client meetings with the latest Basecamp project state, open to-dos, and talking points.
Build me an agent workflow that preps me for the day's client meetings by joining my Google Calendar to my Basecamp projects and delivering a brief to my Slack DM before my first call.
Trigger: cron, every weekday at 7:30am in my local time zone. Let me configure the time, time zone, and weekday set.
Step 1. Pull today's events from Google Calendar using List Events on my primary calendar, with singleEvents=true and a time window that covers today in my local time zone.
Step 2. Pick out the client meetings. Default heuristic: any event that has at least one attendee whose email domain is not in my own org's domain list, or whose title contains a recognizable client name. Make the rule configurable as one of: external attendee domain check, fuzzy keyword match on the title, or a custom mapping I supply (client name to Basecamp project name or ID). Let me edit my own domain list and the optional mapping.
Step 3. For each selected meeting, find the matching Basecamp project. Call Basecamp List Projects once at the start of the run and cache the results. Match by exact project name, then fuzzy match on the client name or event title, then fall back to my custom mapping if I provided one. If nothing matches, keep the meeting in the brief but note that no Basecamp project could be matched.
Step 4. For each matched project, call Basecamp Get a Project to read the dock and find the todoset ID. Then call List To-Do Lists for that todoset, and for each list call List To-Dos with completed=false. From those, surface: overdue items (due_on before today), items due this week, and the rest of the open backlog with owners and due dates.
Step 5. Write a short, scannable brief per meeting. Keep each brief tight: the meeting time and title, the matched Basecamp project, a one or two line summary of the project's recent state, overdue items with owners, items due this week with owners and dates, and a suggested talking-points list grounded in what's open or at risk. Order the briefs by meeting start time.
Step 6. Send the bundle through Slack Send a Message to my own DM. Use Slack mrkdwn formatting (single asterisks for bold, dashes for bullets) so it's readable on mobile. If there are zero client meetings today, send a one-line message saying the day is clear instead of skipping silently. Let me change the Slack destination, for example to a private channel for my assistant or to a pod channel, without changing anything else.
Configurable inputs I should be able to edit: morning send time and time zone, the weekday set, my own email domain list for the external attendee check, the client-to-project matching rule (exact, fuzzy, or custom mapping) and the mapping itself, and the Slack target (my DM by default, or a channel).
Integrations: Google Calendar, Basecamp, Slack.
Additional information
What does this prompt do?
- Pulls today's events from your Google Calendar and picks out the client meetings using attendee domains and event titles.
- For each client meeting, finds the matching Basecamp project and pulls the latest project state plus open, overdue, and due-this-week to-dos.
- Writes a short, scannable brief per meeting with owners, due dates, and suggested talking points.
- Sends the full bundle to you as a Slack DM before your first call so you walk in prepared.
What do I need to use this?
- A Google Calendar account where your client meetings live.
- A Basecamp account with projects named so each client or engagement is identifiable.
- A Slack workspace where you want the morning brief delivered to your own DM.
How can I customize it?
- Change the send time and time zone, or extend the schedule to weekends.
- Adjust how a meeting is matched to a Basecamp project: exact name match, fuzzy match on the client name, or a custom mapping you maintain.
- Tune which meetings count as client meetings, for example by external attendee domain, calendar color, or keywords in the title.
- Pick a different Slack destination, such as a private channel for your assistant or a deal-team channel instead of your DM.
Frequently asked questions
What counts as a client meeting?
What if a meeting does not match any Basecamp project?
Where does the brief get sent?
Will this work if I have back-to-back mornings?
Can I change when it runs?
Walk into every client call already briefed.
Connect Google Calendar, Basecamp, and Slack once, and Geni delivers a per-meeting brief to your DM before the day starts.