Overview
API-powered dropdown fields retrieve their selection options from external APIs at runtime, rather than from a static list of values maintained within Elementum. This enables use cases where dropdown options need to reflect data from third-party systems such as ERPs, CRMs, or custom internal services. There are two approaches to API-powered dropdowns in Elementum:| Approach | Description | Best For |
|---|---|---|
| API Picklist | A dropdown field configured to call an external HTTP endpoint directly | Simple integrations where dropdown values come from a single API call |
| Dynamic Dropdown on API Elements | A dynamic dropdown linked to an API Element that fetches data through configured API Requests | Complex integrations where the external data source is modeled as an Element with multiple fields and relationships |
Prerequisites
Before configuring API-powered dropdown fields, ensure the following:- Admin access to the app where you want to add the field
- API endpoint details for the external system:
- Endpoint URL
- HTTP method (GET, POST, or PUT)
- Authentication credentials (if required)
- Response format (JSON)
- Cloud credentials configured (for API Elements approach)
Approach 1: API Picklist Fields
An API Picklist field calls an external HTTP endpoint and maps the response data to dropdown options. Each time a user opens the dropdown, Elementum fetches the latest values from the API.Step 1: Add a Dropdown Field to Your Layout
- In your app, open Configuration in the left navigation and select
Records Detail Layout
- Click Add Field, then choose Dropdown or Multi-Select
- In the field setup panel, set the picklist source/type to API
If the API type is not available in the field configuration, contact Elementum support to have the API Dropdown feature enabled for your organization.
Step 2: Configure the API Endpoint
Provide the details for the external API that will supply the dropdown values:| Setting | Description |
|---|---|
| URL | The full endpoint URL. Supports template parameters that reference field values on the current record |
| Method | HTTP method: GET, POST, or PUT |
| Headers | Custom HTTP headers to include in the request (e.g., Content-Type, Accept) |
| Query Parameters | URL query parameters appended to the request |
Step 3: Configure Authentication
Select the authentication method that matches your external API:| Auth Type | Configuration |
|---|---|
| None | No authentication headers are sent |
| Basic | Provide a username and password. Elementum sends these as a Base64-encoded Authorization: Basic header |
| Bearer Token | Provide a static token. Sent as Authorization: Bearer <token> |
| OAuth 2.0 | Provide the token URL, client ID, and client secret. Elementum automatically handles the client credentials flow, token acquisition, and caching |
Step 4: Configure the Request Body (POST/PUT Only)
If the API requires a POST or PUT request, configure the body:| Body Type | Description |
|---|---|
| JSON | A JSON payload. Supports template parameters that reference record field values |
| Form | Key-value pairs sent as form-encoded data |
Step 5: Map the Response
Define how Elementum should extract dropdown options from the API response:| Setting | Description |
|---|---|
| ID | The JSON path to the unique identifier for each option (used as the stored value) |
| Label | The JSON path or template for the display text shown to users. Supports template parameters |
| Value | An optional JSON path for the value to store (if different from the ID) |
| Schema | The JSON schema describing the response structure, used for parsing nested responses |
- ID:
code - Label:
name
Template Parameters
URL, label, headers, query parameters, and body fields support template parameters that dynamically insert values at runtime:| Parameter Source | Description |
|---|---|
| Field Value | References a field on the current record. The field’s value is substituted into the template at request time |
| Text Value | A static text string |
| JSON Path | A value extracted from a JSON structure |
Approach 2: Dynamic Dropdowns on API Elements
This approach models external API data as anStep 1: Create an API CloudLink
- Navigate to
Organization Settings > CloudLinks
- Click Add CloudLink
- Select API as the provider type
- Configure the connection credentials (base URL, authentication)
- Save the CloudLink
Step 2: Create an API Element
- Create a new
Element connected to your API CloudLink - Configure the API Requests on the Element. Each API Request defines how to fetch data from the external system
- Define the Element’s fields to match the structure of the API response
Step 3: Create a Dynamic Dropdown Field
- In your app’s Configuration >
Records Detail Layout, add a new Dropdown or Multi-Select field
- In the field configuration, set Dropdown Type to Dynamic
- In the related object selector on the right side of the page, choose the API Element you created
- Configure the API Request filter:
- Select which API Request on the Element to use for fetching dropdown values
- Map any required request variables to fields on the current record
Step 4: Configure Variable Mappings
If the API Request requires input parameters, map them to fields on the current record or static values:| Mapping Type | Description |
|---|---|
| Record Field | A field value from the current record is passed as a variable to the API Request |
| Static Value | A fixed value is passed to the API Request |
Cloud Credentials for API Connections
API-powered features store authentication credentials securely through the CloudLink system. To manage API credentials:- Navigate to
Organization Settings > CloudLinks
- Select or create an API CloudLink
- Configure credentials in the credential editor:
- Basic Auth: Username and password
- Bearer Token: API token
- OAuth 2.0: Token URL, client ID, client secret, and optional scope
Considerations
Performance
Performance
- API responses are subject to a configurable timeout. If the external API does not respond within the timeout period, the dropdown displays an error
- Consider the latency of your external API. Dropdowns that take several seconds to load create a poor user experience
- For high-traffic fields, ensure your external API can handle the request volume
Error Handling
Error Handling
- If the API returns an error or is unreachable, the dropdown displays an empty state with an error indicator
- Verify your API endpoint is accessible from Elementum’s servers (firewall rules, IP allowlisting may be required)
Data Freshness
Data Freshness
- API Picklist fields fetch data on each dropdown open, ensuring values are always current
- Dynamic dropdowns on API Elements fetch data according to the Element’s configured refresh behavior
Security
Security
- Use OAuth 2.0 or Bearer Token authentication for production integrations. Avoid Basic Auth over non-HTTPS endpoints
- API credentials are stored encrypted and are not retrievable after configuration
- Elementum sends requests server-side; API endpoints are not exposed to end users’ browsers
Troubleshooting
| Issue | Resolution |
|---|---|
| Dropdown shows no options | Verify the API endpoint is reachable and returns a valid JSON response. Check the response mapping (ID and Label paths) |
| Authentication errors | Confirm credentials are correct. For OAuth, verify the token URL, client ID, and client secret. Check that the OAuth scope grants read access |
| Dropdown loads slowly | Check the external API’s response time. Consider adding caching on the API side or reducing the response payload size |
| Options appear but display incorrectly | Review the Label template configuration. Ensure the JSON path points to the correct field in the response |
| Variable mappings not working | Ensure the mapped source fields on the current record have values. Empty source fields result in empty or null parameters in the API request |