
Freshservice Automation
- 1 installs
- 404 repo stars
- Updated August 5, 2026
- aiskillstore/marketplace
freshservice-automation is a Claude skill that automates Freshservice ITSM tasks (tickets, bulk updates, service requests, outbound emails) via the Rube MCP Composio toolkit.
About
This skill automates Freshservice IT Service Management tasks through the Rube MCP (Composio) Freshservice toolkit. It documents tool sequences for listing and searching tickets, creating tickets, bulk updates, outbound-email tickets, and service requests, with required parameters and pitfalls. A developer uses it to script Freshservice ticket operations from an agent.
- Automates Freshservice ITSM tasks through the Rube MCP (Composio) toolkit
- Covers listing, creating, and bulk-updating tickets, plus service requests and outbound email
- Documents required parameters, numeric status/priority codes, and pagination pitfalls
Freshservice Automation by the numbers
- 1 all-time installs (skills.sh)
- Ranked #1,980 of 2,715 Automation & Workflows skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
freshservice-automation capabilities & compatibility
No API keys needed for Rube MCP; requires an authenticated Freshservice connection. Each 'include' option consumes additional Freshservice API credits.
- Capabilities
- ticket automation · bulk ticket update · service request creation · itsm automation
- Works with
- servicenow
- Use cases
- email · orchestration
- Runs
- Runs locally
- Pricing
- Free
What freshservice-automation says it does
Automate Freshservice IT Service Management operations through Composio's Freshservice toolkit via Rube MCP.
By default, only tickets created within the past 30 days are returned
npx skills add https://github.com/aiskillstore/marketplace --skill freshservice-automationAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 1 |
|---|---|
| repo stars | ★ 404 |
| Last updated | August 5, 2026 |
| Repository | aiskillstore/marketplace ↗ |
What it does
Automate Freshservice ITSM ticket, service-request, and email operations via Rube MCP.
When should I use this skill?
When a user wants to create, list, bulk-update, or manage Freshservice tickets and service requests.
What you get
Freshservice tickets and service requests created or updated through Rube MCP tools.
- created or updated Freshservice tickets and service requests
By the numbers
- 5 core workflows documented
- per_page max is 100 (default 30)
- default returns only tickets from the last 30 days
Files
Freshservice Automation via Rube MCP
Automate Freshservice IT Service Management operations through Composio's Freshservice toolkit via Rube MCP.
Prerequisites
- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
- Active Freshservice connection via
RUBE_MANAGE_CONNECTIONSwith toolkitfreshservice - Always call
RUBE_SEARCH_TOOLSfirst 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 timeorder_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_idinclude: Additional fields to include
Pitfalls:
- By default, only tickets created within the past 30 days are returned
- Use
updated_sinceto retrieve older tickets - Each
includevalue consumes additional API credits pageis 1-indexed; minimum value is 1per_pagemax 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 requestertype: 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, andpriorityare all required- Either
emailorrequester_idmust 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 contentstatus: 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 addressesemail_config_id: Email configuration ID for the sender addressname: 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_iddetermines 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 addressquantity: Number of items to request (default: 1)custom_fields: Custom field values for the service item formparent_ticket_id: Display ID of a parent ticket (for child requests)
Pitfalls:
item_display_idcan 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
| Code | Status |
|---|---|
| 2 | Open |
| 3 | Pending |
| 4 | Resolved |
| 5 | Closed |
Priority Code Reference
| Code | Priority |
|---|---|
| 1 | Low |
| 2 | Medium |
| 3 | High |
| 4 | Urgent |
Pagination
- Use
page(1-indexed) andper_page(max 100) parameters - Increment
pageby 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 resultsKnown 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_sinceparameter 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
includeoption consumes additional API credits - Implement backoff on 429 responses
Response Parsing:
- Response data may be nested under
dataordata.data - Parse defensively with fallback patterns
- Ticket IDs are numeric integers
Quick Reference
| Task | Tool Slug | Key Params |
|---|---|---|
| List tickets | FRESHSERVICE_LIST_TICKETS | filter, updated_since, page, per_page |
| Get ticket | FRESHSERVICE_GET_TICKET | ticket_id, include |
| Create ticket | FRESHSERVICE_CREATE_TICKET | subject, description, status, priority, email |
| Bulk update | FRESHSERVICE_BULK_UPDATE_TICKETS | ids, update_fields |
| Outbound email ticket | FRESHSERVICE_CREATE_TICKET_OUTBOUND_EMAIL | email, subject, description |
| Service request | FRESHSERVICE_CREATE_SERVICE_REQUEST | item_display_id, email, quantity |
{
"schema_version": "2.0",
"meta": {
"generated_at": "2026-02-25T00:54:42.158Z",
"slug": "sickn33-freshservice-automation",
"source_url": "https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/freshservice-automation",
"source_ref": "main",
"model": "claude",
"analysis_version": "3.0.0",
"source_type": "community",
"content_hash": "472966ca8517a884c91bc936fadaa479bfb63ec4d717f2542dc503adba3a8051",
"tree_hash": "acc2bab976098b476945036dd94abc4deebf03ef52698074741ca17487898d3a"
},
"skill": {
"name": "freshservice-automation",
"description": "Automate Freshservice ITSM tasks via Rube MCP: create tickets, bulk operations, service requests, and outbound emails",
"summary": "Automate Freshservice IT ticket management through Composio MCP tools with predefined workflows and best practices",
"icon": "📦",
"version": "1.0.1",
"author": "sickn33",
"license": "MIT",
"category": "productivity",
"tags": [
"freshservice",
"itsm",
"ticket-management",
"automation",
"composio"
],
"supported_tools": [
"claude",
"codex",
"claude-code"
],
"risk_factors": [
"network",
"external_commands"
]
},
"security_audit": {
"risk_level": "safe",
"is_blocked": false,
"safe_to_publish": true,
"summary": "All static analysis findings are false positives. The SKILL.md file is documentation only (no executable code). Backtick patterns are markdown formatting for tool names, not Ruby shell execution. The hardcoded URL is the legitimate Rube MCP server endpoint. Numeric codes are ITSM status/priority values, not cryptographic operations. No security threats identified.",
"risk_factor_evidence": [
{
"factor": "external_commands",
"evidence": []
},
{
"factor": "network",
"evidence": [
{
"file": "SKILL.md",
"line_start": 22,
"line_end": 22
}
]
}
],
"critical_findings": [],
"high_findings": [],
"medium_findings": [],
"low_findings": [
{
"title": "External MCP Server Dependency",
"description": "Skill requires connection to external MCP server at https://rube.app/mcp for Freshservice API access",
"locations": [
{
"file": "SKILL.md",
"line_start": 22,
"line_end": 22
}
],
"confidence": 0.95,
"confidence_reasoning": "Documentation explicitly requires external MCP server connection - this is the intended architecture for accessing Freshservice API tools"
}
],
"dangerous_patterns": [],
"files_scanned": 1,
"total_lines": 219,
"audit_model": "claude",
"audited_at": "2026-02-25T00:54:42.158Z"
},
"content": {
"user_title": "Automate Freshservice ITSM Ticket Operations",
"value_statement": "Streamline IT service management by automating Freshservice ticket workflows through AI. Reduce manual ticket handling with predefined patterns for creating, updating, and managing tickets at scale.",
"seo_keywords": [
"Claude",
"Codex",
"Claude Code",
"Freshservice automation",
"ITSM tools",
"ticket management",
"Composio MCP",
"Rube MCP",
"service desk automation",
"IT operations"
],
"actual_capabilities": [
"List and search Freshservice tickets with filters, pagination, and date ranges",
"Create new tickets with subject, description, status, priority, and requester details",
"Bulk update multiple tickets with the same field changes",
"Create tickets via outbound email notifications",
"Submit service catalog requests with custom form fields",
"Retrieve detailed ticket information including requester and conversation data"
],
"limitations": [
"Requires active Rube MCP connection with Freshservice toolkit configured",
"Status and priority values use numeric codes that must be memorized or referenced",
"Default ticket listing only returns tickets from the past 30 days without date filters",
"API rate limits apply per Freshservice account with additional credit costs for included fields"
],
"use_cases": [
{
"title": "IT Support Team Lead",
"description": "Automate daily ticket triage by listing unassigned tickets, bulk updating priorities based on keywords, and creating incident tickets from monitoring alerts",
"target_user": "IT Support Manager"
},
{
"title": "Service Desk Analyst",
"description": "Quickly create tickets from email requests, search for related tickets before responding, and update ticket status as work progresses through resolution",
"target_user": "Help Desk Technician"
},
{
"title": "DevOps Engineer",
"description": "Integrate infrastructure monitoring with Freshservice by creating automated tickets for alerts and linking service requests to parent incident tickets",
"target_user": "Site Reliability Engineer"
}
],
"prompt_templates": [
{
"title": "List Recent High Priority Tickets",
"prompt": "List all Freshservice tickets with high or urgent priority that were updated in the last 7 days. Include requester information and sort by most recently updated first."
},
{
"title": "Create Incident Ticket",
"prompt": "Create a new Freshservice ticket for a server outage. Subject: 'Production Server Down'. Description: 'Web server prod-web-03 is unresponsive since 14:30 UTC'. Set priority to Urgent, status to Open, and assign to requester email ops-team@company.com"
},
{
"title": "Bulk Update Ticket Statuses",
"prompt": "Find all tickets assigned to user ID 5001 that have status Open. Update all of them to status Pending with a note that the assigned technician is out of office until next week."
},
{
"title": "Create Service Request for Equipment",
"description": "Submit a service catalog request for new laptop equipment",
"prompt": "Create a service request for catalog item 'new-laptop-request' for employee john.doe@company.com. Set quantity to 1 and include custom fields: department='Engineering', laptop_model='MacBook Pro', justification='New hire onboarding'"
}
],
"output_examples": [
{
"input": "List tickets updated since yesterday with high priority",
"output": "Found 5 high priority tickets updated since 2024-01-15: Ticket #1234 (Database connectivity issues), Ticket #1256 (API rate limit errors), Ticket #1289 (Login page timeout), Ticket #1301 (Mobile app crash on iOS), Ticket #1312 (Email delivery delays)"
},
{
"input": "Create a ticket for network outage in Building A",
"output": "Ticket #1345 created successfully. Subject: 'Network Outage - Building A'. Status: Open. Priority: High. Requester: facilities@company.com. Assigned to Network Operations team."
}
],
"best_practices": [
"Always call RUBE_SEARCH_TOOLS first to get current tool schemas before executing any Freshservice operations",
"Use updated_since parameter with ISO 8601 format when retrieving historical tickets beyond the default 30-day window",
"Include only necessary fields in ticket listing requests to minimize API credit consumption"
],
"anti_patterns": [
"Do not use string names for status or priority - always use numeric codes (2=Open, 3=Pending, 4=Resolved, 5=Closed)",
"Avoid bulk updating large ticket sets without confirming the scope first - test with a small batch",
"Do not hardcode ticket IDs or user IDs across different Freshservice instances - reference them dynamically"
],
"faq": [
{
"question": "What is Rube MCP and how do I set it up?",
"answer": "Rube MCP is a Model Context Protocol server that provides access to Composio tools. Add https://rube.app/mcp as an MCP server in your client configuration, then use RUBE_MANAGE_CONNECTIONS to activate the Freshservice toolkit."
},
{
"question": "Why are only tickets from the last 30 days returned?",
"answer": "Freshservice API defaults to returning tickets created within 30 days. Use the updated_since parameter with an ISO 8601 timestamp to retrieve older tickets."
},
{
"question": "What do the numeric status and priority codes mean?",
"answer": "Status codes: 2=Open, 3=Pending, 4=Resolved, 5=Closed. Priority codes: 1=Low, 2=Medium, 3=High, 4=Urgent. Always use these numeric values, not text names."
},
{
"question": "Can I create a ticket for a user who does not exist in Freshservice?",
"answer": "Yes. When creating a ticket with an email address that does not match an existing contact, Freshservice automatically creates a new contact record with that email."
},
{
"question": "How do I find the item display ID for service catalog requests?",
"answer": "Navigate to Admin > Service Catalog in Freshservice. The item display ID appears in the URL when viewing a catalog item (e.g., /service_catalog/items/5 means the display ID is 5)."
},
{
"question": "What happens if a bulk update partially fails?",
"answer": "Bulk updates process tickets sequentially. If one ticket fails, others may still succeed. Check the response for individual ticket results and retry failed tickets separately."
}
]
},
"file_structure": [
{
"name": "SKILL.md",
"type": "file",
"path": "SKILL.md",
"lines": 219
}
]
}
Related skills
FAQ
What must be connected to use this skill?
Rube MCP must be connected with an active Freshservice connection via RUBE_MANAGE_CONNECTIONS.
Why do old tickets not appear?
By default only tickets from the last 30 days are returned; use updated_since for older tickets.