> ## Documentation Index
> Fetch the complete documentation index at: https://www.zippendo.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Connect Klaviyo

> Connect Klaviyo from Integrations — Private API Key, Connection Name, auto-send events, test, delivery log, and disconnect.

**Klaviyo** receives Zippendo shipping and order events as metrics you can use in email and SMS flows. The catalog card copy is: **Send shipping events to Klaviyo for email/SMS flows.**

This page is the Klaviyo connect form. Shared chrome: [Connect an integration](/docs/how-to/connect-an-integration). Inventory: [Connect a carrier or integration](/docs/how-to/connect-index). Conditional logic: [Automations](/docs/how-to/automations). Provider essay: [Klaviyo](/docs/integrations/klaviyo).

Creating a connection uses the same plan gate as outbound webhooks (**Growth** and above). Nordlys on this page is **Pro**, so **Connect** is unlocked.

## Prerequisites

* A Klaviyo account with a **Private API Key**.

## Where to get the Private API Key

Create the key in Klaviyo **Settings → API keys**. That screen requires signing in to **your** Klaviyo account. The public help article below is the step we can show.

<Frame caption="Klaviyo help: create a Private API Key (Settings → API keys in your own account)">
  <img src="https://mintcdn.com/zippendo/pwy1g1EbXWJlGtUC/images/how-to/connect-klaviyo/10-klaviyo-create-api-key.png?fit=max&auto=format&n=pwy1g1EbXWJlGtUC&q=85&s=712d5a72dd7598a4666bffb6083e1b7a" alt="Klaviyo help article How to create or clone a private API key, with Owner or Admin requirements" width="2880" height="2200" data-path="images/how-to/connect-klaviyo/10-klaviyo-create-api-key.png" />
</Frame>

## Connect from Catalog

<Steps>
  <Step title="Open Catalog">
    Sidebar **Integrations**. Page title **Integrations**. Description: **Connect downstream tools to receive shipping and order events from Zippendo.** Tabs: **Connected** (`?tab=connected`) and **Catalog** (`?tab=catalog`).
  </Step>

  <Step title="Find Klaviyo">
    Card title **Klaviyo**. Links: **Use in automations** and **Read more** (`https://zippendo.com/docs/integrations/klaviyo`). Button **Connect**, or **Add connection** after the first Klaviyo connection.
  </Step>

  <Step title="Click Connect">
    Modal id `connect-integration-modal`. Title **Connect Klaviyo**. Subtitle: **Send shipping events to Klaviyo for email/SMS flows**.
  </Step>

  <Step title="Fill required fields">
    **Connection Name \*** and **Private API Key \***. Tick **Auto-send events** if you want Zippendo to push without an automation.
  </Step>

  <Step title="Connect">
    **Connect** stays disabled until name and key are filled. Success toast: **Integration connected successfully**. Failure: **Failed to create connection** (or **This feature is not available on your current plan.**).
  </Step>
</Steps>

<Frame caption="Klaviyo on Catalog — Use in automations, Read more, Connect">
  <img src="https://mintcdn.com/zippendo/pwy1g1EbXWJlGtUC/images/how-to/connect-klaviyo/01-catalog-card-light.png?fit=max&auto=format&n=pwy1g1EbXWJlGtUC&q=85&s=c1ff6d8ceb38cdf010d4f8cab77584b1" alt="Integrations Catalog with the Klaviyo card, Use in automations, Read more, and Connect" className="block dark:hidden" width="2880" height="1800" data-path="images/how-to/connect-klaviyo/01-catalog-card-light.png" />

  <img src="https://mintcdn.com/zippendo/pwy1g1EbXWJlGtUC/images/how-to/connect-klaviyo/01-catalog-card-dark.png?fit=max&auto=format&n=pwy1g1EbXWJlGtUC&q=85&s=25b488c62a8b3be54e2f835cf27e6a37" alt="Integrations Catalog with the Klaviyo card, Use in automations, Read more, and Connect" className="hidden dark:block" width="2880" height="1800" data-path="images/how-to/connect-klaviyo/01-catalog-card-dark.png" />
</Frame>

<Frame caption="Connect Klaviyo — Connection Name, Private API Key, Auto-send events">
  <img src="https://mintcdn.com/zippendo/pwy1g1EbXWJlGtUC/images/how-to/connect-klaviyo/02-connect-modal-light.png?fit=max&auto=format&n=pwy1g1EbXWJlGtUC&q=85&s=997845dae8653ef635ebc76ebbb82d59" alt="Connect Klaviyo dialog with Connection Name, Private API Key, automation hint, and event checkboxes" className="block dark:hidden" width="2880" height="1800" data-path="images/how-to/connect-klaviyo/02-connect-modal-light.png" />

  <img src="https://mintcdn.com/zippendo/pwy1g1EbXWJlGtUC/images/how-to/connect-klaviyo/02-connect-modal-dark.png?fit=max&auto=format&n=pwy1g1EbXWJlGtUC&q=85&s=8bae56fce7082bd2157b12beb7019971" alt="Connect Klaviyo dialog with Connection Name, Private API Key, automation hint, and event checkboxes" className="hidden dark:block" width="2880" height="1800" data-path="images/how-to/connect-klaviyo/02-connect-modal-dark.png" />
