Get the FREE Ultimate OpenClaw Setup Guide →

freshservice-automation

npx machina-cli add skill davepoon/buildwithclaude/freshservice-automation --openclaw
Files (1)
SKILL.md
8.2 KB

Freshservice Automation via Rube MCP

Automate Freshservice IT Service Management operations through Composio's Freshservice toolkit via Rube MCP.

Toolkit docs: composio.dev/toolkits/freshservice

Prerequisites

  • Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
  • Active Freshservice connection via RUBE_MANAGE_CONNECTIONS with toolkit freshservice
  • Always call RUBE_SEARCH_TOOLS first to get current tool schemas

Setup

Get Rube MCP: Add https://rube.app/mcp as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.

  1. Verify Rube MCP is available by confirming RUBE_SEARCH_TOOLS responds
  2. Call RUBE_MANAGE_CONNECTIONS with toolkit freshservice
  3. If connection is not ACTIVE, follow the returned auth link to complete Freshservice authentication
  4. Confirm connection status shows ACTIVE before running any workflows

Core Workflows

1. List and Search Tickets

When to use: User wants to find, list, or search for tickets

Tool sequence:

  1. FRESHSERVICE_LIST_TICKETS - List tickets with optional filtering and pagination [Required]
  2. FRESHSERVICE_GET_TICKET - Get detailed information for a specific ticket [Optional]

Key parameters for listing:

  • filter: Predefined filter ('all_tickets', 'deleted', 'spam', 'watching')
  • updated_since: ISO 8601 timestamp to get tickets updated after this time
  • order_by: Sort field ('created_at', 'updated_at', 'status', 'priority')
  • order_type: Sort direction ('asc' or 'desc')
  • page: Page number (1-indexed)
  • per_page: Results per page (1-100, default 30)
  • include: Additional fields ('requester', 'stats', 'description', 'conversations', 'assets')

Key parameters for get:

  • ticket_id: Unique ticket ID or display_id
  • include: Additional fields to include

Pitfalls:

  • By default, only tickets created within the past 30 days are returned
  • Use updated_since to retrieve older tickets
  • Each include value consumes additional API credits
  • page is 1-indexed; minimum value is 1
  • per_page max is 100; default is 30
  • Ticket IDs can be the internal ID or the display_id shown in the UI

2. Create a Ticket

When to use: User wants to log a new incident or request

Tool sequence:

  1. FRESHSERVICE_CREATE_TICKET - Create a new ticket [Required]

Key parameters:

  • subject: Ticket subject line (required)
  • description: HTML description of the ticket (required)
  • status: Ticket status - 2 (Open), 3 (Pending), 4 (Resolved), 5 (Closed) (required)
  • priority: Ticket priority - 1 (Low), 2 (Medium), 3 (High), 4 (Urgent) (required)
  • email: Requester's email address (provide either email or requester_id)
  • requester_id: User ID of the requester
  • type: Ticket type ('Incident' or 'Service Request')
  • source: Channel - 1 (Email), 2 (Portal), 3 (Phone), 4 (Chat), 5 (Twitter), 6 (Facebook)
  • impact: Impact level - 1 (Low), 2 (Medium), 3 (High)
  • urgency: Urgency level - 1 (Low), 2 (Medium), 3 (High), 4 (Critical)

Pitfalls:

  • subject, description, status, and priority are all required
  • Either email or requester_id must be provided to identify the requester
  • Status and priority use numeric codes, not string names
  • Description supports HTML formatting
  • If email does not match an existing contact, a new contact is created

3. Bulk Update Tickets

When to use: User wants to update multiple tickets at once

Tool sequence:

  1. FRESHSERVICE_LIST_TICKETS - Find tickets to update [Prerequisite]
  2. FRESHSERVICE_BULK_UPDATE_TICKETS - Update multiple tickets [Required]

Key parameters:

  • ids: Array of ticket IDs to update (required)
  • update_fields: Dictionary of fields to update (required)
    • Allowed keys: 'subject', 'description', 'status', 'priority', 'responder_id', 'group_id', 'type', 'tags', 'custom_fields'

Pitfalls:

  • Bulk update performs sequential updates internally; large batches may take time
  • All specified tickets receive the same field updates
  • If one ticket update fails, others may still succeed; check response for individual results
  • Cannot selectively update different fields per ticket in a single call
  • Custom fields must use their internal field names, not display names

4. Create Ticket via Outbound Email

When to use: User wants to create a ticket by sending an outbound email notification

Tool sequence:

  1. FRESHSERVICE_CREATE_TICKET_OUTBOUND_EMAIL - Create ticket with email notification [Required]

Key parameters:

  • email: Requester's email address (required)
  • subject: Email subject / ticket subject (required)
  • description: HTML email body content
  • status: Ticket status (2=Open, 3=Pending, 4=Resolved, 5=Closed)
  • priority: Ticket priority (1=Low, 2=Medium, 3=High, 4=Urgent)
  • cc_emails: Array of CC email addresses
  • email_config_id: Email configuration ID for the sender address
  • name: Requester name

