> This page is for Assistant Platform.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.moveworks.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.moveworks.com/_mcp/server.

# Channel Resolver Integration - Freshservice

A FreshService Administrator within your organization will need to implement the following webhooks so that we can sync comments in the shared channel to FreshService.

## Navigating to the Workflow Automator page

1. **Navigate to the Admin panel of your Freshservice instance.** This can be found by clicking the gear icon at the bottom of the vertical nav bar on the left of the page. Alternatively, `[yourcompany.freshservice.com/admin/home](http://yourcompany.freshservice.com/admin/home)` should link to the Admin Panel.\
   ![](https://files.readme.io/bbad0a0-Screen_Shot_2022-06-06_at_1.54.12_PM_1.png)
2. Scroll to the “Helpdesk Productivity” section of the Admin panel and click **Workflow Automator**.\
   ![](https://files.readme.io/785f9ca-Screen_Shot_2022-06-06_at_1.59.20_PM_1.png)

## Creating a “Ticket Raised” Webhook

The workflow goes like this: ticket is raised → make request to Freshservice API to get the conversations on that ticket → send ticket data and conversations to Moveworks webhook.

1. Create a new Workflow Automator by selecting “New Automator” and then “Ticket” in the top-right of your screen. Enter the title and description of your Workflow Automator.\
   Create a new Workflow Automator by selecting **New Automator** and then **Ticket** in the top-right of your screen. Enter the title and description of your Workflow Automator.\
   ![](https://files.readme.io/bd9f1e0-Screen_Shot_2022-06-06_at_2.01.43_PM_1.png)
2. On the Workflow Automator platform, create an “Event” for when a `Ticket is raised`.\
   ![](https://files.readme.io/29ddbbb-Screen_Shot_2022-06-07_at_3.27.04_PM_1.png)
3. Drag and drop a blue “Action” block to the end of the green “Event” block you just created.\
   ![](https://files.readme.io/ba3fde2-Screen_Shot_2022-06-28_at_10.25.02_AM_1.png)
   1. Enter `Trigger Webhook` for the action
   2. Select `POST` for the “Request Type”
   3. Input `https://app.moveworks.ai/{org_name}/fresh_service/fresh_service/events` for the “Callback URL”
   4. Select `Inline Credential` for “Credentials” and `API key` for “Authentication Type”. Enter the password generated in the above step.
   5. Under “Encoding”, select `JSON` on line 1 and `Advanced` on line 2.
   6. Copy and paste the following text into the “Content” section.
      ```
      {
      	"event_type": "ticket_created",
      	"timestamp": "{{current_date_and_time}}",
      	"ticket": {
      		"id": "{{ticket.id}}",
      		"subject": "{{ticket.subject}}",
      		"description_text": "{{ticket.description | strip_html}}",
      		"requester_id": {{ticket.requester.id}},
      		{% if ticket.agent.id != blank %}"responder_id": {{ticket.agent.id}},{% endif %}
      		"created_at": "{{ticket.created_at}}",
      		"updated_at": "{{ticket.created_at}}",
      		"type": "{{ticket.ticket_type}}",
      		"status": "{{ticket.status}}"
      	},
      	"conversation": {},
      	"user": {
      		"id": {{event_performer_id}},
      		"name": "{{event_performer_name}}",
      		"email": "{{event_performer_email}}"
      	}
      }
      ```

## Creating a “Ticket Updated” Webhook

Unfortunately, due to the severe functional limitations of the Freshservice Workflow Automator, we need to create a separate Workflow Automator to setup a webhook that triggers on ticket updates. Here's how:

Repeat Steps 1-5 from above. For Step 4, select the `Ticket is` `updated` for the event trigger. For Step 5, copy the following code block into the Content section. The only difference is that the `“event_type”` field is now `“ticket_updated”`.

```
{
	"event_type": "ticket_updated",
	"timestamp": "{{current_date_and_time}}",
	"ticket": {
		"id": "{{ticket.id}}",
		"subject": "{{ticket.subject}}",
		"description_text": "{{ticket.description | strip_html}}",
		"requester_id": {{ticket.requester.id}},
		{% if ticket.agent.id != blank %}"responder_id": {{ticket.agent.id}},{% endif %}
		"created_at": "{{ticket.created_at}}",
		"updated_at": "{{ticket.created_at}}",
		"type": "{{ticket.ticket_type}}",
		"status": "{{ticket.status}}"
	},
	"conversation": {},
	"user": {
		"id": {{event_performer_id}},
		"name": "{{event_performer_name}}",
		"email": "{{event_performer_email}}"
	}
}
```

## Creating a “Comment Created” Webhook

Again, we must create a new Workflow Automator to support a new type of event: this time it’s comment creation. Once again, follow Steps 1-5 of the “Ticket Raised” section. For Step 4, select `Note added is of type` `public` and  `Reply is sent` for the event triggers. For Step 5, copy the following code block into the Content section. The only differences are that the `“event_type”` field is now `“comment_created”` and that `conversation` has the value `{{ticket.latest_public_comment}}`.

![](https://files.readme.io/e94ce6a-Screen_Shot_2022-07-14_at_1.57.19_PM_1.png)

```
{
	"event_type": "comment_created",
	"timestamp": "{{current_date_and_time}}",
	"ticket": {
		"id": "{{ticket.id}}",
		"subject": "{{ticket.subject}}",
		"description_text": "{{ticket.description | strip_html}}",
		"requester_id": {{ticket.requester.id}},
		{% if ticket.agent.id != blank %}"responder_id": {{ticket.agent.id}},{% endif %}
		"created_at": "{{ticket.created_at}}",
		"updated_at": "{{ticket.created_at}}",
		"type": "{{ticket.ticket_type}}",
		"status": "{{ticket.status}}"
	},
	"conversation": {
    "body_text": "{{ticket.latest_public_comment | strip_html}}",
    "user_id": {{event_performer_id}},
    "private": false,
    "created_at": "{{current_date_and_time}}"
  },
	"user": {
		"id": {{event_performer_id}},
		"name": "{{event_performer_name}}",
		"email": "{{event_performer_email}}"
	}
}
```

## Post Install Verification

After these steps have been completed, please inform your Moveworks Customer Success team so that they can move forward with finishing the configuration.

#