<< All versions

Skill v1.0.0

currentAutomated scan100/100
ferosai/feros/pagerduty
──Details
PublishedNovember 6, 2026 at 07:29 PM
Content Hashsha256:7e1b2440a3ac27b5...
Git SHA02115d0eb109
──Files
Files (1 file, 2.7 KB)
SKILL.md2.7 KBactive
SKILL.md · 59 lines · 2.7 KB

name: pagerduty display_name: PagerDuty description: Trigger, acknowledge, or resolve PagerDuty incidents auth_type: oauth2 category: dev-tools metadata: version: "1.0.0"


PagerDuty Integration Skill

When to use

When the user wants their voice agent to trigger or manage PagerDuty incidents. Common triggers:

  • "page the on-call engineer when there's an outage reported"
  • "trigger a PagerDuty incident during the call"
  • "acknowledge the alert"
  • "resolve the incident"

What to do

  1. Check connection via check_connection("pagerduty").
  1. If not connected: Use secret("pagerduty") in tool scripts. The system

will automatically emit the correct action card based on the platform configuration. Do NOT emit action cards manually.

  1. Discover services (PagerDuty supports auto-discovery):
  • api_call("pagerduty", "GET", "/services?limit=25") → list services with IDs
  1. Use the real service ID in the tool config.

Example tool config

json
{
"name": "pagerduty.trigger_incident",
"description": "Trigger a PagerDuty incident to alert the on-call engineer",
"params": [
{"name": "title", "description": "Incident title / summary of the issue", "type": "string", "required": true},
{"name": "service_id", "description": "PagerDuty service ID to route the incident to", "type": "string", "required": true},
{"name": "details", "description": "Additional details about the incident", "type": "string", "required": false}
],
"script": "let key = secret('pagerduty');\nlet incident = {incident: {type: 'incident', title: title, service: {id: service_id, type: 'service_reference'}}};\nif (details) incident.incident.body = {type: 'incident_body', details: details};\nlet resp = http_post_h('https://api.pagerduty.com/incidents', incident, {'Authorization': 'Token token=' + key, 'Content-Type': 'application/json', 'From': 'voice-agent@example.com', 'Accept': 'application/vnd.pagerduty+json;version=2'});\nif (resp.status >= 200 && resp.status < 300) { return 'Incident triggered.'; }\nthrow new Error(`PagerDuty ${resp.status}: ${resp.body}`);",
"side_effect": true
}

Rules

  • NEVER hardcode tokens in tool headers
  • NEVER ask for credentials in chat
  • Always use secret("pagerduty") for credentials
  • PagerDuty auth header format is Token token=<key> (not Bearer)
  • The From header is required for incident creation — ask the user for the email to use, or use a placeholder
  • The Accept header application/vnd.pagerduty+json;version=2 is required
  • PREFER using api_call to discover service IDs instead of asking the user
  • For script tools, treat non-2xx HTTP responses as failures and throw using resp.status/resp.body
All versions