Skip to content

Conversation

@Aviatorscode2
Copy link
Contributor

@Aviatorscode2 Aviatorscode2 commented Oct 23, 2025

Summary by CodeRabbit

  • Documentation
    • Expanded Pushpad integration guide into a step-by-step walkthrough for end-to-end setup.
    • Added clear instructions for obtaining and entering Pushpad credentials in the dashboard.
    • Included subscriber registration and credential update procedures with practical examples (TypeScript and cURL).
    • Improved workflow guidance showing how to trigger notifications from configuration to delivery for easier onboarding.

@linear
Copy link

linear bot commented Oct 23, 2025

MRK-1096 Pushpad

@netlify
Copy link

netlify bot commented Oct 23, 2025

Deploy Preview for docs-novu failed. Why did it fail? →

Name Link
🔨 Latest commit 66e2074
🔍 Latest deploy log https://app.netlify.com/projects/docs-novu/deploys/68ffe1507c9fa800080442de

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Oct 23, 2025

Walkthrough

Expanded the Pushpad integration doc into a step-by-step configuration and usage guide covering credential retrieval, dashboard setup, subscriber registration, and example API/SDK snippets for registering uids and sending notifications via Novu.

Changes

Cohort / File(s) Summary
Pushpad integration docs
content/docs/platform/integrations/push/(providers)/pushpad.mdx
Rewrote and expanded the Pushpad integration page into a detailed guide. Added sections for creating a Pushpad project, obtaining Project ID and access token, configuring credentials in Novu, registering subscriber uids (SDK example), updating subscriber credentials via API (TypeScript and cURL), and triggering notifications through Novu workflows. Updated examples to include provider IDs, integration identifiers, and device tokens.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  actor Developer
  participant Pushpad
  participant Novu
  participant ClientSDK

  rect rgba(54,162,235,0.08)
    Developer->>Pushpad: Create project -> obtain Project ID & Access Token
    Developer->>Novu: Add Pushpad credentials (Project ID, Token) in Integrations
  end

  rect rgba(75,192,192,0.06)
    ClientSDK->>Pushpad: Register user uid and device token
    Pushpad-->>ClientSDK: Confirmation (device registered)
    ClientSDK->>Novu: (optional) Update subscriber with device token via API
    Novu-->>ClientSDK: Subscriber updated
  end

  rect rgba(153,102,255,0.06)
    Developer->>Novu: Create workflow / trigger notification (provider: Pushpad)
    Novu->>Pushpad: Send notification with provider integration & device token
    Pushpad-->>ClientSDK: Deliver push notification
  end
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

  • Docs-only change, moderate length and examples to verify.
  • Pay attention to: code snippets (TypeScript and cURL) for correctness, credential naming consistency (Project ID, access token, provider/integration IDs), and any copy/paste placeholders.

Suggested reviewers

  • jainpawan21

Poem

🐰
A token found, a uid in place,
I hopped through docs to find the trace.
From Pushpad's key to Novu's gate,
Notifications leap — oh what a state! 🥕✨

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed The pull request title "Update content on Pushpad guide" is directly related to the changeset, which updates the Pushpad integration documentation file with a comprehensive, step-by-step guide. The title accurately identifies that the Pushpad guide content has been modified and is specific enough that a teammate scanning the repository history would understand the primary change is an update to Pushpad documentation. While the title could be more descriptive about the nature of the enhancement (e.g., specifying that it adds step-by-step setup instructions), it is not misleading, vague like "misc updates," or off-topic.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch MRK-1096

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.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
content/docs/platform/integrations/push/(providers)/pushpad.mdx (1)

84-88: Fix invalid JSON syntax in the cURL example.

Line 86 uses single quotes around the string value, which violates JSON specification. JSON requires double quotes for all string values.

Apply this diff to correct the JSON syntax:

-d '{
  "providerId": "pushpad",
-  "deviceTokens": ['user123'],
+  "deviceTokens": ["user123"],
  "integrationIdentifier": "pushpad-MnGLxp8uy"
}'
🧹 Nitpick comments (1)
content/docs/platform/integrations/push/(providers)/pushpad.mdx (1)

71-71: Align deviceTokens examples between Node.js and cURL.

The Node.js example (line 71) shows multiple generic tokens, while the cURL example (line 86) shows a single uid. For consistency and clarity, both examples should demonstrate the same pattern. Since the guide explains that uid is the identifier to use (line 49), both examples should consistently demonstrate this pattern.

Consider updating the Node.js example to align with the uid pattern:

 credentials: {
-  deviceTokens: ["token1", "token2", "token3"],
+  deviceTokens: ["user123"],
 },

Alternatively, update the cURL example to show multiple tokens like the Node.js example for demonstration purposes.

Also applies to: 86-86

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between be6cc4c and 8de9455.

