The moment it happens
Keep a running event log in Dropbox
Every event you send adds a line to a CSV file in Dropbox, so you have one growing log.
- Runs
- The moment it happens
- Apps
- Dropbox
- AI
- Not needed
- Access
- files.content.read, files.content.write
Send this to your assistant
Create a ClickRuntime automation: give me a link my app can send events to. Each time, add a line with the time, event name and payload to /Logs/events.csv in Dropbox.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A small team needs a simple, durable log of events: form submissions, orders, error reports, sensor readings or custom notifications from their own tools. Setting up a database for it feels like overkill, and spreadsheets break when two events arrive at the same moment. Without a log, there is no easy way to answer when something happened or to hand the history to an accountant or a client.
Each time you send an event, the automation downloads the current log file from Dropbox, adds a new line and uploads it back, checking the file revision so two events arriving together do not overwrite one another. You end up with a plain text or CSV file that anyone can open without special software.
Freelancers, small businesses and developers who want a simple, shareable record without running a database find it handy.
What you get out of it
A log without a database
A text or CSV file in Dropbox is easy to open, search and share. There is nothing to host or maintain, and nobody has to learn a query language just to read what happened on a particular day.
Events are not lost to overwrites
Checking the file revision before saving means simultaneous events do not erase each other. Each line survives, even during a burst of activity, which is exactly when a naive logging setup tends to lose data.
Shareable with people outside your tools
Because it is just a file in Dropbox, you can share it with a client or an accountant. They see the history without needing an account in any of your other tools, and without bothering you for exports.
Opens in a spreadsheet
A CSV log can be opened in Excel or Google Sheets for sorting, filtering and charts. Analysis requires no special software, so a non-technical colleague can answer their own questions from the data.
A durable record you own
The file stays in your Dropbox with its own version history. You can recover an earlier version if a line is added by mistake, and nobody can quietly rewrite the record without leaving a trace.
How it works
What happens, step by step
When your app or another tool sends an event to the automation's private link, it starts.
It opens your log file in Dropbox and adds a new line with the time, the event name and its details.
The updated file is saved back to Dropbox. If the file changed in the meantime, it won't overwrite someone else's edit.
Before it runs live
- Connect Dropbox
- 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 Slack
- Combine it with other Dropbox steps into one automation
Under the hood
The code that runs this automation
import csv, io, json
from clickruntime import on_event, http, credentials
PATH = "/Logs/events.csv"
@on_event
def handle(event):
body = event.json or {}
auth = {"Authorization": "Bearer " + credentials.connection("dropbox", "main")}
resp = http.post("https://content.dropboxapi.com/2/files/download", headers={**auth, "Dropbox-API-Arg": json.dumps({"path": PATH})})
current = resp.text if resp.ok else "time,event,payload\n"
mode = {".tag": "update", "update": json.loads(resp.headers["Dropbox-API-Result"])["rev"]} if resp.ok else {".tag": "add"}
line = io.StringIO()
csv.writer(line).writerow([event.received_at, body.get("event", "unknown"), json.dumps(body)])
http.post("https://content.dropboxapi.com/2/files/upload", headers={**auth, "Content-Type": "application/octet-stream",
"Dropbox-API-Arg": json.dumps({"path": PATH, "mode": mode})}, data=(current + line.getvalue()).encode()).raise_for_status()
return {"logged": body.get("event")}FAQ
Common questions
Is the log safe if two events arrive at once?
Will the file get too big over time?
Can each line include a timestamp?
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 a converted data feed to Dropbox nightly
A file from a URL is downloaded, converted or zipped, saved to Dropbox and sent to you as a share link.
See how it worksBack up to Dropbox and keep the last 7 days
A dated backup file appears in Dropbox every night and anything older than a week is removed.
See how it worksGet told when files land in a Dropbox folder
You get an email listing new files shortly after they show up in the folder.
See how it worksKeep exploring
Set up “Keep a running event log in Dropbox” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.