Skip to content

The moment it happens

Get call summaries in HubSpot and on WhatsApp

After every sales call, a short summary with next steps is saved on the HubSpot contact and sent to the rep on WhatsApp.

Runs
The moment it happens
Apps
HubSpot, WhatsApp Business
AI
Yes, uses the built-in AI allowance
Access
crm.objects.contacts.read/write, notes write; whatsapp_business_messaging

Send this to your assistant

Create a ClickRuntime automation: when my call recorder sends a transcript, summarise it with next steps, add it as a note on the HubSpot contact, and WhatsApp the summary to the rep who took the call.

Paste it into your assistant. It tells you what it will send or change before it runs live.

First time? Adding ClickRuntime to your assistant takes about two minutes.

Why use it

Why teams use this automation

A field sales team spends most of the day on the phone or in the car. After each call the rep is meant to write up what was said in HubSpot, but between back-to-back calls it rarely happens, and when it does it's three words long. A week later nobody remembers that the customer asked for a revised quote or mentioned a competitor.

Your call recorder already produces a transcript. This automation turns it into a short summary with next steps, files it on the right HubSpot contact, and sends it to the rep on WhatsApp so they can check it between calls without opening a laptop.

What you get out of it

  • Every call is written up

    The note is created whether or not the rep has time, so the contact's history in HubSpot is complete for anyone who picks up the account.

  • Next steps are clear

    The summary ends with up to three actions, so promises made on the call, like sending pricing or booking a demo, don't get lost.

  • Reps see it on their phone

    The summary arrives on WhatsApp moments after the call ends, ready to check or forward while it's still fresh.

  • Managers can coach from real calls

    Short summaries on every contact make it easy to see how calls are going without listening to recordings.

How it works

What happens, step by step

  1. Your call tool sends the transcript to the automation's link as soon as the call ends.

  2. AI reads the transcript and writes a three-point summary with the next steps.

  3. The summary is saved as a note on the matching contact in HubSpot.

  4. The rep who took the call gets the same summary on WhatsApp.

Before it runs live

  • Connect HubSpot
  • Connect WhatsApp Business
  • Paste your automation's link into the other app's webhook settings

What you get

RunsThe moment it happens
Get call summaries in HubSpot and on WhatsAppjust nowSucceeded
WhatsApp · Rep summaryCall with alex.morgan@contoso.example: wants 25 seats from March, comparing two vendors, worried about onboarding time. Next steps: send revised quote by Friday, book onboarding demo.

Build your own

Need it to work differently?

This template is a starting point. Copy the prompt and change it, or describe a different automation from scratch, with your own conditions, more apps or an AI step. Your assistant writes it, tests it and runs it on ClickRuntime.
  • Your own rules

    Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.

  • Any number of apps

    One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.

  • AI where it helps

    Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.

  • On a schedule or on each event

    Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.

Changes you can ask for

  • Act only on the items that match your own rules, and skip the rest
  • Change what the AI looks for, or how it writes the result
  • Add another app, for example also send it to Slack
  • Combine it with other HubSpot and WhatsApp Business steps into one automation

Under the hood

The code that runs this automation

This is the Python script that runs each time the automation starts. Your AI assistant writes it for you when you send the prompt, and you allow each step in your assistant. To change how the automation works, describe the change to your assistant and it updates the script for you. For every function it can use, see the script reference.
summarise_call_transcripts_into_hubspot_and_whatsapp.pyexample
from datetime import datetime, timezone
from clickruntime import on_event, credentials, http, ai

API = "https://api.hubapi.com/crm/v3/objects"
PHONE_NUMBER_ID = "123456789012345"
WA = f"https://graph.facebook.com/v21.0/{PHONE_NUMBER_ID}/messages"
REPS = {"sam.carter@northwind.example": "447700900123"}  # rep email -> WhatsApp number

@on_event
def handle(event):
    call = event.json or {}
    headers = {"Authorization": f"Bearer {credentials.connection('hubspot', 'work')}"}
    found = http.post(f"{API}/contacts/search", headers=headers, json={"filterGroups": [{"filters": [
        {"propertyName": "email", "operator": "EQ", "value": call["contact_email"]}]}]}).json()["results"]
    summary = ai.generate(call["transcript"][:12000], max_output_tokens=300,
                          system="Summarise this sales call in 3 short bullets, then 'Next steps:' with up to 3 actions.").text
    if found:
        http.post(f"{API}/notes", headers=headers, json={
            "properties": {"hs_note_body": summary, "hs_timestamp": datetime.now(timezone.utc).isoformat()},
            "associations": [{"to": {"id": found[0]["id"]}, "types": [
                {"associationCategory": "HUBSPOT_DEFINED", "associationTypeId": 202}]}]}).raise_for_status()
    rep = REPS.get(call.get("rep_email"))
    if rep:
        flat = " ".join(summary.split())[:900]  # template values can't contain line breaks
        http.post(WA, headers={"Authorization": f"Bearer {credentials.secret('WHATSAPP_TOKEN')}"}, json={
            "messaging_product": "whatsapp", "to": rep, "type": "template", "template": {
                "name": "call_summary", "language": {"code": "en"}, "components": [{"type": "body", "parameters": [
                    {"type": "text", "text": call["contact_email"]}, {"type": "text", "text": flat}]}]}}).raise_for_status()
    return {"noted": bool(found), "sent_to_rep": bool(rep)}

FAQ

Common questions

Which call tools does it work with?
Any tool that can send a transcript to a link when a call ends, along with the contact's email and the rep's email. Most call recorders and dialers can do this with a webhook.
What if the contact isn't in HubSpot?
The summary is still sent to the rep on WhatsApp, but no note is created. You can ask for a version that creates the contact first.
Why does the WhatsApp message use a template?
WhatsApp only lets a business start a conversation with an approved template. You create a short template with two placeholders, the contact and the summary, and get it approved in Meta's WhatsApp Manager.
What permissions does it need?
crm.objects.contacts.read/write, notes write; whatsapp_business_messaging. Nothing else in your accounts is used.
Does it need AI?
Yes. It uses ClickRuntime's built-in AI, so you don't need an OpenAI or Anthropic key. Every plan includes a monthly AI allowance.
How many runs does it use?
One run for each event the app sends.
Can I change how it works?
Yes. Describe the change to your AI assistant, for example a different schedule, channel or filter. It updates the automation, tests it and tells you what changed.

Set up “Get call summaries in HubSpot and on WhatsApp” from your assistant

Copy the prompt above, or connect your assistant first. Free plan, no credit card.