Skip to content

On a schedule

Get a morning summary of pipeline changes

Each weekday you get a short read on what moved in your pipeline yesterday, with totals by stage.

Runs
On a schedule
Apps
Salesforce
AI
Yes, uses the built-in AI allowance
Access
api (read)

Send this to your assistant

Create a ClickRuntime automation: every weekday at 8am, summarise the Salesforce opportunities that changed in the last 24 hours, with totals by stage and a few lines on what moved, and email it to me.

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 manager with eight reps and sixty open Salesforce opportunities cannot tell, from a standard pipeline report, what actually happened yesterday. The report shows today's totals by stage. It does not show that a $48,000 deal slid from Negotiation back to Proposal, or that two new opportunities landed under one rep. Finding out means building a filter on LastModifiedDate, exporting, and comparing by hand, so most managers skip it and learn about the slip in the Friday forecast call.

Each morning the automation queries Salesforce for every opportunity modified in the previous 24 hours, pulling stage, amount and owner. It totals the movement by stage, then uses ClickRuntime's built-in AI to write a short plain-language narrative of what changed, and emails it to you. It runs on the schedule you choose, and no OpenAI or Anthropic key is needed. It suits sales leaders and RevOps people who want the story behind the numbers before the first stand-up.

What you get out of it

  • Yesterday's movement without a report

    You see which opportunities advanced, slipped or closed, with amounts and owners, in one email. Nobody builds a LastModifiedDate filter or compares two exports, so the answer to what changed arrives before the first meeting.

  • Slipping deals spotted within a day

    A deal that moves backward a stage shows up the next morning with its amount. A manager can call the rep that day instead of discovering the slip at month-end when the quarter's forecast is already wrong.

  • Stage totals that match the narrative

    Totals by stage sit next to the written summary, so a claim like 'Proposal grew by three deals' can be checked at a glance. Leadership gets both the number and the explanation in the same message.

  • A dated trail of pipeline history

    Each digest stays in your inbox with its date. When someone asks in November why a deal was written off, you can search back to the day its stage changed and who owned it.

  • Quiet days are visible too

    A digest that reports almost no movement is itself a signal. Seeing several flat mornings in a row tells a manager that reps are not updating records or that deals are stuck, which a snapshot report would never reveal.

How it works

What happens, step by step

  1. Every weekday at 8 am in your time zone, ClickRuntime finds the Salesforce opportunities that changed in the last 24 hours.

  2. It adds up the amounts in each stage.

  3. AI writes a short summary of what moved, such as deals that advanced or pushed their close dates.

  4. The totals and summary are emailed to you.

Before it runs live

  • Connect Salesforce

What you get

RunsOn a schedule
Get a morning summary of pipeline changestoday, 9:00Succeeded
Email · Pipeline digest: 11 opportunities changedNegotiation: $96,000 · Proposal: $54,500 Northwind moved to Negotiation; two Acme deals pushed their close dates to November.

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 Salesforce 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_ai_pipeline_digest.pyexample
from collections import defaultdict
from clickruntime import on_trigger, credentials, http, ai, notify

API = "https://yourcompany.my.salesforce.com/services/data/v61.0"

@on_trigger
def run(event):
    opps = http.get(f"{API}/query", headers={"Authorization": f"Bearer {credentials.connection('salesforce', 'work')}"},
                    params={"q": "SELECT Name, StageName, Amount, CloseDate, Owner.Name FROM Opportunity "
                                 "WHERE LastModifiedDate = LAST_N_DAYS:1"}).json()["records"]
    totals = defaultdict(float)
    for o in opps:
        totals[o["StageName"]] += o["Amount"] or 0
    table = "\n".join(f"{stage}: ${amt:,.0f}" for stage, amt in sorted(totals.items()))
    lines = "\n".join(f"{o['Name']} | {o['StageName']} | {o['Amount']} | {o['Owner']['Name']}" for o in opps)
    narrative = ai.generate(lines[:8000], system="In 3-5 short lines, say what moved in this pipeline in the last day.",
                            max_output_tokens=250).text if opps else "No opportunities changed."
    notify.email_me(f"Pipeline digest: {len(opps)} opportunities changed", f"{table}\n\n{narrative}")
    return {"changed": len(opps)}

FAQ

Common questions

Which opportunities count as modified in the last 24 hours?
Any opportunity whose LastModifiedDate falls inside the window, which includes stage changes, amount edits, close-date moves and owner changes. A note added to a related record may not count. The query reads stage, amount and owner, so the narrative focuses on those fields.
Does the digest cover all reps or just my team?
It covers whatever the Salesforce user connected to ClickRuntime can see. If that user has access to every opportunity, the digest covers the whole company. To limit it to one team or region, the query can be narrowed by owner or role.
Can the summary be sent to more than one person on Mondays too?
Yes, the recipient list and schedule are part of the setup, so you can add a second manager or run it on weekends. On Mondays you may want a longer window, such as 72 hours, to include Friday through Sunday activity.
What permissions does it need?
api (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 pipeline changes” from your assistant

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