Low-fidelity wireframes (mekari-taste). Lets the autonomous AI Agent fill tenant-defined CRM custom fields — dynamic, pipeline-scoped, and array-typed — in both "Let AI decide" and "Set manually" modes.
The picker sources the tenant's CRM custom fields, grouped into Standard vs Custom-from-CRM with type badges. Array fields (Checklist·array, Tags·array) are badged in blue.
"Let AI decide" returns an array (constrained to allowed options). "Set manually" is a multi-value chip input constrained to the same options.
Same pattern on the deal action, which already ships an array-type Tags field (the existing precedent) plus a new custom array field.
Custom fields in Qontak are defined per pipeline, so the picker only lists the custom fields implemented in the pipeline chosen in the config. Before a pipeline is set, the custom group shows a hint; after, the header names the pipeline and lists only its fields.
Not a screen — the adaptive-rendering contract. The BE lookup normalizes every CRM custom-field type into the descriptor shape the existing ActionIntegrationForm.vue renderer already handles. One BE normalizer table; no per-type FE code; unknown types excluded + logged.
| CRM custom-field type | Descriptor (BE normalizer) | FE control (existing) |
|---|---|---|
| Single-line text | string · input text | MpInput |
| Multi-line text | string · textarea | MpTextarea |
| Number | number · input number | MpInput (number) |
| Date picker | string · input date | MpDatePicker |
| Dropdown select | string · select + fixed_items | MpAutocomplete |
| Checklist / Multi-select | array · select multiple + multi_select | ActionMultiSelectField (chips) |
| Tags | array · select multiple | ActionMultiSelectField |
| Qontak user | number · select + is_rl user | existing user lookup |
| Checkbox | boolean · input checkbox | MpCheckbox |
| Unknown / future type | — not emitted | excluded from picker + telemetry |