skills/analyst-currents-streaming/SKILL.md
Configures Braze Currents for real-time event streaming to data warehouses and analytics platforms.
npx skillsauth add delta-and-beta/braze-agency analyst-currents-streamingInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
★ Insight ─────────────────────────────────────
Nick's skill files are used as "onboarding guides" for Claude agents — they encode procedural knowledge that isn't learnable from model weights alone (API connector quirks, warehouse-specific configs, required IAM permissions). A well-designed skill keeps the SKILL.md body lean and delegates deep detail to references/ files for progressive disclosure.
─────────────────────────────────────────────────
This skill covers Braze Currents — the platform's real-time behavioral event streaming feature — with a focus on setup, connector configuration, and optimization for downstream analytics systems. Use this skill when the goal is to export Braze engagement and behavioral data continuously to an external data warehouse, storage layer, or analytics platform.
Currents is the authoritative source of raw, granular Braze event data. Unlike Braze's REST Export APIs (which are batch and rate-limited), Currents delivers event records as they occur, enabling near-real-time analytics pipelines, attribution modeling, and behavioral cohort construction.
The lens of this skill is operational: how to activate, configure, and maintain a Currents connector so that data flows reliably and is structured for use in warehouse queries.
Apply this skill when a braze-analyst task involves any of the following:
This skill draws on three primary knowledge areas:
Currents is Braze's event streaming feature for exporting real-time behavioral data to external systems. It supports two major connector categories:
Data Warehouse / Storage connectors:
Analytics / Engagement connectors:
Events are grouped into engagement events (sends, opens, clicks, bounces, conversions) and user behavior events (custom events, purchases, session starts, subscription changes). Each Currents connection can subscribe to one or more event categories.
Data is serialized in Avro (default, schema-enforced, compact) or JSON depending on connector and configuration. Avro schemas are versioned and published in Braze's public GitHub schema repository.
Currents connections are created from Braze Dashboard → Integrations → Currents → Create New Current. Each connection requires:
prod-s3-engagement-events)For storage connectors (S3, GCS), Braze writes Avro files in batches with a key structure:
{prefix}/{event-type}/YYYY/MM/DD/HH/{uuid}.avro
Verify the connection is active by checking Dashboard → Currents → [Connection Name] for Status: Active and reviewing delivery metrics within the first 30 minutes.
Loading Currents data into Amazon Redshift involves three distinct concerns: storage layout, schema mapping, and load mechanics.
Storage layout for Redshift ingestion:
braze-currents/)Schema mapping: Avro schemas define all fields for each event type. Key structural patterns:
id (UUID), time (Unix epoch), user_id (external ID), device_idapp_id, send_id, campaign_id/canvas_id, dispatch_idemail_address, to_phone_number) vary by channelConvert Avro to Parquet or CSV before loading into Redshift, or use Redshift Spectrum to query Avro files in-place on S3.
Load mechanics (COPY command pattern):
COPY engagement_events
FROM 's3://your-bucket/braze-currents/users.messages.email.Open/'
IAM_ROLE 'arn:aws:iam::account-id:role/RedshiftS3Role'
FORMAT AS AVRO 'auto'
TIMEFORMAT 'epochsecs';
Use MANIFEST files or AUTO path discovery to incrementally load only new partitions. Schedule loads via AWS Glue, dbt, or Airflow at the appropriate cadence (typically hourly for near-real-time, daily for cost-optimized batch).
Currents connectors surface delivery metrics in the Braze dashboard. Check:
For S3 connectors, monitor the target bucket for new file arrivals using S3 event notifications or CloudWatch metrics on NumberOfObjects.
Before enabling Currents, estimate daily event volume to size warehouse infrastructure:
Currents billing is typically included in enterprise contracts but may be volume-gated — confirm with Braze account team before enabling high-volume event categories.
Create separate Currents connections for:
Avoid mixing all event types into a single connection unless downstream infrastructure handles fan-out, as this complicates schema management and load pipelines.
| Mistake | Impact | Fix |
|---|---|---|
| Insufficient S3 bucket policy | Connector fails silently or with auth errors | Grant s3:PutObject, s3:GetBucketLocation to Braze's AWS account ID |
| Missing send_id in joins | Duplicate attribution in campaign analysis | Always include send_id as the join key between send and engagement events |
| Loading all Avro fields into Redshift | Schema bloat, slow queries | Select only the columns used downstream; use Spectrum for exploratory access |
| Using access keys instead of IAM roles | Security risk, rotation burden | Prefer IAM role assumption with Braze's documented external account ID |
| Not filtering test sends | Skews analytics | Filter canvas_id IS NULL AND campaign_id LIKE '%test%' or use send tags |
For detailed field-level schema documentation and connector-specific configuration walkthroughs, consult:
references/currents-overview.md — Full event taxonomy, Avro schema structure, connector comparison matrixreferences/redshift-transfer.md — Step-by-step Redshift COPY patterns, Glue crawler configuration, partition pruning strategiesreferences/currents-setup.md — Dashboard walkthrough, IAM policy templates, credential rotation proceduresWhen assisting with a Currents task, first establish:
This determines whether the task is a configuration task (new connector, credential update), a diagnostic task (missing data, delivery errors), or an optimization task (query performance, cost reduction).
★ Insight ─────────────────────────────────────
The skill deliberately avoids embedding full Avro schemas or IAM policy JSON inline — that content belongs in references/ files. This keeps SKILL.md fast to load and lets Claude decide whether the detailed reference material is actually needed for the specific query. For a "how do I set up Currents?" question, the setup section above is sufficient; for "what are all the fields on an email open event?", Claude would reach for references/currents-overview.md.
─────────────────────────────────────────────────
development
Cross-platform audience synchronization design across advertising platforms including Facebook, Google, TikTok, LinkedIn, and programmatic networks.
development
Defines cross-cutting API patterns for authentication, provisioning, preference management, and content delivery.
development
Covers API basics, authentication, rate limits, error codes, endpoint overview, data retention policies, and Postman collection usage.
development
Integration architecture for AI model providers including OpenAI, Google Gemini, and Anthropic within Braze messaging workflows.