Log tl;dv calls to HubSpot deals and ping Slack

When tl;dv finishes a customer call, attach a clean recap to the right HubSpot deal and post a TL;DR to your sales Slack channel.

Agentic Task
tl;dvHubSpotSlackSalesOperationsMeeting WorkflowsLead EnrichmentNotifications & Alerts

Build me an agent workflow that runs every time tl;dv finishes a new meeting note. The trigger is a poll trigger on tl;dv with the new_note event type.

When the trigger fires, the agent should:

1. Fetch the meeting metadata from tl;dv using Get Meeting (organizer, invitees, duration, template, and the recording URL) and the structured summary using Get Meeting Notes (topics + markdown summary, decisions, action items).

2. Determine which attendees are external. Treat anyone whose email domain matches the organizer's domain (or any of a configurable list of internal domains) as internal. If there are zero external attendees, stop and do nothing. Internal-only meetings should be silently skipped.

3. For each external attendee, run HubSpot Search Contacts by email to find the matching contact. Collect matches and unmatched emails into two lists.

4. For the matched contacts, run HubSpot Search Deals to find an open deal associated with at least one of those contacts. Prefer deals in non-closed stages; if multiple open deals match, pick the most recently updated one and remember that we made a choice so we can note it in Slack.

5. Build a clean recap in markdown that contains: a one-paragraph summary of the call, the key decisions, the action items (with owners if tl;dv captured them), and a link back to the tl;dv recording. Attach this recap to the chosen deal and to the matched contact(s) using HubSpot Create Note, with associations to the deal and contact records.

6. Post a short TL;DR to a configured Slack channel using Slack Send a Message. The TL;DR should include: customer / deal name, deal stage and amount, two or three sentence recap, top action items, and a link to the deal in HubSpot plus the tl;dv recording. If the deal amount is above a configurable threshold (default $25,000), prefix the message with a high-value flag (for example a ⭐ emoji and the word HIGH-VALUE). If any external attendees did not match a HubSpot contact, list them at the bottom of the Slack message under 'CRM hygiene' so a rep can fix it.

Edge cases the agent should handle gracefully:

- No matched contacts at all: still post the Slack TL;DR with the recap and a 'no HubSpot match yet' note, and don't create a HubSpot note.

- Matched contacts but no open deal: post the Slack TL;DR and attach the recap to the contact(s) only, not to a deal.

- tl;dv notes are still empty (sometimes the AI summary takes a moment): retry once, then fall back to using the meeting metadata only.

Configurable inputs the agent should expose: the Slack channel to post in, the high-value deal threshold, the list of internal email domains, and an optional toggle to also attach the recap to the matched company record.

Additional information

What does this prompt do?
  • Watches tl;dv for new AI meeting notes and skips purely internal calls automatically.
  • Matches external attendees to HubSpot contacts and finds the open deal each call belongs to.
  • Attaches a tidy recap to the deal, including summary, decisions, action items, and a link back to the recording.
  • Posts a short TL;DR in Slack and flags any high-value deals or attendees that aren't in HubSpot yet.
What do I need to use this?
  • A tl;dv account that is already recording your meetings.
  • A HubSpot login with access to contacts and deals.
  • A Slack workspace and the channel you want recaps posted in.
How can I customize it?
  • Change which Slack channel the recap goes to, or split internal and external recaps into two channels.
  • Adjust the deal-value threshold that triggers the high-value flag in the Slack message.
  • Tweak the recap format, for example to always lead with action items or include the customer's name in the headline.

Frequently asked questions

What if the meeting only had internal teammates on it?
The agent checks attendee email domains and skips the call if there are no external attendees, so internal syncs and 1:1s won't clutter HubSpot or Slack.
What happens if an attendee isn't in HubSpot yet?
The agent calls that out in the Slack TL;DR so a rep can decide whether to add the contact, instead of silently dropping the call.
Which deal does the recap get attached to?
It looks for an open deal associated with the matched contact. If a contact has multiple open deals, the agent picks the most recently active one and notes the choice in Slack.
Will this work with HubSpot's free CRM?
Yes. Contacts, deals, and notes are all available on HubSpot's free tier, so any HubSpot plan that has deals enabled will work.
Can I change the format of the recap on the deal?
Yes. The recap is generated from the tl;dv summary, decisions, and action items, and you can reword the prompt to match your team's preferred note style.

Stop copy-pasting meeting notes into HubSpot.

Connect tl;dv, HubSpot, and Slack once, and Geni logs every customer call to the right deal and tells the team in Slack.