Claude
Skills
Sign in
Back

sales-customerio

Included with Lifetime
$97 forever

Customer.io platform help — customer engagement and marketing automation for behavior-based multi-channel messaging (email, SMS, push, in-app, WhatsApp). Use when automations aren't triggering on the right behavior, transactional messages are failing or delayed, segments aren't updating as expected, journeys need debugging or restructuring, Data Pipelines or reverse ETL aren't syncing, custom object relationships aren't working, or API calls to Track/App/Transactional endpoints are erroring. Do NOT use for general email marketing strategy (use /sales-email-marketing), cross-platform email deliverability (use /sales-deliverability), or email open/click tracking strategy (use /sales-email-tracking).

Backend & APIssalesmarketing-automationmessagingplatform

What this skill does

# Customer.io Platform Help

Help the user with Customer.io platform questions — from behavior-triggered journeys and campaigns through transactional messaging, segmentation, multi-channel delivery (email, SMS, push, in-app, WhatsApp), Data Pipelines, Custom Objects, Ad Audience Sync, and analytics. Customer.io is a customer engagement and marketing automation platform for data-driven, event-based messaging across the entire customer lifecycle. Founded in 2012 by Colin Nederkoorn and John Allison, Customer.io serves 9,000+ brands with $100M+ ARR and differentiates through event-driven automation for product-led companies — while Mailchimp/SendGrid focus on marketing email, Customer.io excels at behavior-triggered messaging (onboarding, activation, retention, re-engagement) with first-party data at the center.

## Step 1 — Gather context


If `references/learnings.md` exists, read it first for accumulated knowledge.

Ask the user:

1. **What area of Customer.io do you need help with?**
   - A) Journeys — visual drag-and-drop workflow builder for multi-channel automation
   - B) Campaigns — segment-triggered, event-triggered, or date-triggered messaging
   - C) Transactional Messages — API-triggered email, push, or SMS (password resets, receipts, etc.)
   - D) Segmentation — data-driven (auto-updating) or manual (static) segments
   - E) Multi-channel messaging — email, SMS, push notifications, in-app messages, WhatsApp
   - F) Data Pipelines — data ingestion API, reverse ETL, Segment integration
   - G) Custom Objects — modeling relationships beyond people (accounts, products, subscriptions)
   - H) Ad Audience Sync — Google, Facebook, Instagram, YouTube audience sync
   - I) Design Studio — collaborative drag-and-drop email editor
   - J) A/B & cohort testing — testing content, subject lines, workflow branches, send times
   - K) Broadcasts — one-time or scheduled messages to segments
   - L) Webhooks — sending/receiving data to any API within journey steps
   - M) Analytics — conversion goals, cohort comparison, AI-powered insights
   - N) APIs — Track API, App API, Transactional API, Data Pipelines API
   - O) Integrations — Salesforce, Segment, Snowflake, BigQuery, Zapier, etc.
   - P) Account / Billing — plans, pricing, profile limits
   - Q) Something else — describe it

2. **What's your role?**
   - A) Developer / engineer
   - B) Product / growth
   - C) Marketing / lifecycle
   - D) Admin / account owner
   - E) Founder / solo operator
   - F) Other

3. **What are you trying to accomplish?** (describe your specific goal or question)

**If the user's request already provides most of this context, skip directly to the relevant step.** Lead with your best-effort answer using reasonable assumptions (stated explicitly), then ask only the most critical 1-2 clarifying questions at the end — don't gate your response behind gathering complete context.

Note: If the user needs a specialized skill, route them there with a brief explanation of why that skill is a better fit.

## Step 2 — Route or answer directly

If the request maps to a specialized skill, route:
- General email marketing strategy / best practices -> `/sales-email-marketing`
- Cross-platform email deliverability (not Customer.io-specific) -> `/sales-deliverability`
- Email open/click tracking strategy -> `/sales-email-tracking`
- Connecting Customer.io to other tools via Zapier or middleware -> `/sales-integration`
- Funnel strategy / conversion optimization -> `/sales-funnel`

Otherwise, answer directly from platform knowledge using the reference below.

## Step 3 — Customer.io platform reference

