> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wittify.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Tickets & Leads

> Turn your agent into a lead-capture and ticket-creation tool. Choose which fields to ask for, set ticket and lead categories, pick a default priority, and route everything to email, Slack, or your CRM.

<Note>
  Tickets & Leads is **Step 5 (Hybrid)** or **Step 4 (Text / Voice)**. Hybrid agents see two tabs at the top of the page, **Text Agent** and **Voice Agent**, that you configure independently. Text-only and voice-only agents see only their own tab.
</Note>

## What this step does

When the agent decides a customer needs human follow-up (sales, refunds, technical escalations, scheduling), it can pause its normal answering flow and ask for the customer's details. It then files what it heard as a **Lead** (a sales opportunity) or a **Ticket** (a support request) in your inbox, and notifies you via email, Slack, or your connected CRM.

You configure how that capture happens here: which fields the agent asks for, whether each is required, what categories to tag the record with, and where the notification lands.

## Page header

The step title at the top of the main column reads **Lead & Ticket Configuration** with a subtitle: *Enable your agent to collect contact details and support tickets. Configure Text and Voice agents independently, each channel can have its own fields, instructions, and behaviour.*

## Channel tabs (Hybrid only)

A small tab switcher at the top, two pills inside a rounded container:

* **Text Agent** , configures lead capture for chat conversations.
* **Voice Agent** , configures lead capture for phone calls.

The active tab is filled with the brand gradient (indigo to purple) and white text. The inactive tab is muted. Click to switch.

When you open the Voice Agent tab on a Hybrid agent for the first time, a blue **sync banner** appears just below the tabs:

> *Voice Agent has independent settings. Changes here only affect voice calls.*

The banner has a single button on the right: **Copy from Text Agent**. Click it to deep-copy the Text Agent's full configuration (fields, custom fields, categories, priority) into the Voice Agent. After that, the two channels evolve independently, edits to one don't propagate to the other. The banner shows a success toast: *Copied from Text Agent successfully.*

Text-only and voice-only agents don't see the tab switcher or the sync banner.

## Section 1: Data Collection card

The first card on the page. It holds the master switch for the channel, the instructions textbox, and the field requirements grid.

### Enable Customer & Ticket Data Collection

A pill row at the top of the card with a switch on the left and a description on the right.

* Switch off (default): the row reads **Enable** in muted text. The rest of the card dims to 40% opacity and ignores clicks.
* Switch on: the row reads **Enabled** in primary color, the row gets a tinted background, and the body of the card becomes interactive.

Description text changes by channel:

* **Text Agent**: *When enabled, the assistant will prompt visitors to provide their details, name, email, and phone number, while also recording any inquiries for easier follow-up.*
* **Voice Agent**: *When enabled, the voice agent will verbally collect customer details during the call, name, phone, and other configured fields, before or after resolving their request.*

### Data Collection Instructions

A required textbox under the enable row. Title row reads **Data Collection Instructions** with a small **Required** chip and an info icon. Hover the icon for the tooltip:

> *Define exactly how the agent should collect leads. Be specific about when to ask, what to confirm, and how to handle incomplete info.*

| Setting             | Value                                                                                     |
| ------------------- | ----------------------------------------------------------------------------------------- |
| Field type          | Multi-line textarea, resizable, minimum height 120px                                      |
| Limit               | **2,500 characters**                                                                      |
| Placeholder (Text)  | *Define how the agent should collect customer details and create support tickets...*      |
| Placeholder (Voice) | *Define how the voice agent should verbally ask for customer details during a call...*    |
| When invalid        | Border turns red, error message reads *This field is required to enable data collection.* |

The error only appears when the channel switch is **on** but the field is empty. Filling the field clears the red border immediately.

### Field Requirements

A sub-card titled **Field Requirements** with the description: *Choose which fields should be required or optional when collecting customer information.*

The sub-card holds a 2-column grid of **field cards**. Built-in fields come first, followed by your custom fields, followed by a dashed **+ Add custom field** button.

#### Built-in fields (4)

| Field                       | Default state |
| --------------------------- | ------------- |
| **Name** (user icon)        | On, Required  |
| **Email** (envelope icon)   | Off           |
| **Phone** (phone icon)      | On, Required  |
| **Company** (building icon) | Off           |

Each built-in field card shows:

* An icon in a tinted square at the start
* The field name in bold
* A switch on the end of the header row

When the switch is **on**, two pill buttons appear below: **Required** and **Optional**. The active one is filled with primary color and white text. Customers cannot finish without filling required fields, but they can skip optional ones.

When the switch is **off**, a small caption *Off* replaces the Required / Optional pills.

You cannot delete built-in fields, you can only switch them off.

#### Custom fields (up to 10)

Below the built-in fields, you'll see any custom fields you've added. Each custom card looks the same as built-in ones, with one difference: a small **trash icon** appears in the header row that lets you delete the custom field. Click it to remove the field instantly (no confirmation, since you can re-add it).

