# Turn every Retell AI call into a HubSpot update and Slack briefing

> When a Retell AI call finishes and analysis is ready, update the matching HubSpot contact and post a full briefing to Slack.

- Workflow type: agent
- Services: Retell AI, HubSpot, Slack
- Categories: Sales, Operations
- Published: 2026-07-08

## What it does

- Kicks off automatically the moment Retell AI finishes analyzing a call, so briefings land while the conversation is still fresh.
- Pulls the transcript, recording link, summary, and sentiment from the call and writes them onto the matching HubSpot contact.
- Attaches the full transcript and recording to the contact record as a HubSpot note so nothing is lost.
- Sends a formatted Slack briefing to your sales channel with contact name, sentiment, key points, blockers, and the recommended next step.
- Skips very short calls like voicemails and mis-dials so your channel stays signal, not noise.

## What you'll need

- A Retell AI account with a workspace you can create an API key in.
- A HubSpot account with permission to search and update contacts and create notes.
- A Slack workspace and the channel or person you want briefings sent to.

## Prompt

Build an agent workflow that runs every time a Retell AI voice call finishes and its post-call analysis is ready. The trigger is a Retell AI webhook subscribed to the call_analyzed event, so the workflow fires the moment Retell has produced the transcript, summary, sentiment, and any custom analysis fields.

When the webhook fires, use Retell AI's Get Call operation with the call_id from the event to pull the full call details: transcript, recording URL, summary, user sentiment, call successful flag, call duration, from_number, to_number, agent name, and any custom analysis data fields configured on the agent.

First guard: if the call duration is under 30 seconds, stop the workflow with a short log line like "skipped short call (voicemail or mis-dial)" and do nothing else. This keeps voicemails and hang-ups out of Slack and out of the CRM.

Otherwise, take the caller's phone number (the from_number for inbound calls, the to_number for outbound calls) and use HubSpot's Search Contacts operation to find the matching contact by phone or mobilephone property. Normalize the number to E.164 before searching. If multiple contacts match, pick the most recently updated one.

If a HubSpot contact is found, use HubSpot's Update Contact operation to write the call summary, sentiment, disposition, and recommended next step onto the contact using appropriate custom properties (for example last_call_summary, last_call_sentiment, last_call_disposition, next_step, last_call_at). Then use HubSpot's Create Note operation to create a note associated with that contact containing the full transcript and the recording URL, so the entire history stays on the contact record.

Then use Slack's Send a Message operation to post a formatted briefing to the sales channel (make the channel configurable, default #sales). The Slack message should include: contact name and company (if found), sentiment score, a two to four bullet key points list, any blockers or objections raised, the recommended next step, the recording URL, and a link to the HubSpot contact. If a contact owner is set on the HubSpot record and they have a Slack account, also send the same briefing as a direct message to that owner.

If no matching HubSpot contact is found, skip the HubSpot update and note steps but still send the Slack briefing. In that case, label the message clearly as an unassigned call and include the phone number, agent name, sentiment, summary, key points, and recording URL so a rep can decide whether to create the contact.

Make the following user-facing settings configurable at workflow setup: the Slack channel for briefings, whether to also DM the contact owner, and the minimum call duration in seconds (default 30).

## How to customize

- Change the Slack destination to a specific deals channel, a per-team channel, or a direct message to the contact owner.
- Adjust the minimum call length so you filter out voicemails or short callbacks that do not need a briefing.
- Tweak which HubSpot properties get updated (sentiment, disposition, next step, lifecycle stage) to match your pipeline.

## FAQ

### When does this run?

It runs the moment Retell AI finishes analyzing a call. Retell sends a signal to your workflow as soon as the transcript and summary are ready, so briefings usually arrive within seconds of the call ending.

### What happens if the caller is not in HubSpot yet?

The workflow still posts the Slack briefing and flags the call as unassigned so a rep can decide whether to create the contact, log the outreach, or ignore it.

### Will voicemails and mis-dials flood my Slack channel?

No. Calls under thirty seconds are skipped by default. You can raise or lower that threshold to match how your team handles short calls.

### Can I send the briefing to the specific rep who owns the contact instead of a shared channel?

Yes. You can route the message to the contact owner as a direct message, keep it in a shared sales channel, or do both.

### Does the transcript get saved on the contact record?

Yes. The full transcript and a link to the call recording are attached to the HubSpot contact as a note, so anyone opening the record later has the complete history.

Use this prompt in General Input: https://www.generalinput.com/prompts/turn-every-retell-ai-call-into-a-hubspot-update-and-slack-briefing