Log Hume EVI voice calls to HubSpot every morning

Every weekday at 7am, turn yesterday's Hume EVI voice conversations into call summary notes on the right HubSpot contact, with unmatched calls flagged in Slack.

Agentic Task
HumeHubSpotSlack BotSalesOperationsData SyncNotifications & AlertsAI Reports
PromptCreate

Build an agent workflow that syncs my Hume EVI voice qualification calls into HubSpot every weekday morning.

Trigger: cron. Run every weekday (Monday through Friday) at 7:00am in my local timezone. Hume is not a poll provider, so this must be a scheduled cron trigger, not a poll trigger.

On each run, the agent should:

1. Use Hume's "List Chats" operation to fetch EVI chats that ended in the last 24 hours. Page through results if needed and only keep chats whose end time falls inside that window.

2. For each chat, call Hume's "List Chat Events" operation to pull the full transcript, including the emotion features returned on user messages. Use the events to understand what the caller said, what the assistant said, and how the caller's emotional signals shifted during the conversation.

3. Write a concise call summary (roughly 4-8 sentences) that covers: what the caller was asking about, the sentiment arc you can see in the Hume emotion features (for example "started frustrated, ended interested"), any objections or questions raised, and the concrete next step. The emotion signals are Hume's differentiator versus a plain transcript, so make sure the summary explicitly references them.

4. Pull the caller's phone number and email from the chat metadata (Hume exposes these on the chat and its events when the EVI config collects them). Use HubSpot's "Search Contacts" operation to find a matching contact, searching by phone first and falling back to email. Treat a match as a single unambiguous contact; if multiple contacts match, use the most recently updated one and note that in the summary.

5. When a contact is matched, use HubSpot's "Create Note" operation to attach the call summary as a note on that contact. Include the chat's start time, approximate duration, and a link back to the Hume chat in the note body so it's easy to jump to the raw transcript. Associate the note with the contact via the associations field.

6. When no HubSpot contact matches the phone number or email (or when the chat had no phone or email at all), skip the HubSpot write. Instead, use Slack Bot's "Send a Message" operation to post to a dedicated channel (let me pick the channel during setup, default suggestion: #hume-unmatched-calls). The Slack message should include the caller's phone/email if known, the chat's start time, and a one-line summary so I can decide whether to create a new HubSpot contact by hand.

Other behavior:

- If a chat has already been written to HubSpot on a previous run (for example if I rerun the workflow manually), don't create a duplicate note. The simplest heuristic is to check the contact's recent notes for one whose body already references the Hume chat id.

- If "List Chats" returns nothing for the last 24 hours, exit quietly without posting anything to Slack.

- Log a brief run summary at the end: how many chats were processed, how many were written to HubSpot, and how many were posted to Slack as unmatched.

What does this prompt do?

  • Pulls every Hume EVI voice conversation that ended in the last 24 hours and reads the full transcript.
  • Writes a short call summary for each one covering what the caller asked about, how their mood shifted during the conversation, and the concrete next step.
  • Matches each call to a HubSpot contact by phone number or email and attaches the summary as a note on that contact's timeline.
  • Posts any unmatched calls to a Slack channel so you can decide whether to create a new contact by hand.

What do I need to use this?

  • A Hume account with EVI configured as your voice qualification agent.
  • A HubSpot login with permission to view contacts and create notes.
  • A Slack workspace and a channel where unmatched calls can be reviewed.

How can I customize it?

  • Change the schedule, run it hourly instead of once a day, or add weekends.
  • Adjust what the summary highlights, for example focus on objections, pricing signals, or product interest.
  • Point the unmatched call alerts at a different Slack channel or a specific teammate.

FAQs

What does the note on the HubSpot contact actually look like?
A short recap of what the caller asked about, the mood shifts picked up from the voice conversation, and the recommended next step. It lands as a note on the contact so it shows up in the timeline alongside emails and meetings.
How does it know which HubSpot contact each call belongs to?
It matches on the phone number or email captured during the Hume conversation. If neither matches an existing contact, the call is flagged in Slack instead of guessing.
What happens to calls with no matching HubSpot contact?
They get posted to a Slack channel you choose, with the caller's phone or email and a short summary, so you can decide whether to create a new contact manually.
Will it double log the same call if I rerun it?
The workflow only looks at conversations from the previous 24 hours on each run, so on its normal daily schedule each call is written to HubSpot once.
Can I run this more often than once a day?
Yes. You can change the schedule to hourly or a few times a day if you want notes to appear sooner after each call.

Related templates

A brand asset library your marketing team actually searches

Every logo, photo, video cut and ad export in one searchable grid, with previews, campaign tags and rights expiry dates at a glance.

General Input Storage
General Input Database
JigsawStack
+1
App
Turn Mailjet email clicks into ranked HubSpot follow-ups

Twice a day we spot the people clicking your pricing and demo pages, create a follow-up task for their owner, and post a ranked recap to Slack.

Mailjet
HubSpot
Slack Bot
Agentic Task
Clean out the Looker dashboards and Looks nobody opens

One board showing every dashboard and Look with its folder, owner and favorite count, so you can find dead content and retire it safely.

Looker
Slack Bot
App
LiveKit live operations console for room moderation

Watch every live room on one screen, remove disruptive guests, start recordings and end stuck sessions without anyone opening a terminal.

LiveKit
Slack Bot
General Input Database
App
Wake up dormant Keap leads with a researched reason

Every Monday we find leads who never bought, research a real reason to reach out, and send a short personal email instead of another check in.

Keap
Slack Bot
Agentic Task
iMessage campaign console with pre-flight checks and delivery board

Build every text campaign in one screen: check who is actually reachable, see a realistic send plan, then watch delivery land row by row.

LoopMessage
Google Sheets
HubSpot
App

Stop retyping voice calls into HubSpot.

Connect Hume, HubSpot, and Slack once, and every morning your team walks in to a clean set of call notes on the right contacts.