Microsoft Teams: Use workflows instead of connectors

Microsoft Teams: Use workflows instead of connectors

Microsoft announced the deprecation of connectors. See the Deprecation note Retirement of Office 365 connectors within Microsoft Teams

LAST TESTED ON CHECKMK 2.4.0P16

Table of Contents

 

We have adjusted the notification plugin for Microsoft Teams to use workflow as part of Werk 17155.

 

Step-by-step guide

To configure a workflow within Microsoft Teams

  1. Click the three dots on a channel and select “Workflows”.

    Image showing the location of Workflows within Microsoft teams



  2. Choose “Post to a channel when a webhook request is received

    Image showing location of the Post to a channel when a webhook request is received



  3. Choose a name for the workflow, e.g., “Checkmk”.

    Image showing the Flow name of Checkmk



  4. Select team and channel where the webhook should post to. In this case, I have a team and channel by the name of Checkmk, so I picked this.

    Image showing both the team and channel names as Checkmk



  5. Copy the webhook URL.



    Not Mandatory
    If you want to test whether you can POST to this webhook from the monitoring server, then you can try to run this script as site user:  I found a nice example with which you can check whether you can even post a message from the monitoring server to this webhook or not. 


    At the time of writing this article, this script works, however there is no guarantee that it will work when you try.  There is a very high possibility that the format/syntax/endpoint changes and the script has to be adapted.

    The script above will only work if you specify the Teams channel that was configured beforehand.

    OMD[v23p13]:~$ ./test.sh “Webhook URL” “Workflows” “Teams_Channel” “Send from Checkmk.Happy Monitoring”

     

    Image showing test workflows

    .

  6. After this, let's move on to the Checkmk Notification configuration for teams and create a notification rule


    For Checkmk 2.3

    webhook_cleaned.png



    For Checkmk 2.4

    image-20251202-132845.png

     

    image-20251202-132910.png



  7. Last but not the least, you can fake a check result:

    Image showing a fake check result from Checkmk GUI



    Then you will see a message getting dropped in the corresponding Teams channel:

    Image showing another set of workflows

     

    Image showing more workflows


    This is a confirmation that your test notifications are working

 

Power Automate

If you are using Power Automate, then configure it flow like this:

image-20251119-072929.png

 

And this is the page where the flow is succeeded, and the messages gets dropped in:

image-20251119-073014.png

 

Here is the screenshot from Teams Channel:

image-20251219-073948.png

 

If the flow doesn't work, you may get some errors like these:

 

Working JSON (in case somebody wants to POST to the webhook directly):

[ { "contentType": "application/vnd.microsoft.card.adaptive", "contentUrl": "null", "content": { "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", "type": "AdaptiveCard", "version": "1.3", "body": [ { "type": "TextBlock", "text": "Checkmk: google/PING CRIT", "weight": "bolder", "size": "large", "style": "heading", "wrap": true }, { "type": "TextBlock", "text": "Problem notification", "weight": "bolder", "wrap": true }, { "type": "TextBlock", "text": "Checkmk: google/PING ", "wrap": true }, { "type": "ColumnSet", "separator": true, "columns": [ { "type": "Column", "width": "auto", "items": [ { "type": "TextBlock", "text": "Details", "wrap": true, "weight": "bolder" } ] }, { "type": "Column", "width": "stretch", "items": [ { "type": "TextBlock", "text": "__Host__: google", "wrap": true, "spacing": "none" }, { "type": "TextBlock", "text": "__Service__: PING", "wrap": true, "spacing": "none" }, { "type": "TextBlock", "text": "__Event__: ", "wrap": true, "spacing": "none" }, { "type": "TextBlock", "text": "__Output__: Test for MS teams", "wrap": true, "spacing": "none" }, { "type": "TextBlock", "text": "__Perfdata__: ", "wrap": true, "spacing": "none" } ] } ] }, { "type": "FactSet", "facts": [ { "title": "Affected host groups", "value": "check_mk" } ], "separator": true } ], "actions": [ { "type": "Action.OpenUrl", "title": "View service details in Checkmk", "url": "http://klapp-0323/v23p13/check_mk/index.py?start_url=view.py?view_name%3Dservice%26host%3Dgoogle%26service%3DPING%26site%3Dv23p13", "role": "Button" } ], "msteams": { "width": "Full" } } } ]

 

Related articles