Skip to content

On a schedule

Get a morning summary of yesterday's deals

Each morning you see which deals were created or changed, grouped by stage with totals.

Runs
On a schedule
Apps
HubSpot
AI
Yes, uses the built-in AI allowance
Access
crm.objects.deals.read

Send this to your assistant

Create a ClickRuntime automation: every weekday at 8am, email me the HubSpot deals created or changed yesterday, grouped by stage with the total amount for each stage.

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 sales leader who wants to know what moved in the pipeline yesterday has to open HubSpot, filter deals by last modified date, group them by stage and add up amounts, and only then can the morning discussion begin. Most days nobody does it, and the weekly pipeline review becomes the first time anyone sees that three $20,000 deals slipped to the next quarter. Small movements add up to big surprises when nobody sees them daily.

Each morning, deals created or updated in the last 24 hours are found using hs_lastmodifieddate, grouped by stage and totaled by amount. The built-in AI can add a short written summary of the main movements, and the whole thing is emailed to you.

It suits sales leaders, founders and revenue operations people who want a daily pulse without opening the CRM.

What you get out of it

  • The day starts with the same facts

    Everyone reads the same summary, so stand-ups begin with what moved instead of a debate about what the numbers are. That shared starting point makes meetings shorter and decisions faster.

  • Slipping deals surface earlier

    A large deal that changed stage or close date shows up the next morning, not at the end of the month, which leaves time to intervene. Catching a slip early often means a rescue call is still possible.

  • Pipeline value by stage at a glance

    Totals per stage show where money is gathering and where it is draining out, which is hard to see by scanning a board. Spotting a bottleneck by stage is hard on a board but obvious in a grouped list.

  • Fewer CRM logins for busy leaders

    Executives who rarely sign in to HubSpot still stay informed, which reduces requests for ad hoc reports from the sales team. Leaders get what they need without learning HubSpot filters, and reps are interrupted less often.

  • A written narrative saves reading time

    An AI-written summary turns a table into two or three sentences about what changed, which is what people actually want to know. A short narrative makes the email something people actually read in the minute they have.

How it works

What happens, step by step

  1. Every morning at 8, the automation finds the HubSpot deals created or changed in the last 24 hours.

  2. It groups them by stage and adds up the amount in each stage.

  3. If you want, AI adds a short written summary of what moved.

  4. The summary is emailed to you, listing each deal under its stage with the totals.

Before it runs live

  • Connect HubSpot

What you get

RunsOn a schedule
Get a morning summary of yesterday's dealstoday, 9:00Succeeded
Email · Deals changed yesterday: 9contractsent · 3 deals · $48,500 - Northwind – Enterprise ($30,000)

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

  • Run it at a different time, more or less often, or only on weekdays
  • 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 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.
daily_deals_summary_email.pyexample
import time
from collections import defaultdict
from clickruntime import on_trigger, credentials, http, notify

@on_trigger
def run(event):
    headers = {"Authorization": f"Bearer {credentials.connection('hubspot', 'work')}"}
    since = int((time.time() - 86400) * 1000)
    deals = http.post("https://api.hubapi.com/crm/v3/objects/deals/search", headers=headers, json={
        "limit": 100, "properties": ["dealname", "dealstage", "amount"],
        "filterGroups": [{"filters": [{"propertyName": "hs_lastmodifieddate", "operator": "GTE", "value": since}]}]}).json()["results"]
    by_stage = defaultdict(list)
    for d in deals:
        by_stage[d["properties"]["dealstage"]].append(d["properties"])
    parts = []
    for stage, items in by_stage.items():
        total = sum(float(p.get("amount") or 0) for p in items)
        parts.append(f"{stage} · {len(items)} deals · ${total:,.0f}\n" +
                     "\n".join(f"  - {p['dealname']} (${float(p.get('amount') or 0):,.0f})" for p in items))
    notify.email_me(f"Deals changed yesterday: {len(deals)}", "\n\n".join(parts) or "No deals changed.")
    return {"deals": len(deals)}

FAQ

Common questions

What counts as an updated deal?
Any deal whose last modified date falls within the previous 24 hours, including property edits, stage changes and amount changes. Deals with no activity are left out. Quiet days produce short emails. Only deals that changed make the cut.
Does the AI summary replace the table?
No. The table of deals by stage is always included, and the written summary is an optional addition above it. You can turn the summary off if you prefer the numbers alone. Turning the narrative off is simple.
Can I limit it to one pipeline or team?
Yes. A filter by pipeline, owner or team keeps the email focused, such as only the enterprise pipeline. Say which one you want and approve the updated version before it runs. Filtering is a small, specific edit.
What permissions does it need?
crm.objects.deals.read. 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 each time it runs (on a schedule). Checks that find nothing to do and stop right away aren't counted.
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 a morning summary of yesterday's deals” from your assistant

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