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_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.
- Verify Rube MCP is available by confirming
RUBE_SEARCH_TOOLS responds
- Call
RUBE_MANAGE_CONNECTIONS with toolkit freshservice
- If connection is not ACTIVE, follow the returned auth link to complete Freshservice authentication
- 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:
FRESHSERVICE_LIST_TICKETS - List tickets with optional filtering and pagination [Required]
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:
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:
FRESHSERVICE_LIST_TICKETS - Find tickets to update [Prerequisite]
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:
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:
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
| 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) 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
| 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 |
When to Use
This skill is applicable to execute the workflow or actions described in the overview.
AGI Framework Integration
Adapted for @techwavedev/agi-agent-kit
Original source: antigravity-awesome-skills
Memory-First Protocol
Cache workflow configurations and automation patterns. Retrieve prior pipeline designs to avoid re-building similar flows from scratch.
# Check for prior workflow/automation context before starting
python3 execution/memory_manager.py auto --query "automation patterns and workflow configurations for Freshservice Automation"
Storing Results
After completing work, store workflow/automation decisions for future sessions:
python3 execution/memory_manager.py store \
--content "Workflow: automated data pipeline with retry logic, dead-letter queue, and Slack alerts on failure" \
--type technical --project <project> \
--tags freshservice-automation workflow
Multi-Agent Collaboration
Share workflow state with other agents so they can trigger, monitor, or extend the automation.
python3 execution/cross_agent_context.py store \
--agent "<your-agent>" \
--action "Workflow automation deployed — pipeline processing 1000+ events/day with 99.9% success rate" \
--project <project>
Playbook Engine
Combine this skill with others using the Playbook Engine (execution/workflow_engine.py) for guided multi-step automation with progress tracking.
1---2name: freshservice-automation3description: "Automate Freshservice ITSM tasks via Rube MCP (Composio): create/update tickets, bulk operations, service requests, and outbound emails. Always search tools first for current schemas."4risk: critical5source: community6date_added: "2026-02-27"7---89# Freshservice Automation via Rube MCP1011Automate Freshservice IT Service Management operations through Composio's Freshservice toolkit via Rube MCP.1213## Prerequisites1415- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)16- Active Freshservice connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `freshservice`17- Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas1819## Setup2021**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.2223241. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds252. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `freshservice`263. If connection is not ACTIVE, follow the returned auth link to complete Freshservice authentication274. Confirm connection status shows ACTIVE before running any workflows2829## Core Workflows3031### 1. List and Search Tickets3233**When to use**: User wants to find, list, or search for tickets3435**Tool sequence**:361. `FRESHSERVICE_LIST_TICKETS` - List tickets with optional filtering and pagination [Required]372. `FRESHSERVICE_GET_TICKET` - Get detailed information for a specific ticket [Optional]3839**Key parameters for listing**:40- `filter`: Predefined filter ('all_tickets', 'deleted', 'spam', 'watching')41- `updated_since`: ISO 8601 timestamp to get tickets updated after this time42- `order_by`: Sort field ('created_at', 'updated_at', 'status', 'priority')43- `order_type`: Sort direction ('asc' or 'desc')44- `page`: Page number (1-indexed)45- `per_page`: Results per page (1-100, default 30)46- `include`: Additional fields ('requester', 'stats', 'description', 'conversations', 'assets')4748**Key parameters for get**:49- `ticket_id`: Unique ticket ID or display_id50- `include`: Additional fields to include5152**Pitfalls**:53- By default, only tickets created within the past 30 days are returned54- Use `updated_since` to retrieve older tickets55- Each `include` value consumes additional API credits56- `page` is 1-indexed; minimum value is 157- `per_page` max is 100; default is 3058- Ticket IDs can be the internal ID or the display_id shown in the UI5960### 2. Create a Ticket6162**When to use**: User wants to log a new incident or request6364**Tool sequence**:651. `FRESHSERVICE_CREATE_TICKET` - Create a new ticket [Required]6667**Key parameters**:68- `subject`: Ticket subject line (required)69- `description`: HTML description of the ticket (required)70- `status`: Ticket status - 2 (Open), 3 (Pending), 4 (Resolved), 5 (Closed) (required)71- `priority`: Ticket priority - 1 (Low), 2 (Medium), 3 (High), 4 (Urgent) (required)72- `email`: Requester's email address (provide either email or requester_id)73- `requester_id`: User ID of the requester74- `type`: Ticket type ('Incident' or 'Service Request')75- `source`: Channel - 1 (Email), 2 (Portal), 3 (Phone), 4 (Chat), 5 (Twitter), 6 (Facebook)76- `impact`: Impact level - 1 (Low), 2 (Medium), 3 (High)77- `urgency`: Urgency level - 1 (Low), 2 (Medium), 3 (High), 4 (Critical)7879**Pitfalls**:80- `subject`, `description`, `status`, and `priority` are all required81- Either `email` or `requester_id` must be provided to identify the requester82- Status and priority use numeric codes, not string names83- Description supports HTML formatting84- If email does not match an existing contact, a new contact is created8586### 3. Bulk Update Tickets8788**When to use**: User wants to update multiple tickets at once8990**Tool sequence**:911. `FRESHSERVICE_LIST_TICKETS` - Find tickets to update [Prerequisite]922. `FRESHSERVICE_BULK_UPDATE_TICKETS` - Update multiple tickets [Required]9394**Key parameters**:95- `ids`: Array of ticket IDs to update (required)96- `update_fields`: Dictionary of fields to update (required)97 - Allowed keys: 'subject', 'description', 'status', 'priority', 'responder_id', 'group_id', 'type', 'tags', 'custom_fields'9899**Pitfalls**:100- Bulk update performs sequential updates internally; large batches may take time101- All specified tickets receive the same field updates102- If one ticket update fails, others may still succeed; check response for individual results103- Cannot selectively update different fields per ticket in a single call104- Custom fields must use their internal field names, not display names105106### 4. Create Ticket via Outbound Email107108**When to use**: User wants to create a ticket by sending an outbound email notification109110**Tool sequence**:1111. `FRESHSERVICE_CREATE_TICKET_OUTBOUND_EMAIL` - Create ticket with email notification [Required]112113**Key parameters**:114- `email`: Requester's email address (required)115- `subject`: Email subject / ticket subject (required)116- `description`: HTML email body content117- `status`: Ticket status (2=Open, 3=Pending, 4=Resolved, 5=Closed)118- `priority`: Ticket priority (1=Low, 2=Medium, 3=High, 4=Urgent)119- `cc_emails`: Array of CC email addresses120- `email_config_id`: Email configuration ID for the sender address121- `name`: Requester name122123**Pitfalls**:124- This creates a standard ticket via the /api/v2/tickets endpoint while sending an email125- If the email does not match an existing contact, a new contact is created with the provided name126- `email_config_id` determines which email address the notification appears to come from127128### 5. Create Service Requests129130**When to use**: User wants to submit a service catalog request131132**Tool sequence**:1331. `FRESHSERVICE_CREATE_SERVICE_REQUEST` - Create a service request for a catalog item [Required]134135**Key parameters**:136- `item_display_id`: Display ID of the catalog item (required)137- `email`: Requester's email address138- `quantity`: Number of items to request (default: 1)139- `custom_fields`: Custom field values for the service item form140- `parent_ticket_id`: Display ID of a parent ticket (for child requests)141142**Pitfalls**:143- `item_display_id` can be found in Admin > Service Catalog > item URL (e.g., /service_catalog/items/1)144- Custom fields keys must match the service item form field names145- Quantity defaults to 1 if not specified146- Service requests follow the approval workflow defined for the catalog item147148## Common Patterns149150### Status Code Reference151152| Code | Status |153|------|--------|154| 2 | Open |155| 3 | Pending |156| 4 | Resolved |157| 5 | Closed |158159### Priority Code Reference160161| Code | Priority |162|------|----------|163| 1 | Low |164| 2 | Medium |165| 3 | High |166| 4 | Urgent |167168### Pagination169170- Use `page` (1-indexed) and `per_page` (max 100) parameters171- Increment `page` by 1 each request172- Continue until returned results count < `per_page`173- Default page size is 30174175### Finding Tickets by Date Range176177```1781. Call FRESHSERVICE_LIST_TICKETS with updated_since='2024-01-01T00:00:00Z'1792. Optionally add order_by='updated_at' and order_type='desc'1803. Paginate through results181```182183## Known Pitfalls184185**Numeric Codes**:186- Status and priority use numeric values, not strings187- Source channel uses numeric codes (1-6)188- Impact and urgency use numeric codes (1-3 or 1-4)189190**Date Filtering**:191- Default returns only tickets from the last 30 days192- Use `updated_since` parameter for older tickets193- Date format is ISO 8601 (e.g., '2024-01-01T00:00:00Z')194195**Rate Limits**:196- Freshservice API has per-account rate limits197- Each `include` option consumes additional API credits198- Implement backoff on 429 responses199200**Response Parsing**:201- Response data may be nested under `data` or `data.data`202- Parse defensively with fallback patterns203- Ticket IDs are numeric integers204205## Quick Reference206207| Task | Tool Slug | Key Params |208|------|-----------|------------|209| List tickets | FRESHSERVICE_LIST_TICKETS | filter, updated_since, page, per_page |210| Get ticket | FRESHSERVICE_GET_TICKET | ticket_id, include |211| Create ticket | FRESHSERVICE_CREATE_TICKET | subject, description, status, priority, email |212| Bulk update | FRESHSERVICE_BULK_UPDATE_TICKETS | ids, update_fields |213| Outbound email ticket | FRESHSERVICE_CREATE_TICKET_OUTBOUND_EMAIL | email, subject, description |214| Service request | FRESHSERVICE_CREATE_SERVICE_REQUEST | item_display_id, email, quantity |215216## When to Use217This skill is applicable to execute the workflow or actions described in the overview.218219---220221<!-- AGI-INTEGRATION-START -->222223## AGI Framework Integration224225> **Adapted for [@techwavedev/agi-agent-kit](https://www.npmjs.com/package/@techwavedev/agi-agent-kit)**226> Original source: [antigravity-awesome-skills](https://github.com/sickn33/antigravity-awesome-skills)227228### Memory-First Protocol229230Cache workflow configurations and automation patterns. Retrieve prior pipeline designs to avoid re-building similar flows from scratch.231232```bash233# Check for prior workflow/automation context before starting234python3 execution/memory_manager.py auto --query "automation patterns and workflow configurations for Freshservice Automation"235```236237### Storing Results238239After completing work, store workflow/automation decisions for future sessions:240241```bash242python3 execution/memory_manager.py store \243 --content "Workflow: automated data pipeline with retry logic, dead-letter queue, and Slack alerts on failure" \244 --type technical --project <project> \245 --tags freshservice-automation workflow246```247248### Multi-Agent Collaboration249250Share workflow state with other agents so they can trigger, monitor, or extend the automation.251252```bash253python3 execution/cross_agent_context.py store \254 --agent "<your-agent>" \255 --action "Workflow automation deployed — pipeline processing 1000+ events/day with 99.9% success rate" \256 --project <project>257```258259### Playbook Engine260261Combine this skill with others using the Playbook Engine (`execution/workflow_engine.py`) for guided multi-step automation with progress tracking.262263<!-- AGI-INTEGRATION-END -->