dify - 💡(How to fix) Fix Support Customizable Popup Selector with Dynamic Table Columns via API

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
RAW_BUFFERClick to expand / collapse

Self Checks

  • I have read the Contributing Guide and Language Policy.
  • I have searched for existing issues search for existing issues, including closed ones.
  • I confirm that I am using English to submit this report, otherwise it will be closed.
  • Please do not modify this template :) and fill in all the required fields.

1. Is this request related to a challenge you're experiencing? Tell me about your story.

Self Checks

  • I have searched for existing issues search for existing issues, including closed ones.
  • I confirm that I am using English to submit this report (我已阅读并同意 Language Policy).
  • Please do not modify this template :) and fill in all the required fields.

1. Is this request related to a challenge you're experiencing?

When building custom Dify plugins that need to select business objects with rich attributes, I found the current static select parameter type falls short.

A typical scenario: a plugin needs to select a product from an e-commerce system. Each product has multiple dimensions — ID, name, price, category, inventory status. The current dropdown can only show product names, leaving users to guess which product to pick. When the list contains hundreds or thousands of items, simple dropdowns become even more dysfunctional.

While Dify 1.5.1 introduced DYNAMIC_SELECT for dynamically generated options (#21425), the data still appears in a standard dropdown menu — single-column text only, no support for table display, no customizable column headers, and selected options return only a single value instead of the complete object.

2. Describe the feature you'd like to see

I propose a new parameter type — Popup Selector — an enhancement to the existing DYNAMIC_SELECT infrastructure that brings table-driven selection to plugin parameters.

Core Capabilities

Popup Interaction: Clicking the parameter input opens a modal window, displaying data in a sortable table with pagination and search filters — crucial when dealing with thousands of options.

Customizable Table Headers: Plugin developers can define which fields from the API response appear as columns, complete with column labels and optional value formatters. For example, a product selector could show Name, Price (formatted as $99.00), and Category side by side.

Dynamic Data Source via API: All data shown in the popup comes from an HTTP endpoint (GET/POST) configured by the plugin developer. Search keywords typed in the popup are passed as parameters to the API for server-side filtering.

Field Mapping Configuration: Developers configure JSONPath for data extraction, specify which field becomes the selectable value, which becomes the display label, and how columns map to response fields.

Rich Return Object: The parameter's final value includes not just the selected ID, but also the display label and the complete original data object. This enables downstream workflow nodes to directly use any field from the selected object without extra API calls.

Proposed YAML Configuration Schema

- name: product_id
  type: popup_selector  # new type, extending DYNAMIC_SELECT patterns
  label: Select Product
  dynamic_options:
    api_endpoint: https://api.example.com/products/search
    method: POST
    search_param: keyword
    pagination:
      page_param: page
      pageSize_param: pageSize
    data_path: $.data.items
    value_field: id
    label_field: name
    table_columns:
      - field: name
        title: Product Name
      - field: price
        title: Price
        formatter: currency
      - field: category
        title: Category
    returns_complete_object: true  # includes value, label, and full data

### 2. Additional context or comments

_No response_

### 3. Can you help us with this feature?

- [ ] I am interested in contributing to this feature.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING