Skip to content

Collects as they arrive, acts daily

Get one end-of-day round-up of new contacts

At 5pm Slack gets a single message with the day's new contacts, grouped by list.

Runs
Collects as they arrive, acts daily
Apps
ActiveCampaign
AI
Not needed
Access
API key

Send this to your assistant

Create a ClickRuntime automation: collect every new ActiveCampaign contact today and at 5pm post one summary to #marketing in Slack, grouped by list.

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

Marketing teams that run sign-up forms, webinars and list imports into ActiveCampaign can add hundreds of contacts a week. Posting each one to a Slack channel seems helpful for the first few days. Then the channel turns into a stream of names that everyone mutes, and the one question the team cares about, which source brought in people today, is never answered.

This collects each new contact as ActiveCampaign reports it and holds it until 17:00. At that time it groups the contacts by list or source and posts a single message with counts and the newest names under each group. After posting, the collected contacts are cleared so tomorrow starts from zero.

It works well for growth leads who want a quick end-of-day picture, and for sales teams who only need to know whether a campaign produced leads, not to read each address.

What you get out of it

  • One message replaces dozens of pings

    The Slack channel stays readable. People actually open the daily post because it is short and arrives once, rather than learning to ignore a constant flow of single-contact alerts. Over a month that adds up to a lot of saved attention.

  • Sources are compared the same day

    Seeing that a webinar list added 40 contacts while the pricing-page form added two tells you where to look. You can react to a weak day while the campaign is still running, not at month end.

  • Broken forms show up quickly

    If a form that normally brings in contacts shows nothing for a day, the missing group is noticeable in the summary. That catches a broken embed or a disconnected integration before leads are lost for a week.

  • Sales follows up on real volume

    Reps see how many fresh contacts landed per list and can plan outreach time. They are not interrupted mid-call by every new sign-up, but they still know what is waiting.

  • A lightweight daily record

    Each post doubles as a dated log of acquisition by source. When someone asks what happened in the second week of the campaign, you can scroll the channel instead of rebuilding it from exports.

How it works

What happens, step by step

  1. Each time a contact is added in ActiveCampaign, ClickRuntime notes their email and the list they joined.

  2. At 5pm it groups the day's contacts by list and counts them.

  3. One message goes to your #marketing Slack channel with the day's total and the count for each list.

  4. It then clears the list, so tomorrow starts fresh. On a day with no new contacts, nothing is posted.

Before it runs live

  • Connect ActiveCampaign
  • Paste your automation's link into the other app's webhook settings

What you get

RunsCollects as they arrive, acts daily
Get one end-of-day round-up of new contactstoday, 9:00Succeeded
Slack · #marketing27 new contacts today • Newsletter: 19 • Webinar: 8

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
  • 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 ActiveCampaign 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_new_contacts_summary.pyexample
from collections import Counter
from clickruntime import on_event, on_trigger, state, notify

@on_event
def collect(event):
    f = event.json
    contacts = state.get("today") or []
    contacts.append({"email": f.get("contact[email]"), "list": f.get("list") or "No list"})
    state.set("today", contacts)
    return {"stored": len(contacts)}

@on_trigger
def summarise(event):
    contacts = state.get("today") or []
    if not contacts:
        return {"posted": False}
    counts = Counter(c["list"] for c in contacts)
    notify.slack(f"{len(contacts)} new contacts today\n" +
                 "\n".join(f"• {l}: {n}" for l, n in counts.most_common()), channel="#marketing")
    state.delete("today")
    return {"posted": len(contacts)}

FAQ

Common questions

Does a contact in two lists count twice?
The summary groups by the list or source reported with each contact event, so a contact that joins two lists in the same day can appear under both. The total new-contact count is based on distinct events received, not on a recount of the account.
What time zone is the 17:00 post?
The schedule runs at the time you set in the automation, in the time zone configured for your ClickRuntime workspace. If your team works across regions, pick the time that suits the people reading the channel.
Will it post on days with no new contacts?
You can choose either behavior. Skipping empty days keeps the channel quiet, while posting a short zero-contacts message acts as a health check that confirms forms are still connected. Many teams pick the health-check version for their busiest form.
What permissions does it need?
API key. 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 checks. Checks that find nothing new 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 one end-of-day round-up of new contacts” from your assistant

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