The moment it happens
Add form sign-ups to a Notion database
Every sign-up, booking or idea sent to your link becomes a row in Notion, without duplicates.
- Runs
- The moment it happens
- Apps
- Notion
- AI
- Not needed
- Access
- read+write (database shared with the connection)
Send this to your assistant
Create a ClickRuntime automation: give me a link my sign-up form can send entries to. Add each person to my Notion Contacts database with their name, email and source, unless they're already in it.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
Sign-ups, bookings, ideas and time entries come from many places: a website form, a booking widget, a Typeform, a script on your phone. Each tool has its own export, so data ends up in separate spreadsheets or email threads. Someone copies rows into Notion on Fridays, entries are missed, and a person who signs up twice is entered twice. The database you rely on is always a few days behind and slightly wrong.
When a tool sends data to the link ClickRuntime provides, it receives the payload, looks in your Notion database for an existing entry with the same key, such as an email address, and then either creates a new page or updates the existing one. Each field in the payload is mapped to the matching Notion property.
It works for makers, small studios and community organisers who want one Notion table behind several tools.
What you get out of it
Notion is current within seconds
Entries appear as they happen. When you open the database on Monday morning, it already contains the weekend's sign-ups, with nothing to import. Opening the database on Monday morning shows the weekend's sign-ups already there, with nothing to import first.
Repeat submissions update instead of duplicating
Matching on a key means a person who fills the form twice gets one row, kept up to date. Mailing lists and attendee counts stay accurate. Mailing lists, attendee counts and invoices stay accurate because one person is one row.
Several tools can feed one database
A booking widget, a form and a phone shortcut can all post to the same link. You track everything in one table without reconciling exports. You track everything in one table without reconciling several different exports at the end of the week.
Property mapping keeps data tidy
Each value lands in the right column, such as Email, Date or Plan, in the right type. Sorting and filtering work because the data is structured from the start. Sorting and filtering work properly because the data is structured from the start, not tidied later.
No copy-paste routine
The Friday job of moving rows by hand disappears. That time goes to following up with the people who signed up, which is what the data is for. That time goes to following up with the people who signed up, which is what the data is for.
How it works
What happens, step by step
When someone submits your form, ClickRuntime receives their details straight away.
It checks your Notion database for an existing entry with the same email address.
If there is one, it updates that entry. If not, it creates a new page with the name, email and source.
Before it runs live
- Connect Notion and share the database you want it to 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 Notion steps into one automation
Under the hood
The code that runs this automation
from clickruntime import on_event, credentials, http
NOTION = "https://api.notion.com/v1"
def headers():
return {"Authorization": f"Bearer {credentials.secret('NOTION_TOKEN')}", "Notion-Version": "2022-06-28"}
def query(db, body=None):
resp = http.post(f"{NOTION}/databases/{db}/query", headers=headers(), json=body or {})
resp.raise_for_status()
return resp.json()["results"]
def title(page, prop="Name"):
return "".join(t["plain_text"] for t in page["properties"][prop]["title"])
CONTACTS = "contacts-database-id"
@on_event
def handle(event):
p = event.json or {}
if query(CONTACTS, {"filter": {"property": "Email", "email": {"equals": p["email"]}}}):
return {"created": False, "reason": "already in Contacts"}
http.post(f"{NOTION}/pages", headers=headers(), json={"parent": {"database_id": CONTACTS}, "properties": {
"Name": {"title": [{"text": {"content": p.get("name", "")}}]},
"Email": {"email": p["email"]},
"Source": {"select": {"name": p.get("source", "Website form")}},
}}).raise_for_status()
return {"created": True}FAQ
Common questions
What can send data to the link?
How does it decide whether to update or create?
Does it handle properties like dates and select options?
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 links to a Notion reading list with a summary
Send a URL and it's saved to Notion with its title and a short summary, ready for when you have time to read.
See how it worksArchive empty and duplicate Notion pages
Your database stays clean, and you get an email listing what was archived so you can restore anything from the trash.
See how it worksGet reminders for Notion tasks due soon
Each morning you get the tasks due in the next two days, overdue ones move to today, and anything a week late is flagged as stale.
See how it worksKeep exploring
Set up “Add form sign-ups to a Notion database” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.