Kurs
In jedem Job gibt es wiederkehrende Aufgaben. Ob Support-Mitarbeitende, die häufige Anfragen auswerten, Teamleads, die Leistungskennzahlen im Blick behalten, oder Software Engineers, die Geschäftsprozesse prüfen – vieles passiert täglich, wöchentlich oder sogar stündlich.
Zum Glück kannst du vieles davon mit Python automatisieren. Die Sprache ist vielseitig, stark bei Daten und ideal für Skripte zur Automatisierung. Stell dir vor, du sammelst Performance-Kennzahlen: Manuell müsstest du mehrere Dashboards durchsuchen. Mit einem Python-Skript ziehst du die Daten automatisch, hebst die wichtigsten Punkte hervor und schickst deiner Führungskraft einen kompakten Report. Das spart nicht nur Zeit, sondern reduziert auch Fehler.
In diesem Tutorial schauen wir uns den konkreten Fall an, mit Python eine Wettervorhersage für einen bestimmten Ort abzurufen und eine Zusammenfassung in Microsoft Teams, der Kommunikationsplattform von Microsoft, zu posten. Wir gehen alle nötigen Schritte durch: vom Einrichten eines Teams-Webhooks über ein Python-Programm, das den Webhook zum Senden von Nachrichten nutzt, bis hin zur Zeitplanung, damit das Skript regelmäßig läuft. Unser Beispiel berichtet über eine Wettervorhersage, aber die eigentliche „Business-Logik“ kannst du natürlich austauschen – die Einrichtung und der Code zum Senden an Teams bleiben identisch.
Wir verwenden in diesem Tutorial DataLab, da es Funktionen zum sicheren Speichern von Secrets als Umgebungsvariablen mitbringt (das nutzen wir für den Teams-Webhook) und du mit wenigen Klicks Zeitpläne für dein Python-Skript einrichten kannst. Alles, was du brauchst, ist ein Microsoft-Konto (zum Posten der Nachrichten) und ein DataCamp-Konto (für DataLab) – beides kannst du kostenlos erstellen!
Schau dir auch unsere separate Anleitung an, wie du Slack-Nachrichten mit Python sendest.
Los geht’s!
1. Einen Microsoft-Teams-Webhook einrichten
In Microsoft Teams gibt es Teams mit Kanälen. Diesen Kanälen kannst du sogenannte „Apps“ hinzufügen. Eine Teams-App ist im Grunde eine Erweiterung von MS Teams für einen bestimmten Zweck. Es gibt Apps, um Jira, Zendesk, Salesforce und viele weitere in Teams zu integrieren. So wirst du in Teams benachrichtigt, wenn etwas passiert, und kannst aus Teams heraus sogar Aktionen in diesen Apps ausführen. Für unser Projekt installieren wir die App „Incoming Webhook“, die von Microsoft selbst gepflegt wird.
Stelle zuerst sicher, dass du ein Microsoft-Konto mit Zugang zu Teams hast. Du musst Mitglied eines Teams sein und die Berechtigung haben, Apps zu Kanälen hinzuzufügen. Wenn nicht, kontaktiere deine IT und schicke ihnen diesen Link.
Wechsle dann in den Team-Kanal, in dem du Nachrichten posten möchtest. In unserem Beispiel ist das der Kanal „Allgemein“ im Team „Data Analytics Heroes“:

Klicke auf das +-Symbol neben dem Kanalnamen; du siehst eine Übersicht der Apps, die du hinzufügen kannst:

Klicke auf „Weitere Apps holen“. Du landest im Marktplatz mit allen Apps für MS Teams:

Gib in die Suche „Incoming Webhook“ ein. Die zuerst angezeigte App ist die richtige:

Klicke auf Add und dann auf „Add to a team“. Jetzt wirst du gefragt, in welches Team bzw. welchen Kanal du Nachrichten senden willst:

In diesem Tutorial ist es der Kanal „Allgemein“ im Team „Data Analytics Heroes“, bei dir wird das wahrscheinlich anders sein. Klicke anschließend auf „Set up a connector“. Es erscheint ein weiteres Fenster mit Einstellungen für den Webhook.

Vergib einen Namen für den Incoming Webhook; unter diesem Namen werden deine Nachrichten gesendet. Wähle also etwas Sinnvolles, z. B. „Python Messenger“. Du kannst auch ein eigenes Bild hochladen, das ist optional. Klicke zum Schluss auf „Create“. Eine Webhook-URL erscheint!

Diese Webhook-URL brauchst du in deinem Python-Programm. Kopiere sie daher in die Zwischenablage und speichere sie (z. B. in deiner Notizen-App) für später. Klicke anschließend auf „Done“. In der folgenden Übersicht siehst du alle Connectoren im gewählten Kanal.

Du kannst dieses Fenster schließen. Im Kanal, für den du den Incoming Webhook konfiguriert hast, solltest du eine Bestätigungsmeldung sehen:

