EfficiencyLab Favicon Green
Inhaltsverzeichnis

Notion & Slack: So funktionieren @Mentions in Automatisierungen

Hinweis: Dieser Blogpost enthält Affiliate Links. Diese sind mit "*" gekennzeichnet

Wenn du in einem deutschen Startup arbeitest, stehen die Chancen gut, dass du sowohl Slack als auch Notion für den täglichen Betrieb verwendest. In diesem Fall hast du dich bestimmt bereits mit Datenbanken, automatisierten Workflows und @Mentions angefreundet.

Doch manchmal tauchen etwas spezifischere Probleme auf. Während eine @Mention in einer Automatisierung mit Notion als Auslöser bei einer Personeneigenschaft (in einer Datenbank) gar kein Problem ist, spitzt sich die Lage ein wenig zu, wenn bestimmte Personen basierend auf einem anderen Feld bedingt benachrichtigt werden sollen.

Deswegen schauen wir uns in diesem Artikel an, wie Slack-@Mentions im Detail funktionieren und wie wir diese basierend auf einem Multi-Select-Feld in Notion bedingt auslösen können.

Das Szenario

Der eben beschriebene Nutzenfall mag sehr spezifisch wirken, kann jedoch realistisch in einem Businessumfeld wiederholt Anwendung finden und den Alltag erheblich erleichtern, vor allem wenn mehrere Teams im Spiel sind.

Das Problem

Du bearbeitest eine News-Datenbank in Notion und möchtest, dass eine Update-Nachricht in den gemeinsamen Slack-Channel gesendet wird, wobei nur die relevanten Teammitglieder darauf mit einer @Mention markiert sind und Benachrichtigungen erhalten.

Doch Notion ermöglicht ausschließlich @Mentions basierend auf „Personen“-Eigenschaften. Natürlich könntest du jedes Teammitglied einzeln in jedem Datenbankeintrag verlinken und das Problem wäre aus der Welt geschafft; aber das wäre ganz schön nervig.

Stattdessen wird eine Multi-Select-Eigenschaft verwendet, um das jeweilige Team als Ganzes zu einem Datenbankeintrag zuzuweisen. Doch nun funktioniert die native Automatisierung nicht mehr, und auch der einfache @Person Text in der Slack-Nachricht löst keine Erwähnung aus. Keine Benachrichtigung, kein Ping.

Das Ziel

Wir möchten eine Automatisierung auslösen, die alle Mitglieder eines Teams anhand einer Multi-Select Eigenschaft der Datenkbank in Slack mit einer validen @Mention benachrichtigt.

Dabei sollen sowohl die Push-Benachrichtigung auslösen, als auch weitere Details wie den Seitenlink in der Slack-Nachricht teilen.

Notion Database mit M&A Informationen
Slack interface mit automatischer Notion Nachricht inklusive @Mention

Wie funktioniert eine @Mention in Slack?

Bevor wir zur vollständigen Lösung kommen, hilft es zu verstehen, warum der einfache Text @Name in der Automatisierung nicht ausreicht.

In dieser Hinsicht ist Slack nämlich ein wenig pingelig und erwartet eine besondere Syntax, damit tatsächlich eine Benachrichtigung ausgelöst wird:

  • Eine valide Slack-Mention sieht im Hintergrund nicht wie @Name aus, sondern gleicht dem Format <@SLACK-ID>, also zum Beispiel: <@U1234ABCDE>.
  • Die Slack ID eines Nutzers macht diesen eindeutig identifizierbar, auch wenn Namen doppelt vorkommen.

Basierend auf dieser ID sucht Slack den jeweiligen Nutzer heraus und wandelt den Text in eine klickbare Erwähnung um, die ebenfalls eine Push-Benachrichtigung auslöst. Wenn der Text jedoch nicht dem vorgegebenen Format folgt (z. B. @Name), wird die Nachricht als normaler Text behandelt ohne Eigenschaften behandelt.

Wo findet man die Slack-ID einer Person?

Die Slack-ID eines Teammitglieds zu bekommen ist sehr einfach:

  1. Öffne Slack in der App oder dem Browser.
  2. Gehe zum Profil der Person, indem du auf ihren Namen in einem Chat, der Sidebar oder einer Nachricht klickst.
  3. Klicke auf die drei Punkte.
  4. Wähle „Mitglieder-ID kopieren“.

Nun bekommst du eine ID im Format U1234ABCDE, in deine Zwischenablage gespeichert.

Best Practice: Die ID eines Nutzers verändert sich nicht, solange er Teil des Workspace bleibt. Daher kannst du den Code jeder Person einmalig sammeln und in einer übersichtlichen Tabelle abspeichern.

Die Notion-Automatisierung mit Slack-Integration

Da Notion bereits eine vorhandene Slack-Integration hat, bei der Nachrichten ebenfalls mit JavaScript Code erweitert werden können, bleibt uns ein großer Teil der Arbeit erspart.

Bevor wir beginnen, sollten die folgenden Bedingungen erfüllt sein:

  • Du hast Zugriff auf Slack (Nutzer-Berechtigungen reichen aus)
  • Du hast Zugriff auf den Slack-Channel, in den die Nachricht gesendet werden soll
  • Du hast Adminrechte in Notion, um die Slack-Integration zu aktivieren (bzw. die Slack-Integration wurde bereits von einem Admin eingerichtet).

Schritt-für-Schritt zur Automatisierung

1. Richte deine Notion Datenbank ein

