Skip to content

Hourly

Tell the team when a campaign goes out

Within the hour, Slack shows the name and audience of every campaign Klaviyo sent.

Runs
Hourly
Apps
Klaviyo
AI
Not needed
Access
read (campaigns)

Send this to your assistant

Create a ClickRuntime automation: every hour, check for Klaviyo campaigns sent since the last check and post each name and audience to #marketing in Slack.

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

In a company where marketing, support and sales all talk to the same customers, the worst way to learn about an email campaign is from an angry reply. Support gets tickets about a discount that the team did not know existed, sales hears prospects mention an announcement, and nobody can tell whether the campaign that was meant to go Tuesday went out Monday night.

Every hour, ClickRuntime asks Klaviyo for campaigns whose status is Sent since the previous check and posts each one to Slack, with its name and the time it went out. The team gets a simple broadcast that a send has happened, without anyone from marketing having to remember to announce it.

It is particularly useful when several people can schedule campaigns in one Klaviyo account. The notice takes only seconds to read.

What you get out of it

  • Support is ready for the questions

    Once a campaign has gone out, replies and tickets follow within hours. A notice in Slack lets support read the email and prepare answers before the first customer asks. That context saves a lot of back-and-forth later.

  • Accidental sends are noticed quickly

    If a campaign goes to the wrong segment or earlier than planned, someone seeing the notice at the unexpected time can react. A quick correction beats finding out through complaints.

  • Sales can follow up while it is fresh

    A rep who knows a promotion has gone out can mention it on calls or reach out to engaged prospects the same afternoon. That timing is lost if they only hear about it later.

  • A running log of sends builds up

    The channel becomes a timeline of every campaign with its send time. When someone asks what went out the week revenue dipped, you can scroll and answer. It also shows the pace of your sending over a quarter.

  • Marketing stops writing announcements

    Posting a heads-up for each send is a small chore that is easy to forget. Handing it off means the communication happens every time, whoever pressed send. The announcement then happens every time, however busy the day is.

How it works

What happens, step by step

  1. Every hour ClickRuntime checks Klaviyo for email campaigns sent since its last check, so each one is announced only once.

  2. For each campaign it looks up the names of the lists and segments it went to.

  3. A message goes to your #marketing Slack channel with the campaign name and its audience.

Before it runs live

  • Connect Klaviyo

What you get

RunsHourly
Tell the team when a campaign goes outtoday, 9:00Succeeded
Slack · #marketingCampaign sent: October restock → Newsletter, VIP

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 Klaviyo 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.
new_campaign_sent_notice.pyexample
from datetime import datetime, timezone
from clickruntime import on_trigger, credentials, http, state, notify, report_fetched

API = "https://a.klaviyo.com/api"

def klaviyo():
    return {"Authorization": f"Klaviyo-API-Key {credentials.secret('KLAVIYO_API_KEY')}",
            "revision": "2024-10-15", "accept": "application/vnd.api+json", "content-type": "application/vnd.api+json"}

@on_trigger
def run(event):
    h = klaviyo()
    since = state.get("since") or datetime.now(timezone.utc).isoformat()
    data = http.get(f"{API}/campaigns", headers=h, params={
        "filter": f"equals(messages.channel,'email'),equals(status,'Sent'),greater-than(send_time,{since})"}).json()["data"]
    report_fetched(len(data))
    if not data:
        return {"summary": "Nothing new"}
    lists = {l["id"]: l["attributes"]["name"] for l in http.get(f"{API}/lists", headers=h).json()["data"]}
    for c in data:
        a = c["attributes"]
        audience = ", ".join(lists.get(i, i) for i in a["audiences"]["included"])
        notify.slack(f"Campaign sent: {a['name']} → {audience}", channel="#marketing")
    state.set("since", max(c["attributes"]["send_time"] for c in data))
    return {"posted": len(data)}

FAQ

Common questions

What counts as a sent campaign?
A campaign is treated as sent when Klaviyo reports its status as Sent. Scheduled and draft campaigns do not trigger a notice, and a campaign that is still sending is picked up on a later hourly check once its status changes.
Will I get a notice for SMS campaigns as well?
Klaviyo lists email and SMS campaigns separately. The automation can look at either or both, so you can include SMS sends in the same channel if your team uses them. Mentioning the channel type in the post makes the difference clear.
Why hourly instead of immediately?
Klaviyo has no simple per-campaign webhook for this, so the automation checks every hour for newly sent campaigns. The notice therefore arrives within an hour of the send. For internal awareness that is typically fast enough, and the check stays reliable.
What permissions does it need?
read (campaigns). 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 “Tell the team when a campaign goes out” from your assistant

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