#### Add custom field

The button below the grid reads **+ Add custom field** with a dashed border. Click it to open the inline builder.

The builder shows two parts:

1. **Choose an icon** , a 5x2 (mobile) or 10x2 (desktop) grid of 19 icons: tag, map pin, calendar, hash, briefcase, globe, credit card, file, heart, shield, clock, star, award, bookmark, flag, layers, dollar sign, percent, home. The active icon is filled with primary color.
2. **Field name input** , a single-line text input with the chosen icon at the start. Placeholder: *Field name...* Length limit: 50 characters. Press Enter or click **Add custom field** to save. Click the **X** button to cancel and close the builder without adding.

Once you reach 10 custom fields, the **+ Add custom field** button is replaced by the caption *Maximum 10 custom fields.*

## Section 2: Support Ticket Settings card

A card titled **Support Ticket Settings** with the description: *Configure how tickets are created and categorised from collected requests.*

This card and the Lead Settings card both dim to 40% opacity when the channel switch is off.

### Ticket Category Labels

A label reading **Ticket Category Labels** with a chip-style multi-select below it.

* Existing categories appear as pill chips with primary tint. Each chip has a small **X** to remove it.
* An empty input on the end of the row lets you type a new category. The placeholder reads **+ Add category...** Press Enter to add.
* Hint below the row: *Press Enter to add. Click the x to remove.*

| Limit                   | Value                                                                                    |
| ----------------------- | ---------------------------------------------------------------------------------------- |
| Max categories          | **20** per channel                                                                       |
| Max length per category | **50 characters**                                                                        |
| Duplicates              | Case-insensitive deduplication. Adding *Sales* when *sales* exists is rejected silently. |

The agent comes pre-seeded with 5 default ticket categories: **General Inquiry**, **Technical Support**, **Billing**, **Sales**, **Complaint**. You can rename, remove, or add more.

### Default Ticket Priority

A 4-button row labelled **Default Ticket Priority**:

| Priority          | When to use                                                    |
| ----------------- | -------------------------------------------------------------- |
| **Low** (default) | General inquiries, FAQs, anything that can wait.               |
| **Medium**        | Standard support requests, billing questions.                  |
| **High**          | Account issues, missed deliveries, anything customer-blocking. |
| **Critical**      | Outages, refunds, escalations the agent flagged as urgent.     |

The active button has a primary border and primary tinted background. You can change priority per-record after capture, this is just the default the agent uses when it doesn't have evidence to pick higher.

## Section 3: Lead Classification Settings card

Titled **Lead Classification Settings** with the description: *Configure how leads are categorised and prioritised from collected customer information.*

Same shape as the Ticket card but for leads.

### Lead Category Labels

Same chip-style picker as Ticket Categories, with the same 20-item / 50-char / case-insensitive rules. Pre-seeded with 5 default lead categories: **Sales Lead**, **Partnership**, **Demo Request**, **Pricing Inquiry**, **General Interest**.

### Default Lead Priority

Same 4-button picker as Ticket Priority. Default is **Low**.

## Section 4: Notifications & Integrations card

Titled **Notifications & Integrations** with the description: *Route leads and tickets to your CRM or notification channels automatically.*

This card is **shared between Text and Voice channels**, switching tabs doesn't change what's connected here. Disconnect actions on every row require an explicit confirmation.

### Email Notification row

| Element       | Behavior                                                                                |
| ------------- | --------------------------------------------------------------------------------------- |
| Icon          | Envelope, in a blue tinted square                                                       |
| Title         | **Email Notification**                                                                  |
| Subtitle      | *receives new leads & tickets*                                                          |
| Status chip   | **Connected** (green pill with checkmark) by default, or **Not connected** (muted pill) |
| Action button | **Disconnect** when connected (red border + red text), **Connect** when not             |

The default email is your account email. Clicking **Disconnect** opens a confirmation dialog: *Are you sure you want to disconnect Email Notification? You will stop receiving notifications through this channel.* Cancel to go back, or click the red **Disconnect** button to confirm.

### Slack row

| Element       | Behavior                                                       |
| ------------- | -------------------------------------------------------------- |
| Icon          | A # symbol in a muted square                                   |
| Title         | **Slack**                                                      |
| Subtitle      | *Post new leads and tickets to a Slack channel*                |
| Status chip   | Same as Email                                                  |
| Action button | **Connect** to start the Slack OAuth, **Disconnect** to remove |

Disconnecting Slack opens the same confirmation dialog as Email.

### Webhook / CRM row

A combined row that lets you pick a single CRM provider or a custom webhook.

| Element       | Behavior                                                                                                                              |
| ------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| Icon          | Link icon in a primary tinted square                                                                                                  |
| Title         | **Webhook / CRM**                                                                                                                     |
| Subtitle      | *Send lead data to any CRM or endpoint via HTTP POST* (when nothing is connected) or **Connected: {provider}** (when one is selected) |
| Status chip   | Same green / muted pattern as the other rows                                                                                          |
| Action button | **Configure** with a chevron when nothing is connected, **Disconnect** (red) when one is                                              |

