Skip to main content
Connect a Microsoft Teams bot to G360 to send alerts and scheduled reports as direct messages or channel posts.
This page covers Teams notifications — G360 sending messages to Teams. The Microsoft Teams analytics integration is separate.

Before you start

  • A Microsoft 365 administrator with access to Teams Developer Portal and the Teams admin center.
  • A G360 administrator account.
  • Your G360 messaging endpoint. It must use HTTPS with a valid certificate and end with a trailing slash:
    Messaging endpoint
Setup takes about 20 minutes, plus a few hours for Microsoft to roll out the app.

Part 1: Create the bot

In Teams Developer Portal:
1

Create the bot

Go to Tools → Bot management, select + New Bot, enter a name such as G360 Alerts, and select Create bot.
Teams Developer Portal Bot management page with the New Bot dialog
Bots created here are single tenant by default, which G360 expects.
2

Set the endpoint

Open the bot, go to Configure, paste your messaging endpoint into Endpoint address, and select Save.
Bot Configure page with the Endpoint address field
3

Create a client secret

Go to Client secrets, select Add a client secret for your bot, and copy the secret.
Bot Client secrets page listing a secret hint and its expiry date
The secret is shown once. If you lose it, create another.
4

Copy the Bot ID

Copy the Bot ID from the bot page. You use it in the app, the manifest, and G360.

Part 2: Create the app

1

Create the app

Go to Apps, select + New app, enter a name, and select Add.
Teams Developer Portal Add app dialog
2

Fill in basic information

  1. Go to Configure → Basic information and complete every required field: short and long description, developer name, website, privacy policy URL, and terms of use URL.
  2. Paste your Bot ID into Application (client) ID and select Save.
Basic information page with app names, descriptions, and developer details
Application (client) ID field on the Basic information page
Application (client) ID must be the Bot ID. Any other value fails with “RSC permissions require webApplicationInfo.appId”.
  1. Go to Configure → Branding and upload a Color icon (192 × 192 px) and an Outline icon (32 × 32 px, transparent).
Branding page with color icon and outline icon upload fields
3

Attach the bot

  1. Go to Configure → App features and select the Bot tile.
  2. Under Identify your bot, choose Select an existing bot and pick the bot from Part 1.
  3. Under scopes, select Personal and Team, then select Save.
Identify your bot section with Select an existing bot chosen
Bot scopes with Personal and Team selected
Both scopes are required. Personal enables direct messages. Team enables channel posts.
4

Add permissions

Go to Configure → Permissions:
  1. Select Send the user notifications.
  2. Under Team permissions → Application, select TeamMember.Read.Group.
  3. Select Save.
Permissions page with TeamMember.Read.Group selected under team application permissions
TeamMember.Read.Group lets G360 match Teams users to G360 users. Without it, nobody can receive direct messages.
5

Check the manifest

The portal builds manifest.json from the settings in the previous steps. Use the reference manifest to confirm it is correct, or to fix any field the portal forms don’t set.
  1. Go to Configure → App package editor and open manifest.json.
    App package editor showing manifest.json
  2. Compare it with the reference manifest. Check these fields in particular:
  3. If a field differs or is missing, edit it in the editor. You can also paste the reference manifest over the file. If you do, keep the portal’s id value, replace YOUR-BOT-ID in both places, and replace the developer, name, and description values with your own.
  4. Select Save, then Update.
6

Download the package

Go to Publish → App package and select Download app package. Keep the .zip file for Part 4.

Part 3: Enter the credentials in G360

In G360, go to Settings → Teams Settings.

Credentials

Select Verify & save. G360 checks the credentials with Microsoft and saves them only if they work.
G360 Teams Settings credentials section with client ID, tenant ID, client secret, and bot display name fields

Settings → Teams Settings, Credentials section.

The secret is stored encrypted and never shown again. To change another field later, leave CLIENT SECRET blank to keep the saved one.

Where this bot is installed

This section stays empty until you publish the app in Part 4.
  • Reload — re-reads what G360 already knows, without calling Teams. Teams notifies G360 of channel and member changes, so this is usually enough.
  • Sync with Teams — checks every team with Microsoft and removes deleted ones. Teams sends no notification when a team is deleted, so use this to clear them.

