# Channels

The **Settings > Configuration > Channels** configurations control how tickets display within Aisera channels and how session variables are defined for your tenant. These are tenant-level settings that apply to all bots.

## Channel configurations

### Channel Display JSON

| **Type**    | JSON                                       |
| ----------- | ------------------------------------------ |
| **Default** | `{ "listFields": [], "detailFields": [] }` |

Controls which ticket fields appear in ticket lists and detail views. This configuration applies to tickets displayed within Aisera channels.

When this field is empty, Aisera displays a default set of ticket fields. To customize which fields appear and how tickets are displayed, provide a JSON object with the field definitions shown below.

The configuration accepts a JSON object with the following properties:

* `listFields`: An array defining which fields appear in ticket lists. Each entry specifies a field name and its display label.
* `detailFields`: An array defining which fields appear when viewing a single ticket's details. Each entry specifies a field name and its display label.
* `displayComments`: Controls whether ticket comments appear in the detail view. Set to `true` to show comments, or `false` to hide them.
* `displayDescInList`: Controls whether ticket descriptions appear in ticket lists. Set to `true` to show descriptions in lists, or `false` to hide them.
* `displayDescInCard`: Controls whether ticket descriptions appear in the ticket detail view. Set to `true` to show the description, or `false` to hide it.
* `displayIdLink`: Controls whether the ticket ID displays as a clickable link. Set to `true` to make the ID clickable, or `false` to display it as plain text.
* `sessionVars`: An array defining custom fields to track in conversation sessions. Each entry requires a field name, display label, and field type.

#### Field specifications

When defining fields in `listFields` or `detailFields`, each entry must include:

* `name`: The field identifier from your ticketing system
* `label`: The text displayed to users for this field

Available field names depend on your ticket system configuration. Common ticket fields include:

* `displayId`: The ticket identifier
* `status`: Current ticket status
* `priority`: Ticket priority level
* `assignedTo`: User assigned to the ticket
* `reporterId`: User who created the ticket
* `modifiedDate`: Last modification timestamp

These are Aisera-internal field names mapped from your ITSM system's fields.

#### Session variables

The `sessionVars` property defines custom fields stored during conversation sessions. Each session variable requires:

* `field`: The internal field name
* `label`: The text displayed to users
* `type`: The data type for this field

These fields become available for filtering and display within the conversation session for your tenant.

#### Example configuration

```json
{
  "listFields": [
    { "name": "displayId", "label": "ID" },
    { "name": "status", "label": "Status" },
    { "name": "priority", "label": "Priority" }
  ],
  "detailFields": [
    { "name": "displayId", "label": "ID" },
    { "name": "assignedTo", "label": "Assignee" },
    { "name": "status", "label": "Status" },
    { "name": "priority", "label": "Priority" },
    { "name": "modifiedDate", "label": "Modified" }
  ],
  "displayComments": true,
  "displayDescInList": false,
  "displayDescInCard": true,
  "displayIdLink": false,
  "sessionVars": [
    { "field": "requestType", "label": "Request Type", "type": "String" }
  ]
}
```

This configuration displays ID, status, and priority in ticket lists. The detail view shows ID, assignee, status, priority, modified date, comments, and the ticket description. The ticket ID displays as plain text. A custom "Request Type" field is available in conversation sessions.

{% hint style="warning" %}
Invalid JSON syntax prevents the Aisera platform from parsing the configuration and may display default fields or no fields at all. Validate the JSON before saving.&#x20;
{% endhint %}

### Jira Webchat Configuration

| **Type**    | JSON           |
| ----------- | -------------- |
| **Default** | Not configured |

Accepts a JSON string where each channel token maps to display conditions such as in the following example:

```json
{
  "abc123channeltoken": {
    "conditions": [
        {
          "condition": "jira_expression",
          "params": {
            "expression": "project.key==PROJECTKEY"
        }      
      }
    ]
  }
}
```

This field controls when the Aisera webchat widget appears in a Jira Service Management portal based on the conditions in the provided JSON.

Without conditions configured, the webchat displays on all Jira Service Management portals. With conditions, the webchat only appears when specified conditions evaluate to true.

**Multiple Jira instances:** If you have two different Jira instances, define the conditions against the correct channel token for each instance.

### Session Variables

| **Type**    | Table          |
| ----------- | -------------- |
| **Default** | Not configured |

Define custom fields that capture and store data throughout a conversation session. Session variables persist from the start of a conversation through all interactions and are accessible in flows, request filtering, and reporting.

Session variables defined in the table interface and those defined directly in the JSON are the same data. Aisera extracts session variables from the JSON to display them in the table, then merges them back when you save. Changes made in either location affect the same underlying configuration.

Session variables are stored within the Channel Display JSON configuration but are presented as a separate table interface for easier management. When you add session variables using the table, they are automatically merged into the Channel Display JSON when saved.

See also: Channel Display JSON. You can define session variables directly in the JSON under the `sessionVars` property.

Configure session variables by clicking **+ Add Session Variable** in the **Channel** section of the configurations menu. Each session variable requires three pieces of information.

#### Variable name

The identifier used to access this session variable. Use this name when referencing the variable in flows or queries.

Variable names must be unique across your tenant and cannot contain periods.

#### Variable key

Maps this session variable to a request field for filtering and correlation. This field is optional — leave it blank if you do not need to correlate session variable data with request fields.

For example, if you set the key to `Priority`, Aisera displays only session variable values where the priority matches each request's priority field.

#### Display name

The label shown in the UI for this session variable.
