diff --git a/apps/sim/components/emcn/components/combobox/combobox.tsx b/apps/sim/components/emcn/components/combobox/combobox.tsx
index f423f7fa93..5172d5db33 100644
--- a/apps/sim/components/emcn/components/combobox/combobox.tsx
+++ b/apps/sim/components/emcn/components/combobox/combobox.tsx
@@ -214,6 +214,22 @@ const Combobox = memo(
[allOptions, effectiveSelectedValue]
)
+ /**
+ * Label rendered in the collapsed trigger for multi-select mode.
+ * Shows the single label when one value is picked, comma-joined labels
+ * for two, or "first, second +N" when more are selected. Falls back to
+ * the raw value if an option for it hasn't loaded yet.
+ */
+ const multiSelectLabel = useMemo(() => {
+ if (!multiSelect || !multiSelectValues || multiSelectValues.length === 0) return null
+ const labelFor = (v: string) => allOptions.find((opt) => opt.value === v)?.label ?? v
+ if (multiSelectValues.length === 1) return labelFor(multiSelectValues[0])
+ if (multiSelectValues.length === 2) {
+ return `${labelFor(multiSelectValues[0])}, ${labelFor(multiSelectValues[1])}`
+ }
+ return `${labelFor(multiSelectValues[0])}, ${labelFor(multiSelectValues[1])} +${multiSelectValues.length - 2}`
+ }, [multiSelect, multiSelectValues, allOptions])
+
/**
* Filter options based on current value or search query
*/
@@ -590,11 +606,11 @@ const Combobox = memo(
- {selectedOption ? selectedOption.label : placeholder}
+ {multiSelectLabel ?? (selectedOption ? selectedOption.label : placeholder)}