Inputs

The notify function in the TeamsProvider class takes the following parameters:

kwargs (dict):
    message (str): The message to send. *Required*
    typeCard (str): The card type. Can be "MessageCard" (legacy) or "message" (for Adaptive Cards). Default is "message"
    themeColor (str): Hexadecimal color (only used with MessageCard type)
    sections (array/str): For MessageCard: Array of custom information sections
                         For Adaptive Cards: Array of card elements following the Adaptive Card schema
                         Can be provided as a JSON string or array
    attachments (array/str): Custom attachments array for Adaptive Cards (overrides default attachment structure)
                            Can be provided as a JSON string or array
    schema (str): Schema URL for Adaptive Cards. Default is "http://adaptivecards.io/schemas/adaptive-card.json"

Outputs

The response as JSON, which is the response from the Microsoft Teams API.

Authentication Parameters

The TeamsProviderAuthConfig class takes the following parameters:

  • webhook_url (str): associated with the channel requires to trigger the message to the respective channel. Required

Connecting with the Provider

  1. In the New Teams client, select Teams and navigate to the channel where you want to add an Incoming Webhook. 2. Select More options ••• on the right side of the channel name. 3. Select Manage Channel

For members who aren’t admins of the channel, the Manage channel option is available under the Open channel details option in the upper-right corner of a channel.

  1. Select Edit
  1. Search for Incoming Webhook and select Add.
  1. Select Add
  1. Provide a name for the webhook and upload an image if necessary. 8. Select Create.
  1. Copy and save the unique webhook URL present in the dialog. The URL maps to the channel and you can use it to send information to Teams. 10. Select Done. The webhook is now available in the Teams channel.

Notes

When using Adaptive Cards (typeCard="message"):

  • The sections parameter should follow the Adaptive Cards schema
  • themeColor is ignored for Adaptive Cards
  • If no sections are provided, the message will be displayed as a simple text block
  • Both sections and attachments can be provided as JSON strings or arrays

Workflow Example

You can also find this example in our examples folder in the Keep GitHub repository.

id: 6bc7c72e-ab3d-4913-84dd-08b9323195ae
description: Teams Adaptive Cards Example
disabled: false
triggers:
  - type: manual
  - filters:
      - key: source
        value: r".*"
    type: alert
consts: {}
name: Keep Teams Adaptive Cards
owners: []
services: []
steps: []
actions:
  - name: teams-action
    provider:
      config: "{{ providers.teams }}"
      type: teams
      with:
        message: ""
        sections: '[{"type": "TextBlock", "text": "{{alert.name}}"}, {"type": "TextBlock", "text": "Tal from Keep"}]'
        typeCard: message

The sections parameter is a JSON string that follows the Adaptive Cards schema, but can also be an object. If it’s a string, it will be parsed as a JSON string.

Using Sections

provider.notify(
    message="Fallback text",
    typeCard="message",
    sections=[
        {
            "type": "TextBlock",
            "text": "Hello from Adaptive Card!"
        },
        {
            "type": "Image",
            "url": "https://example.com/image.jpg"
        }
    ]
)

Using Custom Attachments

provider.notify(
    typeCard="message",
    attachments=[{
        "contentType": "application/vnd.microsoft.card.adaptive",
        "content": {
            "type": "AdaptiveCard",
            "version": "1.2",
            "body": [
                {
                    "type": "TextBlock",
                    "text": "Custom Attachment Example"
                }
            ]
        }
    }]
)