customerio-install-auth
Install and configure the Customer.io Node.js SDK and manage API authentication for Track and App API surfaces.
Install
mkdir -p .claude/skills/customerio-install-auth && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/9032" && unzip -o skill.zip -d .claude/skills/customerio-install-auth && rm skill.zipInstalls to .claude/skills/customerio-install-auth
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Install and configure Customer.io SDK/CLI authentication.Key capabilities
- →Install the `customerio-node` SDK.
- →Configure environment variables for Customer.io API keys and region.
- →Create and reuse a `TrackClient` for identifying users and tracking events.
- →Create and reuse an `APIClient` for sending transactional messages and broadcasts.
- →Verify Customer.io connection using a test script.
- →Handle common authentication errors like 401 Unauthorized.
How it works
This skill guides the user through installing the `customerio-node` SDK and configuring API keys for both the Track API and App API. It emphasizes using environment variables and provides code for client instantiation and connection verification.
Inputs & outputs
When to use customerio-install-auth
- →Initialize Customer.io SDK in a new project
- →Configure basic auth for the Track API
- →Setup bearer token authentication for the App API
- →Verify Customer.io credentials during initial setup
About this skill
Customer.io Install & Auth
Overview
Set up the customerio-node SDK and configure authentication for Customer.io's two API surfaces: the Track API (identify users, track events) and the App API (transactional messages, broadcasts, data queries).
Prerequisites
- Node.js 18+ with npm/pnpm
- Customer.io account at https://fly.customer.io
- Site ID + Track API Key from Settings > Workspace Settings > API & Webhook Credentials
- App API Key (bearer token) from the same page — needed for transactional messages and broadcasts
Two API Keys, Two Clients
| Client | Auth Method | Key Source | Use For |
|---|---|---|---|
TrackClient | Basic Auth (Site ID + API Key) | Track API credentials | identify(), track(), trackAnonymous(), suppress(), destroy() |
APIClient | Bearer Token (App API Key) | App API credentials | sendEmail(), sendPush(), triggerBroadcast() |
Instructions
Step 1: Install the SDK
npm install customerio-node
The package exports TrackClient, APIClient, RegionUS, RegionEU, SendEmailRequest, and SendPushRequest.
Step 2: Configure Environment Variables
# .env — NEVER commit this file
CUSTOMERIO_SITE_ID=your-site-id-here
CUSTOMERIO_TRACK_API_KEY=your-track-api-key-here
CUSTOMERIO_APP_API_KEY=your-app-api-key-here
CUSTOMERIO_REGION=us # "us" or "eu"
Add .env to .gitignore if not already there.
Step 3: Create the Track Client
// lib/customerio.ts
import { TrackClient, RegionUS, RegionEU } from "customerio-node";
function getRegion() {
return process.env.CUSTOMERIO_REGION === "eu" ? RegionEU : RegionUS;
}
// Singleton — reuse across your app
let trackClient: TrackClient | null = null;
export function getTrackClient(): TrackClient {
if (!trackClient) {
const siteId = process.env.CUSTOMERIO_SITE_ID;
const apiKey = process.env.CUSTOMERIO_TRACK_API_KEY;
if (!siteId || !apiKey) {
throw new Error(
"Missing CUSTOMERIO_SITE_ID or CUSTOMERIO_TRACK_API_KEY"
);
}
trackClient = new TrackClient(siteId, apiKey, { region: getRegion() });
}
return trackClient;
}
Step 4: Create the App API Client
// lib/customerio-app.ts
import { APIClient, RegionUS, RegionEU } from "customerio-node";
let appClient: APIClient | null = null;
export function getAppClient(): APIClient {
if (!appClient) {
const appKey = process.env.CUSTOMERIO_APP_API_KEY;
if (!appKey) {
throw new Error("Missing CUSTOMERIO_APP_API_KEY");
}
const region =
process.env.CUSTOMERIO_REGION === "eu" ? RegionEU : RegionUS;
appClient = new APIClient(appKey, { region });
}
return appClient;
}
Step 5: Verify Connection
// scripts/verify-customerio.ts
import { getTrackClient } from "../lib/customerio";
async function verify() {
const cio = getTrackClient();
try {
// Identify a test user — if credentials are wrong, this throws
await cio.identify("test-verify-user", {
email: "[email protected]",
created_at: Math.floor(Date.now() / 1000),
});
console.log("Customer.io connection verified successfully");
// Clean up: suppress the test user
await cio.suppress("test-verify-user");
console.log("Test user suppressed");
} catch (err: any) {
console.error("Connection failed:", err.statusCode, err.message);
process.exit(1);
}
}
verify();
Run with: npx tsx scripts/verify-customerio.ts
Region Configuration
| Region | Track API Base URL | App API Base URL | SDK Constant |
|---|---|---|---|
| US | https://track.customer.io | https://api.customer.io | RegionUS |
| EU | https://track-eu.customer.io | https://api-eu.customer.io | RegionEU |
Your region is set when you create your Customer.io account. Check Settings > Workspace Settings to confirm. EU accounts must specify RegionEU or all API calls will fail with 401.
Error Handling
| Error | Cause | Solution |
|---|---|---|
401 Unauthorized | Wrong Site ID or Track API Key | Verify both values in Customer.io Settings > API & Webhook Credentials |
401 on App API | Wrong App API Key or using Track key | App API uses a different bearer token — check the App API key |
Region mismatch | EU account using US endpoint | Set CUSTOMERIO_REGION=eu and use RegionEU |
ENOTFOUND | DNS resolution failure | Check network, proxy, or firewall blocking track.customer.io |
MODULE_NOT_FOUND | SDK not installed | Run npm install customerio-node |
Security Notes
- Store credentials in a secrets manager (GCP Secret Manager, AWS SSM, Vault) for production
- Track API Key can identify/track users but cannot send messages — lower risk
- App API Key can send messages and access data — treat as highly sensitive
- Rotate keys every 90 days via Settings > API & Webhook Credentials > Regenerate
Resources
- Managing API Credentials
- Account Regions (US and EU)
- Track API Reference
- App API Reference
- customerio-node on GitHub
Next Steps
After successful auth, proceed to customerio-hello-world for your first identify + track call.
Prerequisites
How it compares
This skill provides specific code examples and best practices for securely setting up Customer.io authentication, which is more direct than general API documentation.
Compared to similar skills
customerio-install-auth side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| customerio-install-auth (this skill) | 0 | 25d | Review | Beginner |
| supabase-developer | 95 | 7mo | Review | Intermediate |
| better-auth-best-practices | 18 | 6mo | No flags | Intermediate |
| lindy-install-auth | 4 | 25d | Caution | Beginner |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by jeremylongshore
View all by jeremylongshore →You might also like
supabase-developer
daffy0208
Build full-stack applications with Supabase (PostgreSQL, Auth, Storage, Real-time, Edge Functions). Use when implementing authentication, database design with RLS, file storage, real-time features, or serverless functions.
better-auth-best-practices
novuhq
Skill for integrating Better Auth - the comprehensive TypeScript authentication framework.
lindy-install-auth
jeremylongshore
Install and configure Lindy AI SDK/CLI authentication. Use when setting up a new Lindy integration, configuring API keys, or initializing Lindy in your project. Trigger with phrases like "install lindy", "setup lindy", "lindy auth", "configure lindy API key".
auth-http-api-cloudbase
TencentCloudBase
Use when you need to implement CloudBase Auth v2 over raw HTTP endpoints (login/signup, tokens, user operations) from backends or scripts that are not using the Web or Node SDKs.
cloudbase-guidelines
TencentCloudBase
Essential CloudBase (TCB, Tencent CloudBase, 云开发, 微信云开发) development guidelines. MUST read when working with CloudBase projects, developing web apps, mini programs, or backend services using CloudBase platform.
cloudbase-auth
TencentCloudBase
A single skill that helps design and implement CloudBase Auth v2 using Web SDK, Node SDK, and HTTP APIs, including login methods, tokens, and best practices.