Skip to Content
CraftBot Docs v1 — internal preview
Admin & SettingsDisposition forms

Disposition forms

A disposition form is the post-conversation form an agent fills in on close. It captures structured outcome data (resolution reason, follow-up needed, satisfaction signal, etc.) and surfaces in conversation analytics.

Creating a form

  1. Settings → Disposition Forms → + New.
  2. Name (e.g. Standard close).
  3. Default form — when ticked, this form is used when an agent closes a conversation that is not scoped to a department.
  4. Active — inactive forms stay in history but are hidden from the close picker.
  5. Department scope — optional chip multi-select. When set, this form is used only when closing conversations assigned to one of these departments.
  6. Fields — add one or more fields in display order. Each field has:
    • Key — snake_case identifier, unique within the form.
    • Type — Short text / Long text / Select (one) / Multi-select / Rating / Yes-No / Date.
    • Label — bilingual (English + Arabic).
    • Required — agents cannot close the conversation until the field is filled in.
    • Options — required for Select and Multi-select. Each option has a value (snake_case), English label, and Arabic label.

Use the up/down arrows on each field card to reorder.

How form selection works on close

When the agent clicks Close, the runtime picks the form like this:

  1. If the conversation has an assigned team that belongs to a department, the active form whose department scope contains that department is used.
  2. Otherwise, the active form marked Default form is used.
  3. If no form matches, the conversation can be closed without a disposition.

Only one form fires per close — the agent fills it in before the conversation transitions to Closed state.

Best practices

  • Start with a single default form covering the universal fields (Resolution reason, Follow-up needed). Add department-scoped forms only when a department genuinely needs different data.
  • Mark high-signal fields as Required, but be sparing — every required field is a click the agent must make before close. Heavy forms slow throughput.
  • Use Select (one) for analytics-friendly reasons (the values aggregate cleanly). Reserve Free text for “notes” or “other reason” follow-ups.
  • Stable keys matter — historical responses store the field key as their column. Renaming a key effectively creates a new field; the old responses won’t aggregate together.

Deleting a form

Removes the form from active pickers. Historical conversation closures that recorded this form keep their captured data unchanged — the values stored at close time stay on those conversations.

Last updated on