Skip to content

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.

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

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

  1. When your app or CRM sends an event to ClickRuntime, it is received straight away.

  2. ClickRuntime adds a row to the Events tab of your Google Sheet with the time, event type, severity and details.

  3. 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

RunsThe moment it happens
Keep a log of events in a sheetjust nowSucceeded
Slack · #alerts🚨 payment.failed: Stripe webhook returned 500 for 12 checkouts in 5 minutes

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 Gmail
  • Combine it with other Google Sheets and Slack 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.
log_app_events_to_a_sheet_and_alert_slack.pyexample
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?
Any tool or script that can send a webhook, which includes most CRMs, payment processors, form tools and apps. The sender posts JSON to the private link, and the fields you chose are placed in the matching sheet columns.
Will the sheet slow down with thousands of rows?
Google Sheets handles many thousands of rows, but very high event volumes are better suited to a database. A common approach is to archive older rows to another tab each month, which keeps the live log fast and easy to search.
How do I decide which events are important?
You list the event types or conditions, such as type equals payment_failed or amount above 500. Those events are also sent to Slack. Everything else is only logged. You can change the list as your priorities shift.
What permissions does it need?
Sheets read+write; Slack chat:write. 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 for each event the app sends.
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 “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.