The moment it happens
Keep a form's dropdown choices up to date
When your list of options changes, the dropdown in your form is updated to match.
- Runs
- The moment it happens
- Apps
- Typeform
- AI
- Not needed
- Access
- forms:read, forms:write
Send this to your assistant
Create a ClickRuntime automation: give me a link I can send a list of options to. When it gets a list, replace the choices in the 'Location' dropdown of my 'Booking' Typeform and tell me in Slack.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
Forms get stale when their choices change elsewhere. A Typeform registration form lists the sessions at a conference, the cities with a branch, or the products in stock, and when that list changes in another system someone has to edit the form by hand. If they forget, people sign up for a cancelled session or cannot pick the new city, and you spend time on corrections.
When another tool sends an updated list, this gets your form, replaces the choices on the dropdown question you named, saves the form with the new options and confirms in Slack that the update went through. The form always matches your source list.
It is useful for event organizers, franchises and teams with changing inventory. The update runs the moment the other system sends its new list, with no one editing the form by hand.
What you get out of it
The form always matches reality
Choices update as soon as the source list changes. Visitors never pick a cancelled session or an out-of-stock product, which removes a source of corrections and apologies. That removes a steady source of small corrections.
No manual editing in Typeform
Updating a form by hand is slow and easy to get wrong, especially for long lists. Sending the data automatically removes the chore and the typos that creep into hand-edited choices.
Slack confirms each update
A short message tells the team the change was applied. If an update fails, you notice the absence of a confirmation, instead of discovering a stale form after customers have used it.
One source of truth
The list lives in the tool where you maintain it, and the form follows. You avoid keeping two lists that drift apart and end up contradicting each other. Contradictions between the form and your records disappear.
Fits fast-changing events
Last-minute changes to speakers, rooms or times can be pushed to the form within moments. Attendees register against the current program, not yesterday's version. The registration page matches the current program.
How it works
What happens, step by step
When your system sends ClickRuntime a new list of choices, such as office locations, the automation starts straight away.
It loads your Typeform and replaces the options in the dropdown question you chose.
The updated form is saved, so the next visitor sees the new choices.
A confirmation goes to your Slack channel listing the options now on the form.
Before it runs live
- Connect Typeform
- 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 Typeform steps into one automation
Under the hood
The code that runs this automation
from clickruntime import on_event, http, credentials, notify
FORM_ID = "BOOKING_FORM_ID"
def typeform(method, path, **kw):
r = http.request(method, f"https://api.typeform.com{path}",
headers={"Authorization": f"Bearer {credentials.secret('TYPEFORM_TOKEN')}"}, **kw)
r.raise_for_status()
return r.json() if r.content else None
@on_event
def handle(event):
options = [str(o).strip() for o in (event.json or {}).get("options", []) if str(o).strip()]
if not options:
return {"updated": False}
form = typeform("GET", f"/forms/{FORM_ID}")
field = next(f for f in form["fields"] if f["title"] == "Location")
field["properties"]["choices"] = [{"label": o} for o in options]
typeform("PUT", f"/forms/{FORM_ID}", json=form)
notify.slack(f"Booking form Location now has {len(options)} options: {', '.join(options)}", channel="#ops")
return {"updated": True, "options": len(options)}FAQ
Common questions
Will existing responses be affected when the choices change?
Which question types can be updated?
What happens if the update fails?
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
Get every new Typeform response by email
Each time someone fills in your form, the answers land in your inbox with the question titles.
See how it worksPost new Typeform responses to Slack
Your team sees a short summary of each new submission in Slack right away.
See how it worksGet alerted about low scores
When someone gives a low rating, you see their answers straight away and can follow up.
See how it worksKeep exploring
Set up “Keep a form's dropdown choices up to date” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.