
Sentry Create Alert
Configure Sentry workflow-engine alerts so issues trigger email, Slack, PagerDuty, or Discord when conditions match.
Install
npx skills add https://github.com/getsentry/sentry-for-ai --skill sentry-create-alertWhat is this skill?
- Creates alerts via Sentry workflow engine API (beta; may not appear in legacy Alerts UI)
- Supports email, Slack, PagerDuty, Discord, and other notification actions
- Covers issue priority alerts, de-escalation, and general workflow automations
- Phase 1 configuration table: org slug, auth token, region, and alert conditions
- Requires org token with alerts:write (or org:admin / org:write) and curl in shell
Adoption & trust: 1.7k installs on skills.sh; 197 GitHub stars; 2/3 security scanners passed (skills.sh audits).
Recommended Skills
Azure Kubernetesmicrosoft/azure-skills
Github Actions Docsxixu-me/skills
Deploy To Vercelvercel-labs/agent-skills
Vercel Cli With Tokensvercel-labs/agent-skills
Turborepovercel/turborepo
Docker Expertsickn33/antigravity-awesome-skills
Journey fit
Common Questions / FAQ
Is Sentry Create Alert safe to install?
skills.sh reports 2 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.
SKILL.md
READMESKILL.md - Sentry Create Alert
> [All Skills](../../SKILL_TREE.md) > [Feature Setup](../sentry-feature-setup/SKILL.md) > Create Alert # Create Sentry Alert Create alerts via Sentry's workflow engine API. **Note:** This API is currently in **beta** and may be subject to change. It is part of New Monitors and Alerts and may not be viewable in the legacy Alerts UI. ## Invoke This Skill When - User asks to "create a Sentry alert" or "set up notifications" - User wants to be emailed or notified when issues match certain conditions - User mentions priority alerts, de-escalation alerts, or workflow automations - User wants to configure Slack, PagerDuty, or email notifications for Sentry issues ## Prerequisites - `curl` available in shell - Sentry org auth token with `alerts:write` scope (also accepts `org:admin` or `org:write`) ## Phase 1: Gather Configuration Ask the user for any missing details: | Detail | Required | Example | |--------|----------|---------| | Org slug | Yes | `sentry`, `my-org` | | Auth token | Yes | `sntryu_...` (needs `alerts:write` scope) | | Region | Yes (default: `us`) | `us` → `us.sentry.io`, `de` → `de.sentry.io` | | Alert name | Yes | `"High Priority De-escalation Alert"` | | Trigger events | Yes | Which issue events fire the workflow | | Conditions | Optional | Filter conditions before actions execute | | Action type | Yes | `email`, `slack`, or `pagerduty` | | Action target | Yes | User email, team, channel, or service | ## Phase 2: Look Up IDs Use these API calls to resolve names to IDs as needed. ```bash API="https://{region}.sentry.io/api/0/organizations/{org}" AUTH="Authorization: Bearer {token}" # Find user ID by email curl -s "$API/members/" -H "$AUTH" | python3 -c " import json,sys for m in json.load(sys.stdin): if m.get('email')=='USER_EMAIL' or m.get('user',{}).get('email')=='USER_EMAIL': print(m['user']['id']); break" # List teams curl -s "$API/teams/" -H "$AUTH" | python3 -c " import json,sys for t in json.load(sys.stdin): print(t['id'], t['slug'])" # List integrations (for Slack/PagerDuty) curl -s "$API/integrations/" -H "$AUTH" | python3 -c " import json,sys for i in json.load(sys.stdin): print(i['id'], i['provider']['key'], i['name'])" ``` ## Phase 3: Build Payload ### Trigger Events Pick which issue events fire the workflow. Use `logicType: "any-short"` (triggers must always use this). | Type | Fires when | |------|-----------| | `first_seen_event` | New issue created | | `regression_event` | Resolved issue recurs | | `reappeared_event` | Archived issue reappears | | `issue_resolved_trigger` | Issue is resolved | ### Filter Conditions Conditions that must pass before actions execute. Use `logicType: "all"`, `"any-short"`, or `"none"`. **The `comparison` field is polymorphic** — its shape depends on the condition `type`: | Type | `comparison` format | Description | |------|---------------------|-------------| | `issue_priority_greater_or_equal` | `75` (bare integer) | Priority >= Low(25)/Medium(50)/High(75) | | `issue_priority_deescalating` | `true` (bare boolean) | Priority dropped below peak | | `event_frequency_count` | `{"value": 100, "interval": "1hr"}` | Event count in time window | | `event_unique_user_frequency_count` | `{"value": 50, "interval": "1hr"}` | Affected users in time window | | `tagged_event` | `{"key": "level", "match": "eq", "value": "error"}` | Event tag matches | | `assigned_to` | `{"targetType": "Member", "targetIdentifier": 123}` | Issue assigned to target | | `level` | `{"level": 40, "match": "gte"}` | Event level (fatal=50, error=40, warning=30) | | `age_comparison` | `