营销自动化_klaviyo-automation
以下为本文档的中文说明
该技能通过Rube MCP(基于Composio平台)自动化Klaviyo的电子邮件和短信营销操作。Klaviyo是领先的营销自动化平台,专注于电商领域的邮件和短信营销。该技能使AI代理能够以程序化方式管理营销活动。
使用场景包括:需要查看和筛选Klaviyo中的邮件/短信营销活动列表;获取特定营销活动的详细信息包括内容和受众设置;检查营销活动发送任务的执行状态;管理与营销活动关联的标签;构建自动化的营销工作流。
核心特点在于:一是通过Rube MCP实现连接,无需管理API密钥即可对接Klaviyo服务;二是覆盖五大核心工作流——列出和筛选营销活动、获取活动详情、检查活动消息内容、管理活动标签、监控发送任务状态;三是提供丰富的参数控制,包括渠道过滤(email/sms)、状态筛选、排序方式、分页控制和稀疏字段集(sparse fieldset)支持;四是详细的陷阱说明,涵盖API版本兼容性、响应数据嵌套结构、速率限制、状态字符串大小写敏感性等常见问题;五是标准化的使用模式,包括营销活动发现模式、分页模式和过滤语法模式,降低学习曲线。该技能适合需要将Klaviyo营销操作纳入自动化管道的电商运营团队。
Klaviyo Automation via Rube MCP
Automate Klaviyo email and SMS marketing operations through Composio’s Klaviyo toolkit via Rube MCP.
Prerequisites
- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
- Active Klaviyo connection via
RUBE_MANAGE_CONNECTIONSwith toolkitklaviyo - Always call
RUBE_SEARCH_TOOLSfirst to get current tool schemas
Setup
Get Rube MCP: Add https://rube.app/mcp as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.
- Verify Rube MCP is available by confirming
RUBE_SEARCH_TOOLSresponds - Call
RUBE_MANAGE_CONNECTIONSwith toolkitklaviyo - If connection is not ACTIVE, follow the returned auth link to complete Klaviyo authentication
- Confirm connection status shows ACTIVE before running any workflows
Core Workflows
1. List and Filter Campaigns
When to use: User wants to browse, search, or filter marketing campaigns
Tool sequence:
KLAVIYO_GET_CAMPAIGNS- List campaigns with channel and status filters [Required]
Key parameters:
channel: Campaign channel - ‘email’ or ‘sms’ (required by Klaviyo API)filter: Additional filter string (e.g.,equals(status,"draft"))sort: Sort field with optional-prefix for descending (e.g., ‘-created_at’, ‘name’)page_cursor: Pagination cursor for next pageinclude_archived: Include archived campaigns (default: false)
Pitfalls:
channelis required; omitting it can produce incomplete or unexpected results- Pagination is mandatory for full coverage; a single call returns only one page (default ~10)
- Follow
page_cursoruntil exhausted to get all campaigns - Status filtering via
filter(e.g.,equals(status,"draft")) can return mixed statuses; always validatedata[].attributes.statusclient-side - Status strings are case-sensitive and can be compound (e.g., ‘Cancelled: No Recipients’)
- Response shape is nested:
response.data.datawith status atdata[].attributes.status
2. Get Campaign Details
When to use: User wants detailed information about a specific campaign
Tool sequence:
KLAVIYO_GET_CAMPAIGNS- Find campaign to get its ID [Prerequisite]KLAVIYO_GET_CAMPAIGN- Retrieve full campaign details [Required]
Key parameters:
campaign_id: Campaign ID string (e.g., ‘01GDDKASAP8TKDDA2GRZDSVP4H’)include_messages: Include campaign messages in responseinclude_tags: Include tags in response
Pitfalls:
- Campaign IDs are alphanumeric strings, not numeric
include_messagesandinclude_tagsadd related data to the response via Klaviyo’s include mechanism- Campaign details include audiences, send strategy, tracking options, and scheduling info
3. Inspect Campaign Messages
When to use: User wants to view the email/SMS content of a campaign
Tool sequence:
KLAVIYO_GET_CAMPAIGN- Find campaign and its message IDs [Prerequisite]KLAVIYO_GET_CAMPAIGN_MESSAGE- Get message content details [Required]
Key parameters:
id: Message ID stringfields__campaign__message: Sparse fieldset for message attributes (e.g., ‘content.subject’, ‘content.from_email’, ‘content.body’)fields__campaign: Sparse fieldset for campaign attributesfields__template: Sparse fieldset for template attributesinclude: Related resources to include (‘campaign’, ‘template’)
Pitfalls:
- Message IDs are separate from campaign IDs; extract from campaign response
- Sparse fieldset syntax uses dot notation for nested fields: ‘content.subject’, ‘content.from_email’
- Email messages have content fields: subject, preview_text, from_email, from_label, reply_to_email
- SMS messages have content fields: body
- Including ‘template’ provides the HTML/text content of the email
4. Manage Campaign Tags
When to use: User wants to view tags associated with campaigns for organization
Tool sequence:
KLAVIYO_GET_CAMPAIGN_RELATIONSHIPS_TAGS- Get tag IDs for a campaign [Required]
Key parameters:
id: Campaign ID string
Pitfalls:
- Returns only
tag IDs, not tag names/details - Tag IDs can be used with Klaviyo’s tag endpoints for full details
- Rate limit: 3/s burst, 60/m steady (stricter than other endpoints)
5. Monitor Campaign Send Jobs
When to use: User wants to check the status of a campaign send operation
Tool sequence:
KLAVIYO_GET_CAMPAIGN_SEND_JOB- Check send job status [Required]
Key parameters:
id: Send job ID
Pitfalls:
- Send job IDs are returned when a campaign send is initiated
- Job statuses indicate whether the send is queued, in progress, complete, or failed
- Rate limit: 10/s burst, 150/m steady
Common Patterns
Campaign Discovery Pattern
1. Call KLAVIYO_GET_CAMPAIGNS with channel='email'
2. Paginate through all results via page_cursor
3. Filter by status client-side for accuracy
4. Extract campaign IDs for detailed inspection
Sparse Fieldset Pattern
Klaviyo supports sparse fieldsets to reduce response size:
fields__campaign__message=['content.subject', 'content.from_email', 'send_times']
fields__campaign=['name', 'status', 'send_time']
fields__template=['name', 'html', 'text']
Pagination
- Klaviyo uses cursor-based pagination
- Check response for
page_cursorin the pagination metadata - Pass cursor as
page_cursorin next request - Default page size is ~10 campaigns
- Continue until no more cursor is returned
Filter Syntax
- equals(status,"draft") - Campaigns in draft status
- equals(name,"Newsletter") - Campaign named "Newsletter"
- greater-than(created_at,"2024-01-01T00:00:00Z") - Created after date
Known Pitfalls
API Version:
- Klaviyo API uses versioned endpoints (e.g., v2024-07-15)
- Response schemas may change between API versions
- Tool responses follow the version configured in the Composio integration
Response Nesting:
- Data is nested:
response.data.data[].attributes - Campaign status at
data[].attributes.status - Mis-parsing the nesting yields empty or incorrect results
- Always navigate through the full path defensively
Rate Limits:
- Burst: 10/s (3/s for tag endpoints)
- Steady: 150/m (60/m for tag endpoints)
- Required scope: campaigns:read
- Implement backoff on 429 responses
Status Values:
- Status strings are case-sensitive
- Compound statuses exist (e.g., ‘Cancelled: No Recipients’)
- Server-side filtering may return mixed statuses; always validate client-side
Quick Reference
| Task | Tool Slug | Key Params |
|---|---|---|
| List campaigns | KLAVIYO_GET_CAMPAIGNS | channel, filter, sort, page_cursor |
| Get campaign details | KLAVIYO_GET_CAMPAIGN | campaign_id, include_messages, include_tags |
| Get campaign message | KLAVIYO_GET_CAMPAIGN_MESSAGE | id, fields__campaign__message |
| Get campaign tags | KLAVIYO_GET_CAMPAIGN_RELATIONSHIPS_TAGS | id |
| Get send job status | KLAVIYO_GET_CAMPAIGN_SEND_JOB | id |
When to Use
This skill is applicable to execute the workflow or actions described in the overview.
Limitations
- Use this skill only when the task clearly matches the scope described above.
- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.
更多推荐



所有评论(0)