Inside Develpmnt15. April 2025·8 Min. Lesezeit

Prozessautomatisierung mit Chatbots in Google Workspace

Prozessautomatisierung mit Chatbots in Google Workspace

Unsere Motivation: Bye Bye, Zettelwirtschaft!

Wir suchten nach einer unkomplizierten Lösung, die es Mitarbeitern ermöglicht, Urlaubsanträge digital einzureichen – mit automatischer Genehmigung, Ablehnung und Kalenderverwaltung innerhalb unseres Google Workspace Intranets. Anstatt in teure Software zu investieren, entwickelten wir unseren eigenen Chatbot.

Mit Google Apps Script lassen sich leistungsstarke Automatisierungen erstellen – komplett kostenlos und direkt in Google Workspace integriert.

Der komplette Workflow sieht folgendermaßen aus:

  • Mitarbeiter reicht Urlaubsantrag per Slash-Befehl im Chat ein
  • Vorgesetzter erhält automatisch eine E-Mail mit Genehmigungs-Buttons
  • Bei Klick auf "Genehmigen" wird der Urlaub im Teamkalender eingetragen
  • Alle Anträge werden in einem Google Sheet dokumentiert
  • Der Mitarbeiter erhält eine Bestätigung im Chat

Vorteile von Chat-Bots & Google Apps Script

Intelligente Interaktion: Mehr als nur Text

Nutzer können über einfache Slash-Befehle spezifische Aktionen auslösen. Interaktive Dialogfenster ersetzen E-Mail-Ketten, indem sie gezielt Informationen abfragen.

Nahtlose Integration – Dein Bot als Brücke zu Google Workspace

Unsere Mitarbeiter haben unseren Firmenchat (Google Chat) die meiste Zeit geöffnet. Sie müssen nicht zwischen Tools wechseln. Alle Benachrichtigungen, Auswertungen und Kalendereinträge bleiben in der vertrauten Umgebung.

Automatisierte Workflows – Der Bot als Prozess-Manager

Trigger und Aktionen lassen sich einfach verknüpfen. Der Urlaubsantrag startet eine Sequenz: Speicherung in Sheets, Manager-Benachrichtigung, Genehmigungslink, Statusupdates, Kalendereintrag und Mitarbeiter-Benachrichtigung – alles ohne manuelles Kopieren oder Nachfassen.

Technische Umsetzung

1. Projekt anlegen & Bot einrichten

Zunächst muss ein neues Projekt in der Google Cloud Console erstellt und die Google Chat API aktiviert werden. Der Bot benötigt folgende Konfiguration:

  • Name und Profilbild für den Bot
  • Beschreibung der Funktionalität
  • Definition der Slash-Befehle

Wir haben drei Befehle definiert:

/help       → Zeigt alle verfügbaren Befehle
/einreichen → Öffnet das Formular für einen neuen Urlaubsantrag
/uebersicht → Listet alle eigenen Anträge auf

2. Bot-Logik mit Google Apps Script

Das Herzstück des Bots ist ein Google Apps Script. Die onMessage()-Funktion reagiert auf eingehende Befehle und gibt entsprechende Card-Widgets zurück:

Code.gs
function onMessage(event) {
  const message = event.message.text;

  if (message.includes('/help')) {
    return createHelpCard();
  }

  if (message.includes('/einreichen')) {
    return createVacationDialog();
  }

  if (message.includes('/uebersicht')) {
    return getMyRequests(event.user.email);
  }

  return { text: 'Unbekannter Befehl. Nutze /help für eine Übersicht.' };
}

3. Interaktive Dialoge erstellen

Der /einreichen-Befehl öffnet ein Dialogfenster mit Formularfeldern für Startdatum, Enddatum und optionalen Kommentar:

