# Klaviyo

Manage Klaviyo: profiles, lists, segments, campaigns, flows, metrics. Exposes **44 actions** covering the full API surface
the agent needs - read and write.

## What it can do

| Method | What it does |
| --- | --- |
| `klaviyo_get_account` | Get account metadata: name, timezone, contact info, timezone. |
| `klaviyo_list_profiles` | List customer profiles - GET /v3/profiles. |
| `klaviyo_get_profile` | Get one customer profile - GET /v3/profiles/&#123;id&#125;. |
| `klaviyo_create_profile` | Create a new profile - POST /v3/profiles. |
| `klaviyo_update_profile` | Update a profile - PATCH /v3/profiles/&#123;id&#125;. |
| `klaviyo_list_lists` | List email lists - GET /v3/lists. |
| `klaviyo_get_list` | Get one email list - GET /v3/lists/&#123;id&#125;. |
| `klaviyo_create_list` | Create an email list - POST /v3/lists. |
| `klaviyo_update_list` | Update a list - PATCH /v3/lists/&#123;id&#125;. |
| `klaviyo_delete_list` | Delete a list - DELETE /v3/lists/&#123;id&#125;. |
| `klaviyo_add_profile_to_list` | Add profiles to a list - POST /v3/lists/&#123;id&#125;/relationships/profiles. |
| `klaviyo_remove_profile_from_list` | Remove profiles from a list - DELETE /v3/lists/&#123;id&#125;/relationships/profiles. |
| `klaviyo_list_segments` | List dynamic segments - GET /v3/segments. |
| `klaviyo_get_segment` | Get one segment - GET /v3/segments/&#123;id&#125;. |
| `klaviyo_create_segment` | Create a segment - POST /v3/segments. |
| `klaviyo_update_segment` | Update a segment - PATCH /v3/segments/&#123;id&#125;. |
| `klaviyo_delete_segment` | Delete a segment - DELETE /v3/segments/&#123;id&#125;. |
| `klaviyo_list_campaigns` | List email broadcast campaigns - GET /v3/campaigns. |
| `klaviyo_get_campaign` | Get one campaign - GET /v3/campaigns/&#123;id&#125;. |
| `klaviyo_create_campaign` | Create a broadcast campaign - POST /v3/campaigns. |
| `klaviyo_update_campaign` | Update a campaign (draft only) - PATCH /v3/campaigns/&#123;id&#125;. |
| `klaviyo_clone_campaign` | Clone a campaign - POST /v3/campaigns/&#123;id&#125;/clone. |
| `klaviyo_schedule_campaign` | Schedule a campaign - POST /v3/campaigns/&#123;id&#125;/schedule. |
| `klaviyo_send_campaign` | Send a campaign immediately - POST /v3/campaigns/&#123;id&#125;/send. |
| `klaviyo_cancel_campaign` | Cancel a scheduled campaign - POST /v3/campaigns/&#123;id&#125;/cancel. |
| `klaviyo_list_flows` | List automated flows (journeys) - GET /v3/flows. |
| `klaviyo_get_flow` | Get one flow - GET /v3/flows/&#123;id&#125;. |
| `klaviyo_create_flow` | Create a flow - POST /v3/flows. |
| `klaviyo_update_flow` | Update a flow - PATCH /v3/flows/&#123;id&#125;. |
| `klaviyo_delete_flow` | Delete a flow - DELETE /v3/flows/&#123;id&#125;. |
| `klaviyo_trigger_flow` | Trigger a flow manually for a profile - POST /v3/flows/&#123;id&#125;/trigger. |
| `klaviyo_create_event` | Track a customer event - POST /v3/events. |
| `klaviyo_bulk_create_events` | Track multiple events in bulk - POST /v3/events/bulk. |
| `klaviyo_list_events` | List events - GET /v3/events. |
| `klaviyo_list_templates` | List email templates - GET /v3/templates. |
| `klaviyo_get_template` | Get one email template - GET /v3/templates/&#123;id&#125;. |
| `klaviyo_create_template` | Create an email template - POST /v3/templates. |
| `klaviyo_update_template` | Update a template - PATCH /v3/templates/&#123;id&#125;. |
| `klaviyo_delete_template` | Delete a template - DELETE /v3/templates/&#123;id&#125;. |
| `klaviyo_render_template` | Render a template with context variables - POST /v3/templates/&#123;id&#125;/render. |
| `klaviyo_get_account_metrics` | Get account-level metrics - GET /v1/metrics. |
| `klaviyo_get_campaign_metrics` | Get metrics for a campaign - GET /v3/campaigns/&#123;id&#125;/metrics. |
| `klaviyo_get_flow_metrics` | Get metrics for a flow - GET /v3/flows/&#123;id&#125;/metrics. |
| `klaviyo_get_email_template_render` | Render a template for preview - POST /v3/templates/&#123;id&#125;/email_template_render. |

## How to get credentials

This connector uses an **API key / token**. Create one in the provider
dashboard, then paste it into FlyMyAI:

- **`KLAVIYO_API_KEY`** - Klaviyo - Settings - Account - API keys. (https://www.klaviyo.com/settings/account/api-keys)

## Fields to fill in FlyMyAI

| FlyMyAI field | Where it comes from |
| --- | --- |
| `KLAVIYO_API_KEY` | Klaviyo - Settings - Account - API keys. |

## Troubleshooting

- **`401 Unauthorized` / `403 Forbidden`** - the token is wrong, expired, or missing a required scope - regenerate it.
- **`429 Too Many Requests`** - you hit the provider rate limit; retry after a short backoff.
- **Unexpected `4xx` on writes** - double-check required fields; the agent confirms before write actions.

## Links

- [Klaviyo API documentation](https://developers.klaviyo.com/en/reference/api_overview)
