Overview
Icon for Klaviyo

Klaviyo

Klaviyo order tracking, newsletters, and SMS subscriptions

Medusa Klaviyo Plugin

Medusa v2 plugin for Klaviyo order event tracking, newsletter subscriptions, SMS list subscriptions, and an admin settings page.

Install in a Medusa app

// medusa-config.ts
import { defineConfig } from "@medusajs/framework/utils"
export default defineConfig({
plugins: [
{
resolve: "@oak-digital/medusa-plugin-klaviyo",
options: {
apiKey: process.env.KLAVIYO_API_KEY,
orderReference: {
field: "display_id",
},
},
},
],
})

Copy to clipboardorderReference is optional. By default the plugin sends Copy to clipboardorder_id: order.display_id.

If a specific Medusa app wants raw Medusa ids instead:

{
resolve: "@oak-digital/medusa-plugin-klaviyo",
options: {
apiKey: process.env.KLAVIYO_API_KEY,
orderReference: {
field: "id",
},
},
}

You can also override both the property name and the value resolver:

{
resolve: "@oak-digital/medusa-plugin-klaviyo",
options: {
apiKey: process.env.KLAVIYO_API_KEY,
orderReference: {
propertyName: "medusa_order_ref",
resolveValue: (order) => order.id,
},
},
}

Set Copy to clipboardKLAVIYO_API_KEY in the Medusa app environment, then run migrations:

npx medusa db:migrate

The admin settings page is available at Copy to clipboard/app/klaviyo in the Medusa Admin dashboard.

Local development

pnpm install
npx medusa plugin:db:generate
npx medusa plugin:publish
pnpm dev

Install the locally published package in a Medusa app:

npx medusa plugin:add @oak-digital/medusa-plugin-klaviyo

Build

pnpm build

klaviyo-medusa-plugin

You may also like

Browse all integrations

Build your own

Develop your own custom integration

Build your own integration with our API to speed up your processes. Make your integration available via npm for it to be shared in our Library with the broader Medusa community.

gift card interface

Ready to build your custom commerce setup?