customerio-hello-world
SKILL.md
Customer.io Hello World
Overview
Create a minimal working Customer.io example that identifies a user and triggers an event.
Prerequisites
- Completed
customerio-install-authskill - Customer.io SDK installed
- Valid Site ID and API Key configured
Instructions
Step 1: Create Basic Integration
// hello-customerio.ts
import { TrackClient, RegionUS } from '@customerio/track';
const client = new TrackClient(
process.env.CUSTOMERIO_SITE_ID!,
process.env.CUSTOMERIO_API_KEY!,
{ region: RegionUS }
);
async function main() {
// Step 1: Identify a user
await client.identify('user-123', {
email: 'hello@example.com',
first_name: 'Hello',
created_at: Math.floor(Date.now() / 1000)
});
console.log('User identified');
// Step 2: Track an event
await client.track('user-123', {
name: 'hello_world',
data: {
source: 'sdk-test',
timestamp: new Date().toISOString()
}
});
console.log('Event tracked');
}
main().catch(console.error);
Step 2: Run the Example
npx ts-node hello-customerio.ts
Step 3: Verify in Dashboard
- Go to Customer.io dashboard
- Navigate to People section
- Search for "user-123" or "hello@example.com"
- Verify user profile shows attributes
- Check Activity tab for "hello_world" event
Output
- User created/updated in Customer.io
- Event recorded in user's activity log
- Console output confirming success
Error Handling
| Error | Cause | Solution |
|---|---|---|
| 401 Unauthorized | Invalid credentials | Verify Site ID and API Key |
| 400 Bad Request | Invalid data format | Check attribute names and types |
| User not found | Identify not called | Always identify before tracking events |
| Event not showing | Dashboard delay | Wait 1-2 minutes and refresh |
Examples
Python Hello World
import os
from customerio import CustomerIO
cio = CustomerIO(
site_id=os.environ.get('CUSTOMERIO_SITE_ID'),
api_key=os.environ.get('CUSTOMERIO_API_KEY')
)
# Identify user
cio.identify(id='user-123', email='hello@example.com', first_name='Hello')
print('User identified')
# Track event
cio.track(customer_id='user-123', name='hello_world', source='sdk-test')
print('Event tracked')
With Anonymous User
// Track anonymous user with device ID
await client.identify('device-abc123', {
anonymous_id: 'device-abc123',
platform: 'web'
});
Resources
Next Steps
After verifying hello world works, proceed to customerio-local-dev-loop to set up your development workflow.
Weekly Installs
14
Repository
jeremylongshore…s-skillsGitHub Stars
1.6K
First Seen
Feb 18, 2026
Security Audits
Installed on
codex14
mcpjam13
claude-code13
junie13
windsurf13
zencoder13