Da die spätere Benachrichtigung ein wenig JavaScript verwenden wird, ist es wichtig, dass du deine Notion-Datenbank mit allen Eigenschaften, bereits zuvor finalisierst. Dadurch sparst du dir die doppelte Arbeit, später die Tabelle und den Code anpassen zu müssen.

Im allgemeinen benötigt deine Notion Tabelle die folgenden Eigenschaften:

  • Titel: Der Name des Datenbankeintrags, der in der Nachricht für den Text-Link verwendet wird.
  • Kategorie: Ein Select- oder Multi-Select-Feld, basierend auf dem die unterschiedlichen Mitarbeiter kategorisiert werden.
  • Auslöser: Ein Select-Feld oder eine Checkbox, mithilfe die Automatisierung manuell ausgelöst werden kann. Alternativ kann natürlich auch ein universeller Auslöser wie „Page added“ oder „Any property edited“ genutzt werden.

Für den weiteren Prozess empfehle ich, 1-2 Testeinträge in der Datenbank zu erstellen. Dadurch kannst du die Funktionen gleich testen und Fehler vermeiden.

2. Erstelle die Automatisierung

Nun durchlaufen wir den normalen Prozess, eine Notion-Automatisierung zu erstellen. Dabei wählen wir die gewünschte Eigenschaft als Trigger (z. B. eine Checkbox „Team benachrichtigen“) und „Slack-Nachricht senden“ mit dem entsprechenden Kanal als Aktion.

Um den Inhalt der Nachricht zu setzen, verwenden wir ein wenig JavaScript-Code:

/* Datenbank Eigenschaften hinzufügen */
lets(
  relevant, context("Trigger page").prop("KATEGORIE"),
  pageTitle, context("Trigger page").prop("TITEL"),
  pageId, id(context("Trigger page")),

  /* Mentions mit IDs und Namen in Klammern */
  mentions, relevant.map(
    ifs(
      current == "KATEGORIE 1", "<@Slack-ID-1> (NAME DES NUTZERS)",
      current == "KATEGORIE 2", "<@Slack-ID-2> (NAME DES NUTZERS)",
      current == "KATEGORIE 3", "<@Slack-ID-3> (NAME DES NUTZERS)",
      current == "KATEGORIE 4", "<@Slack-ID-4> (NAME DES NUTZERS), <@Slack-ID-5> (NAME DES NUTZERS)",
      "@" + current.lower()
    )
  ).join(" "),

  /* Link erstellen */
  pageLink, link(if(empty(pageTitle), "Untitled", pageTitle), "<https://www.notion.so/>" + pageId.replaceAll("-", "")),

  /* Finale Nachricht */
  mentions + "\\n\\n" + "\\n\\n" + "View in Notion: " + pageLink
)

Dabei funktioniert der Code wie folgt:

  1. Die Eigenschaften Kategorie, Titel und Page-ID der Unterseite, die die Automatisierung ausgelöst hat, werden ermittelt.
  2. Basierend auf dem Wert der Spalte Kategorie werden vordefinierte Personen in der Nachricht erwähnt. Diese müssen einmalig manuell mit ihrer ID und ihrem Namen eingefügt werden.
  3. Die finale Nachricht wird erstellt und mit der @Mention formatiert.

Dabei wird jede per ID erwähnte Person der im Datenbankeintrag ausgewählten Kategorie benachrichtigt. Da die Formatierung der <@Slack-ID>-Erwähnung jedoch trotz valider Syntax oftmals Probleme macht, fügen wir den vollen Namen der angesprochenen Person als Text dahinter ein. So wissen alle Teammitglieder auch im Problemfall, welche Nachrichten für sie relevant sind.

Häufige Fehlerquellen

Während dem bearbeiten des Codes kann es zu einigen kleinen Fehler kommen. Um dir das stundenlange Debuggen zu sparen, findest du hier einige Probleme vorweg:

  • Datenbank Eigenschaften: Damit die Werte der Eigenschaften richtig übernommen werden können, muss die Schreibweise im Code genau dem Spaltennamen gleichen.
  • Slack-ID: Wenn der Code keine Benachrichtigung auslöst, ist beim kopieren der Slack-ID oft ein Fehler aufgetreten. Prüfe die ID erneut und entferne jegliche Leerzeichen innerhalb der <@Slack-ID> Syntax.
  • Komplexität: Notion stößt bereits mit dieser simplen Integration an seine Grenzen. Für detaillierte Flows könnte es daher Sinn machen, auf eine dedizierte Plattform wie Make* oder Zapier auszuweichen.

Fazit

Mit diesem Setup hast du eine robuste Automatisierung, die bedingt ausgewählte Teammitglieder in einer Slack-Nachricht per @Mention erwähnt. Obwohl der konkrete Anwendungsfall ein wenig Nische ist, liefert er dennoch interessante Einblicke hinter die Funktionen von sowohl Slack als auch Notion-Automatisierungen.

Ist genau diese Umsetzung mit den unformatierten @Mentions besonders elegant? Nein. Aber sie erfüllt den Zweck und bildet eine gute Basis für weitere Verbesserungen. Diesen Teil überlasse ich jedoch dir :)

No items found.

Ressourcen & PDF-Zusammenfassung des Artikels

Zusammenfassung
Tobi H.

Developer & Content-Manager im EfficiencyLab

Teile diesen Artikel

Lerne mehr über smarte Produktivität mit EfficiencyLab!