Dynamic Multiple Choice
Introduction
Options for a multiple choice field are generally static and defined in the form builder. However, there are cases where you want to fetch the options from a remote source dynamically — for example, to keep choices in sync with your database, CRM, or spreadsheet without editing the form each time.
Here is an example. The first field allows you to pick a category, and the second field allows you to pick an item from that category. The options in the second field are fetched dynamically based on the selection in the first field. All data resides in a Google Sheets spreadsheet.

When editing a multiple choice field go to the Options tab. Click on Source to see the list of available sources (the default being List):
The following sources are available: Remote URL, Google Sheets, and Salesforce.
Remote URL
Fetch table data from any external API endpoint that returns JSON data. This is the most flexible option for integrating with third-party services.
Configuration options:
- Remote URL: Endpoint to fetch data from (supports dynamic parameters so you can reference other form fields using the
@key) - Authorization header (Optional) Bearer token or Basic auth
- Option List Path: JSONPath expression to extract the array of data objects
- Column mapping: Map table columns to fields in the returned data
Test configuration
- Remote URL:
https://api.formcrafts.com/public/options?type=inventory - Option List Path:
$.data[*] - Column mapping:
$.labeland$.value
The Remote URL mode sends a POST request to your endpoint with the current form values, allowing you to return dynamic data based on user input.
Learn more about JSONPath syntax →
Google Sheets
Fetch table data from a Google Sheets spreadsheet.
Configuration options:
- Spreadsheet file: Select your Google Sheets file
- Sheet: Select the specific sheet within the spreadsheet
- Filter rules: Use form field values to filter rows from the sheet
- Column mapping: Map table columns to spreadsheet columns
Note that filter rules can reference other form fields. For example, if you have a form field labelled Country, you can set a filter rule to only show rows where the “Country” column matches the value of field Country. Whenever the user changes the value of the Country field, the options in the multiple choice will update accordingly.
Salesforce
Fetch options from Salesforce using an object query, a SOQL query, or a picklist field. This works the same way as dynamic picklists, with the same column mappings:
- Label (required)
- Value (optional)
- Description (optional)
- Image (optional)
Please read the Salesforce dynamic picklists documentation for full details on sources and SOQL queries.
Notes
Allow multiple selections
Dynamic multiple choice supports the Allow multiple selections setting. When enabled, users can pick more than one option. You can also set a minimum and maximum number of selections.
Randomize options
The Randomize options setting works with dynamic sources. Options fetched from a remote source will be displayed in a random order each time the form loads.
