I’m working on a Zapier integration and need help with making form fields change dynamically. Here’s what I’m trying to accomplish:
I have a trigger with a dropdown menu in the form
When someone selects a different option from the dropdown, I want additional dropdown menus to appear automatically
The number and type of new fields should depend on what was selected in the first dropdown
I’ve been searching for a way to modify the operation.inputFields array programmatically but can’t figure out how to access it. I’ve tried looking through the bundle object and other available resources but haven’t found a solution.
Basically, I need the form to be interactive where selecting one option reveals more relevant options below it. Has anyone successfully implemented dynamic field manipulation in Zapier triggers before? Any guidance would be really helpful.
exactly! that refresh stuff can be a pain, but i wud recommend giving it a shot. it’s super useful having those dynamic options appear based on what’s selected. once it’s set up, it’ll make the experience way smoother for users. gl!
Zapier doesn’t let you modify arrays directly, but there’s a workaround. You’ll need to use the inputFields function instead of trying to access the array itself. Here’s the trick: make your inputFields a function that returns different field configurations based on what the user picked. When someone selects something from your first dropdown, the same function can conditionally return extra fields. Just check bundle.inputData for the selected value and build your field array from there. I did something like this last year for a project management integration - picking a project type would show specific custom fields. The downside is users have to refresh or re-authenticate the trigger setup to see new fields, which isn’t great but works. Check Zapier’s CLI docs under dynamic dropdowns - they’ve got examples that’ll help you set up the conditional logic.
Zapier processes form fields server-side, not client-side like regular web forms. For dynamic field dependencies, you’ll need the inputFields function plus proper field dependency config. Set your first dropdown’s altersDynamicFields property to true, then make your inputFields function check bundle.inputData and return the right field arrays based on what’s selected. I hit this same issue building a CRM integration where picking a contact type showed different custom fields. Fixed it by creating dependency chains - each dependent field checks its parent field values and only shows up when conditions match. Just heads up: field updates trigger API calls back to your app, so make sure your endpoint handles dynamic field requests efficiently. The UX isn’t as smooth as native JavaScript, but it works well enough for complex integrations.