klaviyo-deploy-integration

Deploy Klaviyo integrations to Vercel, Fly.io, and Cloud Run platforms. Use when deploying Klaviyo-powered applications to production, configuring platform-specific secrets, or setting up deployment pipelines. Trigger with phrases like "deploy klaviyo", "klaviyo Vercel", "klaviyo production deploy", "klaviyo Cloud Run", "klaviyo Fly.io".

claude-code
6 Tools
klaviyo-pack Plugin
saas packs Category

Allowed Tools

ReadWriteEditBash(vercel:*)Bash(fly:*)Bash(gcloud:*)

Provided by Plugin

klaviyo-pack

Claude Code skill pack for Klaviyo (24 skills)

saas packs v1.0.0
View Plugin

Installation

This skill is included in the klaviyo-pack plugin:

/plugin install klaviyo-pack@claude-code-plugins-plus

Click to copy

Instructions

Klaviyo Deploy Integration

Overview

Deploy Klaviyo-powered applications to popular platforms with proper secrets management.

Prerequisites

  • Klaviyo API keys for production environment
  • Platform CLI installed (vercel, fly, or gcloud)
  • Application code ready for deployment
  • Environment variables documented

Vercel Deployment

Environment Setup


# Add Klaviyo secrets to Vercel
vercel secrets add klaviyo_api_key sk_live_***
vercel secrets add klaviyo_webhook_secret whsec_***

# Link to project
vercel link

# Deploy preview
vercel

# Deploy production
vercel --prod

vercel.json Configuration


{
  "env": {
    "KLAVIYO_API_KEY": "@klaviyo_api_key"
  },
  "functions": {
    "api/**/*.ts": {
      "maxDuration": 30
    }
  }
}

Fly.io Deployment

fly.toml


app = "my-klaviyo-app"
primary_region = "iad"

[env]
  NODE_ENV = "production"

[http_service]
  internal_port = 3000
  force_https = true
  auto_stop_machines = true
  auto_start_machines = true

Secrets


# Set Klaviyo secrets
fly secrets set KLAVIYO_API_KEY=sk_live_***
fly secrets set KLAVIYO_WEBHOOK_SECRET=whsec_***

# Deploy
fly deploy

Google Cloud Run

Dockerfile


FROM node:20-slim
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
CMD ["npm", "start"]

Deploy Script


#!/bin/bash
# deploy-cloud-run.sh

PROJECT_ID="${GOOGLE_CLOUD_PROJECT}"
SERVICE_NAME="klaviyo-service"
REGION="us-central1"

# Build and push image
gcloud builds submit --tag gcr.io/$PROJECT_ID/$SERVICE_NAME

# Deploy to Cloud Run
gcloud run deploy $SERVICE_NAME \
  --image gcr.io/$PROJECT_ID/$SERVICE_NAME \
  --region $REGION \
  --platform managed \
  --allow-unauthenticated \
  --set-secrets=KLAVIYO_API_KEY=klaviyo-api-key:latest

Environment Configuration Pattern


// config/klaviyo.ts
interface KlaviyoConfig {
  apiKey: string;
  environment: 'development' | 'staging' | 'production';
  webhookSecret?: string;
}

export function getKlaviyoConfig(): KlaviyoConfig {
  const env = process.env.NODE_ENV || 'development';

  return {
    apiKey: process.env.KLAVIYO_API_KEY!,
    environment: env as KlaviyoConfig['environment'],
    webhookSecret: process.env.KLAVIYO_WEBHOOK_SECRET,
  };
}

Health Check Endpoint


// api/health.ts
export async function GET() {
  const klaviyoStatus = await checkKlaviyoConnection();

  return Response.json({
    status: klaviyoStatus ? 'healthy' : 'degraded',
    services: {
      klaviyo: klaviyoStatus,
    },
    timestamp: new Date().toISOString(),
  });
}

Instructions

Step 1: Choose Deployment Platform

Select the platform that best fits your infrastructure needs and follow the platform-specific guide below.

Step 2: Configure Secrets

Store Klaviyo API keys securely using the platform's secrets management.

Step 3: Deploy Application

Use the platform CLI to deploy your application with Klaviyo integration.

Step 4: Verify Health

Test the health check endpoint to confirm Klaviyo connectivity.

Output

  • Application deployed to production
  • Klaviyo secrets securely configured
  • Health check endpoint functional
  • Environment-specific configuration in place

Error Handling

Issue Cause Solution
Secret not found Missing configuration Add secret via platform CLI
Deploy timeout Large build Increase build timeout
Health check fails Wrong API key Verify environment variable
Cold start issues No warm-up Configure minimum instances

Examples

Quick Deploy Script


#!/bin/bash
# Platform-agnostic deploy helper
case "$1" in
  vercel)
    vercel secrets add klaviyo_api_key "$KLAVIYO_API_KEY"
    vercel --prod
    ;;
  fly)
    fly secrets set KLAVIYO_API_KEY="$KLAVIYO_API_KEY"
    fly deploy
    ;;
esac

Resources

Next Steps

For webhook handling, see klaviyo-webhooks-events.

Ready to use klaviyo-pack?