Dialog.gs
function createVacationDialog() {
  return {
    action_response: {
      type: 'DIALOG',
      dialog_action: {
        dialog: {
          body: {
            sections: [{
              widgets: [
                {
                  dateTimePicker: {
                    name: 'startDate',
                    label: 'Startdatum',
                    type: 'DATE_ONLY'
                  }
                },
                {
                  dateTimePicker: {
                    name: 'endDate',
                    label: 'Enddatum',
                    type: 'DATE_ONLY'
                  }
                },
                {
                  textInput: {
                    name: 'comment',
                    label: 'Kommentar (optional)'
                  }
                }
              ]
            }]
          }
        }
      }
    }
  };
}

4. E-Mail-Benachrichtigung an Vorgesetzte

Nach Absenden des Formulars wird automatisch eine HTML-formatierte E-Mail an die Personalverantwortlichen gesendet:

Mail.gs
function sendApprovalEmail(request) {
  const approveUrl = getWebAppUrl() + '?action=approve&id=' + request.id;
  const rejectUrl = getWebAppUrl() + '?action=reject&id=' + request.id;

  const htmlBody = `
    <h2>Neuer Urlaubsantrag</h2>
    <p><strong>Mitarbeiter:</strong> ${request.employeeName}</p>
    <p><strong>Zeitraum:</strong> ${request.startDate} bis ${request.endDate}</p>
    <p><strong>Kommentar:</strong> ${request.comment || '-'}</p>
    <br>
    <a href="${approveUrl}" style="background: #22c55e; color: white;
       padding: 12px 24px; text-decoration: none; border-radius: 6px;">
      ✓ Genehmigen
    </a>
    &nbsp;&nbsp;
    <a href="${rejectUrl}" style="background: #ef4444; color: white;
       padding: 12px 24px; text-decoration: none; border-radius: 6px;">
      ✗ Ablehnen
    </a>
  `;

  GmailApp.sendEmail(
    MANAGER_EMAIL,
    'Urlaubsantrag: ' + request.employeeName,
    '',
    { htmlBody: htmlBody }
  );
}

Genehmigung per Klick

Wenn der Vorgesetzte auf einen Button in der E-Mail klickt, wird die doGet()-Funktion aufgerufen:

WebApp.gs
function doGet(e) {
  const action = e.parameter.action;
  const requestId = e.parameter.id;

  if (action === 'approve') {
    // Urlaubseintrag im Kalender erstellen
    createCalendarEvent(requestId);

    // Status in Google Sheet aktualisieren
    updateRequestStatus(requestId, 'Genehmigt');

    // Mitarbeiter benachrichtigen
    notifyEmployee(requestId, true);

    return HtmlService.createHtmlOutput(
      '<h1 style="color: #22c55e;">✓ Urlaub genehmigt!</h1>'
    );
  }

  if (action === 'reject') {
    updateRequestStatus(requestId, 'Abgelehnt');
    notifyEmployee(requestId, false);

    return HtmlService.createHtmlOutput(
      '<h1 style="color: #ef4444;">✗ Urlaub abgelehnt</h1>'
    );
  }
}
💡Alle Urlaubsanträge werden automatisch in einem Google Sheet gespeichert – perfekt für Auswertungen und Nachverfolgung.

Verwendete Google APIs

  • Google Chat API – Für Bot-Interaktionen und Slash-Befehle
  • Gmail API – Für HTML-formatierte Benachrichtigungs-E-Mails
  • Calendar API – Für automatische Kalendereinträge
  • Spreadsheet API – Für die Dokumentation aller Anträge

Fazit

Die Implementierung war mit Google Apps Script erstaunlich einfach. Nach dem Deployment als Web-App war der Bot sofort einsatzbereit. Unsere Mitarbeiter haben ihn begeistert angenommen – kein Papier mehr, keine E-Mail-Ketten, alles läuft automatisch.

Wir planen bereits weitere Chatbots für andere Prozesse: Krankmeldungen, Reisekostenabrechnungen und Meeting-Buchungen. Die Möglichkeiten mit Google Workspace sind nahezu unbegrenzt.

Interesse an einem eigenen Chatbot für Ihr Unternehmen? Wir helfen gerne bei der Konzeption und Umsetzung!