⛔ Files ignored due to path filters (5)
  • public/images/channels-and-providers/push/pushpad/access-token.png is excluded by !**/*.png
  • public/images/channels-and-providers/push/pushpad/add-token.png is excluded by !**/*.png
  • public/images/channels-and-providers/push/pushpad/new-project.png is excluded by !**/*.png
  • public/images/channels-and-providers/push/pushpad/project-id.png is excluded by !**/*.png
  • public/images/channels-and-providers/push/pushpad/pushpad-integration.png is excluded by !**/*.png
📒 Files selected for processing (1)
  • content/docs/platform/integrations/push/(providers)/pushpad.mdx (3 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
  • GitHub Check: Redirect rules - docs-novu
  • GitHub Check: Header rules - docs-novu
  • GitHub Check: Pages changed - docs-novu
  • GitHub Check: Build and Lint
🔇 Additional comments (2)
content/docs/platform/integrations/push/(providers)/pushpad.mdx (2)

37-37: Cross-references and external links are properly formatted.

The internal cross-reference to Step 1 (line 37) uses correct markdown anchor formatting, and external links to Pushpad documentation include appropriate security attributes (target="_blank" and rel="noopener noreferrer").

Also applies to: 47-47, 23-23


6-116: Excellent restructuring of the Pushpad integration guide.

The documentation has been significantly improved from a minimal setup mention to a comprehensive, step-by-step guide. The logical flow (credentials → connection → subscriber setup → sending notifications) guides users effectively. Clear instructions with image references and code examples in multiple languages make this highly usable.

@Aviatorscode2 Aviatorscode2 changed the base branch from main to push-provider-guides October 27, 2025 21:21
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
content/docs/platform/integrations/push/(providers)/pushpad.mdx (1)

78-92: Fix JSON syntax errors in cURL examples—multiple files affected.

Single quotes are not valid in JSON. The original issue at pushpad.mdx line 86 also appears in two other provider examples. All three require correction:

  1. pushpad.mdx line 86:
  "providerId": "pushpad",
- "deviceTokens": ['user123'],
+ "deviceTokens": ["user123"],
  "integrationIdentifier": "pushpad-MnGLxp8uy"
  1. pusher-beams.mdx line 55:
  "providerId": "pusher-beams",
- "deviceTokens": ['userId-from-pusher-beams'],
+ "deviceTokens": ["userId-from-pusher-beams"],
  "integrationIdentifier": "pusher-beams-MnGLxp8uy"
  1. push-webhook.mdx line 58:
  "providerId": "push-webhook",
- "deviceTokens": ['ANY_RANDOM_STRING'],
+ "deviceTokens": ["ANY_RANDOM_STRING"],
  "integrationIdentifier": "push-webhook-MnGLxp8uy"

The field name deviceTokens is correct and matches the Novu API specification and other correctly-formatted examples (FCM, APNS, OneSignal, Expo all use this same field name with proper double quotes).

🧹 Nitpick comments (2)
content/docs/platform/integrations/push/(providers)/pushpad.mdx (2)

45-49: Clarify relationship between uid and deviceTokens array.

The text explains that a uid is a single identifier assigned per user (line 49), but the code examples below show deviceTokens as an array that can contain multiple tokens. Clarify whether:

  • A single uid maps to a single device token in the array, or
  • Multiple uids can be registered as multiple device tokens for the same subscriber

Consider adding explicit guidance: "For Pushpad, register the uid as a device token in the deviceTokens array."


69-69: Clarify that integrationIdentifier is a placeholder.

The integrationIdentifier value ("pushpad-MnGLxp8uy") appears in both code examples but is not clearly marked as a placeholder.

Add a note explaining:

  • This is a placeholder value
  • How to find/retrieve the actual integration identifier for their Pushpad integration in Novu
  • Whether they should use the integration name created in Step 2 or find it elsewhere in the dashboard

This prevents users from copying the placeholder value directly and encountering failures.

Also applies to: 87-87

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 8de9455 and 66e2074.

📒 Files selected for processing (1)
  • content/docs/platform/integrations/push/(providers)/pushpad.mdx (3 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
  • GitHub Check: Redirect rules - docs-novu
  • GitHub Check: Header rules - docs-novu
  • GitHub Check: Pages changed - docs-novu
  • GitHub Check: Build and Lint
🔇 Additional comments (3)
content/docs/platform/integrations/push/(providers)/pushpad.mdx (3)

6-8: Clear and informative introduction.

The expanded introductory content effectively sets context for the guide and clearly describes Pushpad's capabilities.


10-39: Well-structured configuration guide with clear steps.

The dual-step approach (obtaining credentials then connecting in Novu) is logical and easy to follow. Cross-references and visual aids enhance clarity.

Please verify that all referenced images exist in the correct path:

  • /images/channels-and-providers/push/pushpad/new-project.png
  • /images/channels-and-providers/push/pushpad/project-id.png
  • /images/channels-and-providers/push/pushpad/add-token.png
  • /images/channels-and-providers/push/pushpad/access-token.png
  • /images/channels-and-providers/push/pushpad/pushpad-integration.png

94-116: Clear workflow trigger example.

The example effectively demonstrates the minimal required pattern for sending a notification via Novu's trigger API. The explanation on line 96 appropriately directs readers to the workflow creation documentation.

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.

2 participants