Das war’s! Dein Microsoft-Teams-Kanal ist jetzt bereit, Nachrichten über den Webhook zu empfangen.
2. Die Business-Logik in Python schreiben
Starke Leistung bis hierher! Der Incoming Webhook in Teams steht – jetzt kommt der spaßige Teil: Python schreiben. Wir beginnen mit etwas Python-Code für unsere „Business-Logik“, um die Aufgabe zu lösen.
Wenn du deine Python-Kenntnisse auffrischen möchtest, ist unser Kurs Introduction to Python der ideale Start.
Du kannst entweder ein leeres Workbook von Grund auf erstellen – perfekt, wenn du bereits weißt, welches Python-Programm du automatisieren und mit Microsoft Teams integrieren willst.
Wenn du vor allem die Konzepte lernen möchtest, kannst du mit einem Beispiel-Workbook starten, das die Wettervorhersage für eine frei wählbare Stadt zusammenfasst. Es gibt täglich neue Daten – ideal für einen täglichen Report! Klicke unten auf die Schaltfläche "Run Code", um dieses Workbook zu erstellen.
Code aus diesem Tutorial online ausführen und bearbeiten
Code ausführenIn beiden Fällen solltest du am Ende ein DataLab-Workbook haben, in dem deine Business-Logik vollständig implementiert ist:

3. Eine Nachricht an Teams senden
Teams-Webhook: Check. Business-Logik: Check. Um das Python-Notebook mit Microsoft Teams zu verbinden, müssen wir zwei Dinge tun: die Webhook-URL im DataLab-Workbook speichern und etwas Python-Code schreiben, um eine Nachricht an den Teams-Kanal zu schicken.
Die Webhook-URL speichern
Unser Python-Notebook braucht die Webhook-URL, um die Nachricht an den richtigen Teams-Kanal zu senden. Du könntest die URL einfach in eine Codezelle einkopieren. Das ist jedoch unsicher und nicht zu empfehlen. Die Webhook-URL ist eine Art Geheimnis. Wenn du dein Notebook teilst, sehen andere die URL und können deinen Teams-Kanal zuspammen!
Außerdem müsstest du dieses Copy-Paste in jedem Workbook wiederholen, das Nachrichten an Teams senden soll. Ändert sich die Webhook-URL, musst du alle Workbooks manuell anpassen.
Sicherer und skalierbarer ist es, das Webhook-Token in einer sogenannten Umgebungsvariablen zu speichern. Wenn du diese Variable verbindest, ist sie in deiner Python-Session verfügbar. In deinem Workbook:
- Klicke links auf den Tab „Environment“
- Klicke auf das Plus-Symbol neben „Environment Variables“
- Im Modal „Add Environment Variables“:
- Setze „Name“ auf MS_TEAMS_WEBHOOK_URL
- Füge im Feld „Value“ die zuvor gespeicherte Webhook-URL ein.
- Setze „Environment Variables Set Name“ auf „Microsoft Teams“ (der Name ist frei wählbar)

Nachdem du alles ausgefüllt hast, klicke auf „Create“, „Next“ und schließlich „Connect“. Deine Workbook-Session startet neu, und MS_TEAMS_WEBHOOK_URL steht dir nun als Umgebungsvariable zur Verfügung. Du kannst das mit einer Python-Zelle prüfen:
import os
webhook_url = os.environ["MS_TEAMS_WEBHOOK_URL"]
print(webhook_url)
Wenn du dieselben Zugangsdaten in einem anderen Workbook verwenden willst, musst du die Umgebungsvariable nicht erneut einrichten: Du kannst sie in anderen Workbooks wiederverwenden.
Python-Code zum Senden der Microsoft-Teams-Nachricht
Mit der MS_TEAMS_WEBHOOK_URL am Start können wir jetzt Python-Code schreiben, um eine Nachricht an Teams zu schicken! Dafür nutzen wir das Open-Source-Paket pymsteams, das eine bequeme Hülle um die recht komplexe API zum Senden von Nachrichten in Teams bietet. Installieren und importieren wir es sowie das os-Paket zum Auslesen von Umgebungsvariablen:
!pip install pymsteams
import pymsteams
import os
Als Nächstes erstellen wir eine sogenannte „Connector Card“ – im Grunde eine Rich-Text-Nachricht in Teams –, fügen Text hinzu und senden sie:
card = pymsteams.connectorcard(os.environ["MS_TEAMS_WEBHOOK_URL"])
card.text("Hello Teams!")
assert card.send()
Führe diesen Code aus! Du solltest die Nachricht im Kanal sehen:

