Ga naar hoofdinhoud

Slack-berichten versturen met Python

Volg onze stapsgewijze gids om Slack te integreren met Python en ontgrendel de mogelijkheid om automatisch Slack-berichten te versturen die inzichten opleveren!
Bijgewerkt 2 okt 2026  · 7 min lezen

Verken met AI

ChatGPTClaudePerplexity

Elke baan kent zijn saaie, repetitieve taken. Of je nu een supportmedewerker bent die moet rapporteren over veelvoorkomende thema’s in hulpverzoeken, een teamleider die performance-metrics moet bijhouden, of een software engineer die de status van kernprocessen wil checken om te zien of alles goed draait: je doet dit steeds opnieuw, maandelijks, wekelijks, dagelijks, misschien zelfs elk uur!

In veel gevallen kun je echter ten minste een deel van dit repetitieve werk automatiseren. Python is daar erg geschikt voor: het is een general-purpose programmeertaal die goed werkt met (grote hoeveelheden) data en tegelijkertijd ideaal is om automatiseringsscripts in te schrijven. Rapporteren over performance-metrics? Zonder automatisering moet je misschien in vier verschillende dashboards kijken om alle cijfers te verzamelen en die dan in een bericht aan je manager gieten. Met automatisering haalt een Python-script alle data op die je nodig hebt, pikt de belangrijkste samenvattende cijfers eruit, zet ze netjes op een rij en verstuurt het bericht zonder dat jij eraan te pas komt. Niet alleen handig, ook minder foutgevoelig en minder kans dat je iets vergeet!

In deze tutorial bekijken we het specifieke geval waarin we Pythoncode laten draaien om de status van een beleggingsportefeuille te rapporteren en een samenvatting van die portefeuille naar Slack te sturen, een veelgebruikte communicatie-app voor teams. We behandelen alle benodigde stappen: een Slack-app configureren, een Pythonprogramma dat die Slack-app gebruikt om berichten te sturen, en een schema instellen zodat je Python-script op vaste tijden draait. Dit voorbeeld gaat over het volgen van een beleggingsportefeuille, maar je kunt die ‘businesslogica’ natuurlijk vervangen door wat je maar wilt; alle configuratie en code om het bericht naar Slack te sturen blijft precies hetzelfde.

We gebruiken DataLab in deze tutorial, omdat het ingebouwde mogelijkheden heeft om secrets veilig op te slaan als omgevingsvariabelen (een functie die we gebruiken om de Slack-app-gegevens te bewaren) en omdat je er met een paar klikken je Pythoncode mee kunt inplannen. Om mee te doen heb je alleen een Slack-account (om berichten te plaatsen) en een DataCamp-account (om DataLab te gebruiken) nodig, die je allebei gratis kunt aanmaken!

Aan de slag!

1. Configureer een Slack-app

Je kunt een Slack-app zien als een extensie of add-on van Slack voor een specifiek doel. Er zijn Slack-apps om Google Docs, Jira, Dropbox, Zoom en talloze andere tools te integreren, zodat je binnen Slack meldingen krijgt over wat er gebeurt, maar ook acties in die apps kunt uitvoeren vanuit Slack. Voor ons projectje moeten we ook een Slack-app maken, zodat we de botgebruiker kunnen gebruiken die bij elke Slack-app hoort om berichten naar Slack te sturen.

Zorg om te beginnen dat je een Slack-account hebt, dat je lid bent van een Slack-workspace waar je beheerdersrechten voor hebt, en dat je met dit account bent ingelogd. Zo niet, ga dan naar slack.com en maak een nieuw account en een nieuwe workspace aan.

Ga vervolgens naar https://api.slack.com/app, je Slack-appsdashboard. Dat ziet er ongeveer zo uit:

create app dashboard in slack

Klik op “Create an App”

create an app dialogue

Selecteer “From scratch.” Geef op het volgende scherm een naam voor je app, bijvoorbeeld “Python Messenger”, en selecteer de workspace waarin je deze app wilt ontwikkelen (in jouw geval zal dit een andere workspace zijn).

