Morgen Assist + OpenAI generieren meinen Tagesplan + senden ihn zu meinem Slack. So geht's.

Luke
Developer @ Morgen
October 27, 2023
10 min Lesezeit
⚡️
Wichtige Erkenntnisse
⚡️
Conclusion

Die Originalversion (einschließlich Code-Snippets) wurde am 30. Oktober auf dev.to veröffentlicht.

Morgen hat kürzlich ein neues Produkt gestartet – Morgen Assist – das wir für wirklich revolutionär halten. Es wird die Kalender-Automatisierung supercharged und tausende großartige Workflows und Apps auf den Markt bringen, mit Morgen als Fundament.

Aber vertrau mir nicht einfach – folg mir und entdecke, wie einfach es ist, deine eigenen Kalender-Workflows zu schreiben, zu testen und bereitzustellen.

Und entschuldige, aber OpenAI in den Titel zu packen war der einfachste Weg, dich zum Klicken zu bewegen – aber ich verspreche dir, es ist notwendig für diese <100 Zeilen App, die intelligent Kalender-Events aus all deinen Kalendern zusammenfasst*.

* Google und O365 werden derzeit unterstützt

„Was mache ich heute?"

Du hast dich vielleicht schon diese Frage gestellt, Kaffee in der Hand, starrend in dein Remote-Arbeits-Büro, nachdem du aus dem Bett direkt ins Wohnzimmer gerollt bist.

Mit 50+ neuen Slack-Nachrichten vom PM, Design-Team, Marketing und Support-Kanal könntest du vergessen, deinen Kalender zu checken – der irgendwo in einem Meer aus Firefox-Tabs, Terminals und noch mehr Terminals verloren geht.

Und genau da kommt der Morning Schedule Workflow ins Spiel.

Jeden Morgen (oder Abend) wird dir eine Slack-Nachricht direkt in deine DMs gesendet, die dir von anstehenden Meetings berichtet – Retrospektiven, 1-1s, Sprint-Meetings, Kundengespräche – alles in der Sprache und dem Ton deiner Wahl.

Als Demonstration habe ich den folgenden Text an OpenAIs ChatGPT-Modell gesendet:

Du bist der legendäre Apple-Gründer Steve Jobs, der eine Keynote hält

Bitte fasse alle diese anstehenden Events zusammen, auf eine Weise, die typisch für deinen klassischen Präsentationsstil ist.

- 1-1 mit David

- Retrospektive des letzten Sprints

- Kundengespräch mit Apple

Und das ist, was ich zurückbekommen habe:

Meine Damen und Herren,

Heute bin ich hier, um euch ein kurzes Update über einige anstehende Events zu geben, die von größter Bedeutung für unser Unternehmen sind.

Zunächst haben wir eine 1-1-Sitzung mit David geplant. Das ist eine fantastische Gelegenheit für uns, auf persönlicher Ebene zu verbinden, Ideen auszutauschen und unsere Vision abzustimmen. Solche Interaktionen sind …

Und es geht weiter. Die vollständige Keynote ist wirklich inspirierend, aber das musst du selbst sehen.

Wir haben also das zentrale Puzzleteil, aber wie passt das in einen Morgen Assist Workflow?

Erste Schritte mit Morgen Assist

Als Nächstes brauchst du ein Konto bei Morgen Assist. Du benötigst nur eine E-Mail-Adresse und ein Kalender-Konto, das entweder von Microsoft O365 oder Google bereitgestellt wird.

Einen benutzerdefinierten Workflow erstellen

Wir benötigen zunächst einen benutzerdefinierten Workflow auf der Morgen Assist-Plattform, den du hier findest.

Vergiss nicht, eine Kalender-Integration zu deinem Konto hinzuzufügen – du wirst sie bald brauchen. Du kannst die Slack-Integration vorerst ignorieren – das ist für einen etwas anderen Use-Case.

