The moment it happens
Add form entries to a sheet as they arrive
Anything sent to your link, from a form, a website or another tool, appears as a new row.
- Runs
- The moment it happens
- Apps
- Google Sheets
- AI
- Not needed
- Access
- read+write
Send this to your assistant
Create a ClickRuntime automation: give me a link my website form can send to, and add each submission as a new row in my Signups sheet with name, email and date.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A small business collects information in many places: a contact form on the website, a booking widget, a payment notification, a script on another server. Each stores data in its own system with its own export, so answering a question like how many inquiries came from the pricing page last month means logging in to three places and merging files. Data is also lost when a tool changes plans or deletes old entries.
ClickRuntime gives you a private link. Whatever is posted to it, from a form, a website or another tool, is received, its fields are matched to the columns in your Google Sheet, and a new row is appended. If you like, an email tells you each time a row arrives.
It is a simple way to give tools that can send a webhook a spreadsheet as their destination.
What you get out of it
Everything in one table
Data from forms, widgets and scripts ends up in one sheet, in the same columns. Filtering, sorting and charting work across sources without any merging of exports. A monthly question becomes a quick filter.
No separate database to run
A Google Sheet is a database that most people can already use. You get storage, search and sharing without setting up or paying for anything extra. Sharing it with a colleague takes one click.
Records survive changes in other tools
When a form builder deletes old submissions or changes its plan, your rows are still in the sheet. You keep a copy under your own control. That protects you if a vendor closes or changes plan.
Fields land in the right columns
Mapping each incoming field to a named column keeps the data tidy. Anyone opening the sheet sees a structured table and not a pile of raw text. Analysis begins straight away instead of after a cleanup.
New sources are quick to add
Connecting another tool means giving it the link and mapping its fields. A new campaign page or a partner's form can start logging in minutes. Growth in tools does not mean growth in manual work.
How it works
What happens, step by step
When someone submits your form, ClickRuntime receives the answers straight away.
It takes the name and email and adds the date and time.
A new row is added to your Google Sheet, so every entry is logged in one place.
Before it runs live
- Connect your Google Sheets account and pick the spreadsheets it may use
- 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 Google Sheets steps into one automation
Under the hood
The code that runs this automation
from google.oauth2.credentials import Credentials
from googleapiclient.discovery import build
from datetime import datetime, timezone
from clickruntime import on_event, credentials
SHEET_ID = "your-spreadsheet-id"
@on_event
def handle(event):
form = event.json or {}
sheets = build("sheets", "v4", credentials=Credentials(credentials.connection("google", "work")), cache_discovery=False).spreadsheets()
row = [form.get("name", ""), form.get("email", ""), datetime.now(timezone.utc).strftime("%Y-%m-%d %H:%M")]
sheets.values().append(spreadsheetId=SHEET_ID, range="Signups!A:C", valueInputOption="USER_ENTERED",
insertDataOption="INSERT_ROWS", body={"values": [row]}).execute()
return {"logged": form.get("email")}FAQ
Common questions
What can post to the link?
What happens if a field is missing or new?
Is it safe to send personal data to the link?
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
Log expenses and catch budget overruns
Your expenses land in a sheet, and you're warned when a category goes over its monthly budget.
See how it worksKeep your sheet free of duplicates and bad data
Duplicate rows are removed, names and phone numbers are tidied, and invalid emails are flagged.
See how it worksMonitor your sites and SSL certificates
You're warned when a site in your list is down or its certificate expires within 14 days.
See how it worksKeep exploring
Set up “Add form entries to a sheet as they arrive” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.