Klik op Create app. Je komt nu op de startpagina van je nieuw aangemaakte app, waar je alle instellingen van de app kunt configureren, van basisinformatie tot wie er nog wijzigingen mogen aanbrengen en alle features. Laat je hierdoor niet overdonderen! We hoeven maar een paar instellingen te zetten.

Ga naar de tab “OAuth & Permissions”, scroll naar beneden naar de kaart Scopes en klik onder Bot Token Scopes op “Add an OAuth Scope” om de scopes ‘chat:write’, ‘chat:write.customize’, ‘files:read’, ‘files:write’ toe te voegen (je moet in totaal vier keer op “Add an OAuth Scope” klikken).

Scopes dialogue

Deze bot tokenscopes bepalen wat de botgebruiker van je app binnen je Slack-workspace kan doen. Volgens het principe van minimale privileges geven we deze app niet overal toegang toe en alle denkbare rechten, maar beperken we de app tot het schrijven van (aangepaste) chatberichten en het uploaden en downloaden van bestanden (handig als je bijlagen in je berichten wilt opnemen).

Nu kun je omhoog scrollen naar de sectie “OAuth Tokens for Your Workspace” en op “Install to Workspace” klikken:

Oauth and permissions dialogue

Klik op het volgende scherm, dat de scopes samenvat die je in de vorige stappen hebt opgegeven, op Allow.

Je ziet nu dat er een “Bot User OAuth Token” voor je is aangemaakt:

OAuth Token dialogue

Deze Bot User OAuth Token heb je later nodig, dus sluit je browservenster nog niet.

Open Slack en merk op dat er een nieuwe app “Python Messenger” (of hoe je hem ook hebt genoemd) in je zijbalk is verschenen:

De laatste configuratiestap is het instellen van het Slack-kanaal waar je de geautomatiseerde berichten naartoe wilt sturen. Maak een nieuw kanaal aan met de naam #bot-updates. Typ in het kanaal /app en selecteer “Add apps to this channel”:

Adding app to slack

Klik naast “Python messenger” op “Add”. Je ziet dat de app “Python Messenger” het kanaal is binnengekomen.

Dat was alles! Je Slack-kanaal is nu klaar om berichten te ontvangen via de app “Python Messenger”, met de gegenereerde Bot User OAuth Token. Let op: dit zijn best wat stappen, maar het is een eenmalige setup per Slack-workspace. Als je meerdere Pythonprogramma’s naar dezelfde Slack-workspace wilt laten sturen, hoef je dit proces niet opnieuw te doorlopen.

2. Schrijf de businesslogica in Python

Top dat je tot hier gekomen bent! Nu de Slack-app is geconfigureerd, komt het leuke gedeelte: Python schrijven. We beginnen met wat Pythoncode voor onze ‘businesslogica’ om de taak op te lossen.

Heb je een opfrisser nodig voor het schrijven van Pythoncode, dan is onze cursus Introduction to Python de ideale plek om te starten.

Je kunt ofwel een leeg werkboek vanaf nul maken, handig als je al weet welk Pythonprogramma je wilt automatiseren en met Slack wilt integreren.

Als je hier bent om de concepten te leren, kun je beginnen met een voorbeeldwerkboek dat we hebben gemaakt en dat de waarde van een denkbeeldige portefeuille met techaandelen bijhoudt. Elke dag (behalve in het weekend) zijn er nieuwe gegevens, dus dit is een mooie kandidaat voor dagelijkse rapportage.

Voer de code van deze tutorial online uit en bewerk deze

Code uitvoeren

In beide gevallen eindig je met een DataLab-werkboek waarin je businesslogica volledig is uitgewerkt:

Slack messages workspace

3. Het Slack-bericht versturen

Dus, Slack-app: check. Businesslogica: check. Om het Python-notebook met Slack te integreren, moeten we twee dingen doen: het Slack OAuth-token in het werkboek opslaan en wat Pythoncode schrijven om een Slack-bericht te versturen.

