Zum Hauptinhalt springen
snipKI

Eigener Personal Assistant mit KI und Make erstellen

Baue deinen eigenen Personal Assistant: Verbinde einen Custom GPT via Webhooks und Router-Filterlogik in Make mit Asana, Google Kalender, Gmail und Slack.

Kostenlos ansehen16 minProfi
Video wird geladen …

Ein Snip von Jens Polomski

Über diesen Snip

Wie praktisch wäre es, alltägliche Aufgaben wie Termine planen, To-dos organisieren und E-Mails schreiben einfach an einen persönlichen KI-Assistenten zu delegieren? In diesem Snip erfährst du Schritt für Schritt, wie du einen maßgeschneiderten Custom GPT in ChatGPT mit Automatisierungs-Workflows in Make verknüpfst.

Anhand eines durchgängigen Praxisbeispiels zeigt Jens, wie natürliche Spracheingaben über Make-Webhooks entgegengenommen, durch Router und Filterlogiken aufgespalten und an Tools wie Asana, Google Kalender, Gmail oder Slack weitergeleitet werden. Zudem lernst du, wie Webhook-Responses Daten wieder an ChatGPT zurückgeben und welche Limits wie Timeouts du beachten solltest.

Transkript nachlesen

Moin und willkommen zu einem neuen Snip. Wie schön wäre es, wenn du mit KI einen eigenen Personal Assistant hättest, der für dich Tasks aufruft bzw. erstellt, Kalendertermine plant, E-Mails verschickt und dich darüber noch informiert? Das Ganze ist vielleicht noch nicht perfekt und wer weiß, was die nächsten 5-6 Jahre mit sich bringt. Aber ich habe das Ganze schon mal in Make nachgebaut und mir quasi in ChatGPT einen eigenen Personal Assistant gebaut, der genau diese Tasks machen kann. Und das Ganze funktioniert mit ja natürlicher Sprache, theoretisch auch mit Voice-Input. Und wie ich das Ganze gebaut habe, wie die Idee dahinter war und die Struktur, das will ich dir heute einmal zeigen. Vorweg: Du benötigst dafür natürlich einen Make-Account und schon einige Grundkenntnisse in Make. Dafür haben wir aber bei snipKI noch mal eigene Videos, die noch mal auf die ersten Schritte gerade mit Make und Automation zwischen Apps eingehen. Die werden dir auf jeden Fall dabei helfen, falls du hier und da noch mal Fragen hast. Zusätzlich musst du wissen, dass jetzt hier natürlich Apps verbaut wurden, die mir persönlich Sinn machen, aber durch die vielen 100.000 Integrationen bei make.com hast du natürlich hier die Möglichkeit, das individuell für dich zu bauen. Und letzter Punkt, was noch wichtig ist: Ich schicke hier natürlich Daten, die beispielsweise meinen Kalender betreffen oder auch Asana über OpenAI und über Make. Das heißt, ich tausche hier Daten mit Drittanbietern aus. Das Ganze solltest du dir natürlich bewusst machen, wo du welche Daten hinschickst und da dein eigenes Risiko mit abwägen. Das habe ich gemacht, deswegen das ist für mich fein. Aber das muss noch mal gesagt werden, weil das natürlich hier auch noch mal Richtung Datenschutz eine Sache ist, die man einfach bedenken muss. So, genug gequatscht. Ich zeige dir jetzt mal, wie das Ganze aussieht. So ist mein GPT. Und wie der Name schon sagt, kann ich hier eigentlich mit natürlicher Sprache etwas machen. Das Ganze habe ich mal vorbereitet, weil der Prozess ja ein paar Minuten – nicht Minuten, ein paar Sekunden – dauert. Und habe hier einfach mal ein Beispiel genommen, und zwar: Hey, ich plane eine Party. Bitte erstelle 5 Asana Tasks, schicke mir die bitte per E-Mail, die Zusammenfassung noch mal per Slack und erstelle für morgen 18:00 Uhr einen Termin zum Einkaufen. Du siehst: Hier gab es mehrere ja quasi Ausführungen von den GPT Actions Richtung Make. Du siehst hier Asana als Action, der Title, die Description und noch eine Person. Dann haben wir hier weiter unten wahrscheinlich die Gmail, das heißt hier wurde an jens@example.com – das war jetzt in dem Falle das Beispiel, macht aber nichts, wie du gleich siehst – eine entsprechende E-Mail verschickt. Und hier haben wir noch den Kalendereintrag, der für morgen dann entsprechend oder für den 4.10., je nachdem wann du das Video guckst, einen Termin eingestellt hat. Ja, und das waren jetzt nicht nur hier in ChatGPT irgendwelche Aktionen, sondern das hat am Ende des Tages auch genau das ausgeführt, was ich so erwartet habe. Das heißt, wenn wir hier in Asana reinspringen, dann siehst du: Hier sind die Tasks mit entsprechenden Details dazu, Partyort, noch mal Beschreibung dazu, was da wirklich Sinn macht. Ich habe aber auch in dem Google Kalender hier unten meinen Partyeinkauf als Termin morgen um 18:00 Uhr oder am 4. besser gesagt. Das heißt, das wurde auch ausgeführt. Und ich habe auch hier eine E-Mail bekommen, noch mal mit entsprechenden Links. Den Wink Richtung Slack spare ich dir jetzt. Sieht quasi genauso aus, war einfach nur ein weiterer Channel. Und ich will jetzt mal kurz zeigen, wie das Ganze aufgebaut ist, was für eine Logik dahinter steckt, um dich dazu zu befähigen, das Ganze dann selber zu bauen. Vorweg: Wir müssen natürlich da in Make und in GPT bzw. in ChatGPT eine Aktion erstellen. Da springen wir gerade mal rein und starten auch damit, weil das, glaube ich, hier der Grundstein dafür ist. Das heißt, wir gehen mal hier in unseren GPT rein und gucken uns erstmal hier die Instructions an. Und die sind eigentlich relativ straightforward. Ich sage genau, was hier zu tun ist: Asana, du erstellst einen Task, möglichst immer detailliert; Gmail, du verschickst eine E-Mail in HTML; Kalender, du kannst einen Kalendereintrag erstellen. Und da auch ganz ganz wichtig: Nutze dafür das als Grundlage immer das heutige Datum. Überprüfe bei dir selbst, was das heutige Datum ist und arbeite mit diesem Datum. Warum habe ich so auf dem heutigen Datum rumgeritten? Weil ChatGPT hier manchmal auch das Knowledge Cutoff, also irgendwann Oktober, November – je nachdem, was da gerade so Stand der Dinge ist – von 2023 nimmt. Und dann von diesem Datum aus morgen oder übermorgen nimmt. Und das habe ich hier versucht und das klappt auch ganz gut, indem ich hier oft sage: Bedenke, wir haben hier nicht 2023, sondern 24. Das hat eigentlich dafür geholfen, damit hier nicht falsche Termine gebucht werden. Genau, und Slack ähnlich: Du schickst hier eine Nachricht, dabei sprichst du immer Jens direkt an und kann natürlich auch verschiedene Informationen sowie Emojis enthalten. Am Ende noch so ein paar grundlegende Dinge: Du bist immer freundlich, du sparst Jens möglichst viel Zeit, indem du immer mitdenkst und Dinge entsprechend anreicherst, du fragst immer nach, wenn dir noch Daten fehlen, und du gibst proaktiv Vorschläge, die Planung zu verbessern. Also hier ist mal kein Hexenwerk, was den Prompt angeht. Den Prompt hier als Aufbau kann ich auch noch mal unter das Video posten, ist aber hier natürlich sehr individuell. Was aber spannender ist, sind die Actions. Und da gehen wir mal kurz hier unten rein und gucken uns hier die Action an. Und keine Sorge, das ist jetzt hier relativ lang mit verschiedenen Aktionen. Das Ganze werde ich aber auch in die entsprechende unter das entsprechende Video posten. Und da hier auch wieder Code zustande ist, kannst du natürlich auch mit ChatGPT darüber chatten und entsprechende Dinge umändern. Aber das ist quasi hier diese Aktion, die dann mit dem Webhook, den du hier siehst, in Make kommuniziert und die Daten, wie ich gerade in ChatGPT reingegeben habe, entsprechend nach und nach an Make schickt, diese verarbeitet und zurückschickt. So, und das waren eigentlich auch schon alle Sachen, die wir in ChatGPT dafür einrichten mussten. So läuft erstmal der GPT und schickt die Daten verschieden an ja Make, um da weiterzuarbeiten. Und da springen wir mal gerade in Make rein und gucken uns den Workflow an. Und so sieht er aus. Grundsätzlich eigentlich ganz ganz simpel. Und es gibt so ein paar Punkte, die wichtig sind und zu beachten, und natürlich hier, wie vorher weggesagt: Das Ganze kannst du natürlich ganz ganz individuell bauen. Wenn du hier Daten an eine Google-Tabelle schicken willst, an ich weiß nicht, Teams, an Trello, was du vielleicht noch nutzt, an deine Buchhaltung etc., das ist natürlich dann hier ist das Limit, was du in Make als Integration hast. Und da kannst du das individuell für deinen Use Case weiterdenken. Aber ganz ganz vorne ist natürlich ganz wichtig der Webhook. Das heißt, wir haben hier einen Custom Webhook, den findest du unten über das Plus, dann suchst du Webhooks, dann hast du hier Custom Webhook. Und wenn du dann hier auf Add gegangen bist, bekommst du hier so eine URL. Und diese URL ist auch diese, wirst du vielleicht grob erkennen, die wir gerade in ChatGPT hatten. Das heißt, das kopieren wir dann und tauschen das in ChatGPT aus. Springen wir mal kurz hier rein: Hier in dem Bereich wäre dann die URL, die du von Make bekommst. Und das ist dafür da, damit GPT der GPT genau mit diesem Make-Workflow, den wir jetzt gerade bauen, arbeiten kann. Ja, und dann haben wir hier eigentlich einen Router, der das Ganze verteilt und verschiedene Aktionen mitnimmt. Das gucken wir uns gleich mal in einem kleinen Test an, damit du auch siehst, in welche Richtung das hier geht. Das heißt, wir haben hier die Aktion Asana, Google Mail, Google Kalender und Slack. Und hier wird dann entsprechender Task ausgeführt. Da gehen wir gleich noch mal als ein Beispiel rein. Und ganz ganz wichtig: Dann wird das Ergebnis als Webhook Response – auch das findest du im Webhook-Bereich hier unten – wieder zurückgeschickt. Wenn wir da reingucken, dann sehen wir hier Status-Code 200, der ist auch per Default immer eingerichtet, und dann kannst du hier entsprechend einen Wert, der aus der vorherigen Bubble – in dem Fall ist es hier der Link aus dem Asana Task – mit zurückschicken. Und dieser Webhook Response gibt quasi ChatGPT die Werte aus in dem Falle hier Asana mit zurück. Und das ist eigentlich die gesamte Logik dahinter. Das Einzige, was vielleicht für dich noch interessant ist, ist die Filterlogik. Und du siehst nämlich hier: Ich habe hier bei jedem dieser dieser Bubbles in der Mitte einen kleinen Filter. Und auch das dazu haben wir einen eigenen Snip gedreht, wo wir noch mal auf die Filter eingegangen sind und verschiedene andere Kleinigkeiten, um deine Make-Workflows ein bisschen besser zu machen. Aber hier in dem Filter hast du dann wirklich die ja die Möglichkeit hier zu sehen oder bzw. zu bestimmen, wohin die Aktion aus dem GPT geht, weil wir bekommen ja einen Wert hier aus dem Webhook, das zeige ich dir gleich auch noch mal, und der muss ja dann irgendwie in Make wissen, wohin geht. Das könnte ich theoretisch wahrscheinlich sogar mit dem GPT lösen, aber ich habe mir das Ganze über die Filterlogik gemacht, ist ein bisschen zuverlässiger. So, und wenn wir jetzt mal in GPT zurückgehen und hier mal das Ding einmal laufen lassen, so, das heißt, wir haben jetzt auf Run once geklickt und warten jetzt quasi auf den Input. Und dann gucken wir uns jetzt mal einfach ein Beispiel an. Angenommen, ich möchte jetzt hier nicht alles auf einmal machen, sondern ich möchte nur Asana Tasks erstellen. Und dann siehst du auch, wie die Filterlogik funktioniert. So, das heißt, wir gehen noch mal in unseren GPT-Assistenten rein und sagen jetzt einfach mal, starten einen neuen Chat und sagen: Erstelle einen Asana Task für – ah, was machen wir Schönes? – Staubsaugen. So, und jetzt wird auch wieder die Aktion gestartet. Der GPT fragt mich wie immer nach der Confirmation. Ich sage: Ja, das passt. Und spring mal gerade bzw. warte mal hier, was kommt. Der Asana Task zum Staubsaugen wurde erfolgreich erstellt. Hier sind die Details: Aufgabe: Wohnung gründlich staubsaugen, insbesondere Wohnzimmer, Schlafzimmer, Flur. Achte auf schwer zugängliche Bereiche und unter Möbeln. Danke, ChatGPT. Und habe dann hier den Link zum Asana Task. Aber was jetzt hier spannend ist, gerade für die Filtermöglichkeit: Wir wollen ja hier gucken, wie hat denn jetzt ChatGPT mit Make kommuniziert? Das heißt, wir klicken hier drauf und sehen dann hier: Die Aktion war Asana, Titel war Staubsaugen und die Description war dieses hier. Person war Jens, habe ich in Asana so definiert, können wir uns gleich mal anschauen. Aber du siehst hier schon die Aktion: Asana. Das ist nämlich hier gerade das Wichtige, weil danach filtern wir nämlich, weil die Aktion ist hier in ChatGPT immer gleich. Wenn ChatGPT realisiert, hm, das ist ein Asana Task, dann ist die Aktion immer Asana. Und das ist bei allen anderen Prozessen ähnlich. Und wenn wir jetzt mal in den Make-Prozess reinspringen, dann siehst du: Hier kam der Webhook an. Wir klicken hier auf die kleine Lupe und sehen hier genau das, was wir gerade auch in ChatGPT gesehen haben. Und dann sehen wir hier, ist nichts weiter gegangen außer hier oben Asana. Und wenn wir hier auf den Filter klicken, sehen wir hier: Aha, die Aktion war nämlich Asana und deswegen geht's hier nämlich weiter. Und dann wurde hier entsprechend der Asana Task erstellt und die URL als Webhook Response zurückgegeben. Und wenn wir das Ganze uns mal hier anschauen, das heißt, wir gucken uns hier mal den Filter mal an. So. Können wir hier einen Filter setzen und das kann ich gleich noch mal zeigen, wie das geht. Du kannst einfach hier auf so ein Ding Set up a filter setzen, oder rechte Maustaste, Set up a filter in jeder Verbindung. Und dann habe ich das hier mal Asana gelabelt, das kannst du aber auch definieren, wie du möchtest. Wichtig ist hier, dass du dich auf die Aktion referenzierst, die von hier – du siehst, es bewegt sich dann leicht – kommt. Das heißt, wenn hier die Aktion von ChatGPT Asana ist, dann nimmt er diesen Pfad hier und führt die Aktion aus, weil er dann die Werte von Asana bekommen hat. Das heißt, wir sagen hier: Wenn die Aktion equal to Asana ist, dann bitte weiter und auch nur dann. Und dann siehst du, dann nimmt er auch nur hier den Weg. Und das Ganze ist von der Logik her genau gleich aufgesetzt für Gmail, für Google Kalender und auch für Slack. Das heißt, wenn wir hier mal reinschauen, dann sehen wir hier: So, Set up a filter, Aktion: Slack, und nur dann geht's hier unten weiter. Und das ist eigentlich genau diese Logik dahinter. Das heißt, um das hier aufzubauen, kannst du einfach Schritt für Schritt durchgehen. Du siehst auch in den in den Aktionen beispielsweise, wie dann auch der Wert definiert ist. Wenn wir jetzt zum Beispiel mal den beim Asana-Beispiel bleiben, wir haben hier die Aktion Asana und gehen noch mal in unsere Aktion von dem GPT zurück. Also hier noch mal kurz auf Edit GPT, noch mal. Ja, so, jetzt hat's geklappt. Gehen hier auf unsere Aktion und dann suchen wir hier mal, wir sagen hier: Okay, hier ist die Summary, hier haben wir schon die Aktionen, da sehen wir schon Asana, Cal, Slack und Gmail. Das sind die Aktionen. Und wir sehen auch schon hier den Titel, den String, die Beschreibung, Description for Asana Task, Person assigned to Asana Task, Date for Calendar Event, also all diese Sachen, die quasi mitgegeben werden, wenn es denn sinnvoll ist. Aber vorweg ist quasi hier immer die Aktion Asana. Und in dem Falle, wie gesagt, nur um mal ein grobes Verständnis von dem Code auch zu geben: Die Aktion Asana beinhaltet quasi den Titel, die Description und die Person. Und danach können wir immer filtern. Wir können immer nach der Aktion in dem Falle filtern. Wenn wir weiter runterscrollen, sehen wir hier: Cal, also der Kalender, beinhaltet immer Title, Date und Time, Slack ähnlich: Message und Channel, und Gmail: To-Address und Message. Das heißt, das ist eigentlich die ganze Logik hier hinter. Und wenn du dir den Code anschaust, kannst du es eigentlich auch relativ einfach wieder replizieren und damit dann arbeiten. Und so funktioniert eigentlich genau dieser Assistent. Und damit kannst du natürlich jetzt ja sehr viel weiterspielen. Nur hier diese Logik, die ich mir jetzt gebaut habe, ist natürlich für mein Beispiel jetzt erstmal total sinnvoll, funktioniert, kann man so machen, aber die Power kommt, glaube ich, wenn du das dann wirklich individualisierst. Und da ist mein Tipp: Starte erstmal klein. Mach nicht erstmal 5, 6, 20, 7.000 verschiedene Integrationen, sondern probiere erstmal einen nach dem anderen zu gucken: Okay, was macht wirklich Sinn? Was brauchst du wirklich? Was kann in dem GPT funktionieren? Und baue dann darauf auf. Achte immer darauf, dass je komplexer aber auch dein Make-Workflow ist, umso länger er braucht, um dem GPT quasi eine Antwort zu geben, desto höher ist das Risiko, dass da auch ein Timeout stattfindet. Ich glaube, der Timeout liegt so bei 120 Sekunden. Das heißt, wenn die Kommunikation zwischen ChatGPT und Make länger dauert als 120 Sekunden, also bzw. der Make-Workflow in dem Falle, dann sagt GPT: Ich habe keine Lust mehr zu warten, und dann ist der Prozess beendet. Das heißt, immer darauf achten: Nicht zu komplex. Kommt man selten dran, je nachdem, was man vorhat. Aber das ist auch noch mal ganz wichtig zu wissen. Und damit wünsche ich dir erstmal viel Spaß beim Aufsetzen, beim Ausprobieren und halt auch für dich definitiv individualisieren, weil da kommt dann die Musik rein. Und dann sehen wir uns einfach beim nächsten Snip, würde ich sagen. Ciao.

Vom Anschauen zum Anwenden

Was möchtest du aus diesem Snip in deinem Arbeitsalltag ausprobieren? Wähle eine konkrete Aufgabe und überlege, wie du das Ergebnis überprüfen kannst.