**Read `references/platform-guide.md`** for detailed module documentation, pricing, integrations, and data model.

*You no longer need the platform guide details — focus on the user's specific situation.*

## Step 4 — Actionable guidance

Based on the user's specific question:

1. **Setting up an event-triggered campaign**:
   1. Identify the event that should trigger the campaign (e.g., `trial_started`, `purchase_completed`, `feature_activated`) — make sure your application is tracking this event via the Track API or Data Pipelines
   2. In Customer.io, go to Journeys > Create Journey > choose "Event triggered"
   3. Select the trigger event name — optionally add event data filters (e.g., only trigger when `plan = "pro"`)
   4. Add a delay if needed (e.g., wait 1 hour after signup before sending the first onboarding email)
   5. Add your first message action — select the channel (email, SMS, push, etc.) and design the message
   6. Use Liquid templating to personalize: `{{ customer.first_name }}`, `{{ event.plan_name }}`, `{{ customer.company }}`
   7. Add branching logic for follow-ups — e.g., "Did user complete onboarding step?" true/false branch
   8. Set a conversion goal event (e.g., `onboarding_completed`) with a time window to measure campaign effectiveness
   9. Test the journey in draft mode — use a test profile and manually trigger the event via the Track API
   10. Activate the journey when ready

2. **Sending transactional email via the API**:
   1. Create a transactional message template in Customer.io: Transactional > Create Transactional Message > Email
   2. Design the email content — use Liquid variables for dynamic data (e.g., `{{ order_number }}`, `{{ reset_url }}`)
   3. Note the transactional message ID from the template settings
   4. Get your App API key from Settings > API Credentials (this is a Bearer token, different from the Track API Site ID/key pair)
   5. Send via API:
      ```
      POST https://api.customer.io/v1/send/email
      Authorization: Bearer YOUR_APP_API_KEY
      Content-Type: application/json

      {
        "transactional_message_id": "YOUR_TEMPLATE_ID",
        "to": "[email protected]",
        "identifiers": { "id": "user_123" },
        "message_data": { "order_number": "ORD-456", "total": "$99.00" }
      }
      ```
   6. Handle the response — check for success (200) or error codes
   7. Monitor delivery in Customer.io's Transactional Messages section — opens, clicks, and delivery status appear alongside campaign analytics
   8. For EU data residency, use `https://api-eu.customer.io/v1/send/email`

3. **Building data-driven segments**:
   1. Go to Segments > Create Segment > Data-driven
   2. Define conditions using the visual condition builder — combine attribute filters, event filters, and engagement filters
   3. Attribute filter example: `plan` equals `"premium"` AND `created_at` is after 2025-01-01
   4. Event filter example: Person has performed `login` at least 3 times in the last 7 days
   5. Engagement filter example: Person has opened any email in the last 30 days
   6. Use AND/OR grouping for complex logic — e.g., (plan = "premium" OR plan = "enterprise") AND (last login within 14 days)
   7. Preview the segment to see matching profiles before saving
   8. Use the segment as a journey trigger — people automatically enter the journey when they match the segment criteria and exit when they no longer match
   9. Segments re-evaluate in real time as new data arrives via Track API or Data Pipelines — no manual refresh needed

4. **Adding a webhook to a journey workflow**:
   1. Open an existing journey or create a new one in the journey builder
   2. Add a "Send Webhook" action at the desired step in the workflow
   3. Configure the webhook: set the HTTP method (GET, POST, PUT, PATCH, DELETE), URL, headers, and body
   4. Use Liquid templating in the webhook body to include person attributes and event data: `{ "user_id": "{{ customer.id }}", "plan": "{{ customer.plan }}" }`
   5. Add authentication headers as needed (e.g., `Authorization: Bearer YOUR_EXTERNAL_API_KEY`)
   6. Use cases: update an external CRM, trigger a Slack notification, call your own API to provision a resource, sync data to a third-party tool
   7. Handle webhook responses — you can branch the journey based on the webhook response status code (success/failure
Files: 4
Size: 49.9 KB
Complexity: 57/100
Category: Backend & APIs

Related in Backend & APIs