Ręczne monitorowanie tabel z fakturami oraz manualna wysyłka przypomnień o zaległych płatnościach to jeden z najdroższych ukrytych kosztów operacyjnych w małych i średnich przedsiębiorstwach (MŚP). Praca ta, z punktu widzenia strategii B2B, jest całkowicie odtwórcza. Rozwiązaniem tej asymetrii jest wdrożenie narzędzia Google Apps Script — lekkiego środowiska deweloperskiego ukrytego w architekturze Google Workspace. Pozwala ono zamienić standardowe Arkusze Google w autonomiczny system windykacyjny, działający w stu procentach bez opłat instalacyjnych i licencyjnych (SaaS).

Time-Driven Triggers: Automatyzacja Procesów Księgowych

Hurtownia wpisów oparta o środowisko chmurowe Google Sheets umożliwia uruchomienie skryptu asynchronicznego wybudzanego harmonogramem (np. o 08:00 rano). Mechanizm ten, znany w inżynierii pod nazwą Cron Job lub Time-Driven Trigger, powoduje, że serwery Google Cloud wywołują kod w tle. Program samodzielnie przechodzi przez każdą encję (wiersz) faktury i identyfikuje podmioty zalegające po terminie płatności.

Oto uproszczony schemat logiki decyzyjnej robota finansowego:

  1. Pobranie pełnej macierzy zadłużenia do pamięci procesora za pomocą funkcji .getValues().
  2. Weryfikacja różnicy między dzisiejszą datą a komórką "Termin Płatności" dla zachowania standardów finansowych.
  3. Wygenerowanie wysoce spersonalizowanego komunikatu tekstowego na bazie zmiennych (np. nazwy firmy, numeru proformy).
  4. Wysłanie powiadomienia e-mail poprzez chronione certyfikatami i SPF API Gmail'a (unikając wpadania w algorytmy SPAM-u) oraz zabezpieczenie wiersza flagą: [PRZYPOMNIENIE WYSŁANE] zapobiegającą pętli powiadomień.

Skrypt API windykacyjny (Do wklejenia)

Poniżej przedstawiamy kod w standardzie JavaScript do zagnieżdżenia w konsoli deweloperskiej Twojego arkusza (Rozszerzenia -> Apps Script):

function sendPaymentReminders() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Faktury");
  const data = sheet.getDataRange().getValues();
  const dzisiaj = new Date().getTime(); // dzisiejszy czas w milisekundach

  for (let i = 1; i < data.length; i++) { // pomin naglowek
    let dane = data[i];
    let termin = new Date(dane[3]).getTime(); // 4-ta kolumna = Data
    let klientEmail = dane[2];
    let status = dane[5]; // Szampan lub problem?

    // Jesli termin minal (mniejszy), a klient dalej nie opłacił faktury
    if (termin < dzisiaj && status === "BRAK WPŁATY") {
        let temat = "Uprzejme przypomnienie o zaległej fakturze " + dane[0];
        let cialo = "Dzień dobry. Zauważyliśmy brak zaksięgowanego przelewu dla faktury " + dane[0];
        
        MailApp.sendEmail(klientEmail, temat, cialo);
        // Oznacz zeby nie wyslac jutro uzytkownikowi 2 raz
        sheet.getRange(i + 1, 6).setValue("Brak Wpłaty (Przypomniano)");
    }
  }
}

Bezpieczeństwo skrzynki i blokady antyspamowe

Choć brzmi to rewelacyjnie, w budowie profesjonalnych systemów trzeba przestrzegać rygorystycznych limitów od gigantów technologicznych. Darmowe skrzynki (np. z domeny @gmail.com) pozwalają wysłać zaledwie ~100 automatycznych maili z użyciem Apps Scriptu na dobę. Płatne instalacje firmowe w systemie Google Workspace B2B rozbudowują ten limit z automatu do potężnych 1500 wiadomości!

Przemyślane zarządzanie flagami i statusem, np. zapis o tym "kiedy wysłano mail", to krytyczny element chroniący Cię przed niefortunnym zablokowaniem całego serwera pocztowego Twojej firmy z powodu przypadkowej pętli spamującej ten sam adres co sekundę.