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

# Workflows

> Configure Freshservice workflow actions in Rootly to create and update tickets and tasks from incidents with assignment, status, and category controls.

## Overview

The Freshservice integration provides four workflow actions for managing tickets and tasks. If you are unfamiliar with how Genius workflows work, visit the [Workflows](/workflows) documentation first.

## Available Workflow Actions

### Create a Freshservice Ticket

This action creates a new ticket in Freshservice.

| Field                     | Description                                                             | Required |
| ------------------------- | ----------------------------------------------------------------------- | -------- |
| **Name**                  | Display name for this workflow action                                   |          |
| **Request User Email**    | Email of the requester. Must exist in Freshservice. Supports Liquid     | Yes      |
| **Subject**               | Ticket subject line. Supports Liquid                                    | Yes      |
| **Description**           | Ticket body. Supports Liquid                                            |          |
| **Tags**                  | Comma-separated tags to apply to the ticket. Supports Liquid            |          |
| **CC Emails**             | Additional email addresses to CC on the ticket                          |          |
| **Priority**              | Ticket priority. **Auto** mirrors the incident severity                 |          |
| **Status**                | Ticket status. **Auto** mirrors the incident status                     |          |
| **Custom Fields Mapping** | JSON mapping Freshservice custom field names to values. Supports Liquid |          |

**Priority mapping (Auto)**

| Rootly Severity | Freshservice Priority |
| --------------- | --------------------- |
| Critical        | Urgent (4)            |
| High            | High (3)              |
| Medium          | Medium (2)            |
| Low             | Low (1)               |

**Status mapping (Auto)**

| Rootly Status | Freshservice Status |
| ------------- | ------------------- |
| Started       | Open (2)            |
| Mitigated     | Open (2)            |
| Resolved      | Resolved (4)        |

***

### Update a Freshservice Ticket

This action updates an existing Freshservice ticket.

<Callout icon="info" color="#DBEAFE">
  When a **Create a Freshservice Ticket** action runs, Rootly stores the resulting ticket ID on the incident record. Reference it in subsequent update actions using Liquid variables.
</Callout>

| Field                     | Description                                          | Required |
| ------------------------- | ---------------------------------------------------- | -------- |
| **Name**                  | Display name for this workflow action                |          |
| **Ticket ID**             | Freshservice ticket ID to update. Supports Liquid    | Yes      |
| **Subject**               | Updated ticket subject. Supports Liquid              | Yes      |
| **Description**           | Updated ticket description. Supports Liquid          |          |
| **Tags**                  | Updated tags. Supports Liquid                        |          |
| **Priority**              | Updated priority                                     |          |
| **Status**                | Updated ticket status                                |          |
| **Custom Fields Mapping** | Updated custom field values as JSON. Supports Liquid |          |

***

### Create a Freshservice Task

This action creates a task within an existing Freshservice ticket.

| Field                | Description                                                      | Required |
| -------------------- | ---------------------------------------------------------------- | -------- |
| **Name**             | Display name for this workflow action                            |          |
| **Parent Ticket ID** | Freshservice ticket ID to create the task under. Supports Liquid | Yes      |
| **Title**            | Task title. Supports Liquid                                      | Yes      |
| **Description**      | Task description. Supports Liquid                                |          |
| **Status**           | Task status. **Auto** mirrors the incident or action item status | Yes      |

**Task status mapping (Auto)**

| Rootly Status    | Freshservice Task Status |
| ---------------- | ------------------------ |
| Open             | Open (1)                 |
| In Progress      | In Progress (2)          |
| Done / Cancelled | Completed (3)            |

***

### Update a Freshservice Task

This action updates an existing task within a Freshservice ticket.

| Field                | Description                                                 | Required |
| -------------------- | ----------------------------------------------------------- | -------- |
| **Name**             | Display name for this workflow action                       |          |
| **Parent Ticket ID** | Freshservice ticket ID containing the task. Supports Liquid | Yes      |
| **Task ID**          | Freshservice task ID to update. Supports Liquid             | Yes      |
| **Title**            | Updated task title. Supports Liquid                         |          |
| **Description**      | Updated task description. Supports Liquid                   |          |
| **Status**           | Updated task status                                         | Yes      |

***

## Troubleshooting

<AccordionGroup>
  <Accordion title="Ticket creation fails with a requester not found error" icon="circle-exclamation">
    The email provided in the **Request User Email** field must correspond to an existing Freshservice contact or agent. Verify the email address exists in your Freshservice account before creating tickets.
  </Accordion>

  <Accordion title="Custom fields are not being set" icon="sliders">
    Custom field names in the **Custom Fields Mapping** JSON must match the field names as they appear in the Freshservice API (typically snake\_case). Check your Freshservice admin settings under **Admin > Custom Fields** to confirm the correct field names.
  </Accordion>
</AccordionGroup>