</Frame>

## Shared fields

These appear on every integration connect dialog, including Klaviyo.

| Field                  | Required | What it is                                                                                                                                                             |
| ---------------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Connection Name \*** | Yes      | Placeholder **e.g., My Klaviyo**. Max 100 characters.                                                                                                                  |
| Hint                   | —        | **Need conditional logic, delays, or multi-step workflows? Create an automation instead.** **Create an automation** links to Automations.                              |
| **Auto-send events**   | No       | Checkbox grid. **Select All** / **Deselect All** toggles every event this provider supports. Empty means Zippendo will not auto-push; **Send test event** still works. |

## Klaviyo credentials

| Field                  | Required | Control                                         | Details                                             |
| ---------------------- | -------- | ----------------------------------------------- | --------------------------------------------------- |
| **Private API Key \*** | Yes      | Password. Placeholder **Enter private api key** | Masked. The key is never shown again after connect. |

Footer: **Cancel** / **Connect**.

**Metric Name Override** exists on the API (`eventConfig`) only. It is **not** a field on Connect or Edit. Default metric names match the event labels (for example **Shipment Dispatched**). Override the name from an automation inspector instead — [Automations](/docs/how-to/automations).

## Auto-send events Klaviyo supports

Groups shown: **Shipments**, **Orders**, **Tracking**.

| Checkbox                | Event                 |
| ----------------------- | --------------------- |
| **Shipment Created**    | `shipment.created`    |
| **Shipment Dispatched** | `shipment.dispatched` |
| **Shipment Cancelled**  | `shipment.cancelled`  |
| **Order Created**       | `order.created`       |
| **Order Updated**       | `order.updated`       |
| **Tracking Updated**    | `tracking.updated`    |

Not on this modal: **Shipment Updated**, **Shipment Error**, **Order Cancelled**.

## After you connect

**Connected** shows a green **Connected** pill and **\{\{count}} connection(s)**. Each row: name, **\{\{count}} event(s)** (and **Paused** if inactive — there is **no** pause toggle), **Send test event**, **View delivery log**, **Edit connection**, **Delete connection**.

<Frame caption="Connected — Klaviyo row with test, log, edit, and disconnect">
  <img src="https://mintcdn.com/zippendo/pwy1g1EbXWJlGtUC/images/how-to/connect-klaviyo/03-connected-light.png?fit=max&auto=format&n=pwy1g1EbXWJlGtUC&q=85&s=8e4947613caa63c8c7c16cbb31cbb550" alt="Integrations Connected tab with a Klaviyo connection and action icons" className="block dark:hidden" width="2880" height="1800" data-path="images/how-to/connect-klaviyo/03-connected-light.png" />

  <img src="https://mintcdn.com/zippendo/pwy1g1EbXWJlGtUC/images/how-to/connect-klaviyo/03-connected-dark.png?fit=max&auto=format&n=pwy1g1EbXWJlGtUC&q=85&s=cce49b5d1ba04cd72c3df25d89b4a43d" alt="Integrations Connected tab with a Klaviyo connection and action icons" className="hidden dark:block" width="2880" height="1800" data-path="images/how-to/connect-klaviyo/03-connected-dark.png" />
</Frame>

There is **no** Sandbox Mode checkbox. Use **Send test event** (toast **Test event sent** / **Failed to send test event**). Klaviyo profiles need an identifier on the payload (customer email or phone) for live events.

## Edit Klaviyo Connection

Modal id `edit-integration-connection-modal`. Title **Edit Klaviyo Connection**. Subtitle **Update the configuration for \{\{connection}}**. **Save Changes** disabled while **Connection Name \*** is empty.

<Frame caption="Edit Klaviyo Connection — rename, replace the Private API Key, retick events">
  <img src="https://mintcdn.com/zippendo/pwy1g1EbXWJlGtUC/images/how-to/connect-klaviyo/04-edit-modal-light.png?fit=max&auto=format&n=pwy1g1EbXWJlGtUC&q=85&s=8e412d590fe8c64003955e79a139afbf" alt="Edit Klaviyo Connection dialog with Connection Name, Private API Key, and Auto-send events" className="block dark:hidden" width="2880" height="1800" data-path="images/how-to/connect-klaviyo/04-edit-modal-light.png" />

  <img src="https://mintcdn.com/zippendo/pwy1g1EbXWJlGtUC/images/how-to/connect-klaviyo/04-edit-modal-dark.png?fit=max&auto=format&n=pwy1g1EbXWJlGtUC&q=85&s=037810f1c442dc2ccf2d25eb84e28428" alt="Edit Klaviyo Connection dialog with Connection Name, Private API Key, and Auto-send events" className="hidden dark:block" width="2880" height="1800" data-path="images/how-to/connect-klaviyo/04-edit-modal-dark.png" />
</Frame>

