Customerio Advanced TroubleshootingSAFE
Model-agnostic agent-skills platform with a harness-free canonical layer, verified adapters, and the ccpi package manager. Explore at tonsofskills.com.
Overview
Model-agnostic agent-skills platform with a harness-free canonical layer, verified adapters, and the ccpi package manager. Explore at tonsofskills.com.
4f83675ca38aOBSERVED · 2026-10-08Host compatibility
What the documentation claims. We have not run a compatibility test.
| Host | Status | Notes |
|---|---|---|
| claude-code | mentioned |
What it tells the agent
The instruction file, verbatim from the audited commit — this is the text the model reads, and the surface the audit's instruction layer examines. Quoted here so you can judge it without cloning anything.
--- name: customerio-advanced-troubleshooting description: 'Apply Customer.io advanced debugging and incident response. Use when diagnosing complex delivery issues, investigating campaign failures, or running incident playbooks. Trigger: "debug customer.io", "customer.io investigation", "customer.io troubleshoot", "customer.io incident", "customer.io not delivering". ' allowed-tools: Read, Write, Edit, Bash(curl:*), Bash(npx:*), Glob, Grep version: 1.14.0 license: MIT author: Jeremy Longshore <[email protected]> tags: - saas - customer-io - debugging - incident-response compatibility: Designed for Claude Code --- # Customer.io Advanced Troubleshooting ## Output - A minimal redacted root-cause record with affected environment, correlation IDs, evidence, mitigation, owner, and follow-up action. - A tested recovery that avoids duplicate delivery, lost consent state, or disclosure of recipient data. ## Examples When a production campaign appears delayed, compare aggregate queue/acceptance metrics with a synthetic control event, inspect the workflow/template version and opaque correlation ID, and apply the documented pause or rollback if customer impact is confirmed. Escalate with a redacted bundle; do not export recipient lists or replay the whole campaign until idempotency and consent are verified. ## Overview Advanced debugging techniques for complex Customer.io issues: systematic investigation framework, API debug client, user profile analysis, campaign/broadcast debugging, network diagnostics, and incident response runbooks. ## Prerequisites - Access to Customer.io dashboard (admin recommended) - Application logs access - `curl` for API testing ## Troubleshooting Framework For every issue, answer these five questions first: 1. **What** is the expected vs actual behavior? 2. **When** did the issue start? (Check deploy history, CIO status page) 3. **Who** is affected — one user, a segment, or everyone? 4. **Where** in the pipeline — API call, delivery, or rendering? 5. **How** often — every time, intermittent, or one-time? ## Instructions ### Step 1: API Debug Client ```typescript // lib/customerio-debug.ts import { TrackClient, APIClient, RegionUS } from "customerio-node"; export class DebugCioClient { private track: TrackClient; constructor() { this.track = new TrackClient( process.env.CUSTOMERIO_SITE_ID!, process.env.CUSTOMERIO_TRACK_API_KEY!, { region: RegionUS } ); } async debugIdentify(userId: string, attrs: Record<string, any>) { console.log(`\n--- Debug: identify("${userId}") ---`); console.log("Attributes:", JSON.stringify(attrs, null, 2)); const start = Date.now(); try { await this.track.identify(userId, attrs); const latency = Date.now() - start; console.log(`Result: SUCCESS (${latency}ms)`); return { success: true, latency }; } catch (err: any) { const latency = Date.now() - start; console.log(`Result: FAILED (${latency}ms)`); console.log(`Status: ${err.statusCode}`); console.log(`Message: ${err.message}`); console.log(`Body: ${JSON.stringify(err.body ?? err.response)}`); return { success: false, latency, statusCode: err.statusCode, message: err.message }; } } async debugTrack(userId: string, name: string, data?: any) { console.log(`\n--- Debug: track("${userId}", "${name}") ---`); console.log("Data:", JSON.stringify(data, null, 2)); const start = Date.now(); try { await this.track.track(userId, { name, data }); const latency = Date.now() - start; console.log(`Result: SUCCESS (${latency}ms)`); return { success: true, latency }; } catch (err: any) { const latency = Date.now() - start; console.log(`Result: FAILED (${latency}ms)`); console.log(`Status: ${err.statusCode}`); console.log(`Message: ${err.message}`); return { success: false, latency, statusCode: err.statusCode }; } } } ``` ### Step 2: User Investigation Script ```bash #!/usr/bin/env bash set -euo pipefail # scripts/investigate-user.sh <user-id> USER_ID="${1:?Usage: investigate-user.sh <user-id>}" SITE_ID="${CUSTOMERIO_SITE_ID:?Missing CUSTOMERIO_SITE_ID}" API_KEY="${CUSTOMERIO_TRACK_API_KEY:?Missing CUSTOMERIO_TRACK_API_KEY}" echo "=== Investigating User: ${USER_ID} ===" echo "" # 1. Check if user exists (try to identify with minimal data) echo "--- API Connectivity Test ---" HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" \ -u "${SITE_ID}:${API_KEY}" \ -X PUT "https://track.customer.io/api/v1/customers/${USER_ID}" \ -H "Content-Type: application/json" \ -d '{"_debug_check":"true"}') echo "Track API for user: HTTP ${HTTP_CODE}" echo "" echo "--- Dashboard Checklist ---" echo "Check the following in Customer.io dashboard:" echo "1. People > Search '${USER_ID}'" echo " - Does profile exist?" echo " - Does it have an email attribute?" echo " - Is there a 'Suppressed' badge?" echo "" echo "2. Activity tab:" echo " - Are events being received?" echo " - Any bounce/complaint events?" echo " - Last identify timestamp correct?" echo "" echo "3. Segments tab:" echo " - Which segments does user belong to?" echo " - Does segment match campaign audience?" echo "" echo "4. Campaigns > Find relevant campaign:" echo " - Is campaign status Active?" echo " - Does trigger event match?" echo " - Check 'Messages' tab for delivery attempts" ``` ### Step 3: Campaign Debugging Common campaign issues and their investigation path: | Symptom | Check First | Then Check | |---------|------------|------------| | Campaign not triggering | Event name match (case-sensitive) | Campaign status (Active?) | | User not matched | Segment conditions | User attributes match segment? | | Email not delivered | User has `email` attribute | Bounce/suppression status | | Liquid template broken | `message_data` has all required fields | Preview with real data in dashboard | | Wrong
Trust audit
SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | PASS |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- none-observed
- Network
- none-observed
- Shell
- none-observed
- Dependencies
- pinned
- Secrets in source
- none-found
Findings (0)
No findings outside the package's declared scope.
Gates applied: no_behavioural_pass.
4f83675ca38afull audit observations/trust-audit/skill/jeremylongshore__customerio-advanced-troubleshooting.json · Report an issue / request a re-scanAudit history
Every audit this skill has had.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-08 | 4f83675ca38a | SAFE | B | 89 | first audit |
Questions
What does the Customerio Advanced Troubleshooting skill do?
Model-agnostic agent-skills platform with a harness-free canonical layer, verified adapters, and the ccpi package manager. Explore at tonsofskills.com.
Is Customerio Advanced Troubleshooting safe to install?
The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean skill reads B.
What can Customerio Advanced Troubleshooting access on my machine?
The audit observed no filesystem, network or shell use at all in its source.
Which assistants does Customerio Advanced Troubleshooting work with?
Its documentation mentions claude-code. That is what the text claims, not a compatibility test we ran.
How current is this page?
The grade is for one exact copy of the source (4f83675ca38a), read on 2026-10-08. The repository is watched, and a new audit runs when it changes — this is the first audit.