Daily Slack DM with prep briefs for every Calendly meeting
Each weekday at 7am, get one Slack DM with a prep brief for every Calendly meeting on your calendar today, enriched with HubSpot deal and contact context.
Build me an agent workflow that runs every weekday at 7am America/New_York and sends me a single Slack DM with a prep brief for every external Calendly meeting on my calendar that day.
Trigger: cron, weekdays at 07:00 America/New_York.
Step 1 — Pull today's meetings. Use Calendly's List Scheduled Events for my user, filtered to events with min_start_time = today 00:00 in my timezone and max_start_time = today 23:59. Status = active. For each scheduled event, capture the start time, end time, event type name, location, and the event UUID.
Step 2 — Pull invitees. For each scheduled event, call Calendly's List Event Invitees and collect each invitee's email, name, timezone, and the questions_and_answers array (the intake form responses). If an invitee's email domain matches my company domain (I'll provide it as an input, e.g. acme.com), skip that meeting entirely — it's internal.
Step 3 — Enrich from HubSpot. For each remaining invitee email, call HubSpot's Get Contact with idProperty = email, requesting these properties: firstname, lastname, jobtitle, company, lifecyclestage, hs_lead_status, notes_last_contacted, hs_last_sales_activity_date, hubspot_owner_id. If Get Contact 404s, fall back to HubSpot's Search Contacts with a filter on email. Then call HubSpot's Search Deals with filters dealstage NOT IN closedwon/closedlost AND associations.contact = the contact id, requesting dealname, amount, dealstage, closedate, pipeline. If the contact isn't in HubSpot at all, mark the meeting as MISSING CRM CONTEXT.
Step 4 — Synthesize the brief. For each meeting, write a one-screen prep brief with: meeting time and event type; who's attending (name, title, company); CRM snapshot (lifecycle stage, last activity date, account owner); open deals (name, stage, amount, close date) or a note that there are none; the invitee's intake answers verbatim; three suggested talking points grounded in the CRM context and intake answers; and two open questions to ask. If the contact is missing in HubSpot, replace the CRM section with a clear 'No HubSpot record — enrich before the meeting' callout.
Step 5 — Deliver. Combine all briefs (sorted by meeting start time) into one Slack message and use Slack's Send a Message to DM it to me. Lead with a one-line header like 'Today's prep, 3 external meetings'. Use Slack mrkdwn formatting (bold names, bullet lists). If there are zero external meetings today, send a short DM confirming there's nothing to prep so I know the workflow ran.
Inputs to expose for me to configure: my company email domain (for the internal-meeting filter), my Slack user ID or DM target, and my timezone (default America/New_York). Use my connected Calendly, HubSpot, and Slack accounts.
Additional information
What does this prompt do?
- Pulls every Calendly meeting on your calendar for the day and the answers each invitee gave when they booked.
- Looks up each invitee in HubSpot and pulls lifecycle stage, job title, company, last activity, and any open deals.
- Writes a one-screen prep brief per meeting with who you are meeting, deal context, suggested talking points, and open questions.
- Sends the whole digest as a single Slack DM to you at 7am ET on weekdays so you start the day prepared.
- Skips internal meetings and flags any invitee missing CRM context so you know who to enrich.
What do I need to use this?
- A Calendly account that owns or hosts the meetings you want briefed.
- A HubSpot login with access to your contacts and deals.
- A Slack workspace where the agent can DM you.
- Your company email domain so internal meetings can be filtered out.
How can I customize it?
- Change the schedule from 7am ET weekdays to whenever your prep window starts, including weekends.
- Adjust which HubSpot properties get included, for example add account owner, renewal date, or custom ICP fields.
- Send the digest to a private channel instead of a DM, or fan out one message per meeting if you prefer.
- Tune the brief format, for example more talking points, a competitive note, or a recap of the last meeting.
Frequently asked questions
What if an invitee is not in HubSpot yet?
Will it brief internal meetings with my own team?
Can I get this in a private channel instead of a DM?
What if I have no external meetings that day?
Does this work with HubSpot Free?
Walk into every meeting already briefed.
Connect Calendly, HubSpot, and Slack once, and Geni delivers your prep brief by 7am every weekday.