Daily meeting prep brief in Slack at 7am

Geni reads your Google Calendar each morning, pulls HubSpot deal context and recent Gmail threads for every external attendee, and DMs you a single ranked brief in Slack.

Agentic Task
Google CalendarHubSpotGmailSlackSalesPersonal ProductivityDaily DigestsMeeting WorkflowsAI Reports

Build me an agent workflow that delivers a daily meeting prep brief to my Slack DMs every weekday at 7am US Eastern. The trigger should be a cron schedule.

When it runs, the agent should use Google Calendar's List Events to pull every event on my primary calendar for that day (from 00:00 to 23:59 in my timezone). Skip cancelled events and skip any event where every attendee email shares my own email domain, so internal-only meetings don't make it into the brief.

For each remaining meeting, identify the external attendees (anyone not on my domain). For each external attendee:

1. Use HubSpot's Search Contacts to find them by email. If they exist, grab their company and the associated deals, then use HubSpot's Search Deals to pull the most relevant open deal and report its stage, amount, and last activity date.

2. Use Gmail's List Messages with a from/to query for that email address to find the most recent thread, then use Gmail's Get a Message to read the latest message in that thread. Summarize the thread in one or two sentences. Do not paste the full email body.

Then compose a single Slack DM to me using Slack's Send a Message (open a conversation with myself first if needed). Format it as a scannable list of meetings in chronological order. For each meeting include: time, title, external attendee names with company, deal stage and amount when available, a one or two sentence summary of the most recent email thread, and a short "what to focus on" suggestion based on the deal stage and recent context.

If an attendee isn't found in HubSpot, still include the meeting and note that this looks like a net-new contact. If there's no recent email thread, say so instead of inventing context. Keep the whole DM under roughly 2,000 characters so it stays readable on mobile. If I have no external meetings that day, send a short DM saying so rather than skipping the run silently.

Additional information

What does this prompt do?
  • Runs every weekday at 7am ET on a cron trigger and pulls every event on your primary Google Calendar for the day.
  • Skips internal-only meetings where every attendee shares your email domain so the brief stays focused on customer and prospect calls.
  • Looks up each external attendee in HubSpot to surface deal stage, amount, and last activity date, and pulls the most recent Gmail thread with them for context.
  • Sends a single Slack DM to you in time order with attendee, company, deal context, a short email summary, and a one-line focus suggestion per meeting.
What do I need to use this?
  • A Google account connected with Calendar and Gmail read access on your primary inbox and calendar.
  • A HubSpot account with read access to Contacts and Deals.
  • A Slack workspace connected with permission to send yourself a direct message.
  • Your own email domain (so the agent can detect internal-only meetings and skip them).
How can I customize it?
  • Change the delivery time or move it to a different timezone, or add weekend runs if you take Saturday calls.
  • Tighten or loosen the external-attendee filter (skip events with no attendees, include 1:1s with your manager, etc.).
  • Swap HubSpot for Salesforce or Attio, or add a Notion page lookup so meeting notes get pulled in alongside deal data.
  • Adjust the brief format to a Slack channel post, a Gmail draft, or a long-form Notion page instead of a DM.

Frequently asked questions

What time does the brief get sent?
The default cron is every weekday at 7am US Eastern. You can change the time, timezone, or weekday filter when you set up the workflow.
How does it decide which meetings to include?
It pulls every event from your primary Google Calendar for the current day, then drops events where every attendee email shares your own domain. Everything with at least one external attendee gets a section in the brief.
What if an attendee isn't in HubSpot?
The agent notes that the contact wasn't found and still includes the meeting using the calendar invite details and the most recent Gmail thread, so you don't lose context on net-new prospects.
Will it dump full email bodies into Slack?
No. The agent summarizes the latest thread with each external attendee in one or two sentences so the DM stays scannable. You can ask it to link the thread instead if you'd rather click through.
Can I use Outlook or Salesforce instead?
This starter is wired for Google Calendar, Gmail, and HubSpot. You can swap any leg when the workflow author agent builds it, for example Outlook Calendar plus Salesforce, as long as the integrations are connected.

Walk into every meeting already briefed.

Connect Google Calendar, HubSpot, Gmail, and Slack once, and Geni delivers a ranked prep brief to your DMs every weekday morning.