AI Agent — custom fields on Create ticket & Create deal

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.

NEW / upgraded Existing array-type badge (blue) scalar-type badge (gray)

Screen 1 — Create ticket drawer · upgraded "Add field" picker

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.

Create ticket
Field configuration
Pipeline *
AI will auto-fill this field
Let AI decide
· · · standard fields (Stage, Ticket name, Reporter, Priority, Due date …) · · ·
NEW
Affected modulesChecklist · array
AI will select one or more values
Let AI decide
Add field
Search field
Standard fields
Stage
Source
Custom fields · from CRM
Ticket typeDropdown
Affected modulesChecklist · array
Region tagsTags · array
Cancel
Save action

Screen 2 — Array-type custom field · two modes

"Let AI decide" returns an array (constrained to allowed options). "Set manually" is a multi-value chip input constrained to the same options.

Let AI decidedefault
Affected modules
AI will pick one or more values from the allowed list
Returns an array. AI is constrained to the field's allowed options — it can't invent values.
Set manually
Affected modules
Billing Checkout Add value…
Billing
Checkout
Onboarding
Reporting

Screen 3 — Create deal drawer · parity

Same pattern on the deal action, which already ships an array-type Tags field (the existing precedent) plus a new custom array field.

Create deal
EXISTING · array precedent
TagsMulti-select · array
Inbound Add value…
Set manually
NEW · custom field
Competitor productsMulti-select · array
AI will select one or more values
Let AI decide
Add field

Screen 4 — Pipeline-scoped custom fields (refinement)

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.

a) Pipeline = Let AI decide / unset
Search field
Standard fields
Stage
Source
Custom fields · from CRM
Choose a pipeline first to load its custom fields.
b) Pipeline = Main pipeline — incl. unsupported-type exclusion (PRD v1.2 · AC-5)
Search field
Standard fields
Stage
Custom fields · Main pipeline
Ticket typeDropdown
Affected modulesChecklist · array
Resolution noteMulti-line text
1 field hidden — "Approval matrix" uses a CRM type outside the supported set. Excluded from the picker (never mis-rendered); logged as custom_field_type_unsupported.

Screen 5 — Type → component normalization (PRD v1.2 §7.1)

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 typeDescriptor (BE normalizer)FE control (existing)
Single-line textstring · input textMpInput
Multi-line textstring · textareaMpTextarea
Numbernumber · input numberMpInput (number)
Date pickerstring · input dateMpDatePicker
Dropdown selectstring · select + fixed_itemsMpAutocomplete
Checklist / Multi-selectarray · select multiple + multi_selectActionMultiSelectField (chips)
Tagsarray · select multipleActionMultiSelectField
Qontak usernumber · select + is_rl userexisting user lookup
Checkboxboolean · input checkboxMpCheckbox
Unknown / future type— not emittedexcluded from picker + telemetry