Sla het Slack OAuth-token op

Ons Python-notebook heeft het OAuth-token nodig om te bewijzen dat het geautoriseerd is om berichten naar je Slack-workspace te sturen. Je zou dit OAuth-token gewoon kunnen kopiëren en plakken in een codecel van je notebook. Dit is echter niet veilig en wordt afgeraden. Als je je notebook met iemand deelt, kan diegene het OAuth-token zien.

Bovendien zou je deze copy-pasteactie in elk werkboek moeten herhalen waarmee je Slack-berichten wilt versturen. Als je het OAuth-token wilt updaten, moet je elk werkboek nalopen en aanpassen.

Een veiligere en schaalbaardere aanpak is het Slack OAuth-token opslaan in een zogeheten omgevingsvariabele. Zodra je deze omgevingsvariabele koppelt, wordt hij beschikbaar in je Pythonomgeving. In je werkboek:

  • Klik op het tabblad “Environment” aan de linkerkant
  • Klik op het plusteken naast “Environment Variables”
  • In de “Add Environment Variables”-modal:
    • Zet “Name” op SLACK_TOKEN
    • Kopieer-plak in het veld “Value” het OAuth-token dat je in stap 1 van deze gids hebt gekregen.
    • Zet “Environment Variables Set Name” op “Slack” (dit kan in principe van alles zijn)

Environment variables dialogue

Klik na het invullen op “Create”, “Next” en tot slot “Connect”. Je DataLab-sessie wordt herstart en SLACK_TOKEN is nu beschikbaar als omgevingsvariabele in je werkboek. Je kunt dit verifiëren door een Pythoncel met de volgende code te maken en uit te voeren:

import os
slack_token = os.environ["SLACK_TOKEN"]
print(slack_token)

Als je dezelfde serviceaccountgegevens in een ander werkboek wilt hergebruiken, hoef je de omgevingsvariabele niet opnieuw in te stellen: je kunt hem in andere werkboeken opnieuw gebruiken.

Pythoncode om het Slack-bericht te versturen

Met het SLACK_TOKEN paraat voeg je onderaan je notebook een klein snippet toe dat een voorbeeldbericht naar het kanaal #bot-updates in je Slack-workspace stuurt:

import os
from slack_sdk import WebClient

message = "This is my first Slack message from Python!"

# Set up a WebClient with the Slack OAuth token
client = WebClient(token=os.environ["SLACK_TOKEN"])

# Send a message
client.chat_postMessage(
    channel="bot-updates", 
    text=message, 
    username="Bot User"
)

Deze code gebruikt Slacks officiële Python SDK. Voer deze code uit! Je zou dit bericht in je Slack-workspace moeten zien verschijnen:

image5.png

Dit was een nietszeggend voorbeeldbericht, maar je kunt ook een bericht maken op basis van het resultaat van je businesslogica, zoals we deden in het voorbeeldwerkboek:

message = f"Total value of my portfolio on {portfolio_df.index[-1]:%B %d, %Y} is ${latest_total:,.2f}."

Met het volgende resultaat:

Sample message

Tot slot kun je ook de omgevingsvariabele DL_WORKBOOK_ID gebruiken om een link naar je werkboek toe te voegen, voor het geval je een makkelijke route wilt bieden van Slack naar het DataLab-werkboek dat dit bericht aanstuurt:

message = f"""
Total value of my portfolio on {portfolio_df.index[-1]:%B %d, %Y} is ${latest_total:,.2f}.
For the full analysis, check <https://www.datacamp.com/workbook/w/{os.environ.get('DL_WORKBOOK_ID', 'invalid')}/edit|this workbook> (updates daily)
"""

Met het volgende resultaat:

Another sample message

4. Automatiseren!