| Field                  | Details                                                                                                  |
| ---------------------- | -------------------------------------------------------------------------------------------------------- |
| **Connection Name \*** | Same as create.                                                                                          |
| **Private API Key \*** | Placeholder **Enter new private api key or leave to keep existing**. Leave blank to keep the stored key. |
| **Auto-send events**   | Same Klaviyo checkboxes as create.                                                                       |

Toasts: **Integration updated successfully** / **Failed to update connection**.

<Warning>
  Entering a new key **replaces** the stored credentials. Leave the field blank to keep the existing key.
</Warning>

## Delivery log and test

**View delivery log** — modal id `integration-delivery-log-modal`. Title **Delivery Log**. Subtitle **Recent deliveries for \{\{connection}}**. **Close**.

| State   | What you see                                                                                         |
| ------- | ---------------------------------------------------------------------------------------------------- |
| Loading | Spinner                                                                                              |
| Empty   | **No deliveries yet**                                                                                |
| Row     | Event name, HTTP status, duration in `ms`, relative time, error text if failed. Green check / red X. |

<Frame caption="Delivery Log — empty until the first auto-send or Send test event">
  <img src="https://mintcdn.com/zippendo/pwy1g1EbXWJlGtUC/images/how-to/connect-klaviyo/05-delivery-log-light.png?fit=max&auto=format&n=pwy1g1EbXWJlGtUC&q=85&s=fd9877adc343034916027bda865b35b1" alt="Delivery Log modal showing No deliveries yet for a Klaviyo connection" className="block dark:hidden" width="2880" height="1800" data-path="images/how-to/connect-klaviyo/05-delivery-log-light.png" />

  <img src="https://mintcdn.com/zippendo/pwy1g1EbXWJlGtUC/images/how-to/connect-klaviyo/05-delivery-log-dark.png?fit=max&auto=format&n=pwy1g1EbXWJlGtUC&q=85&s=ad39c037de30a4e8212502c6b5db7365" alt="Delivery Log modal showing No deliveries yet for a Klaviyo connection" className="hidden dark:block" width="2880" height="1800" data-path="images/how-to/connect-klaviyo/05-delivery-log-dark.png" />
</Frame>

**Send test event** enqueues `integration.test`. It does not require any auto-send checkbox.

## Disconnect

Trash opens **Disconnect Integration**. Description: **Are you sure you want to disconnect this integration? This will stop all event deliveries and delete the delivery history.** Type **DELETE** to enable **Disconnect**. Label: **Type DELETE to confirm**.

Toasts: **Integration disconnected** / **Failed to delete connection**. Missing row: **Integration not found.** (`ORG_INTEGRATION_NOT_FOUND`).

<Frame caption="Disconnect Integration — type DELETE to confirm">
  <img src="https://mintcdn.com/zippendo/pwy1g1EbXWJlGtUC/images/how-to/connect-klaviyo/06-disconnect-modal-light.png?fit=max&auto=format&n=pwy1g1EbXWJlGtUC&q=85&s=9096bb1836a9f898452ae9cdb0c169fc" alt="Disconnect Integration confirmation requiring DELETE" className="block dark:hidden" width="2880" height="1800" data-path="images/how-to/connect-klaviyo/06-disconnect-modal-light.png" />

  <img src="https://mintcdn.com/zippendo/pwy1g1EbXWJlGtUC/images/how-to/connect-klaviyo/06-disconnect-modal-dark.png?fit=max&auto=format&n=pwy1g1EbXWJlGtUC&q=85&s=253e92a844d62cad47b32ba5d492c28a" alt="Disconnect Integration confirmation requiring DELETE" className="hidden dark:block" width="2880" height="1800" data-path="images/how-to/connect-klaviyo/06-disconnect-modal-dark.png" />
</Frame>

<Check>
  You are done when **Connected** lists Klaviyo with a **Connected** pill and **Send test event** toasts **Test event sent**.
</Check>

## Automations

Palette: **Send Klaviyo Event** — **Sends an event to Klaviyo via a connected integration** (`action.integration.klaviyo`).

| Field                   | Required                         | Details                                                                                                                                                   |
| ----------------------- | -------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Connection**          | Yes (**Connection is required**) | **Select a connection**. Helper: **Select an existing klaviyo connection. Manage connections in Settings > Integrations.** Empty: **No items available**. |
| **Event name override** | No                               | Placeholder **e.g. Shipment Dispatched**. Helper: **Optional. Override the default event/metric name sent to the provider.**                              |
| **Custom properties**   | No                               | **Add**. Key **key**, value **\{\{shipment.reference}}**.                                                                                                 |

Full node list: [Automations](/docs/how-to/automations).

## Related

* [Connect a carrier or integration](/docs/how-to/connect-index)
* [Connect an integration](/docs/how-to/connect-an-integration)
* [Carrier credentials](/docs/how-to/carrier-credentials)
* [Sandbox mode](/docs/how-to/sandbox-mode)
* [Request a carrier integration](/docs/how-to/request-carrier-integration)
* [Carriers](/docs/tutorials/carriers)
* [Automations](/docs/how-to/automations)
* [Klaviyo](/docs/integrations/klaviyo)
* [Integrations troubleshooting](/docs/integrations/troubleshooting)
