diff --git a/community/get-involved.mdx b/community/get-involved.mdx index a0278b45..d849169b 100644 --- a/community/get-involved.mdx +++ b/community/get-involved.mdx @@ -105,7 +105,7 @@ Are you passionate about notifications like we are? There are many different—a ### PRs, issues, and bug reports - Check out our [contributors guide](https://github.com/novuhq/novu/blob/next/CONTRIBUTING.md) -- Once you’ve gone through our [development process](https://docs.novu.co/community/run-in-local-machine), you can contribute directly to open issues. +- Once you’ve gone through our [development process](/community/run-in-local-machine), you can contribute directly to open issues. - Open a new issue if a relevant one isn’t already open. - Also, you can create bug reports if you find a bug somewhere. - Or a feature request if you find something that should be a feature but isn't. diff --git a/community/monorepo-structure.mdx b/community/monorepo-structure.mdx index a24f8c7c..3e1d4e77 100644 --- a/community/monorepo-structure.mdx +++ b/community/monorepo-structure.mdx @@ -21,7 +21,7 @@ This will: - copy the `.env.example` file to the `.env` file for the API service. - execute the `npm run build` command to build all the dependency trees locally. -For additional information on running Novu locally, visit the [run locally](https://docs.novu.co/community/run-in-local-machine) guide. +For additional information on running Novu locally, visit the [run locally](/community/run-in-local-machine) guide. ## Apps @@ -129,4 +129,4 @@ Novu provides a single API to manage providers across multiple channels with a s ### 📱 In-App -- [Novu](https://docs.novu.co/notification-center/getting-started) +- [Novu](/integrations/providers/in-app/overview) diff --git a/framework/controls.mdx b/framework/controls.mdx index f5513bfb..1db85b17 100644 --- a/framework/controls.mdx +++ b/framework/controls.mdx @@ -126,7 +126,7 @@ You can use variables in any step control value, whether set by the developer or ### Variable Options -- **Subscriber Attributes**: Access all [subscriber attributes](https://docs.novu.co/concepts/subscribers#subscriber-attributes). Example: `{{subscriber.firstName}}` +- **Subscriber Attributes**: Access all [subscriber attributes](/concepts/subscribers#subscriber-attributes). Example: `{{subscriber.firstName}}` - **Payload Variables**: Use all payload variables defined in the `payloadSchema`. Example: `{{payload.userId}}` - **Liquid Filters**: Apply [liquid filters](https://liquidjs.com/filters/overview.html) to format or manipulate variable values. Examples: `{{subscriber.firstName | append: ': ' | append: payload.status | capitalize}}` or `{{payload.invoiceDate | date: '%a, %b %d, %y'}}` will format the date as `Thu, Jan 01, 24` diff --git a/getting-started/how-novu-works.mdx b/getting-started/how-novu-works.mdx index 19146021..3dfaffac 100644 --- a/getting-started/how-novu-works.mdx +++ b/getting-started/how-novu-works.mdx @@ -6,7 +6,7 @@ Novu is an open-source notification infrastructure platform that greatly reduces We designed Novu with both developers and product teams in mind: it’s easy for developers to implement quickly, and simple for less-technical users to interact with and maintain content with a powerful intuitive dashboard. -Novu functions as an abstraction layer between your application and end users, and managed all aspects of notification workflow logic and delivery provider management. +Novu functions as an abstraction layer between your application and end users, and manages all aspects of notification workflow logic and delivery provider management. ![how-novu-works](/getting-started/media-assets/how-novu-works.png) @@ -55,7 +55,7 @@ There are two ways to integrate Novu with your application or website: -Every request you make is automatically routed to the correct [environment](/concepts/environments), ensuring clean separation between **development** and **production** environments. +Every request you make is automatically routed to the correct [environment](/concepts/environments), ensuring clear separation between **development** and **production** environments. --- @@ -63,7 +63,7 @@ Every request you make is automatically routed to the correct [environment](/con Workflows are the core building blocks of Novu's notification system. They enable you to design sophisticated messaging sequences that can span multiple communication channels like in-app, email, SMS, chat, and push. -Using intuitive logical operators and [action steps](/concepts/workflows#action-step), you create dynamic notification paths that automatically adapt based on your [end user](/additional-resources/glossary#subscribers) preferences and behavior. +Using intuitive logical operators and [action steps](/concepts/workflows#action-step), you can create dynamic notification paths that automatically adapt based on your [end user](/additional-resources/glossary#subscribers) preferences and behavior. **Every notification in Novu originates from a workflow trigger, making workflows the central orchestration layer for your entire messaging infrastructure.** @@ -73,7 +73,7 @@ Whether you need to send a simple welcome email or implement a complex multi-ste ![novu-workflows](/getting-started/media-assets/novu-workflow.png) -In the code snippets below, you can see how an API request looks like to trigger a workflow. +In the code snippets below, you can see how a workflow trigger API request looks. @@ -87,7 +87,9 @@ curl -X POST https://api.novu.co/v1/events/trigger \ "subscriberId": "", "email": "john@doemail.com", "firstName": "John", - "lastName": "Doe" + "lastName": "Doe", + "phone": "+1234567890", + "avatar": "AVATAR_URL", }, "payload": { "name": "Hello World", @@ -109,6 +111,8 @@ await novu.trigger("", { email: "john@doemail.com", firstName: "John", lastName: "Doe", + phone: "+1234567890" + avatar: "AVATAR_URL", }, payload: { name: "Hello World", @@ -292,12 +296,12 @@ Subscribers are in most cases users in your application who receive notification The subscriber is identified through one of two methods: -- A `subscriber_id` - this uniquely identifies a specific user in your system (similar to how each user has a unique user_id in a database) -- A `topic_id` - this represents a channel or category that multiple subscribers can opt into (like a subscription group) +- A `subscriberId` - this uniquely identifies a specific user in your system (similar to how each user has a unique user_id in a database) +- A `topicKey` - this represents a channel or category that multiple subscribers can opt into (like a subscription group) -**When you trigger workflows for subscribers, Novu maintains a cache of their notification-related data, including:** +**When you trigger workflows to subscribers, Novu maintains a cache of their notification-related data, including:** - Required contact information (email, phone number) - Profile details (avatar URL) @@ -310,6 +314,7 @@ Below is a detailed breakdown of the subscriber object: ```json { // Core Identifiers + "subscriberId": "UNIQUE_USER_IDENTIFIER_IN_YOUR_SYSTEM", "_id": "NOVU_GENERATED_SUBSCRIBER_ID", "_organizationId": "NOVU_GENERATED_ORG_ID", "_environmentId": "NOVU_GENERATED_ENV_ID", @@ -320,6 +325,8 @@ Below is a detailed breakdown of the subscriber object: "email": "john.doe@org.com", "phone": "+98712345670", "avatar": "AVATAR_URL", + "locale": "en_US", + "avatar": "AVATAR_URL", // Custom Data "data": { @@ -354,7 +361,6 @@ Below is a detailed breakdown of the subscriber object: "__v": 0, "isOnline": false, "lastOnlineAt": "2022-10-13T17:41:53.238Z", - "avatar": "AVATAR_URL", "id": "NOVU_GENERATED_SUBSCRIBER_ID" } ``` @@ -380,7 +386,7 @@ Each channel connects to a specific delivery [provider](/additional-resources/gl Use these channels individually or combine them in workflows for multi-channel notification delivery. - Make an API call or use a `cURL` command to trigger your workflow using a `subscriber_id`. + Make an API call or use a `cURL` command to trigger your workflow to a `subscriberId`. @@ -394,31 +400,31 @@ Here's an overview of our supported channels and providers: Send emails through leading providers including [Amazon SES](https://aws.amazon.com/ses/), [Mailersend](https://www.mailersend.com/), [Mailgun](https://www.mailgun.com/), [Mailjet](https://www.mailjet.com/), [Mailtrap](https://mailtrap.io/), [Mandrill](https://mandrillapp.com/), [Postmark](https://postmarkapp.com/), [Resend](https://resend.com/), [Sendgrid](https://sendgrid.com/), [SMTP](https://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol), and [Sparkpost](https://www.sparkpost.com/). - [Learn more about email channel →](https://docs.novu.co/channels/email) + [Learn more about email channel →](/integrations/providers/email/overview) Deliver SMS messages through trusted providers including [Africa's Talking](https://africastalking.com/), [Amazon SNS](https://aws.amazon.com/sns/), [Mailersend](https://www.mailersend.com/), [MessageBird](https://messagebird.com/), [Plivo](https://www.plivo.com/), [Sinch](https://www.sinch.com/), [Telnyx](https://telnyx.com/), [Twilio](https://www.twilio.com/), and [Vonage](https://www.vonage.com/). - [Learn more about SMS channel →](https://docs.novu.co/channels/sms) + [Learn more about SMS channel →](/integrations/providers/sms/overview) Send push notifications across major platforms including [Apple Push Notification Service](https://developer.apple.com/notifications/) for iOS, [Expo](https://expo.dev/) for React Native, and [Firebase Cloud Messaging](https://firebase.google.com/products/cloud-messaging) for Android. - [Learn more about Push channel →](https://docs.novu.co/channels/push) + [Learn more about Push channel →](/integrations/providers/push/overview) Integrate with popular messaging platforms including [Discord](https://discord.com/), [Microsoft Teams](https://www.microsoft.com/teams), [Slack](https://slack.com/), [Telegram](https://telegram.org/), and [WhatsApp](https://www.whatsapp.com/). - [Learn more about Chat channel →](https://docs.novu.co/channels/chat) + [Learn more about Chat channel →](/integrations/providers/chat/overview) Build native notification experiences with our real-time notification feed API, ready-to-use UI components, and custom integration options for seamless implementation in your application. - [Learn more about In-app channel →](https://docs.novu.co/channels/in-app) + [Learn more about In-app channel →](/integrations/providers/in-app/overview) @@ -455,7 +461,7 @@ Novu allows you to design notification templates using an intuitive combination ## Actions -Adding action steps (or functions) to your workflows are a powerful way to create more complex and unique notification experiences for your users. +Adding action steps (or functions) to your workflows is a powerful way to create more complex and unique notification experiences for your users. Each workflow can combine multiple action steps to model complex logic that creates better notification experiences. You can combine the following action steps with any number of channel steps to create personalized notifications for your users: @@ -465,7 +471,7 @@ Each workflow can combine multiple action steps to model complex logic that crea - Group related notifications within a specified time window - Customize aggregation logic and formatting - [Learn more about Digest action →](https://docs.novu.co/workflows/actions/digest) + [Learn more about Digest action →](/workflow/digest) ### Delay Delay actions introduce controlled waiting periods between steps in your workflow. This enables better timing and sequencing of notifications. @@ -473,7 +479,7 @@ Each workflow can combine multiple action steps to model complex logic that crea - Set precise delay durations (seconds to months) - Support for cron-style scheduling - [Learn more about Delay action →](https://docs.novu.co/workflows/actions/delay) + [Learn more about Delay action →](/workflow/delay) ### Custom Custom actions allow you to integrate specialized business logic directly into your notification workflows while maintaining workflow durability and state management. @@ -482,7 +488,7 @@ Each workflow can combine multiple action steps to model complex logic that crea - Can serve as a trigger for other workflows - Pass data from your application's database into the workflow - [Learn more about Custom action →](https://docs.novu.co/workflows/actions/custom) + [Learn more about Custom action →](/workflow/custom) --- diff --git a/getting-started/quickstart.mdx b/getting-started/quickstart.mdx index be2b2a6f..29cf29a8 100644 --- a/getting-started/quickstart.mdx +++ b/getting-started/quickstart.mdx @@ -161,7 +161,7 @@ Before you can start integrating Novu into your application, you need to create - [Learn more about how to add credentials to the Subscriber object](/api-reference/subscribers/update-subscriber-credentials) - If you have the **In-app** channel step in your workflow, you can test your workflow in the editor with the default subscriber_id, you will see the notification in the **Inbox** section of the Novu dashboard. + If you have the **In-app** channel step in your workflow, you can test your workflow in the editor with the default `subscriberId`, you will see the notification in the **Inbox** section of the Novu dashboard. Test workflow inbox diff --git a/help/channels/email.mdx b/help/channels/email.mdx index abcac4a2..1117dfac 100644 --- a/help/channels/email.mdx +++ b/help/channels/email.mdx @@ -40,6 +40,6 @@ Inline images can be sent using `` tag in the email content. PNG, JPEG, GIF ### How to add unsubscribe link in emails? -Add `{{unsubscribe}}` variable in email step content editor and send url value of this variable in payload. Create a simple html page to [fetch preferences](https://docs.novu.co/api-reference/subscribers/get-subscriber-preferences) and then use [update preference api](https://docs.novu.co/api-reference/subscribers/update-subscriber-preference) to update. +Add `{{unsubscribe}}` variable in email step content editor and send url value of this variable in payload. Create a simple html page to [fetch preferences](/api-reference/subscribers/get-subscriber-preferences) and then use [update preference api](/api-reference/subscribers/update-subscriber-preference) to update. diff --git a/integrations/providers/chat/ms-teams.mdx b/integrations/providers/chat/ms-teams.mdx index f4817431..059a1eb4 100644 --- a/integrations/providers/chat/ms-teams.mdx +++ b/integrations/providers/chat/ms-teams.mdx @@ -65,6 +65,6 @@ Checkout the [API reference](/api-reference/subscribers/update-subscriber-creden - `subscriberId` is a custom identifier used when identifying your users within the Novu platform. - `providerId` is a unique provider identifier. We recommend using our ChatProviderIdEnum to specify the provider. -- The third parameter is the credentials object, in this case, we use the `webhookUrl` property to specify the MS Teams channel webhook URL or by calling the `Update Subscriber Credentials` endpoint on Novu API. Check endpoint details [here](https://docs.novu.co/api-reference/subscribers/update-subscriber-preference). +- The third parameter is the credentials object, in this case, we use the `webhookUrl` property to specify the MS Teams channel webhook URL or by calling the `Update Subscriber Credentials` endpoint on Novu API. Check endpoint details [here](/api-reference/subscribers/update-subscriber-preference). diff --git a/integrations/providers/chat/zulip.mdx b/integrations/providers/chat/zulip.mdx index fe1a9d76..ed9fae29 100644 --- a/integrations/providers/chat/zulip.mdx +++ b/integrations/providers/chat/zulip.mdx @@ -81,6 +81,6 @@ curl -L -X PUT 'https://api.novu.co/v1/subscribers//credentials' - `subscriberId` is a custom identifier used when identifying your users within the Novu platform. - `providerId` is a unique provider identifier. We recommend using our ChatProviderIdEnum to specify the provider. -- The third parameter is the credentials object, in this case, we use the `webhookUrl` property to specify the MS Teams channel webhook URL or by calling the `Update Subscriber Credentials` endpoint on Novu API. Check endpoint details [here](https://docs.novu.co/api-reference/subscribers/update-subscriber-preference). +- The third parameter is the credentials object, in this case, we use the `webhookUrl` property to specify the MS Teams channel webhook URL or by calling the `Update Subscriber Credentials` endpoint on Novu API. Check endpoint details [here](/api-reference/subscribers/update-subscriber-preference). 3. You are all set up and ready to send your first chat message via our `@novu/node` package or directly using the REST API. diff --git a/integrations/providers/push/onesignal.mdx b/integrations/providers/push/onesignal.mdx index 1bb93ab7..349a0d1d 100644 --- a/integrations/providers/push/onesignal.mdx +++ b/integrations/providers/push/onesignal.mdx @@ -69,4 +69,4 @@ novu.trigger("", { }); ``` -Device/notification identifiers can be set by using [setCredentials](https://docs.novu.co/channels/email/resend/#set-device-token) or by using the `deviceIdentifiers` field in overrides. +Device/notification identifiers can be set by using [setCredentials](/integrations/providers/push/fcm#setting-device-token) or by using the `deviceIdentifiers` field in overrides.