Click **Configure** to open a dropdown picker titled **CONNECT A CRM**. Five rows of provider options:

| Provider           | Description                         |
| ------------------ | ----------------------------------- |
| **Zoho CRM**       | *Sync leads & tickets to Zoho*      |
| **Zendesk**        | *Create tickets in Zendesk Support* |
| **HubSpot**        | *Push contacts & deals to HubSpot*  |
| **Salesforce**     | *Sync leads to Salesforce CRM*      |
| **Custom Webhook** | *POST data to any HTTP endpoint*    |

Each row has a connect chip on the end (**Connect**, or **Set up** for the Custom Webhook). Click a row to select that provider, the dropdown closes, the Webhook / CRM row updates to show the connected status.

Below the five rows, a sixth highlighted entry reads **Add via MCP** with the subtitle *Connect any tool using Model Context Protocol*. Clicking it just closes the dropdown for now, full MCP wiring lives in [Step 6 — Integrations & Tools](/en/Systems/AI-Agents/Wizard/Integrations-and-Tools).

Click the **X** in the top-right of the dropdown to close without selecting.

Disconnecting a CRM opens the standard confirmation dialog: *Are you sure you want to disconnect {provider}? You will stop receiving notifications through this channel.*

## Field order in the captured record

Always: **Name → Phone → Email → Company → custom fields** (in the order you added them). This stays consistent regardless of which fields are turned on, so your inbox and CRM rows look the same across all your agents.

## Live preview

The right-side preview pane reflects everything you set up here:

* When the channel switch is **off**, the preview shows the agent in normal chat mode and a status pill below the widget reads **Lead Collection Off** (or **Voice, Lead Off**).
* When **on**, the preview chat injects a **Your Details** card with the configured fields. A status pill reads **Lead Collection Active** (or **Voice, Lead Active**) and a panel below the widget shows **Will ask for:** with each field listed.

For voice, the in-call placeholder reads *Collecting customer info...* or *Waiting for customer...* depending on the agent's mode.

When data collection is disabled, the entire form section in the preview dims to indicate it isn't being used.

## How saves work on this step

Same as every other wizard step: clicking **Save Draft** writes only this step's fields, and **Next step** auto-saves before moving forward. The instructions error (red border + *This field is required to enable data collection.*) blocks save while it's showing.

Connecting / disconnecting Email, Slack, or a CRM persists immediately on click, you don't need to save the step for those changes to stick.

## Common questions

<AccordionGroup>
  <Accordion title="The agent asks for everything every time. Can I make it ask only when needed?">
    Yes, that's exactly what the **Data Collection Instructions** field is for. Tell the agent when to trigger collection. For example: *Only ask for contact details when the customer requests a callback, demo, or refund. Don't interrupt general questions.* Be specific.
  </Accordion>

  <Accordion title="Why are Required / Optional pills disabled on a field?">
    A field has to be turned **On** before you can mark it Required or Optional. Switch the field on first, then choose.
  </Accordion>

  <Accordion title="I added a custom field but the agent never asks for it.">
    Two checks: (1) the custom field's switch is **on**, and (2) your data collection instructions tell the agent when this information matters. The agent decides what to ask for based on the conversation context plus your instructions.
  </Accordion>

  <Accordion title="Can I have different category lists for Text and Voice?">
    Yes. The Text and Voice tabs are fully independent. Edit Text categories first, then switch to the Voice tab and edit there. The **Copy from Text Agent** button on the Voice tab is a one-time deep-copy, after that they're separate.
  </Accordion>

  <Accordion title="My CRM provider isn't in the list.">
    Use **Custom Webhook** to POST captured records to any HTTPS endpoint, or jump to [Step 6 , Integrations & Tools](/en/Systems/AI-Agents/Wizard/Integrations-and-Tools) and connect via the marketplace or MCP.
  </Accordion>

  <Accordion title="I disconnected Email by accident. Will I lose past tickets?">
    No. Disconnecting Email only stops new notifications from being sent. Tickets and leads already in your inbox stay there. Reconnect to resume notifications.
  </Accordion>

  <Accordion title="The agent asked the customer for the same field twice.">
    Tighten the instructions: *Confirm fields you've already collected before re-asking.* Also confirm the field isn't appearing twice (once as a built-in and once as a custom field with the same meaning).
  </Accordion>
</AccordionGroup>

## Next

<Card title="Step 6: Integrations & Tools" icon="puzzle-piece" href="/en/Systems/AI-Agents/Wizard/Integrations-and-Tools">
  Connect 21+ apps via the Marketplace, add MCP connectors, configure agent tools, build Custom API tools, set webhooks.
</Card>
