skills/analyst-data-management/SKILL.md
Data operations including dispatch tracking, custom data types, blocklisting, cross-source attribute management, and analytics partner integration.
npx skillsauth add delta-and-beta/braze-agency analyst-data-managementInstall 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 ─────────────────────────────────────
Skill bodies are designed for progressive disclosure — the body stays lean (~1,500–2,000 words) and acts as a structured index into deeper topic files. The braze-analyst lens shapes how topics are framed: not "here's the feature" but "here's what to check, audit, and watch out for."
─────────────────────────────────────────────────
This skill covers how to manage, audit, and operate on Braze data — including custom attributes and events, dispatch tracking, blocklisting, cross-source attribute resolution, and analytics partner integrations. Apply this skill when diagnosing data inconsistencies, performing data hygiene operations, or connecting Braze to downstream analytics systems.
This skill synthesizes knowledge across the following operational domains:
| Domain | Purpose |
|--------|---------|
| Attribute identity across sources | Resolve how campaign/Canvas names and IDs differ between Liquid, REST API, and Currents |
| Dispatch ID tracking | Understand dispatch_id semantics for scheduled vs. triggered sends |
| Custom data type changes | Change attribute or event data types without data loss surprises |
| Blocklisting vs. deletion | Choose the right data removal strategy for custom attributes and events |
| Data and analytics partner integration | Connect Braze to downstream analytics platforms |
Campaign and Canvas names and IDs are available in three places — Liquid, REST API, and Currents — but they do not share a unified naming scheme. When auditing attribution or debugging cross-source discrepancies:
campaign.${api_id}, canvas.name, canvas_step.name — these are runtime values populated at send time.campaign_id, canvas_id, canvas_step_id — the stable identifiers for querying send history.campaign_id, canvas_id, canvas_step_id in event payloads, matching the REST API identifiers — but step names are not always included.To correlate data across these sources:
A dispatch_id is the unique identifier for a single message transmission — one per "send event." Understanding its scope prevents incorrect deduplication or audience analysis:
dispatch_id. This is intentional — the dispatch represents the batch.dispatch_id because each send is individually triggered.send_id: A send_id is an optional caller-supplied identifier. It is distinct from dispatch_id and does not replace it.To audit message delivery:
dispatch_id to group all users in a scheduled send for aggregate analysis.dispatch_id + user_id for individual-level delivery confirmation.dispatch_id as a proxy for "campaign send" — one campaign can produce many dispatch IDs (one per scheduled send or trigger).To change the data type of a custom attribute or event:
Operational considerations before changing a type:
To audit impact before changing:
These two operations are not equivalent. Choosing incorrectly can cause data loss or continued ingestion of unwanted data.
Blocklisting a custom attribute or event:
Use blocklisting when:
Deleting a custom attribute or event:
Use deletion only when:
To audit before deleting:
Braze supports integration with downstream analytics platforms via:
When evaluating or auditing an analytics integration:
external_id or another stable user identifier is included in the exported payload for cross-system joins.Use this checklist when performing data audits or operational changes:
Before changing or removing custom data:
Before analytics partner integration:
When diagnosing cross-source discrepancies:
Consult the topic reference files for deeper coverage:
references/attribute-identity.md — Full mapping of campaign/Canvas attribute fields across Liquid, REST API, and Currentsreferences/dispatch-id.md — Dispatch ID behavior by send type, including scheduled, triggered, and API-triggeredreferences/custom-data-types.md — Data type change procedures and coercion behaviorreferences/blocklist-deletion.md — Step-by-step blocklist and deletion procedures with rollback guidancereferences/analytics-partners.md — Partner integration patterns, Currents event types, and Snowflake Data Sharing details★ Insight ─────────────────────────────────────
The blocklist-then-delete pattern is a classic data hygiene principle — it mirrors the "soft delete" pattern in databases. Blocklisting acts as the logical delete (stops new writes, preserves reads), while physical deletion is deferred until confidence is high. This matches the principle of making irreversible actions require deliberate, staged effort.
The dispatch ID scoping (shared for scheduled, unique for triggered) is a subtlety that trips up analysts — it means dispatch_id is only a reliable deduplication key within a send type, not across all send mechanisms for a campaign.
─────────────────────────────────────────────────
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.