Every 10 minutes
Post big orders to Slack
Orders above your threshold show up in Slack with the customer and amount.
- Runs
- Every 10 minutes
- Apps
- Klaviyo
- AI
- Not needed
- Access
- read (events)
Send this to your assistant
Create a ClickRuntime automation: every 10 minutes, check Klaviyo for Placed Order events over $500 and post the customer and order value to #sales in Slack.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
Some orders deserve a human reaction: a $2,400 wholesale purchase from a first-time customer, a corporate gift order that needs a handwritten note, or a suspiciously large order that may be fraud. In Klaviyo these are just rows in a Placed Order event stream, and no one is watching that stream. Large orders get found at the end of the week, long after the chance to thank the buyer or catch a problem has passed.
Every ten minutes, ClickRuntime lists the Placed Order events in Klaviyo that arrived since its last check, filters them by order value, and posts every order over the amount you set, for example $500, to Slack. The post includes the customer and the order value, and only new orders are checked each time so nothing is announced twice.
Merchants who sell high-ticket items, bundles or B2B orders get the most out of it.
What you get out of it
Big customers get a personal touch
A founder who sees a $900 first order within minutes can add a thank-you note to the box or send a short email. That kind of attention turns one large purchase into a repeat customer.
Possible fraud is reviewed before shipping
Unusually large orders from new accounts are a classic fraud pattern. Seeing them in Slack while the order is still unfulfilled gives you time to verify the buyer rather than discovering a chargeback weeks later.
Fulfillment can prepare for large orders
A big order may need extra stock, special packaging or freight. When the warehouse sees the alert, they can check inventory and plan the shipment instead of being surprised on pick day.
Your threshold reflects your business
A $500 order is huge for a $20 candle shop and routine for a furniture store. Because the cutoff is yours, the channel only shows orders that are worth stopping for.
Sales wins are visible in real time
Small teams enjoy seeing a large order land. It keeps morale up, and it lets whoever ran the campaign see right away that a send produced a notable result. Those moments are worth sharing when a team is small.
How it works
What happens, step by step
Every 10 minutes ClickRuntime checks Klaviyo for orders placed since its last check, so each order is looked at only once.
It keeps only orders worth more than your threshold, $500 in this example.
Each big order is posted to your #sales Slack channel with the amount and the customer's email.
Before it runs live
- Connect Klaviyo
What you get
Build your own
Need it to work differently?
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
from datetime import datetime, timezone
from clickruntime import on_trigger, credentials, http, state, notify, report_fetched
API = "https://a.klaviyo.com/api"
PLACED_ORDER_METRIC_ID = "RESQ6t"
MIN_VALUE = 500
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):
since = state.get("since") or datetime.now(timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ")
resp = http.get(f"{API}/events", headers=klaviyo(), params={
"filter": f'equals(metric_id,"{PLACED_ORDER_METRIC_ID}"),greater-than(datetime,{since})',
"include": "profile", "sort": "datetime"}).json()
events = resp["data"]
report_fetched(len(events))
if not events:
return {"summary": "Nothing new"}
emails = {p["id"]: p["attributes"]["email"] for p in resp.get("included", [])}
for e in events:
value = e["attributes"]["event_properties"].get("$value", 0)
if value > MIN_VALUE:
who = emails.get(e["relationships"]["profile"]["data"]["id"], "unknown")
notify.slack(f"Big order: ${value:,.2f} from {who}", channel="#sales")
state.set("since", events[-1]["attributes"]["datetime"])
return {"checked": len(events)}FAQ
Common questions
Why every ten minutes instead of instantly?
Can I trigger on a different event, like a refund or a started checkout?
Will an order be posted twice if it appears in two checks?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
Post new VIP list members to Slack
Within 15 minutes of joining your VIP list, each person appears in Slack with name and email.
See how it worksHear who enters a key segment
New members of a segment such as 'At risk' are posted to Slack so someone can follow up.
See how it worksTell the team when a campaign goes out
Within the hour, Slack shows the name and audience of every campaign Klaviyo sent.
See how it worksKeep exploring
Set up “Post big orders to Slack” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.
