Skip to content

Teams (Office 365 Connectors)

⚠️ Deprecation Notice

Office 365 Connectors are being retired by Microsoft.

Microsoft is retiring the Office 365 Connectors service in Teams. The service will be fully retired by March 31, 2026 (extended from the original timeline of December 2025).

What this means:

  • Old Office 365 Connectors (webhook URLs from webhook.office.com) will stop working after the retirement date
  • New Power Automate Workflows (webhook URLs from api.powerautomate.com, api.powerplatform.com, or flow.microsoft.com) are the recommended replacement

Migration Required:

If you are currently using Office 365 Connectors (Incoming Webhook), you should migrate to Power Automate Workflows before the retirement date. The notifications-engine automatically detects the webhook type and handles both formats, but you should plan your migration.

Migration Resources: - Microsoft Deprecation Notice - Create incoming webhooks with Workflows for Microsoft Teams


Parameters

The Teams notification service sends message notifications using Office 365 Connectors and requires specifying the following settings:

  • recipientUrls - the webhook url map, e.g. channelName: https://outlook.office.com/webhook/...

⚠️ Deprecation Notice: Office 365 Connectors will be retired by Microsoft on March 31, 2026. We recommend migrating to the Teams Workflows service for continued support and enhanced features.

Configuration

💡 For Power Automate Workflows (Recommended): See the Teams Workflows documentation for detailed configuration instructions.

Office 365 Connectors (Deprecated - Retiring March 31, 2026)

⚠️ Warning: This method is deprecated and will stop working after March 31, 2026. Please migrate to Power Automate Workflows.

  1. Open Teams and goto Apps
  2. Find Incoming Webhook microsoft app and click on it
  3. Press Add to a team -> select team and channel -> press Set up a connector
  4. Enter webhook name and upload image (optional)
  5. Press Create then copy webhook url (it will be from webhook.office.com)
  6. Store it in argocd-notifications-secret and define it in argocd-notifications-cm
apiVersion: v1
kind: ConfigMap
metadata:
  name: argocd-notifications-cm
data:
  service.teams: |
    recipientUrls:
      channelName: $channel-teams-url
apiVersion: v1
kind: Secret
metadata:
  name: <secret-name>
stringData:
  channel-teams-url: https://webhook.office.com/webhook/your-webhook-id  # Office 365 Connector (deprecated)

Note: For Power Automate Workflows webhooks, use the Teams Workflows service instead.

Webhook Type Detection

The teams service supports Office 365 Connectors (deprecated):

  • Office 365 Connectors: URLs from webhook.office.com (deprecated)
  • Requires response body to be exactly "1" for success
  • Will stop working after March 31, 2026

  • Create subscription for your Teams integration:

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  annotations:
    notifications.argoproj.io/subscribe.on-sync-succeeded.teams: channelName

Channel Support

  • ✅ Standard Teams channels only

Note: Office 365 Connectors only support standard Teams channels. For shared channels or private channels, use the Teams Workflows service.

Templates

Notification templates can be customized to leverage teams message sections, facts, themeColor, summary and potentialAction feature.

The Teams service uses the messageCard format (MessageCard schema) which is compatible with Office 365 Connectors.

template.app-sync-succeeded: |
  teams:
    themeColor: "#000080"
    sections: |
      [{
        "facts": [
          {
            "name": "Sync Status",
            "value": "{{.app.status.sync.status}}"
          },
          {
            "name": "Repository",
            "value": "{{.app.spec.source.repoURL}}"
          }
        ]
      }]
    potentialAction: |-
      [{
        "@type":"OpenUri",
        "name":"Operation Details",
        "targets":[{
          "os":"default",
          "uri":"{{.context.argocdUrl}}/applications/{{.app.metadata.name}}?operation=true"
        }]
      }]
    title: Application {{.app.metadata.name}} has been successfully synced
    text: Application {{.app.metadata.name}} has been successfully synced at {{.app.status.operationState.finishedAt}}.
    summary: "{{.app.metadata.name}} sync succeeded"

facts field

You can use facts field instead of sections field.

template.app-sync-succeeded: |
  teams:
    facts: |
      [{
        "name": "Sync Status",
        "value": "{{.app.status.sync.status}}"
      },
      {
        "name": "Repository",
        "value": "{{.app.spec.source.repoURL}}"
      }]

theme color field

You can set theme color as hex string for the message.

template.app-sync-succeeded: |
  teams:
    themeColor: "#000080"

summary field

You can set a summary of the message that will be shown on Notification & Activity Feed

template.app-sync-succeeded: |
  teams:
    summary: "Sync Succeeded"

Migration to Teams Workflows

If you're currently using Office 365 Connectors, see the Teams Workflows documentation for migration instructions and enhanced features.