> For the complete documentation index, see [llms.txt](https://docs.harmony.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.harmony.io/settings/configuring-service-catalog-forms-and-fields.md).

# Configuring Service Catalog Forms and Fields

Service Catalog forms let you collect structured information from employees when they submit requests. By configuring fields carefully - including field types, visibility rules, and who fills in what - you can reduce back-and-forth, improve ticket quality, and route requests more accurately.

This article covers how to configure Service Catalog form fields, including attachment fields, desk-member-filled fields, and conditional logic rules.

***

### Adding and Configuring Form Fields

Each Service Catalog form can include multiple fields to capture the information your team needs. When building or editing a form, you can configure each field with the following options:

* **Field type** - Choose from text, dropdown, attachment, and other supported input types.
* **Label and description** - Give each field a clear name and, optionally, a description to guide the submitter.
* **Required or optional** - Mark fields as mandatory to ensure employees provide the information before submitting, or leave them optional.

To access form configuration, navigate to **Settings > Service Catalog**, select the relevant catalog item, and open its form editor.

***

### Attachment Fields

You can add an attachment field to any Service Catalog form, allowing employees to upload one or more files as part of their request. Attachment fields are fully supported across Slack, the Employee Portal, and Microsoft Teams.

#### Adding an Attachment Field

1. Open the form editor for the relevant catalog item.
2. Add a new field and select **Attachment** as the field type.
3. Configure the following options:

| Option                  | Description                                                                                                                           |
| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| **Required / Optional** | Mark the field as mandatory if the attachment is needed before the request can proceed, or leave it optional.                         |
| **Button label**        | Customize the label on the upload button to give employees clear context - for example, "Upload your invoice" or "Attach screenshot". |
| **Description**         | Add a description to communicate expected file formats, size limits, or any other guidance relevant to the upload.                    |

4. Save your changes.

Employees will see the configured upload button and description when filling out the form, regardless of which supported channel they use.

***

### Desk-Member-Filled Fields

Some fields are best completed by your IT desk team rather than the person submitting the request. For example, an asset assignment field may only be relevant once a desk member reviews the ticket. You can mark specific fields as "filled by desk member" so employees are not blocked from submitting their request when those fields are empty.

#### How It Works

* Any form field - including required fields - can be individually flagged as **filled by desk member**.
* When a field is flagged this way, employees can submit their request without completing that field.
* After the ticket is created, desk members can open the ticket and fill in those fields directly.

#### Configuring a Field as Desk-Member-Filled

1. Open the form editor for the relevant catalog item.
2. Select the field you want to configure.
3. Enable the **Filled by desk member** option for that field.
4. Save your changes.

Employees submitting a request will not be prompted to complete desk-member-filled fields, even if those fields are otherwise marked as required. Desk members retain full ability to update these fields on any existing ticket.

***

### Conditional Logic

Conditional logic allows you to show, hide, or require fields based on the values that employees enter in other fields. This creates a more focused, relevant experience by surfacing only the fields that apply to each specific request.

#### How Conditional Logic Is Evaluated

Conditional rules are evaluated by the platform in real time - directly in the form interface - before any AI processing occurs. This means:

* Fields appear or hide **instantly** as employees fill out the form, without any delay.
* Routing rules and branching logic respond immediately to user input.
* The experience is smooth and responsive across all supported channels.

#### Condition Types

You can configure the following conditional rules on any field:

| Rule Type   | Behavior                                                       |
| ----------- | -------------------------------------------------------------- |
| **SHOW**    | The field is only visible when a specified condition is met.   |
| **HIDE**    | The field is hidden when a specified condition is true.        |
| **REQUIRE** | The field becomes mandatory when a specified condition is met. |

#### Validation at Ticket Submission

When a ticket is submitted, Harmony evaluates all conditional field logic in real time against the actual values provided. This ensures the rules you configure behave correctly end-to-end, not just within the form settings interface.

The following validation rules apply at submission:

* **SHOW rules** - If a field is only visible when a condition is met and that condition is not met, any value submitted for that hidden field will be flagged as invalid.
* **HIDE rules** - If a field is hidden because a condition is true, any submitted value for that field will be rejected.
* **REQUIRE rules** - Required conditions are enforced based on the actual submitted values, ensuring mandatory fields are completed when their conditions are triggered.

This end-to-end validation prevents inconsistent or unexpected data from reaching your team, keeping ticket quality high.

#### Setting Up Conditional Logic

1. Open the form editor for the relevant catalog item.
2. Select the field you want to apply a condition to.
3. Choose the condition type - **SHOW**, **HIDE**, or **REQUIRE**.
4. Define the condition by selecting the source field and the value that triggers the rule.
5. Save your changes.

You can add multiple conditions to a single field as needed. Test your form after saving to confirm fields appear, hide, and become required as expected.

***

### Best Practices

* Use **desk-member-filled** fields for information only your IT team can provide - such as asset assignments, internal codes, or approval-related data - to avoid blocking employees from submitting requests.
* Add **descriptions** to attachment fields to set clear expectations around file types and sizes.
* Keep **conditional logic** focused and predictable. Avoid deeply nested conditions that may be difficult to maintain or test.
* After making changes to conditional logic, always submit a test request to verify that SHOW, HIDE, and REQUIRE rules behave as intended from the employee's perspective.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.harmony.io/settings/configuring-service-catalog-forms-and-fields.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