Folge dann diesen Schritten:

  • Stelle den Trigger-Typ auf „zeitgesteuert" zu einer Tageszeit deiner Wahl (z. B. 18 Uhr)
  • Wähle einen Kalender aus, um die Events zum Zusammenfassen zu beziehen
  • Und füge schließlich Code in den User Script-Bereich gemäß den folgenden Anweisungen ein

Beachte, dass du, wenn du die Hacker-10x-Engineer-Erfahrung möchtest, deinen Workflow auch über das SDK schreiben und bereitstellen kannst, das einen TypeScript-API-Client für Anfragen an unser Backend hat. Derzeit muss dein Code vollständig in die run-Funktion passen, die ich unten erkläre. Es ist noch etwas Interaktion in der Web-App notwendig, aber wir arbeiten daran, das in Zukunft zu verbessern.

Das Skript schreiben

Glücklicherweise wurde eine Version dieses Workflows bereits geschrieben und ist in einer Form verfügbar, die mit sowohl dem Morgen Assist SDK als auch der Morgen Assist Web-Oberfläche kompatibel ist.

Du findest es hier: https://github.com/morgen-so/morgen-cw-sdk/blob/main/examples/openai-tomorrow-summary.ts

Ich werde dieses Skript jetzt aufschlüsseln.

Zunächst benötigen wir ein paar Utilities, um Anfragen an Morgen und OpenAI zu stellen. Füge den Code in dein User Script ein.

Beachte, dass du ein OpenAI-Token brauchst, damit alles wie erwartet funktioniert. Sobald du ein OpenAI-Konto erstellst, kannst du Tokens von der OpenAI-Plattform erstellen.

Lass uns auch das Slack-Token vorbereiten:

  • Erstelle eine neue App hier: https://api.slack.com/apps
  • (So kann der Summary-Bot auf Slack zugreifen und dort erscheinen)
  • Stelle das Aussehen und die Berechtigungen deiner App ein
  • Gehe zu „OAuth & Permissions", finde den Bereich „Bot Token Scopes"
  • Füge die Berechtigung „chat:write" hinzu
  • Scrolle nach oben zum Bereich „Oauth Tokens for Your Workspace" und klicke auf „Install to Workspace", klicke auf der Bestätigungsseite auf „Allow"
  • Finde das xorb-... Token unter „OAuth & Permissions"

Okay, jetzt schreiben wir eine grundlegende run-Funktion. Diese Funktion wird aufgerufen, wenn der Workflow ausgelöst wird.

Schauen wir uns nun die tatsächliche Logik dieses Workflows an.

Events von morgen abrufen

Dazu müssen wir einen API-Aufruf an die Morgen API mit einem Start-/End-Bereich machen, der morgen Mitternacht bis Mitternacht des nächsten Tages erfasst.

Wenn du das ausführst und es Events in deinem ausgewählten Kalender für morgen gibt, solltest du sie unter dem Editor aufgelistet sehen, nachdem du auf „Run & Save" klickst.

Beachte, dass es eine Weile dauern könnte, bis etwas passiert – wir arbeiten daran, diesen Teil der Custom Workflows-Funktion zu verbessern.

Du solltest einen JSON-Blob sehen, der einer Liste von Events in deinem Kalender morgen entspricht.

Als Nächstes senden wir die Titel dieser Events an OpenAI, um zu sehen, was es damit anfangen kann.

ChatGPT, mach dein Ding

Lass uns unsere Events nehmen und ChatGPT bitten, sie in einem einfachen Format zusammenzufassen, indem wir diesen Code verwenden.

Jetzt, wo wir diese Zusammenfassung haben, kannst du versuchen, das auszuführen und zu sehen, dass es korrekt eine schöne, aufzählungsweise Zusammenfassung von Events für morgen protokolliert.

Natürlich kannst du das anpassen, um so ziemlich alles zu sein – zum Beispiel könntest du die Movie-Trailer-Edition wollen.

