Skip to content

docs(webhooks): enhance message event documentation and clarify email activity tracking#1132

Open
jainpawan21 wants to merge 1 commit into
mainfrom
DOC-362
Open

docs(webhooks): enhance message event documentation and clarify email activity tracking#1132
jainpawan21 wants to merge 1 commit into
mainfrom
DOC-362

Conversation

@jainpawan21

@jainpawan21 jainpawan21 commented Jun 20, 2026

Copy link
Copy Markdown
Member

Updated the message events section to explain the sources of message.* events and their relationship with email activity tracking. Added detailed descriptions for each event type, including message.sent, message.delivered, and message.seen. Clarified the necessity of enabling both email activity tracking and outbound webhooks for proper event handling. Improved troubleshooting guidance for common issues related to event visibility in Novu.

Summary by CodeRabbit

  • Documentation
    • Clarified webhook message event sources and prerequisites with comparison tables
    • Added comprehensive troubleshooting guides for email activity tracking and webhook delivery scenarios
    • Enhanced SendGrid integration documentation with detailed step-by-step setup and signature verification instructions
    • Clarified that Activity Tracking and Outbound Webhooks require separate configuration

Greptile Summary

This PR clarifies the relationship between Email Activity Tracking (inbound provider webhooks) and Outbound Webhooks (forwarding to user endpoints) across the webhooks and email integrations documentation. It also converts the old webhooks.mdx page into a legacy-notice stub pointing to the restructured docs.

  • event-types.mdx and webhooks/index.mdx: Adds a source-of-origin table for message.* events and two new FAQ entries explaining why message.delivered/message.seen require activity tracking while message.sent does not.
  • activity-tracking/index.mdx: Adds a Callout separating the two configuration steps (activity tracking vs. outbound webhooks) and a mapping table showing provider events → Novu statuses → outbound webhook event names.
  • sendgrid.mdx: Fixes typos and step numbering, adds a multiple-integrations Callout, an action-mapping table, and a troubleshooting section for common open/delivery-event gaps.

Confidence Score: 4/5

Safe to merge — all changes are documentation-only with no code or configuration logic affected.

The content additions are accurate and internally consistent. The only notable gap is that webhooks.mdx frontmatter description still describes the old full page, which will show stale text in search results and doc previews until corrected.

content/docs/platform/developer/webhooks/webhooks.mdx — the frontmatter description should be updated to match the now-minimal legacy-notice content.

Important Files Changed

Filename Overview
content/docs/platform/developer/webhooks/event-types.mdx Adds a 'Where message events come from' reference table and Callout distinguishing message.sent vs message.delivered; updates all event descriptions to be more precise.
content/docs/platform/developer/webhooks/index.mdx Adds two FAQ entries covering why message.sent appears without message.delivered/seen and how to debug SendGrid events missing from Novu outbound webhooks.
content/docs/platform/developer/webhooks/webhooks.mdx Entire page content replaced with a legacy-notice Callout pointing to the current webhooks overview and event-types pages; frontmatter description still describes the old full-featured page.
content/docs/platform/integrations/email/activity-tracking/index.mdx Adds a Callout separating activity tracking from outbound webhooks and a new mapping table showing provider events → Novu activity statuses → outbound webhook event names.
content/docs/platform/integrations/email/activity-tracking/manual-configuration/sendgrid.mdx Fixes typos and step-numbering, adds a multiple-integrations Callout, inserts a SendGrid action → outbound event mapping table, and adds a troubleshooting section for common open/deliver tracking gaps.

Sequence Diagram

%%{init: {'theme': 'neutral'}}%%
sequenceDiagram
    participant Novu
    participant Provider as Email Provider (e.g. SendGrid)
    participant InboundWebhook as Novu Inbound Webhook
    participant OutboundWebhook as Your Outbound Endpoint

    Novu->>Provider: Send email
    Novu-->>OutboundWebhook: message.sent (no activity tracking needed)

    Provider->>InboundWebhook: delivered event (requires Activity Tracking enabled)
    InboundWebhook->>Novu: normalize to delivered status
    Novu-->>OutboundWebhook: message.delivered

    Provider->>InboundWebhook: open event (requires Activity Tracking enabled)
    InboundWebhook->>Novu: normalize to opened status
    Novu-->>OutboundWebhook: message.seen (not message.opened)

    Provider->>InboundWebhook: bounce / dropped / blocked
    InboundWebhook->>Novu: normalize to bounced / dropped / blocked
    Novu-->>OutboundWebhook: message.failed
Loading
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
sequenceDiagram
    participant Novu
    participant Provider as Email Provider (e.g. SendGrid)
    participant InboundWebhook as Novu Inbound Webhook
    participant OutboundWebhook as Your Outbound Endpoint

    Novu->>Provider: Send email
    Novu-->>OutboundWebhook: message.sent (no activity tracking needed)

    Provider->>InboundWebhook: delivered event (requires Activity Tracking enabled)
    InboundWebhook->>Novu: normalize to delivered status
    Novu-->>OutboundWebhook: message.delivered

    Provider->>InboundWebhook: open event (requires Activity Tracking enabled)
    InboundWebhook->>Novu: normalize to opened status
    Novu-->>OutboundWebhook: message.seen (not message.opened)

    Provider->>InboundWebhook: bounce / dropped / blocked
    InboundWebhook->>Novu: normalize to bounced / dropped / blocked
    Novu-->>OutboundWebhook: message.failed
