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:
- Pobranie pełnej macierzy zadłużenia do pamięci procesora za pomocą funkcji
.getValues(). - Weryfikacja różnicy między dzisiejszą datą a komórką "Termin Płatności" dla zachowania standardów finansowych.
- Wygenerowanie wysoce spersonalizowanego komunikatu tekstowego na bazie zmiennych (np. nazwy firmy, numeru proformy).
- 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ę.