Und die Antwort ist wie gewünscht lustig:

In einer Welt voller Herausforderungen und Möglichkeiten kommt ein Team zusammen, um den Tag zu meistern. Mach dich bereit für eine epische Reise durch die Welt des Unternehmertums.

Im frühen Morgenlicht versammelt sich das Team zu ihrem packenden „Morning Standup". Erlebe die Kameradschaft und Entschlossenheit, während sie ihre Fortschritte teilen, ihre Ziele abstimmen und sich auf die bevorstehenden Kämpfe vorbereiten. Mit jedem Mitglied, das seine Fähigkeiten und Expertise unter Beweis stellt, ist es ein Schauspiel, das dich inspirieren wird.

Aber der Sieg ist nicht ohne Reflexion. Während die Sonne untergeht und die Schatten tiefer werden, befinden sich unsere Helden inmitten einer ehrfurchtgebietenden „Retrospektive". Zusammen wagen sie sich in die Vergangenheit, analysieren ihre Triumphe und Herausforderungen, um stärker denn je hervorzugehen…

Oder vielleicht ein Gedicht?

Im goldenen Licht des Morgens versammeln wir uns,
Ein Team vereint im Zweck, so scheint es,
Das Standup flüstert Geschichten neuer Aufgaben,
Teilt Fortschritt, Herausforderungen und Durchbrüche.

Mit Herzen voller Hoffnung und Augen weit offen,
Marschieren wir auf Ziele zu, keine Zeit zu verschwenden.
Eine Symphonie von Stimmen, Ideen fließen,
Während das Morning Standup unseren gemeinsamen Glanz entzündet.

Aber wenn Schatten länger werden und der Tag seinen Tribut fordert,
Versammeln wir uns erneut, um als Ganzes zu reflektieren…

Großartig. Für jeden etwas dabei mit diesen Event-Zusammenfassungen. Und natürlich wird es immer die Events des Tages widerspiegeln.

Ich überlasse es dir als Übung, diese Änderungen zu versuchen:

  • Ignoriere wiederkehrende Events
  • Schreibe einen Prompt, um den Fall zu handhaben, in dem keine Events geplant sind
  • Füge eine Beschreibung von Aufgaben hinzu, die heute und diese Woche erledigt werden müssen

Aber wie sende ich das an Slack?

Solange du deine Slack-App wie im vorherigen Abschnitt beschrieben eingerichtet hast, solltest du in der Lage sein, Nachrichten im Namen eines Bot-Benutzers zu senden, der mit dem Token, den du kopiert hast, gesteuert werden kann.

Um das zu tun, schnapp dir den Code hier.

Beachte, dass ich die Nachricht an den „@Luke"-Kanal gesendet habe – das ist die Methode, um eine direkte Nachricht über die Slack API zu senden. Du musst das in deinen Benutzernamen im Workspace ändern, in dem deine App installiert ist.

Und damit ist der Workflow abgeschlossen. Du kannst versuchen, ihn auszuführen, und erwarten, dass er zur konfigurierten Zeit im Bereich „Trigger" ausgeführt wird.

Fazit

Danke, dass du bis zum Ende meines Blogs gelesen hast – ich bin dir wirklich dankbar dafür. Wenn du mehr über Morgen Assist erfahren möchtest, findest du hier ein paar Links zum Einstieg:

  • Schau dir unser Pre-Alpha SDK zum Bereitstellen von Custom Workflows aus deiner eigenen Umgebung auf GitHub an
  • Komm und beteilige dich an der Diskussion auf Discord
About the author
Luke
Developer @ Morgen
Luke Barnard ist ein ehemaliger Software-Entwickler bei Morgen und konzentriert sich auf Tools, die die Zusammenarbeit vereinfachen. Mit einem Abschluss der University of Bath und einer Leidenschaft für sauberen, nutzerorientierten Code arbeitet Luke an Kernfunktionen und Integrationen, die die Produktivität weltweit verbessern.