Loading

Fix All in Cursor

Prompt To Fix All With AI
Fix the following 2 code review issues. Work through them one at a time, proposing concise fixes.

---

### Issue 1 of 2
content/docs/platform/developer/webhooks/webhooks.mdx:4
The `description` frontmatter still describes the old full-featured page. Search engines and Mintlify previews will surface this stale text when users land on what is now a near-empty legacy-notice page.

```suggestion
description: "This page has moved. See the Webhooks overview for setup, signatures, and retries, and the Event types page for a full list of supported events."
```

### Issue 2 of 2
content/docs/platform/integrations/email/activity-tracking/manual-configuration/sendgrid.mdx:59-60
Step 6 is missing a trailing period, inconsistent with every other step in the same list.

```suggestion
6. Click **Create new webhook**.
   ![Create new SendGrid webhook](/images/channels-and-providers/email/activity-tracking/sendgrid-webhook.png)
```

Reviews (1): Last reviewed commit: "docs(webhooks): enhance message event do..." | Re-trigger Greptile

Greptile also left 2 inline comments on this PR.

… activity tracking

Updated the message events section to explain the sources of `message.*` events and their relationship with email activity tracking. Added detailed descriptions for each event type, including `message.sent`, `message.delivered`, and `message.seen`. Clarified the necessity of enabling both email activity tracking and outbound webhooks for proper event handling. Improved troubleshooting guidance for common issues related to event visibility in Novu.
@linear-code

linear-code Bot commented Jun 20, 2026

Copy link
Copy Markdown

DOC-362

@netlify

netlify Bot commented Jun 20, 2026

Copy link
Copy Markdown

Deploy Preview for docs-novu ready!

Name Link
🔨 Latest commit 958af78
🔍 Latest deploy log https://app.netlify.com/projects/docs-novu/deploys/6a360327b0a5dd00085aabcc
😎 Deploy Preview https://deploy-preview-1132--docs-novu.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@coderabbitai

coderabbitai Bot commented Jun 20, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

Five MDX documentation files were updated to clarify the relationship between Email Activity Tracking and Outbound Webhooks. The legacy webhooks.mdx page was replaced with a redirect callout. event-types.mdx gained a comparison table for message.* event origins and rewritten bullet descriptions. The activity tracking overview (index.mdx) added a configuration separation callout and a provider-to-Novu event mapping table with notes on message.seen and click events. The SendGrid manual configuration page was restructured with explicit step sequences, a SendGrid-actions-to-Novu-status mapping table, and a new troubleshooting section. The webhooks FAQ received two new entries covering missing email lifecycle events and SendGrid visibility discrepancies.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title directly and accurately captures the primary changes: enhancing webhook documentation and clarifying email activity tracking requirements.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@@ -4,204 +4,9 @@ pageTitle: "Novu Webhooks Guide"
description: "Learn how Novu webhooks work, including event types, payload schemas, signature verification, and endpoint configuration."

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 The description frontmatter still describes the old full-featured page. Search engines and Mintlify previews will surface this stale text when users land on what is now a near-empty legacy-notice page.

Suggested change
description: "Learn how Novu webhooks work, including event types, payload schemas, signature verification, and endpoint configuration."
description: "This page has moved. See the Webhooks overview for setup, signatures, and retries, and the Event types page for a full list of supported events."
Prompt To Fix With AI
This is a comment left during a code review.
Path: content/docs/platform/developer/webhooks/webhooks.mdx
Line: 4

Comment:
The `description` frontmatter still describes the old full-featured page. Search engines and Mintlify previews will surface this stale text when users land on what is now a near-empty legacy-notice page.

```suggestion
description: "This page has moved. See the Webhooks overview for setup, signatures, and retries, and the Event types page for a full list of supported events."
```

How can I resolve this? If you propose a fix, please make it concise.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

Fix in Cursor

Comment on lines 59 to 60
6. Click **Create new webhook**
![Create new SendGrid webhook](/images/channels-and-providers/email/activity-tracking/sendgrid-webhook.png)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Step 6 is missing a trailing period, inconsistent with every other step in the same list.

Suggested change
6. Click **Create new webhook**
![Create new SendGrid webhook](/images/channels-and-providers/email/activity-tracking/sendgrid-webhook.png)
6. Click **Create new webhook**.
![Create new SendGrid webhook](/images/channels-and-providers/email/activity-tracking/sendgrid-webhook.png)
Prompt To Fix With AI
This is a comment left during a code review.
Path: content/docs/platform/integrations/email/activity-tracking/manual-configuration/sendgrid.mdx
Line: 59-60

Comment:
Step 6 is missing a trailing period, inconsistent with every other step in the same list.

```suggestion
6. Click **Create new webhook**.
   ![Create new SendGrid webhook](/images/channels-and-providers/email/activity-tracking/sendgrid-webhook.png)
```

How can I resolve this? If you propose a fix, please make it concise.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

Fix in Cursor

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant