-
Notifications
You must be signed in to change notification settings - Fork 110
Content for MS Teams chat integration #1017
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
❌ Deploy Preview for docs-novu failed. Why did it fail? →
|
WalkthroughReplaces a webhook-centric MS Teams provisioning guide with an Azure AD multi‑tenant bot flow: App Registration, client secret and redirect URI management, Microsoft Graph permissions, Azure Bot resource and Teams app creation/publishing, and tenant onboarding; retains webhook as an optional fallback. Changes
Sequence Diagram(s)sequenceDiagram
autonumber
participant User
participant NovuUI as Novu UI
participant AzureAD as Azure AD / App Registration
participant AzureBot as Azure Bot Service
participant MSGraph as Microsoft Graph
participant Teams as Teams Tenant
User->>NovuUI: Click "Connect Teams"
NovuUI->>AzureAD: Redirect to OAuth (client_id, redirect_uri, scopes)
AzureAD->>User: Admin consent prompt
User->>AzureAD: Grants consent
AzureAD->>NovuUI: Redirect with auth code
NovuUI->>AzureAD: Exchange code for tokens (client_secret)
NovuUI->>AzureAD: Obtain app-only token (client credentials)
NovuUI->>MSGraph: Use token to call Graph (create connection, map Team/Channel/User IDs)
MSGraph->>NovuUI: Return Team/Channel/User IDs
NovuUI->>AzureBot: Configure bot endpoints / enable Teams channel
AzureBot->>Teams: Bot registered in tenant (app installation/publishing)
Teams->>NovuUI: Tenant-specific connection established
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes
Suggested reviewers
Poem
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 6
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (11)
public/images/channels-and-providers/chat/msteams/add-permissions.pngis excluded by!**/*.pngpublic/images/channels-and-providers/chat/msteams/add-redirect-uri.pngis excluded by!**/*.pngpublic/images/channels-and-providers/chat/msteams/app-registrations.pngis excluded by!**/*.pngpublic/images/channels-and-providers/chat/msteams/azure-bot.pngis excluded by!**/*.pngpublic/images/channels-and-providers/chat/msteams/certificates-and-secret.pngis excluded by!**/*.pngpublic/images/channels-and-providers/chat/msteams/client-secret.pngis excluded by!**/*.pngpublic/images/channels-and-providers/chat/msteams/create-app.pngis excluded by!**/*.pngpublic/images/channels-and-providers/chat/msteams/create-azure-bot.pngis excluded by!**/*.pngpublic/images/channels-and-providers/chat/msteams/create-incoming-webhook.gifis excluded by!**/*.gifpublic/images/channels-and-providers/chat/msteams/go-to-resource.pngis excluded by!**/*.pngpublic/images/channels-and-providers/chat/msteams/register-application.pngis excluded by!**/*.png
📒 Files selected for processing (1)
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx(1 hunks)
🧰 Additional context used
🪛 LanguageTool
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx
[style] ~72-~72: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...rs/chat/msteams/add-permissions.png) 4. Click Application permissions. 4. Search ...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[style] ~112-~112: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...ssection, click Microsoft Teams. 5. In the menu that appears, accept the terms...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[style] ~113-~113: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...pears, accept the terms of services. 6. In the Messaging section, choose the a...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[style] ~122-~122: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...+ New app and then enter a name. 4. Click Add. 5. In the basic information pa...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[grammar] ~128-~128: Ensure spelling is correct
Context: ...ication” 9. Enable scopes based on your usecase: - team (for channel messages) - `personal...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[style] ~136-~136: The adverb “publically” isn’t commonly used. Consider using the shorter “publicly”.
Context: ...p to a Teams store, if you want the app publically available in the store or publish to or...
(PUBLICALLY)
⏰ 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
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx
Outdated
Show resolved
Hide resolved
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx
Outdated
Show resolved
Hide resolved
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx
Outdated
Show resolved
Hide resolved
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx
Outdated
Show resolved
Hide resolved
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 3
♻️ Duplicate comments (3)
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx (3)
111-111: Fix typo: "channelssection" → "channels section".-4. In the available channelssection, click **Microsoft Teams**. +4. In the available channels section, click **Microsoft Teams**.
128-128: Fix spelling: "usecase" → "use case".-9. Enable scopes based on your usecase: +9. Enable scopes based on your use case:
86-86: Fix double comma in step.-1. In the Azure portal left menu,, click **Create a resource**. +1. In the Azure portal left menu, click **Create a resource**.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (1)
public/images/channels-and-providers/chat/msteams/novu-msteams-integration.pngis excluded by!**/*.png
📒 Files selected for processing (1)
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx(1 hunks)
🧰 Additional context used
🪛 LanguageTool
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx
[style] ~72-~72: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...rs/chat/msteams/add-permissions.png) 4. Click Application permissions. 5. Search ...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[style] ~112-~112: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...ssection, click Microsoft Teams. 5. In the menu that appears, accept the terms...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[style] ~113-~113: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...pears, accept the terms of services. 6. In the Messaging section, choose the a...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[style] ~122-~122: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...+ New app and then enter a name. 4. Click Add. 5. In the basic information pa...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[grammar] ~128-~128: Ensure spelling is correct
Context: ...ication” 9. Enable scopes based on your usecase: - team (for channel messages) - `personal...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[grammar] ~162-~162: Use a hyphen to join words.
Context: ...messages, they must grant your app a one time admin consent. This authorizes your...
(QB_NEW_EN_HYPHEN)
[style] ~196-~196: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...onsent page listing the permissions. 4. They clicks Accept. When this is done, ...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[style] ~207-~207: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...st be installed in the specific Team. - For direct messages (DMs): The app must be ...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
⏰ 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). (1)
- GitHub Check: Build and Lint
🔇 Additional comments (5)
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx (5)
284-284: Remove stray comma after integrationIdentifier.{ "identifier": "msteams-main-notifications", "integrationIdentifier": "ms-teams-bot-1", - "providerId": "msteams", + "providerId": "msteams",Actually, looking more carefully, this appears to be valid JSON. Let me verify the structure by checking line 284:
"integrationIdentifier": "ms-teams-bot-1", "providerId": "msteams",This is correct JSON.
1-50: Comprehensive bot-based integration setup is well-structured.The introduction and Azure AD app registration steps are clear and logically sequenced. Multi-tenant setup, client secret management, redirect URI configuration, and Graph permissions are thoroughly documented. Good use of images and field explanations.
142-198: Novu configuration and customer tenant authorization flow is comprehensive.The OAuth consent flow, bot installation instructions, and distinction between admin consent and app installation are explained well. The section on channel vs. DM delivery contexts is helpful.
219-354: Channel and user endpoint registration is detailed and accurate.The guidance on discovering Team/Channel IDs via Microsoft Graph, registering endpoints in Novu, and using the Bot Framework API for user roster lookups is thorough. The JSON examples for
ms_teams_channelandms_teams_userendpoint creation are clear.
356-389: Webhook fallback workflow for simplified Teams integration is a good addition.Providing users with a simplified webhook-based alternative for channel-only scenarios without app registration is practical and lowers the barrier to entry for simpler use cases.
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx
Outdated
Show resolved
Hide resolved
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx
Outdated
Show resolved
Hide resolved
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx
Outdated
Show resolved
Hide resolved
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx
Outdated
Show resolved
Hide resolved
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx
Outdated
Show resolved
Hide resolved
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx
Outdated
Show resolved
Hide resolved
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx
Outdated
Show resolved
Hide resolved
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx
Outdated
Show resolved
Hide resolved
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx
Outdated
Show resolved
Hide resolved
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx
Outdated
Show resolved
Hide resolved
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx
Outdated
Show resolved
Hide resolved
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx
Outdated
Show resolved
Hide resolved
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 3
♻️ Duplicate comments (8)
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx (8)
72-79: Fix duplicate step numbering.Line 79 repeats step 5 when it should be step 6.
4. Click **Application permissions**. 5. Search for and check the following permissions: - `Team.ReadBasic.All` - `Channel.ReadBasic.All` - `AppCatalog.Read.All` - `TeamsAppInstallation.ReadWriteSelfForTeam.All` (optional, for automation) - `TeamsAppInstallation.ReadWriteSelfForUser.All` (optional, for automation) -5. Click **Add permissions**. +6. Click **Add permissions**.
111-111: Fix typo: "channelssection" → "channels section".-4. In the available channelssection, click **Microsoft Teams**. +4. In the available channels section, click **Microsoft Teams**.
128-128: Fix spelling: "usecase" → "use case".-9. Enable scopes based on your usecase: +9. Enable scopes based on your use case:
162-162: Hyphenate compound modifier: "one time" → "one-time".-Before you can send them messages, they must grant your app a one time admin consent. +Before you can send them messages, they must grant your app a one-time admin consent.
249-251: Replace incomplete comment with descriptive text.The comment
// thisis unclear. Replace it with a meaningful description."workspace": { - "id": "e6633b86-ef94-4416-863f-f0f409700ca0" // this + "id": "e6633b86-ef94-4416-863f-f0f409700ca0" // the customer's tenant workspace ID },
20-20: Use imperative voice: "we need" → "you need".Technical documentation should use "you" to address the reader directly.
-First, we need to create a multi-tenant identity for your bot. +First, create a multi-tenant identity for your bot.Or alternatively:
-First, we need to create a multi-tenant identity for your bot. +You need to create a multi-tenant identity for your bot.
85-86: Remove double comma.Line 86 contains a double comma that should be corrected.
-1. In the Azure portal left menu,, click **Create a resource**. +1. In the Azure portal left menu, click **Create a resource**.
47-47: Improve sentence clarity.The first sentence (line 47) is a sentence fragment and could be more complete.
-After your customers go through the admin consent page. Microsoft must know where to send the result (Novu). +After your customers go through the admin consent page, Microsoft must know where to send the result (Novu).
🧹 Nitpick comments (1)
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx (1)
111-114: Vary sentence structure to improve readability.Multiple consecutive steps begin with "In the...". Rephrase to reduce repetition.
4. In the available channels section, click **Microsoft Teams**. -5. In the menu that appears, accept the terms of services. -6. In the **Messaging** section, choose the appropriate environment (typically **Microsoft Teams Commercial**). +5. Accept the terms of services in the menu that appears. +6. Choose the appropriate environment (typically **Microsoft Teams Commercial**) in the **Messaging** section.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx(1 hunks)
🧰 Additional context used
🪛 LanguageTool
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx
[style] ~72-~72: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...rs/chat/msteams/add-permissions.png) 4. Click Application permissions. 5. Search ...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[style] ~112-~112: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...ssection, click Microsoft Teams. 5. In the menu that appears, accept the terms...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[style] ~113-~113: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...pears, accept the terms of services. 6. In the Messaging section, choose the a...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[style] ~122-~122: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...+ New app and then enter a name. 4. Click Add. 5. In the basic information pa...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[grammar] ~128-~128: Ensure spelling is correct
Context: ...ication” 9. Enable scopes based on your usecase: - team (for channel messages) - `personal...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[grammar] ~162-~162: Use a hyphen to join words.
Context: ...messages, they must grant your app a one time admin consent. This authorizes your...
(QB_NEW_EN_HYPHEN)
[style] ~196-~196: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...onsent page listing the permissions. 4. They clicks Accept. When this is done, ...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[style] ~207-~207: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...st be installed in the specific Team. - For direct messages (DMs): The app must be ...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
⏰ 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 (1)
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx (1)
142-156: Configuration section is now complete.The previously missing content has been properly added with clear setup instructions.
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx
Outdated
Show resolved
Hide resolved
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx
Outdated
Show resolved
Hide resolved
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx
Outdated
Show resolved
Hide resolved
There was a problem hiding this 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
♻️ Duplicate comments (3)
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx (3)
104-114: Fix typo and duplicate step numbering.Line 111 contains a typo: "channelssection" should be "channels section". Additionally, lines 124–126 have duplicate step numbering (step 6 appears twice); the second occurrence should be step 7, with subsequent steps renumbered accordingly.
-4. In the available channelssection, click **Microsoft Teams**. +4. In the available channels section, click **Microsoft Teams**.6. In the left menu, select **App feature**. -6. Add a **Bot** and choose "Enter a bot ID" -7. Set the **Bot ID** to your `BOT_APP_ID`, the same App ID you used for the Azure Bot. -8. Enable "What can your bot do?" to "Only send notification" as the least option. -9. Enable scopes based on your use case: +7. Add a **Bot** and choose "Enter a bot ID" +8. Set the **Bot ID** to your `BOT_APP_ID`, the same App ID you used for the Azure Bot. +9. Enable "What can your bot do?" to "Only send notification" as the least option. +10. Enable scopes based on your use case:
162-162: Hyphenate "one time" to "one-time".-Before you can send them messages, they must grant your app a one time administrator consent. +Before you can send them messages, they must grant your app a one-time administrator consent.
15-16: Use consistent capitalization for "portal".Both instances should use lowercase "portal" for consistency:
- **Azure portal**: To create the identity (App Registration) and infrastructure (Bot Service). -- **Teams Developer Portal**: To create the app package that your customers can install. +- **Teams developer portal**: To create the app package that your customers can install.
🧹 Nitpick comments (1)
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx (1)
69-80: Consider rewording repeated sentence beginnings for readability.The Microsoft Graph permissions section (lines 69–72) has three successive sentences beginning with "Click." While this is common in procedural documentation, varying the phrasing can improve readability. Consider restructuring:
1. Click **API permissions**. -2. Click **Add a permission**. -3. Click **Microsoft Graph**. +2. Select **Add a permission**. +3. In the panel that appears, click **Microsoft Graph**.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx(1 hunks)
🧰 Additional context used
🪛 LanguageTool
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx
[style] ~71-~71: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...ns**. 2. Click Add a permission. 3. Click Microsoft Graph. ![Add permission...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[style] ~73-~73: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...rs/chat/msteams/add-permissions.png) 4. Click Application permissions. 5. Search ...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[style] ~113-~113: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...pears, accept the terms of services. 6. In the Messaging section, choose the a...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[style] ~122-~122: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...+ New app and then enter a name. 4. Click Add. 5. In the basic information pa...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[grammar] ~162-~162: Use a hyphen to join words.
Context: ...messages, they must grant your app a one time administrator consent. This authori...
(QB_NEW_EN_HYPHEN)
[style] ~196-~196: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...onsent page listing the permissions. 4. They click Accept. Once the user comple...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[style] ~207-~207: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...stall the app in the specific Team. - For direct messages: Install the app for ...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
⏰ 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 (1)
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx (1)
142-210: LGTM – Novu configuration and customer integration flow.The sections covering Novu configuration, customer tenant connection, and the OAuth flow are well-structured and comprehensive. The distinction between the bot-based approach and the webhook-style workflows is clear.
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx
Outdated
Show resolved
Hide resolved
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx
Outdated
Show resolved
Hide resolved
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx
Outdated
Show resolved
Hide resolved
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx
Outdated
Show resolved
Hide resolved
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx
Outdated
Show resolved
Hide resolved
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx
Outdated
Show resolved
Hide resolved
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx
Outdated
Show resolved
Hide resolved
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx
Outdated
Show resolved
Hide resolved
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx
Outdated
Show resolved
Hide resolved
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx
Outdated
Show resolved
Hide resolved
Co-authored-by: DianaHackmamba <[email protected]>
Co-authored-by: DianaHackmamba <[email protected]>
Co-authored-by: DianaHackmamba <[email protected]>
Co-authored-by: DianaHackmamba <[email protected]>
Co-authored-by: DianaHackmamba <[email protected]>
Co-authored-by: DianaHackmamba <[email protected]>
Co-authored-by: DianaHackmamba <[email protected]>
Co-authored-by: DianaHackmamba <[email protected]>
Co-authored-by: DianaHackmamba <[email protected]>
Co-authored-by: DianaHackmamba <[email protected]>
Co-authored-by: DianaHackmamba <[email protected]>
Co-authored-by: DianaHackmamba <[email protected]>
Co-authored-by: DianaHackmamba <[email protected]>
Co-authored-by: DianaHackmamba <[email protected]>
Co-authored-by: DianaHackmamba <[email protected]>
DianaHackmamba
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A few minor suggestions, then g2g!
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx
Outdated
Show resolved
Hide resolved
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx
Outdated
Show resolved
Hide resolved
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx
Outdated
Show resolved
Hide resolved
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx
Outdated
Show resolved
Hide resolved
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx
Outdated
Show resolved
Hide resolved
Co-authored-by: DianaHackmamba <[email protected]>
Co-authored-by: DianaHackmamba <[email protected]>
Co-authored-by: DianaHackmamba <[email protected]>
There was a problem hiding this 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
♻️ Duplicate comments (3)
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx (3)
112-112: Fix typo: "channelssection" → "channels section".The word is split; add a space between "channels" and "section."
-4. In the available channelssection, click **Microsoft Teams**. +4. In the available channels section, click **Microsoft Teams**.
163-163: Hyphenate "one time" to "one-time".Use a hyphen to join the compound adjective modifying "administrator consent."
-Before you can send them messages, they must grant your app a one time administrator consent. +Before you can send them messages, they must grant your app a one-time administrator consent.
126-128: Fix duplicate step numbering in the Teams app creation section.Step 6 is repeated on lines 126 and 127. Renumber line 127 and subsequent steps to continue the sequence.
6. Select **App feature**. -6. Add a **Bot** and then select **Enter a bot ID**. -7. Set the **Bot ID** to your `BOT_APP_ID`, the same App ID you used for the Azure Bot. -8. Enable "What can your bot do?" to "Only send notification" as the least option. -9. Enable scopes based on your use case: +7. Add a **Bot** and then select **Enter a bot ID**. +8. Set the **Bot ID** to your `BOT_APP_ID`, the same App ID you used for the Azure Bot. +9. Enable "What can your bot do?" to "Only send notification" as the least option. +10. Enable scopes based on your use case:
🧹 Nitpick comments (1)
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx (1)
16-16: Fix inconsistent portal capitalization.Line 16 uses a capital "P" in "Teams Developer Portal," but line 15 uses lowercase "p" in "Azure portal." Standardize to lowercase for consistency.
-- **Teams Developer Portal**: To create the app package that your customers can install. +- **Teams developer portal**: To create the app package that your customers can install.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx(1 hunks)
🧰 Additional context used
🪛 LanguageTool
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx
[style] ~71-~71: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...ns**. 2. Click Add a permission. 3. Click Microsoft Graph. ![Add permission...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[style] ~73-~73: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...rs/chat/msteams/add-permissions.png) 4. Click Application permissions. 5. Search ...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[style] ~114-~114: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...pears, accept the terms of services. 6. In the Messaging section, choose the a...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[style] ~123-~123: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...+ New app and then enter a name. 4. Click Add. 5. In the basic information pa...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[grammar] ~163-~163: Use a hyphen to join words.
Context: ...messages, they must grant your app a one time administrator consent. This authori...
(QB_NEW_EN_HYPHEN)
[style] ~197-~197: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...onsent page listing the permissions. 4. They click Accept. Once the user comple...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[style] ~208-~208: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...stall the app in the specific Team. - For direct messages: Install the app for ...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
⏰ 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). (1)
- GitHub Check: Build and Lint
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
♻️ Duplicate comments (5)
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx (5)
73-81: Fix duplicate step numbering in Graph permissions. (Step “5.” repeats)
Line 80 should be step 6.-5. Click **Add permissions**. +6. Click **Add permissions**.
108-115: Fix typo: “channelssection” → “channels section”.-4. In the available channelssection, click **Microsoft Teams**. +4. In the available channels section, click **Microsoft Teams**.
119-132: Fix duplicate step numbering in “Create a Teams app”. (Step “6.” repeats)
Line 126 should be 7, and the rest should shift by +1.6. Select **App feature**. -6. Add a **Bot** and then select **Enter a bot ID**. -7. Set the **Bot ID** to your `BOT_APP_ID`, the same App ID you used for the Azure Bot. -8. Enable “What can your bot do?” to “Only send notification” as the least option. -9. Enable scopes based on your use case: +7. Add a **Bot** and then select **Enter a bot ID**. +8. Set the **Bot ID** to your `BOT_APP_ID`, the same App ID you used for the Azure Bot. +9. Enable “What can your bot do?” to “Only send notification” as the least option. +10. Enable scopes based on your use case:
161-164: Hyphenate “one-time”.-... they must grant your app a one time administrator consent. +... they must grant your app a one-time administrator consent.
14-16: Make “portal” casing consistent (and align with style guidance).
Line 16 uses Teams Developer Portal while Line 15 uses Azure portal; pick one casing (typically lowercase “portal”) for both bullets.-- **Teams Developer Portal**: To create the app package that your customers can install. +- **Teams developer portal**: To create the app package that your customers can install.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx(1 hunks)
🧰 Additional context used
🪛 LanguageTool
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx
[style] ~71-~71: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...ns**. 2. Click Add a permission. 3. Click Microsoft Graph. ![Add permission...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[style] ~73-~73: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...rs/chat/msteams/add-permissions.png) 4. Click Application permissions. 5. Search ...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[style] ~114-~114: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...pears, accept the terms of services. 6. In the Messaging section, choose the a...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[style] ~123-~123: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...+ New app and then enter a name. 4. Click Add. 5. In the basic information pa...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[grammar] ~163-~163: Use a hyphen to join words.
Context: ...messages, they must grant your app a one time administrator consent. This authori...
(QB_NEW_EN_HYPHEN)
[style] ~199-~199: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...onsent page listing the permissions. 4. They click Accept. Once the user comple...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[style] ~210-~210: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...stall the app in the specific Team. - For direct messages: Install the app for ...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
⏰ 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 (1)
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx (1)
169-179: The SDK import and method name in the snippet are correct. The@novu/apipackage andnovu.integrations.generateChatOAuthUrl()method are both valid and match the current Novu SDK documentation. No changes needed.
| Now that you’ve configured your Azure Bot, provide Novu with the credentials to integrate it. | ||
|
|
||
| 1. Log in to the Novu dashboard. | ||
| 2. In the sidebar, click Integrations Store. | ||
| 3. Click **Connect Provider**. | ||
| 4. Select **Chat** and click **MSTeams**. | ||
| 5. Enter the credentials you saved from the Azure Portal: | ||
| - **Client ID**: Enter your `BOT_APP_ID`. | ||
| - **Client Secret**: Enter your `BOT_APP_SECRET`. | ||
| - **App Tenant ID**: Enter your `APP_TENANT_ID`. This value identifies the tenant where you registered the app. | ||
| - **Redirect URL** (Optional): If you want to control where your users land after they grant administrator consent, then enter that URL here. If you leave it empty, then the consent window closes automatically. | ||
|  |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Normalize identifiers across examples (integrationIdentifier/providerId/connectionIdentifier).
Right now the doc mixes ms-teams-bot, ms-teams-bot-1, msteams, and ms-teams-workflow across API calls and payloads. This is likely to cause user copy/paste failures unless you explicitly explain which values are “examples” vs “must match exactly”.
Concrete fixes to consider:
- Use one consistent
integrationIdentifiereverywhere for the bot path (and another for the webhook path), and ensure it matches what users actually create in the Novu UI. - Keep
providerIdconsistent (msteamsvsms-teams), or explicitly document the exact expected enum/string.
Also applies to: 174-178, 244-299, 334-355, 381-392
🤖 Prompt for AI Agents
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx lines ~145-156
(also apply to 174-178, 244-299, 334-355, 381-392): The document mixes multiple
identifiers (e.g., ms-teams-bot, ms-teams-bot-1, msteams, ms-teams-workflow)
causing copy/paste and runtime errors; choose and use one consistent
integrationIdentifier for the bot path (and one for the webhook path if
separate) and a single providerId value (either "msteams" or "ms-teams")
throughout the file, update all code blocks, API examples and narrative text to
match those exact identifiers, and add a brief note where an example value is
used (marked “example: <identifier>”) to distinguish from values that must match
the Novu UI.
| ```bash | ||
| GET /v1/channel-connections | ||
| { | ||
| "identifier": "chconn-eeybt4", | ||
| "integrationIdentifier": "msteams", | ||
| "providerId": "msteams", | ||
| "channel": "chat", | ||
| "subscriberId": "689c4a87c5bdaa96aaef0cfd", | ||
| "workspace": { | ||
| "id": "e6633b86-ef94-4416-863f-f0f409700ca0" // the customer's tenant workspace ID | ||
| }, | ||
| "auth": { | ||
| "accessToken": "app-only" | ||
| }, | ||
| "subscriberId" | ||
| ); | ||
| } | ||
| ``` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Clarify GET /v1/channel-connections example is a response, and fix workspace.id description.
A GET example followed by a JSON block reads like a request body. Also, “workspace.id” being “the customer's tenant workspace ID” sounds incorrect/misleading (it’s presumably the Novu workspace id, not an M365 tenant id).
-```bash
-GET /v1/channel-connections
-{
+```bash
+GET /v1/channel-connections
+```
+
+Example response:
+```json
+{
...
- "id": "e6633b86-ef94-4416-863f-f0f409700ca0" // the customer's tenant workspace ID
+ "id": "e6633b86-ef94-4416-863f-f0f409700ca0" // Novu workspace ID
},
...
}🤖 Prompt for AI Agents
content/docs/platform/integrations/chat/(providers)/ms-teams.mdx lines 244-259:
the example block is misleading (a GET shown as a request body) and the
workspace.id comment is incorrect; update the markdown so the GET line is fenced
as bash, add an "Example response:" label, fence the JSON response as json, and
change the workspace.id comment to read "Novu workspace ID" instead of "the
customer's tenant workspace ID".
Summary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings.