Skip to content

On a schedule

Email yesterday's sequence replies and meetings

Each morning I get an email listing the Apollo sequence contacts who replied or booked a meeting the day before.

Runs
On a schedule
Apps
Apollo.io
AI
Not needed
Access
master key (read)

Send this to your assistant

Create a ClickRuntime automation: every day at 8am, email me the Apollo sequence contacts who replied or booked a meeting yesterday, grouped by sequence.

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

An SDR manager runs five Apollo sequences across a team of four. Replies land in individual inboxes, meetings are booked in calendars, and sequences finish quietly when contacts run out of steps. To know how yesterday went, the manager clicks through each sequence and each contact list, which takes half an hour that rarely happens. Replies sit unanswered and positive responses cool off.

On a schedule you set, ClickRuntime lists your Apollo sequences, then looks through their contacts for status changes to replied or finished since the last report. It emails one summary of yesterday's replies and meetings, grouped by sequence, so the morning starts with a list of people to respond to.

It also gives managers a daily view of outbound results without any spreadsheet work. A manager can also forward the same email to a VP who wants to see outbound results without joining a standup.

What you get out of it

  • Replies are answered while they are warm

    A prospect who writes back at 4 pm usually expects an answer the next morning. A report listing every new reply makes sure none are missed in a crowded inbox.

  • Sequences get judged on yesterday's facts

    Seeing replies and meetings per sequence shows which one earns responses and which one burns contacts without results, so you can pause weak sequences quickly. The decision is made on results from the last day, not on a gut feeling about which sequence feels strong.

  • Finished contacts get a second look

    Contacts who completed every step with no reply are a ready list for a different message. The report surfaces them instead of letting them disappear. Reps get a fresh angle to try, and the contact is not written off after one failed pass.

  • No daily click-through for managers

    The half hour once spent opening sequences becomes a two-minute read. That time returns to coaching reps on the replies that need judgment. Reps get better answers when the manager reads replies first.

  • Team standups use real numbers

    Instead of reps estimating how many meetings they booked, the room looks at the same list. Disagreements about what happened yesterday stop eating standup time. Discussion moves to what to do next.

  • Quiet days flag a broken setup

    A report showing no replies across all sequences after a normally busy week is often the first sign of a disconnected mailbox or a paused sequence. You find out the same day rather than at the end of the month.

How it works

What happens, step by step

  1. Every morning, ClickRuntime goes through your Apollo sequences.

  2. It finds the contacts who replied or booked a meeting the day before.

  3. You get one email grouped by sequence, listing each contact, their company and what they did.

Before it runs live

  • Connect Apollo.io

What you get

RunsOn a schedule
Email yesterday's sequence replies and meetingstoday, 9:00Succeeded
Email · Apollo replies and meetingsQ4 Ops leaders Priya Shah (Northwind Traders): Replied Sam Lee (Acme Logistics): Meeting booked

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
  • Add an AI step, for example to summarize, sort or draft a reply
  • Add another app, for example also send it to Slack
  • Combine it with other Apollo.io 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_sequence_activity_report.pyexample
from collections import defaultdict
from datetime import date, timedelta
from clickruntime import on_trigger, credentials, http, notify

API = "https://api.apollo.io/api/v1"

@on_trigger
def run(event):
    headers = {"X-Api-Key": credentials.secret("APOLLO_API_KEY"), "Cache-Control": "no-cache"}
    yesterday = str(date.today() - timedelta(days=1))
    campaigns = http.post(f"{API}/emailer_campaigns/search", headers=headers, json={"per_page": 100}).json()["emailer_campaigns"]
    groups = defaultdict(list)
    for camp in campaigns:
        contacts = http.post(f"{API}/contacts/search", headers=headers,
                             json={"emailer_campaign_ids": [camp["id"]], "per_page": 100}).json()["contacts"]
        for c in contacts:
            for s in c.get("contact_campaign_statuses", []):
                reason = s.get("inactive_reason") or ""
                if s["emailer_campaign_id"] == camp["id"] and (s.get("finished_at") or "")[:10] == yesterday \
                        and ("replied" in reason.lower() or "meeting" in reason.lower()):
                    groups[camp["name"]].append(f"  {c['name']} ({c.get('organization_name') or '-'}): {reason}")
    text = "\n".join(f"{name}\n" + "\n".join(rows) for name, rows in groups.items())
    notify.email_me(f"Apollo replies and meetings {yesterday}", text or "No replies or meetings yesterday.")
    return {"sequences": len(groups)}

FAQ

Common questions

What counts as a reply in this report?
Apollo marks a contact as replied when it detects an email response in a sequence, and as finished when the contact completes the last step. The report reflects those statuses, so out-of-office messages may count depending on how Apollo classifies them.
Can it cover only one rep's sequences?
Yes. The sequence list can be limited to sequences owned by a particular user or with a specific name. Many managers send each rep their own version so the email only lists the replies that rep needs to act on.
Will I get an email on weekends with nothing in it?
You can tell your AI assistant to skip empty days or weekends. By default the email shows zero counts, which is itself useful because a quiet day can point to a paused sequence or a disconnected mailbox.
What permissions does it need?
master key (read). Nothing else in your accounts is used.
Does it need AI?
No. It runs without AI, so it doesn't use your plan's 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 “Email yesterday's sequence replies and meetings” from your assistant

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