Blog
AIPRODUCT MANAGEMENT

Audit Notifications with Cursor or Claude Code

Kyle Seyler

March 27, 2026

notification audit with cursor and claude code

Table of contents

Inventory every template

Pull the logs

Trace a message end to end

Map the data

Break it down by tenant

Check preference coverage

Build the hit list

Get started

Most teams can't answer a basic question about their own product: what notifications are you sending, and are they working?

This post walks through a full audit using Courier's CLI and MCP server from inside your coding environment. You'll need a free Courier API key. Every CLI command below also works as a typed MCP tool call in Cursor, Claude Code, or any agent that supports Courier's AI tooling.

Copied!

Inventory every template

Copied!

This returns every template, its ID, and its state (published vs. draft). If you expected 15 and there are 40, the audit was overdue.

Pull the logs

Having a template doesn't mean it's firing. Check what's actually going out:

Copied!

StatusWhat it means
DELIVEREDReached the device or inbox
SENTHanded to provider, not yet confirmed
UNDELIVERABLEProvider rejected it (bad address, bounce, block)
UNROUTABLENo valid channel found for this user

UNDELIVERABLE and UNROUTABLE are your red flags. A handful is normal. A pattern means something is broken.

Trace a message end to end

Pick a message and walk its lifecycle:

Copied!

Do this for a sample of each notification type. You're looking for where things fail (provider rejection? routing skip? preference block?) and whether the rendered content still makes sense. Stale copy, broken template variables, subject lines from 2024 -- this is where you find them.

For template-level inspection before data gets injected:

Copied!

If the published and draft versions have diverged, someone started editing and never shipped it.

Map the data

Every notification depends on data. Cross-reference what a template expects with what's actually being passed:

Copied!

Build a simple map per notification type: what data it needs, where that data comes from, and whether it's consistently present. This is where you find silent failures -- the notification "works" but renders with blank fields because an upstream service isn't passing everything.

Break it down by tenant

For B2B products, notification health varies by customer org. list_messages accepts a tenant_id filter directly:

Copied!

Look for tenants with outdated brand configs, concentrated delivery failures, or notification setups that haven't been touched since onboarding.

Check preference coverage

Notifications users can't opt out of are a churn risk.

Copied!

Cross-reference with your template inventory. Every non-transactional notification should have a preference topic. If your marketing digest doesn't have a toggle, you're one annoyed user away from a full unsubscribe.

Build the hit list

Based on everything you've pulled, flag every notification that fits:

Kill it: UNDELIVERABLE/UNROUTABLE rate >10%. Zero engagement over 30 days. References features that no longer exist.

Revise it: Template variables rendering blank. Published/draft versions diverged. No preference topic assigned. Sent to channels without consent.

Batch or digest it: High volume, low urgency. Same notification type firing multiple times in minutes. Higher opt-out rates than other categories.

Investigate: Delivery rates that vary by tenant. No clear owner. Template untouched for 12+ months but still actively sending.

Take this list back to your team. The data backs up every recommendation.

Get started

Similar resources

debugging deliverability issues with Courier MCP and AI coding tools
AIEngineering

Debug Delivery Issues in Your AI Editor with MCP

Between quarterly audits, delivery issues don’t wait. When emails fail or alerts fire, you need answers fast. Courier’s MCP server lets you debug notifications conversationally—find the message, trace its timeline, and inspect user data in minutes. Instead of jumping between dashboards, your AI agent pulls everything on demand, surfaces root causes, and even automates investigations. The result: faster fixes, less guesswork, and a smarter, always-on reliability workflow.

By Eric Lee

April 03, 2026

b2b customer journeys demo
AIProduct Management

How to Build B2B Customer Journeys

Courier Journeys is an AI-native journey builder for multi-step customer messaging. Build on a visual canvas with branching, delays, live data fetching, AI nodes, and omnichannel sends. Define your payload schema so variables autocomplete throughout the flow. Branch on product events and profile data. Use AI to enrich profiles, drive branching logic, or generate personalized message copy. Throttle messages so customers aren't overwhelmed. Compare draft changes against the live version before publishing. Invoke and test from the CLI or MCP server. Scaffold growth patterns with Courier Skills.

By Kyle Seyler

March 30, 2026

Courier vs Customer.io
AIProduct ManagementNotifications Landscape

Courier vs Customer.io: Complete Customer Engagement Platform Comparison 2026

Courier and Customer.io both support multi-channel messaging, but they are built for different operators. Courier is the customer messaging platform for humans and agents, designed for product teams, growth engineers, and developers who need intelligent messaging infrastructure across journeys, inbox, preferences, and channel orchestration. Customer.io is stronger for marketers and CRM lifecycle teams focused on profile-driven campaigns, segmentation, a/b testing. This comparison breaks down pricing, workflows, in-app messaging, and best-fit use cases.

By Kyle Seyler

March 24, 2026

Multichannel Notifications Platform for SaaS

Products

Platform

Integrations

Customers

Blog

API Status

Subprocessors


© 2026 Courier. All rights reserved.