Pitfalls:

  • This creates a standard ticket via the /api/v2/tickets endpoint while sending an email
  • If the email does not match an existing contact, a new contact is created with the provided name
  • email_config_id determines which email address the notification appears to come from

5. Create Service Requests

When to use: User wants to submit a service catalog request

Tool sequence:

  1. FRESHSERVICE_CREATE_SERVICE_REQUEST - Create a service request for a catalog item [Required]

Key parameters:

  • item_display_id: Display ID of the catalog item (required)
  • email: Requester's email address
  • quantity: Number of items to request (default: 1)
  • custom_fields: Custom field values for the service item form
  • parent_ticket_id: Display ID of a parent ticket (for child requests)

Pitfalls:

  • item_display_id can be found in Admin > Service Catalog > item URL (e.g., /service_catalog/items/1)
  • Custom fields keys must match the service item form field names
  • Quantity defaults to 1 if not specified
  • Service requests follow the approval workflow defined for the catalog item

Common Patterns

Status Code Reference

CodeStatus
2Open
3Pending
4Resolved
5Closed

Priority Code Reference

CodePriority
1Low
2Medium
3High
4Urgent

Pagination

  • Use page (1-indexed) and per_page (max 100) parameters
  • Increment page by 1 each request
  • Continue until returned results count < per_page
  • Default page size is 30

Finding Tickets by Date Range

1. Call FRESHSERVICE_LIST_TICKETS with updated_since='2024-01-01T00:00:00Z'
2. Optionally add order_by='updated_at' and order_type='desc'
3. Paginate through results

Known Pitfalls

Numeric Codes:

  • Status and priority use numeric values, not strings
  • Source channel uses numeric codes (1-6)
  • Impact and urgency use numeric codes (1-3 or 1-4)

Date Filtering:

  • Default returns only tickets from the last 30 days
  • Use updated_since parameter for older tickets
  • Date format is ISO 8601 (e.g., '2024-01-01T00:00:00Z')

Rate Limits:

  • Freshservice API has per-account rate limits
  • Each include option consumes additional API credits
  • Implement backoff on 429 responses

Response Parsing:

  • Response data may be nested under data or data.data
  • Parse defensively with fallback patterns
  • Ticket IDs are numeric integers

Quick Reference

TaskTool SlugKey Params
List ticketsFRESHSERVICE_LIST_TICKETSfilter, updated_since, page, per_page
Get ticketFRESHSERVICE_GET_TICKETticket_id, include
Create ticketFRESHSERVICE_CREATE_TICKETsubject, description, status, priority, email
Bulk updateFRESHSERVICE_BULK_UPDATE_TICKETSids, update_fields
Outbound email ticketFRESHSERVICE_CREATE_TICKET_OUTBOUND_EMAILemail, subject, description
Service requestFRESHSERVICE_CREATE_SERVICE_REQUESTitem_display_id, email, quantity

Powered by Composio

Source

git clone https://github.com/davepoon/buildwithclaude/blob/main/plugins/all-skills/skills/freshservice-automation/SKILL.mdView on GitHub

Overview

Automate Freshservice ITSM tasks using Composio's Freshservice toolkit through Rube MCP. Create or update tickets, perform bulk operations, manage service requests, and send outbound emails, with a mandatory first step to search tool schemas to stay aligned with current fields.

How This Skill Works

The workflow uses Rube MCP to invoke Freshservice actions such as LIST_TICKETS, GET_TICKET, CREATE_TICKET, and BULK_UPDATE_TICKETS. Before executing any operation, it runs RUBE_SEARCH_TOOLS to fetch current tool schemas, then establishes the Freshservice connection via RUBE_MANAGE_CONNECTIONS, and finally executes the requested actions with the correct parameters.

When to Use It

  • Find, list, or search for tickets with optional filters and pagination
  • Log a new incident or service request with required fields
  • Bulk update multiple tickets in one operation
  • Retrieve detailed information for a specific ticket
  • Trigger outbound notifications or emails related to ticket updates

Quick Start

  1. Step 1: Add the MCP endpoint https://rube.app/mcp and verify RUBE_SEARCH_TOOLS is available
  2. Step 2: Connect to Freshservice with RUBE_MANAGE_CONNECTIONS for toolkit freshservice
  3. Step 3: Run a sample workflow using FRESHSERVICE_CREATE_TICKET or FRESHSERVICE_LIST_TICKETS

Best Practices

  • Always run RUBE_SEARCH_TOOLS first to fetch up-to-date schemas
  • Connect and verify the Freshservice integration via RUBE_MANAGE_CONNECTIONS before use
  • Provide either email or requester_id to identify the requester when creating tickets
  • Use numeric codes for status and priority, not their textual names
  • Limit include fields to what you actually need to manage API credits

Example Use Cases

  • List all open tickets updated in the last 24 hours
  • Create a new Service Request with a detailed HTML description
  • Bulk update status to Resolved for a set of tickets returned by a search
  • Fetch a specific ticket's full details including conversations and assets
  • Send outbound notification emails triggered by ticket changes

Frequently Asked Questions

Add this skill to your agents

Related Skills

Sponsor this space

Reach thousands of developers