Je hebt een Python-script geschreven dat een relevante analyse doet en daar een samenvatting van naar Slack stuurt, met een link terug naar het volledige notebook voor wie dieper wil duiken. Mooi! Maar hoe fijn zou het zijn als je dit notebook wekelijks of dagelijks kunt laten draaien, zodat je automatisch op de hoogte blijft van nieuwe resultaten? Goed nieuws: dat kan! DataLab ondersteunt scheduled runs om precies dat te doen.

  • Klik in de menubalk bovenaan op Run > Schedule Run
  • Stel het schema in zoals jij wilt:
    • Laat het notebook dagelijks of wekelijks draaien, met een optie om tijd en dag van de week in te stellen (bij wekelijks)
    • Voeg DataCamp-gebruikers toe die je wilt informeren telkens wanneer het notebook succesvol afrondt, een fout tegenkomt of beide. Het is slim om in elk geval een melding bij falen te krijgen, zodat je kunt ingrijpen als dat nodig is.

Schedule run dialogue

Als je het instelt zoals in de screenshot hierboven, draait het notebook nu elke dag om 9:30 uur lokale tijd. Dat betekent dat er elke ochtend een bericht in het kanaal #bot-updates op Slack wordt geplaatst.

Automatiseren of niet

Niet alle taken zijn het waard om te automatiseren, afhankelijk van hoe vaak je ze moet doen, hoe lang het kost om het handmatig te doen, en hoe lang het duurt om een Python-script te bouwen dat het voor je doet. Een voorbeeld maakt dat duidelijk: stel dat je elk jaar een rapport moet samenstellen dat 20 minuten kost om handmatig te maken. Als het je een halve dag kost om een Python-script te schrijven dat dit voor je doet, dan duurt het vele jaren voordat je de tijd die je in de automatisering stak hebt teruggewonnen!

Dit wordt treffend samengevat in deze tabel:

Is it worth the time to automate?  Source: https://xkcd.com/1205/

Is het de tijd waard om te automatiseren? Bron

Dus als een taak die je dagelijks moest doen eerder 5 minuten kostte, kun je tot 6 dagen besteden aan het automatiseren ervan. Als je minder tijd besteedt aan automatiseren, heb je tijd gewonnen (berekend over 5 jaar).

Conclusie

De initiële setup voordat je berichten van DataLab naar Slack kunt sturen, kan even duren. Maar als alles eenmaal goed is geconfigureerd en het Slack-token in DataLab is opgeslagen, is een bericht sturen een kwestie van twee regels Python toevoegen: zo simpel is het! En kijk naar de voordelen: je kunt nu vrijwel elk Python-script automatiseren en je stakeholders informeren waar zij zitten: in Slack.

Weg met de tijd van reminders zetten om steeds dezelfde saaie taken te doen, en welkom in de tijd van krachtige, geautomatiseerde workflows zonder tussen tools te hoeven schakelen. Alles wat je nodig hebt is liefde DataLab.

Til je Pythonvaardigheden naar een hoger niveau met DataCamps cursus Intermediate Python. Breid je kennis uit in datavisualisatie en geavanceerde Pythonfeatures. Ga nu verder met je leercurve!


Filip Schouwenaars's photo
Author
Filip Schouwenaars
LinkedIn

Filip is de gepassioneerde ontwikkelaar achter een aantal van DataCamp's populairste cursussen in Python, SQL en R. Momenteel leidt Filip de ontwikkeling van DataLab, DataCamp's AI-aangedreven datanotebook. Filip heeft diploma's in elektrotechniek en kunstmatige intelligentie.

Onderwerpen
Python

Zet je Pythonreis vandaag voort!

Cursus

Python voor gemiddeld niveau

4 uur
1.4M
Maak je data science skills sterker: creëer visualisaties met Matplotlib en bewerk DataFrames met pandas.
Bekijk detailsRight Arrow
Start Cursus
Meer bekijkenRight Arrow
Gerelateerd

blog

AI vanaf nul leren in 2026: een complete gids van de experts

Ontdek alles wat je moet weten om in 2026 AI te leren, van tips om te beginnen tot handige resources en inzichten van industrie-experts.
Adel Nehme's photo

Adel Nehme

15 min

Meer BekijkenMeer Bekijken