The moment it happens
Keep a log of events in a sheet
Everything your app or CRM sends is saved as a row, and the important events also go to Slack.
- Runs
- The moment it happens
- Apps
- Google Sheets, Slack
- AI
- Not needed
- Access
- Sheets read+write; Slack chat:write
Send this to your assistant
Create a ClickRuntime automation: give me a link my app can send events to. Add each event to my Events sheet, and post anything marked critical to #alerts.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A SaaS founder's CRM, billing system and website each fire events: a lead created, a trial started, a payment failed, an account deleted. They are scattered across three dashboards with different filters, so answering a question like how many failed payments last week, and for which customers takes half an hour. Important events, like a high-value customer canceling, are buried in the same stream as routine ones, and are noticed late.
Every event sent to your ClickRuntime link is added immediately as a row in a Google Sheet, with the event type, customer, amount and time. Events of types you have marked important, such as payment failures or cancellations, are also posted to Slack, so the team sees them within moments.
Founders, operations teams and support leads use it to build a simple, searchable event log across tools.
What you get out of it
One log across many systems
Putting events from different tools into one sheet lets you filter, sort and pivot them in one place. Questions that used to need three dashboards can be answered in minutes.
Critical events reach people instantly
A cancellation from a large customer or a failed payment is posted to Slack as it happens. Someone can reach out within the hour, which is often the difference between keeping and losing the account.
The routine stays quiet
Only chosen event types go to Slack, while everything else is logged silently. The channel keeps its value because people learn that a post there always means something worth a look.
A complete record for later analysis
Because every event is stored, you can look back at what led up to a churned account or a refund. Support and finance can trace what happened without asking the original tool for an export.
Easy to extend with a new event type
Adding a new source means pointing it at the link and mapping its fields to columns. Nobody has to write a connector or set up a new database to gain visibility.
How it works
What happens, step by step
When your app or CRM sends an event to ClickRuntime, it is received straight away.
ClickRuntime adds a row to the Events tab of your Google Sheet with the time, event type, severity and details.
If the event is marked critical, a message also appears in your #alerts Slack channel with the event type and message.
Before it runs live
- Connect your Google Sheets account and pick the spreadsheets it may use
- Connect Slack, then invite the app to the channel (type /invite @ClickRuntime there)
- Paste your automation's link into the other app's webhook settings
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 Gmail
- Combine it with other Google Sheets and Slack steps into one automation
Under the hood
The code that runs this automation
import json
from google.oauth2.credentials import Credentials
from googleapiclient.discovery import build
from clickruntime import on_event, credentials, notify
SHEET_ID = "your-spreadsheet-id"
@on_event
def handle(event):
e = event.json or {}
sheets = build("sheets", "v4", credentials=Credentials(credentials.connection("google", "work")), cache_discovery=False)
sheets.spreadsheets().values().append(spreadsheetId=SHEET_ID, range="Events!A:D", valueInputOption="USER_ENTERED",
body={"values": [[event.received_at, e.get("type", ""), e.get("severity", ""),
json.dumps(e)[:2000]]]}).execute()
if e.get("severity") == "critical":
notify.slack(f"🚨 {e.get('type')}: {e.get('message', '')}", channel="#alerts")
return {"logged": True, "critical": e.get("severity") == "critical"}FAQ
Common questions
What can send events to the link?
Will the sheet slow down with thousands of rows?
How do I decide which events are important?
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
Save form leads to a sheet and alert your team
Every new lead is added to your sheet and posted to Slack, with urgent ones flagged.
See how it worksSet up onboarding tasks for every new client
When a client signs up, their onboarding checklist appears in your sheet with owners, and the team is told in Slack.
See how it worksLog support requests and flag the urgent ones
Every request is added to your sheet with a priority and topic, and urgent ones reach #support right away.
See how it worksKeep exploring
Set up “Keep a log of events in a sheet” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.