Send Post Webhook Message to Teams from Mikrotik RouterOS

The following is the correct syntax needed to send a message to Microsoft Teams from a Mikrotik router. You will need a valid Teams webhook to send to.

Change “Test Message” out for your message. You should receive a “status: finished” response.

/tool fetch http-method=post http-header-field="Content-Type: application/json" http-data="{\"text\": \"Test Message\"}" url=

Install Microsoft Teams Preview on Linux

Download the correct package for your distribution of Linux from

You should be able to open the installer and it should install, if not you can run the following commands from a terminal

The install instructions are for Debian/Ubuntu/Linux Mint.

Install using dpkg

sudo dpkg -i Downloads/teams_1.2.00.32451_amd64.deb

Launch Teams by typing


Or you can launch it from your Applications Menu

After Teams is installed and launched, sign in to your Microsoft account.

Bash script to send messages to Microsoft Teams

Copy and save into file. Make executable. Change web hook, Run!

The script is a modified Slack script from off the web.

# bash script to send messages to Microsoft Teams.
function usage {
echo "HELP ME!"
echo "description: send messages to Microsoft Teams channels"
echo "special notes: You'll need to change the teamsUrl variable to contain your webhook from Teams."
echo "usage: ${0} -b \"Message contents\""
echo " -m Message body"
echo " -h This help info"
exit 1
while getopts "m:h" opt; do
case ${opt} in
m) msgBody="$OPTARG"
h) usage
\?) echo "Invalid option -$OPTARG" >&2
# Add/Change the webhook to one you created in Teams
if [[ ! "${msgBody}" ]]; then
echo "You didn't specify a message!"
read -d '' payLoad << EOF
"text": "${msgBody}",
statusCode=$(curl \
--write-out %{http_code} \
--silent \
--output /dev/null \
-H 'Content-type: application/json' \
--data "${payLoad}" ${teamsUrl})
echo ${statusCode}