Files
marketingskills/tools/integrations/klaviyo.md
T
Corey Haines 83150fdc08 feat: rename 15 skills for shorter, cleaner names
Renames:
- ab-test-setup → ab-testing
- analytics-tracking → analytics
- competitor-alternatives → competitors
- email-sequence → emails
- free-tool-strategy → free-tools
- launch-strategy → launch
- onboarding-cro → onboarding
- paywall-upgrade-cro → paywalls
- popup-cro → popups
- pricing-strategy → pricing
- product-marketing-context → product-marketing
- referral-program → referrals
- schema-markup → schema
- signup-flow-cro → signup
- social-content → social

Updates all cross-references in skills, references, tools,
marketplace.json, README, AGENTS.md, and CONTRIBUTING.md.

BREAKING: Users with installed skills will need to reinstall.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 16:21:22 -07:00

229 lines
4.7 KiB
Markdown

# Klaviyo
E-commerce email and SMS marketing platform with profiles, flows, campaigns, segments, and event tracking.
## Capabilities
| Integration | Available | Notes |
|-------------|-----------|-------|
| API | ✓ | REST API with JSON:API spec, revision-versioned |
| MCP | - | Not available |
| CLI | ✓ | [klaviyo.js](../clis/klaviyo.js) |
| SDK | ✓ | Python, Node.js, Ruby, PHP, Java, C# |
## Authentication
- **Type**: Private API Key
- **Header**: `Authorization: Klaviyo-API-Key {private_api_key}`
- **Revision Header**: `revision: 2024-10-15` (required on all requests)
- **Get key**: Account Settings > API Keys at https://www.klaviyo.com/settings/account/api-keys
- **Note**: Private keys are prefixed with `pk_`; public keys (6-char site ID) are for client-side only
## Common Agent Operations
### List profiles
```bash
GET https://a.klaviyo.com/api/profiles/?page[size]=20
# Filter by email
GET https://a.klaviyo.com/api/profiles/?filter=equals(email,"user@example.com")
```
### Create profile
```bash
POST https://a.klaviyo.com/api/profiles/
{
"data": {
"type": "profile",
"attributes": {
"email": "user@example.com",
"first_name": "Jane",
"last_name": "Doe",
"phone_number": "+15551234567"
}
}
}
```
### Update profile
```bash
PATCH https://a.klaviyo.com/api/profiles/{profileId}/
{
"data": {
"type": "profile",
"id": "{profileId}",
"attributes": {
"first_name": "Updated Name"
}
}
}
```
### List all lists
```bash
GET https://a.klaviyo.com/api/lists/
```
### Create list
```bash
POST https://a.klaviyo.com/api/lists/
{
"data": {
"type": "list",
"attributes": {
"name": "Newsletter Subscribers"
}
}
}
```
### Add profiles to list
```bash
POST https://a.klaviyo.com/api/lists/{listId}/relationships/profiles/
{
"data": [
{ "type": "profile", "id": "{profileId1}" },
{ "type": "profile", "id": "{profileId2}" }
]
}
```
### Track event
```bash
POST https://a.klaviyo.com/api/events/
{
"data": {
"type": "event",
"attributes": {
"metric": {
"data": {
"type": "metric",
"attributes": { "name": "Placed Order" }
}
},
"profile": {
"data": {
"type": "profile",
"attributes": { "email": "user@example.com" }
}
},
"properties": {
"value": 99.99,
"items": ["Product A"]
},
"time": "2025-01-15T10:00:00Z"
}
}
}
```
### List campaigns
```bash
GET https://a.klaviyo.com/api/campaigns/?filter=equals(messages.channel,"email")
```
### List flows
```bash
GET https://a.klaviyo.com/api/flows/
```
### Update flow status
```bash
PATCH https://a.klaviyo.com/api/flows/{flowId}/
{
"data": {
"type": "flow",
"id": "{flowId}",
"attributes": {
"status": "live"
}
}
}
```
### List metrics
```bash
GET https://a.klaviyo.com/api/metrics/
```
### List segments
```bash
GET https://a.klaviyo.com/api/segments/
```
## API Pattern
Klaviyo uses the JSON:API specification. All request/response bodies use `{ "data": { "type": "...", "attributes": {...} } }` format. Relationships are managed via `/relationships/` sub-endpoints. The `revision` header is required on every request and determines API behavior version.
## Key Metrics
### Profile Fields
- `email` - Email address
- `phone_number` - Phone for SMS
- `first_name`, `last_name` - Name fields
- `properties` - Custom properties object
- `subscriptions` - Email/SMS subscription status
### Event Fields
- `metric` - The metric/event name
- `properties` - Custom event properties
- `time` - Event timestamp
- `value` - Monetary value (for revenue tracking)
### Campaign/Flow Metrics
- `send_count` - Number of sends
- `open_rate` - Open percentage
- `click_rate` - Click percentage
- `revenue` - Attributed revenue
## Parameters
### Common Query Parameters
- `page[size]` - Results per page (default 20, max 100)
- `page[cursor]` - Cursor for pagination
- `filter` - Filter expressions (e.g., `equals(email,"user@example.com")`)
- `sort` - Sort field (prefix `-` for descending)
- `include` - Include related resources
- `fields[resource]` - Sparse fieldsets
## When to Use
- E-commerce email/SMS marketing automation
- Syncing customer profiles from external systems
- Tracking purchase events and customer behavior
- Managing email flows and drip campaigns
- Segmenting audiences for targeted campaigns
- Reporting on campaign and flow performance
## Rate Limits
- Steady-state: 75 requests/second for most endpoints
- Burst: up to 700 requests in 1 minute
- Rate limit headers: `RateLimit-Limit`, `RateLimit-Remaining`, `RateLimit-Reset`
- Lower limits on some write endpoints (profiles, events)
## Relevant Skills
- emails
- ecommerce-email
- lifecycle-marketing
- customer-segmentation