Log every external Google Calendar meeting in HubSpot automatically

When a new external meeting hits your Google Calendar, Geni files a HubSpot note on the contact and deal, then posts a Slack confirmation to the deal owner.

Agentic Task
Google CalendarHubSpotSlackSalesOperationsData SyncMeeting WorkflowsNotifications & Alerts
PromptCreate

Build me an agent workflow that keeps HubSpot up to date with every external sales meeting on my Google Calendar, with no manual logging.

Trigger: Google Calendar, poll trigger, event type new_event on my primary calendar. Ask me for my own company email domain on first run so the agent knows what counts as internal versus external.

When a new event fires, inspect the attendee list. If every attendee email shares my own company domain, ignore the event and stop. This keeps internal standups and 1:1s out of the CRM.

Otherwise, for each external attendee on the event, run HubSpot Search Contacts filtered by email. If a contact exists, use that contact. If no contact exists, call HubSpot Create Contact first, parsing first name, last name, and email from the calendar attendee, then continue with the new contact.

For the matched or newly created contact, also run HubSpot Search Deals scoped to the contact's associated company, sorted by most recently updated, to find the active deal if there is one.

Then call HubSpot Create Note associated with the contact (and the deal if one was found) with a body that contains a Meeting scheduled header, the meeting title, the start time in the calendar's time zone, the organizer email, the attendee list, and the agenda copied from the event description. Keep the note short and scannable.

Finally, post a Slack Send a Message confirmation to the deal owner. Resolve the owner from the HubSpot deal record (fall back to the contact owner if there is no deal). Use a per-owner channel if one is configured, otherwise DM the owner. The message should summarize what was logged in one or two sentences, name the contact and company, and link to the HubSpot note so the rep can jump in.

Be defensive: skip attendees with obviously invalid emails, do not create duplicate contacts within a single run, and if the HubSpot or Slack call fails, log the error and continue with the remaining attendees rather than aborting the whole event.

What does this prompt do?

  • Watches your Google Calendar for new events and ignores any meeting where every attendee shares your own email domain.
  • For each external attendee, looks them up in HubSpot by email and creates the contact if they do not exist yet.
  • Files a Create Note on the contact (and any associated deal found via Search Deals) capturing meeting title, time, organizer, agenda from the event description, and a Meeting scheduled header.
  • Posts a short Slack confirmation to the deal owner so reps can see exactly what was logged without opening HubSpot.

What do I need to use this?

  • A Google Calendar account connected to General Input with read access to the calendar that holds your sales meetings.
  • A HubSpot account with permission to read contacts and deals and to write contacts and notes.
  • A Slack workspace connected with permission to send messages on the deal owner channel.
  • Your own company email domain so the agent knows which attendees count as external.

How can I customize it?

  • Swap the Slack target from a per-owner channel to a shared #sales-activity channel if leadership wants one feed.
  • Tighten or widen the external filter, for example treat partner domains as internal so partner syncs do not pollute the CRM.
  • Change the note body template, add fields like meeting link, location, or a one-line AI summary of the agenda.

FAQs

How does the agent decide whether a meeting is external?
It compares every attendee email domain against your own company domain. If at least one attendee is on a different domain the meeting is treated as external and logged. If everyone is on your domain, for example an internal standup, the agent skips it.
What happens if the attendee does not exist in HubSpot yet?
The agent calls HubSpot Create Contact first, parsing first and last name and email from the calendar attendee, then attaches the meeting note to the new contact. No external prospect ever falls through the cracks.
Does it associate the note with the deal too?
Yes. After it has the contact, the agent runs Search Deals scoped to the contact's company so the note shows up on the active deal timeline, not just the contact record.
Will it log the same meeting twice if the event gets edited?
No. The Google Calendar new_event poll trigger only fires for newly created events, so reschedules and updates do not create duplicate HubSpot notes.
Can I route the Slack confirmation somewhere other than the deal owner?
Yes. The agent reads the deal owner from HubSpot to pick a channel, but you can edit the prompt to send to a fixed channel, a manager DM, or any other Slack destination.

Related templates

Auto-fix your calendar when a flight slips, and flag what's at risk

When your flight moves, your calendar times get corrected automatically and you get a Slack note naming the meetings you're about to miss.

Google Calendar
AviationStack
Slack
Agentic Task
Trace phishing emails to the sending IP and report abuse

Every 15 minutes, forwarded phishing reports get traced back to the server that really sent them, with a verdict in Slack and the worst senders reported.

AbuseIPDB
Gmail
Slack
Agentic Task
Log Agorapulse social conversations to HubSpot contacts

Twice every weekday, the conversations from your social inbox land on the right HubSpot contact timelines, with a Slack recap for sales.

Agorapulse
HubSpot
Slack Bot
Agentic Task
Turn procurement portal tenders into CRM deals each morning

Every weekday at 7am, sign in to the tender portals you track, filter new notices against your bid criteria, and open a deal for the ones worth chasing.

Anchor Browser
Google Sheets
HubSpot
+1
Agentic Task
Clean up HubSpot contacts from your Amazon SES suppression list

Every morning, find the addresses that hard bounced or filed a spam complaint, update the matching HubSpot contacts, and post a short Slack recap.

Amazon SES
HubSpot
Slack Bot
Agentic Task
Provision customer entitlements in DynamoDB when a deal is won

When a HubSpot deal hits Closed Won, the customer's plan, seats and renewal dates land in your DynamoDB accounts table, with a Slack note showing what changed.

HubSpot
Amazon DynamoDB
Slack Bot
Agentic Task

Stop letting external meetings disappear from your CRM.

Connect Google Calendar, HubSpot, and Slack once, and Geni logs every external sales meeting the moment it lands on your calendar.