Send a message

Pick a channel and a person, then send a test message. The test uses the same delivery path as alerts and reports, so if it works here, it works there. G360 reports each destination separately.

Part 4: Publish to your organization

Individual users install nothing.
1

Upload to the org catalog

In the Teams admin center, go to Teams apps → Manage apps, select Upload new app → Upload, and choose your .zip. Some tenants show Actions → Upload new app.
Teams admin center Manage apps page with the Upload new app option

Source: Microsoft Learn

The app can take a few hours to appear. Uploading makes the app available but does not install it for anyone.
2

Install it for everyone

This step enables direct messages. Go to Teams apps → Setup policies. If there is no Installed apps section, use Path A. Otherwise, use Path B.
Teams admin center app setup policies page

Source: Microsoft Learn

  1. Go to Teams apps → Manage apps and select your app.
  2. Select Edit installs, choose everyone in your organization, and select Apply.
Edit installs panel for an app in the Teams admin center

Source: Microsoft Learn

Changes take a few hours to reach users.
3

Add the bot to a team

To post in a team’s channels, add the app to that team.
  • Admin: in Manage apps, select your app → Add to team → pick the team → Apply.
  • Team owner: in Teams, go to the team → More options (…) → Manage team → Apps → Add an app, and pick it from Built for your org.
Add to team dialog in the Teams admin center

Source: Microsoft Learn

4

Confirm

In G360, go to Settings → Teams Settings and select Reload. The team appears under Where this bot is installed within a few seconds.
Where this bot is installed section listing a team and the Direct chats row

Part 5: Use Teams in alerts and reports

In Schedule Alert or Schedule Report, select Teams under Notification Channels, then choose how to notify:
G360 Schedule New Report page with Teams selected and the How to notify options open
A person can receive direct messages only when:
  • The app is installed for them (Part 4, step 2).
  • Their Teams email matches their G360 login email exactly.
Anyone else does not appear in the people list, so alerts never reach the wrong person.

Troubleshooting

Application (client) ID is empty or not the Bot ID. Paste the Bot ID in Configure → Basic information and select Save.
Set "supportsChannelFeatures": "tier1" in the App package editor. The value is a quoted string, not true, false, or null.
Usually a wrong icon size (192 × 192 color, 32 × 32 outline) or a required field left blank in Basic information.
This happens only for bots created in the Azure portal. Create the bot in Teams Developer Portal instead.
  1. Confirm APPLICATION (CLIENT) ID in G360 equals botId in the manifest. G360 ignores events from any other bot, so a mismatch shows no error — the install looks fine in Teams but nothing reaches G360.
  2. Confirm the bot endpoint ends in /api/v1/chat/messages/, including the trailing slash.
  3. Wait a few hours for the app and policy changes to roll out.
  4. Select Reload. The page does not refresh on its own.
Expected. The endpoint accepts messages only from Microsoft.
Expected. Every request needs a valid Microsoft signature. This response confirms the endpoint is reachable and the security check works.
Select Sync with Teams.
The alert targets a deleted channel. G360 stops sending to that channel after the first failure. Edit the alert and pick an existing channel.
Their Teams email does not match their G360 login email, or they have no G360 account.
The app is not installed for users yet. Complete Part 4, step 2, and allow time for it to take effect.
Expected. They still have the app. Access ends when they are removed from G360 or the app is uninstalled for them.
Create a new client secret in Teams Developer Portal, paste it into CLIENT SECRET, and select Verify & save.
When you contact support, send the Bot ID, the failed step, the exact error, and whether the team appears under Where this bot is installed. Never send the client secret.

Reference

App manifest

Replace YOUR-BOT-ID in both bots[0].botId and webApplicationInfo.id. Keep the portal-generated id — that is the app ID, not the Bot ID.
manifest.json
Attach report PDFs: a notification-only bot cannot attach files, because Teams asks the recipient to approve each file and a notification-only bot cannot receive that answer. Set isNotificationOnly to false and add "supportsFiles": true. Users can then message the bot, which ignores what they send.

Settings summary