Build event-driven automations with Granola's Zapier webhook triggers. Use when creating real-time notification systems, processing meeting events, or building custom integrations that react to Granola note creation. Trigger: "granola webhooks", "granola events", "granola triggers", "granola real-time", "granola event-driven".
80
77%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Advisory
Suggest reviewing before use
Optimize this skill with Tessl
npx tessl skill review --optimize ./plugins/saas-packs/granola-pack/skills/granola-webhooks-events/SKILL.mdQuality
Discovery
89%Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.
This is a well-structured skill description that clearly identifies its niche (Granola Zapier webhook integrations), provides explicit 'Use when' guidance, and lists relevant trigger terms. The main weakness is that the specific capabilities could be more concrete—listing discrete actions rather than broad categories like 'building custom integrations'. Overall it is a strong description that would enable accurate skill selection.
Suggestions
Add more concrete specific actions such as 'configure webhook endpoints, parse meeting note payloads, set up Zap workflows, handle event filtering' to improve specificity.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Names the domain (Granola Zapier webhook triggers) and some actions (event-driven automations, real-time notification systems, processing meeting events, custom integrations), but the actions are somewhat high-level rather than listing multiple concrete discrete operations like 'configure webhook endpoints, parse meeting payloads, set up Zap workflows'. | 2 / 3 |
Completeness | Clearly answers both 'what' (build event-driven automations with Granola's Zapier webhook triggers) and 'when' (creating real-time notification systems, processing meeting events, building custom integrations reacting to Granola note creation), with an explicit 'Use when' clause and explicit trigger terms. | 3 / 3 |
Trigger Term Quality | Includes explicit trigger terms like 'granola webhooks', 'granola events', 'granola triggers', 'granola real-time', 'granola event-driven' as well as natural phrases like 'notification systems', 'meeting events', and 'Zapier webhook'. These cover the likely terms a user would use when seeking this functionality. | 3 / 3 |
Distinctiveness Conflict Risk | Highly distinctive with a clear niche: Granola-specific Zapier webhook triggers for event-driven automations. The combination of 'Granola', 'Zapier', 'webhook', and 'event-driven' makes it very unlikely to conflict with other skills. | 3 / 3 |
Total | 11 / 12 Passed |
Implementation
64%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This is a solid, actionable skill with concrete code examples and a clear event model explanation. Its main weaknesses are verbosity (providing two full handler implementations and extensive inline content that could be referenced) and missing validation checkpoints in the workflow (no explicit 'verify your trigger works' steps between configuration and building handlers).
Suggestions
Add explicit validation checkpoints between steps, e.g., 'Test: Manually share a note to Zapier and verify the trigger fires before proceeding to Step 3' and 'Verify: Send a test POST to your webhook endpoint and confirm a 200 response before adding routing logic.'
Choose one webhook handler language (JS or Python) for the main skill and move the other to a referenced file like `granola-webhook-handler-python.md`.
Move the detailed filtering patterns and processing patterns table to a referenced file to reduce the main skill's token footprint.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The skill provides useful content but is verbose in places—two full webhook handler implementations (Express.js AND FastAPI) is redundant, and the processing patterns table adds marginal value. Some sections like 'Understand the Event Model' could be more compact. | 2 / 3 |
Actionability | The skill provides fully executable code examples for both JavaScript and Python webhook handlers, concrete Zapier filter configurations, a detailed JSON payload structure, and specific YAML-style Zapier configuration. The guidance is copy-paste ready and specific. | 3 / 3 |
Workflow Clarity | Steps are clearly sequenced from understanding the event model through building handlers and error handling. However, there are no explicit validation checkpoints—no 'test your trigger fires correctly before proceeding' step, and no feedback loop for verifying the webhook handler receives data correctly before building routing logic. | 2 / 3 |
Progressive Disclosure | The content is well-structured with clear headers and tables, but it's quite long and monolithic. The two full webhook handler implementations and detailed filtering patterns could be split into referenced files. The single 'Next Steps' reference is good but insufficient for the volume of inline content. | 2 / 3 |
Total | 9 / 12 Passed |
Validation
81%Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.
Validation — 9 / 11 Passed
Validation for skill structure
| Criteria | Description | Result |
|---|---|---|
allowed_tools_field | 'allowed-tools' contains unusual tool name(s) | Warning |
frontmatter_unknown_keys | Unknown frontmatter key(s) found; consider removing or moving to metadata | Warning |
Total | 9 / 11 Passed | |
70e9fa4
Table of Contents
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.