Großartig! Das war eine simple Beispielnachricht, aber du kannst die Message natürlich auch aus dem Ergebnis deiner Business-Logik erstellen – so wie im Beispiel-Workbook:
card = pymsteams.connectorcard(os.environ["MS_TEAMS_WEBHOOK_URL"])
card.title("Weather Forecast")
card.text("\n".join([
f"Weather for {CITY} in the next three days:",
f"- Min temperature: {weather_df['temperature_2m'].min()} {unit_temperature}",
f"- Max temperature: {weather_df['temperature_2m'].max()} {unit_temperature}",
f"- Total precipitation: {weather_df['precipitation'].sum():.2f} {unit_prec}"
]))
assert card.send()
Mit folgendem Ergebnis:

Abschließend kannst du die Umgebungsvariable DL_WORKBOOK_ID nutzen, um eine Schaltfläche mit Link zu deinem Workbook hinzuzufügen – praktisch, wenn du einen schnellen Sprung von Teams ins DataLab-Workbook ermöglichen willst, das die Nachricht erzeugt hat:
card = pymsteams.connectorcard(os.environ["MS_TEAMS_WEBHOOK_URL"])
card.title("Weather Forecast")
card.text("\n".join([
f"Weather for {CITY} in the next three days:",
f"- Min temperature: {weather_df['temperature_2m'].min()} {unit_temperature}",
f"- Max temperature: {weather_df['temperature_2m'].max()} {unit_temperature}",
f"- Total precipitation: {weather_df['precipitation'].sum():.2f} {unit_prec}"
]))
card.addLinkButton("View detailed forecast", f"https://www.datacamp.com/datalab/w/{os.environ.get('DL_WORKBOOK_ID', 'invalid')}/edit")
assert card.send()
Mit folgendem Ergebnis:

Ziemlich cool, oder?
4. Automatisieren!
Du hast ein Python-Skript gebaut, das eine hilfreiche Analyse durchführt und eine Zusammenfassung an Teams schickt – inklusive Link zurück zum vollständigen Notebook für alle, die ins Detail gehen möchten. Stark! Stell dir jetzt vor, dieses Notebook läuft automatisch – täglich oder wöchentlich – und hält dich mit frischen Ergebnissen auf dem Laufenden. Gute Nachrichten: Genau das geht! DataLab bietet dafür geplante Ausführungen.
- Klicke in der oberen Menüleiste auf Run > Schedule Run
- Richte den Zeitplan nach deinen Bedürfnissen ein:
- Lass das Notebook automatisch täglich oder wöchentlich laufen. Bei wöchentlichen Läufen wählst du Wochentag und Uhrzeit.
- Füge DataCamp-User hinzu, die benachrichtigt werden sollen, sobald das Notebook fertig ist (erfolgreich oder mit Fehler). Besonders bei Fehlern ist das hilfreich, um schnell reagieren zu können.

Konfiguriert wie im Screenshot oben, läuft das Notebook jetzt jeden Tag um 9:30 Uhr Ortszeit. Das bedeutet: Jeden Morgen wird eine Nachricht im angegebenen Teams-Kanal gepostet.
Automatisieren oder nicht?
Nicht jede Aufgabe eignet sich für Automatisierung. Es hängt davon ab, wie oft du sie erledigst, wie lange die manuelle Ausführung dauert und wie viel Zeit die Skripterstellung kostet. Ein Beispiel: Ein jährlicher Report dauert manuell 20 Minuten. Wenn du dafür einen halben Tag Skriptbau investierst, dauert es sehr lange, bis sich die Automatisierung „rechnet“.
Hier die Faustregel in Tabellenform:

Wenn eine täglich anfallende Aufgabe bisher 5 Minuten brauchte, kannst du bis zu 6 Tage in die Automatisierung investieren. Schaffst du es schneller, sparst du über fünf Jahre gesehen Zeit ein.
Fazit
Die Einrichtung von DataLab zum Senden von Nachrichten an Microsoft Teams führt anfangs durch einige Screens. Ist aber einmal alles konfiguriert und die Webhook-URL in DataLab hinterlegt, genügen ein paar Zeilen Python – und das Versenden ist kinderleicht! Das Beste: Du kannst nahezu jedes Python-Skript automatisieren und deine Stakeholder genau dort informieren, wo sie sind – in Teams.
Vorbei sind die Zeiten, in denen du dich für wiederkehrende Routineaufgaben an Erinnerungen klammern musstest. Willkommen in einer Ära effizienter, automatisierter Workflows – ganz ohne Toolwechsel. Alles, was es braucht, ist DataLab.
Denke daran: Wenn du deine Python-Kenntnisse auffrischen möchtest, ist unser Kurs Introduction to Python der ideale Start.
Filip ist der leidenschaftliche Entwickler hinter einigen der beliebtesten Python-, SQL- und R-Kurse von DataCamp. Derzeit leitet Filip die Entwicklung von DataLab, dem KI-fähigen Daten-Notizbuch von DataCamp. Filip hat einen Abschluss in Elektrotechnik und Künstlicher Intelligenz.
