Klaviyo email/SMS marketing - profiles, events, flows, segmentation
38
37%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Advisory
Suggest reviewing before use
Optimize this skill with Tessl
npx tessl skill review --optimize ./skills/klaviyo/SKILL.mdQuality
Discovery
32%Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.
The description identifies the platform (Klaviyo) and lists high-level feature areas, which provides some distinctiveness. However, it lacks concrete action verbs describing what the skill actually does, misses a 'Use when...' clause entirely, and reads more like a topic tag list than a functional description. It would benefit significantly from specifying actions and explicit trigger conditions.
Suggestions
Add a 'Use when...' clause specifying trigger conditions, e.g., 'Use when the user asks about Klaviyo API integration, managing email campaigns, setting up automated flows, or working with customer segments in Klaviyo.'
Replace the noun list with concrete action phrases, e.g., 'Creates and manages Klaviyo email/SMS campaigns, configures automated flows, builds audience segments, tracks customer events, and manages subscriber profiles.'
Include additional natural trigger terms users might say, such as 'campaigns', 'automations', 'subscribers', 'lists', 'email templates', or 'marketing automation'.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Names the domain (Klaviyo email/SMS marketing) and lists some areas (profiles, events, flows, segmentation), but these are category nouns rather than concrete actions like 'create segments', 'trigger flows', or 'manage subscriber profiles'. | 2 / 3 |
Completeness | Provides a brief 'what' (Klaviyo email/SMS marketing features) but completely lacks any 'when' clause or explicit trigger guidance. Per the rubric, a missing 'Use when...' clause caps completeness at 2, and the 'what' itself is also quite thin, warranting a 1. | 1 / 3 |
Trigger Term Quality | Includes relevant keywords like 'Klaviyo', 'email', 'SMS', 'flows', 'segmentation', and 'profiles' that users might naturally mention, but misses common variations like 'campaigns', 'automations', 'subscribers', 'lists', 'templates', or 'marketing automation'. | 2 / 3 |
Distinctiveness Conflict Risk | The mention of 'Klaviyo' specifically is distinctive and narrows the domain well, but 'email/SMS marketing' could overlap with other email marketing or SMS skills. The specific platform name helps but the generic marketing terms could cause some conflict. | 2 / 3 |
Total | 7 / 12 Passed |
Implementation
42%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
The skill provides highly actionable, executable code examples covering the full Klaviyo API surface, which is its primary strength. However, it is severely bloated — the 'Why Klaviyo' marketing table, redundant multi-language examples for every operation, and inlining of all reference material into a single file make it extremely token-inefficient. The content would benefit enormously from splitting into a concise overview SKILL.md with references to separate files for events, webhooks, integration patterns, and API reference.
Suggestions
Remove the 'Why Klaviyo' feature/benefit table and API Key Scopes table — these add no actionable value for Claude.
Split into multiple files: keep SKILL.md as a concise overview (~100 lines) with setup + core profile/event examples, then reference separate files like EVENTS.md, WEBHOOKS.md, INTEGRATION_PATTERNS.md for detailed code.
Choose one primary language (TypeScript) for examples and only include Python where the SDK interface differs meaningfully, rather than duplicating every example.
Add explicit validation/error-recovery steps to the integration workflows — e.g., verify profile exists before tracking events, check Klaviyo dashboard after first sync, handle partial failures in order sync.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | Extremely verbose at ~500+ lines. Includes unnecessary tables explaining 'Why Klaviyo' (Claude doesn't need marketing pitches), redundant Python + TypeScript + HTTP examples for the same operations, API key scope tables, and explanations of basic concepts like what webhooks are. The 'Why Klaviyo' feature/benefit table and API Key Scopes table add zero actionable value. | 1 / 3 |
Actionability | The code examples are concrete, executable, and copy-paste ready across TypeScript, Python, and client-side JavaScript. Functions include proper request bodies with JSON:API format, error handling, pagination, rate limiting with retry logic, and webhook signature verification. | 3 / 3 |
Workflow Clarity | The 'E-Commerce Order Sync' pattern shows a clear 3-step sequence (upsert profile → update metrics → track event), and the checklist provides a good overview. However, there are no explicit validation checkpoints or error recovery steps in the integration workflows — e.g., no guidance on what to do if profile upsert fails before tracking the event, or how to verify events landed correctly. | 2 / 3 |
Progressive Disclosure | This is a monolithic wall of text with no bundle files to offload content to. The e-commerce events, webhook handling, pagination, filtering, and integration patterns could all be separate reference files. Everything is inlined into a single massive document with no references to supporting files, making it overwhelming as a skill file that competes with conversation context. | 1 / 3 |
Total | 7 / 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 |
|---|---|---|
skill_md_line_count | SKILL.md is long (810 lines); consider splitting into references/ and linking | Warning |
frontmatter_unknown_keys | Unknown frontmatter key(s) found; consider removing or moving to metadata | Warning |
Total | 9 / 11 Passed | |
7e5f7a2
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.