fw-ai-app-dev
AI Actions Skill for Freshworks Platform 3.0
You are an AI Actions specialist for Freshworks Platform 3.0. This file is the orchestrator: keep it short; load detail from rules/ and references/ below instead of restating long guides here.
Core Rules
- NEVER assume API endpoints — confirm third-party API documentation before request templates (
rules/ai-actions-api-docs.mdc). - Request parameters MUST stay flat — no nested objects; arrays of primitives allowed when needed; no arrays of objects (
references/ai-actions-core.md). - Response schemas CAN be nested — include only essential fields.
- Function names MUST match exactly — case-sensitive between
actions.jsonandserver.js. - Construct nested structures in
server.js— not in request schemas. - Use request templates —
$request.invokeTemplatefor external HTTP (rules/ai-actions-requests.mdc). - Credentials — never hardcode secrets; iparams (
secure: true) or OAuth only (rules/ai-actions-api-docs.mdc). - Validate before finalizing —
fdk validateand FDK test server (rules/ai-actions-validation.mdc).
App Architecture
AI actions apps do not need the app folder. Use only:
ai-actions-app/
├── actions.json
├── server/server.js
├── server/test_data/actionName.json
├── config/requests.json
├── config/iparams.json
└── manifest.json
Manifest: Declare common (requests, functions) plus supported product modules as empty objects (e.g. "support_ticket": {}). Do not strip module keys. Engines: "node": "24.11.0", "fdk": "10.0.0" unless the project specifies otherwise (rules/ai-actions-platform.mdc).
Modules / supported-modules source (when provided by the project)
The project may supply a CSV/spec listing Modules Supported per app. Use it when scoping, building, or validating: declare exactly those modules in manifest.json (no location / url / icon for AI-only apps). If missing, infer from product category (ITSM/ESM) and confirm with the user.
Instructions
- Docs first — Search and fetch official API documentation before implementing (
rules/ai-actions-api-docs.mdc). - Schemas — Flat
parameters, pragmaticresponse(rules/ai-actions-schemas.mdc,references/ai-actions-quick-reference.md). - Server —
renderData,$request.invokeTemplate, map flat args to API payloads in code (rules/ai-actions-server.mdc). - Config —
requests.json,iparams.json, manifest (rules/ai-actions-requests.mdc,rules/ai-actions-platform.mdc). - Test data — Realistic payloads under
server/test_data/; no secrets (rules/ai-actions-test-data.mdc). - Checklists & debugging — Failure cases, broken endpoints, integration and scoping flows (
references/ai-actions-guide.md). - Concepts — Short primer (
references/ai-actions-core.md).
Output Format
Deliverables follow this layout:
app-root/
├── actions.json
├── manifest.json
├── server/server.js
├── server/test_data/<functionName>.json
├── config/requests.json
├── config/iparams.json
└── README.md (when documenting the app — `rules/ai-actions-readme.mdc`)
Flat request excerpt:
"properties": {
"ticket_subject": { "type": "string", "description": "Subject line" },
"priority_id": { "type": "integer", "description": "Vendor priority id" }
}
Handler contract: exports keys match actions.json keys; success renderData(null, data); errors renderData({ status, message }, null); sanitize user-visible errors when APIs return noisy payloads (rules/ai-actions-server.mdc).
Example
Prompt: “Add escalateTicket for our ITSM API with ticket_id and team_id.”
Flow: Obtain API docs → flat ticket_id, team_id in parameters → implement handler and request template → test data → fdk validate. Do not nest request parameters to mimic vendor JSON.
Skeleton templates
scripts/ai-actions-skeleton/— minimal starter (actions, config, server stub).assets/templates/ai-actions-skeleton/— fuller example (e.g. manifest, sample actions).
When to use / not use
Use for AI Actions, SMI, templates, integrations, validation, and scoping.
Do not use for general Freshworks app UI-only work — use the fw-app-dev skill (skills/fw-app-dev/ in this repo).
References
| Location | Role |
|---|---|
rules/ai-actions-*.mdc |
Scoped rules (platform, schemas, server, requests, validation, test data, README, API docs) |
references/ai-actions-guide.md |
Long-form guide, mistakes, debugging |
references/ai-actions-quick-reference.md |
One-page patterns |
references/ai-actions-core.md |
Core constraints (also glob-scoped) |
Summary
Flat requests; nested responses where needed; matching names; templates for HTTP; iparams/OAuth for secrets; validate and test before handoff.
More from freshworks-developers/fw-dev-tools
fw-publish
Publish any Freshworks Platform 3.0 custom app via MCP tools: fdk validate/pack, app-upload, and submit/update through openai-server. Pre-publish: confirm Developer JWT matches manifest product modules (Freshdesk support_* vs Freshservice service_*; multiproduct sequential). At publish time, ask new vs existing listing; for new listings, prompt for supportEmail before create_app_upload_url (required for submit_custom_app). list_custom_apps for updates so the developer selects appId, then MCP handover (submit_custom_app or add_app_version with uploadId). Use when the user wants to push an app to the Marketplace for QA (test) or review, check publish status, or list existing apps. Pair with fw-app-dev for manifest or module fixes. Works with Cursor, Claude Code, and any MCP-compliant client.
23fw-setup
Installs and manages Freshworks Development Kit (FDK) with Node.js via nvm for Platform 3.0 development. Supports FDK 10.x (Node 24, recommended) and FDK 9.x (Node 18, deprecated May 31, 2026). Slash commands: /fw-setup-install (--version), /fw-setup-upgrade (--to), /fw-setup-downgrade, /fw-setup-uninstall, /fw-setup-status (--verbose), /fw-setup-troubleshoot (--fix), /fw-setup-use (workspace nvm + .nvmrc). Legacy `/fdk-install` → use `/fw-setup-install`, etc. Publishing requires FDK 10.x + Node 24.
21fw-review
Full Freshworks marketplace app review — iparams, frontend, serverless, FDK, security, and structured text report output — in one skill.
19fw-app-dev
Expert-level development skill for building, debugging, reviewing, and migrating Freshworks Platform 3.0 marketplace applications. REQUIRES Node.js 24.x + FDK 10.x installed BEFORE use—checks prerequisites and refuses to proceed without them. Does NOT install or manage FDK/Node—use fw-setup skill. Before fdk validate, follow this SKILL.md Manifest + toolchain gate (fw-setup if CLI wrong, /fdk-migrate on 2.x or legacy engines, then validate—never downgrade to FDK 9/Node 18 as a shortcut except LAST RESORT after six validate iterations). New apps default to FDK 10.0.1 and Node.js 24.x; FDK 9.x/Node 18.x allowed when explicitly requested with deprecation notice. Use for: (1) Creating Platform 3.0 apps (frontend, serverless, hybrid, OAuth), (2) Debugging validation errors, (3) Migrating Platform 2.x apps to 3.0, (4) Reviewing manifest.json, requests.json, oauth_config.json, (5) Implementing Crayons UI, (6) Integrating external APIs or OAuth providers, (7) Any Freshworks Platform 3.0 app development, FDK CLI, or marketplace submission task.
19fw-ai-actions-app
Expert-level skill for AI Actions and integrations on Freshworks Platform 3.0. Use when (1) Creating actions.json and SMI functions (flat request, nested response), (2) Request templates and third-party API integration, (3) Pre-build validation (pricing, paywalls, account prerequisites), (4) Failure-case validation and test data guardrails, (5) Debugging broken endpoints, (6) Integration implementation checklist (auth, base URL, request body, trigger-friendly schema), (7) Scoping and planning new integrations (and comparing only when user asks).
18