Cotygodniowy raport dla zarządu. Dwie godziny każdego piątku. Kopiowanie danych z trzech źródeł, ręczne sumowanie, formatowanie tabel, eksport do PDF, wysyłka do dziesięciu osób. I tak co tydzień, od lat.
A gdyby agent AI zrobił to w trzy minuty?
- Problem: ręczne raportowanie
- Co potrafi gws-sheets?
- Praktyczne scenariusze automatyzacji
- Gotowe przepisy do użycia
- Sheets + inne serwisy
- Praktyczne porady
Problem: ręczne raportowanie
W większości firm raportowanie wygląda podobnie. Ktoś (często najdroższy pracownik) spędza godziny na:
- Zbieraniu danych z różnych systemów
- Kopiowaniu do arkusza
- Liczeniu sum, średnich, porównań
- Tworzeniu wykresów
- Formatowaniu, żeby wyglądało profesjonalnie
- Eksportowaniu do PDF
- Wysyłaniu do odbiorców
Statystyka: Badania Deloitte pokazują, że pracownicy finansów spędzają średnio 40% czasu na zbieraniu i przetwarzaniu danych, a tylko 15% na faktycznej analizie. Agent AI może odwrócić te proporcje.
I tak co tydzień. Co miesiąc. Co kwartał. Te same czynności, za każdym razem od nowa.
Agent AI nie myśli strategicznie o Twoim biznesie. Ale doskonale radzi sobie z powtarzalnymi czynnościami – pobierz, przelicz, sformatuj, wyślij.
Co potrafi gws-sheets?
Google Workspace CLI oferuje pełen dostęp do Sheets API.
| Komenda | Opis | Przykład użycia |
| gws sheets values get | Odczyt zakresu | Pobieranie danych |
| gws sheets-append | Dopisanie wierszy | Rejestrowanie, śledzenie |
| gws sheets values update | Aktualizacja zakresu | Modyfikacja danych |
| gws sheets values batchGet | Odczyt wielu zakresów | Zbieranie z różnych arkuszy |
| gws sheets values batchUpdate | Zbiorcza aktualizacja | Wypełnianie wielu komórek |
Odczyt danych
gws sheets spreadsheets values get \
--params '{"spreadsheetId": "SHEET_ID", "range": "Sprzedaż!A1:E100"}'Agent zwraca dane jako JSON – idealny format do dalszego przetwarzania, agregacji, analizy.
Dopisywanie wierszy
gws sheets-append \
--spreadsheet-id "SHEET_ID" \
--range "Log!A1" \
--values '[["2026-03-05", "Nowy deal", "50000", "W trakcie"]]'Idealne do rejestrowania – każda nowa transakcja, wydatek, kontakt automatycznie ląduje w arkuszu.
Operacje zbiorcze
Dla dużych operacji – aktualizacja setek komórek jednym żądaniem:
gws sheets spreadsheets values batchUpdate \
--params '{"spreadsheetId": "SHEET_ID"}' \
--json '{
"valueInputOption": "USER_ENTERED",
"data": [
{"range": "Raport!A1", "values": [["Tytuł raportu"]]},
{"range": "Raport!A3:D3", "values": [["Q1", "Q2", "Q3", "Q4"]]},
{"range": "Raport!A4:D4", "values": [[100, 150, 180, 200]]}
]
}'Praktyczne scenariusze automatyzacji
| Scenariusz | Oszczędność | Złożoność |
| Automatyczny raport | 2-4h/tydzień | Średnia |
| Śledzenie transakcji | 30 min/dzień | Niska |
| Rejestr wydatków | 1-2h/tydzień | Niska |
| Spersonalizowana wysyłka | 2-4h/kampania | Średnia |
| Panel KPI | Setup: 4h, potem auto | Wysoka |
Automatyczny raport tygodniowy
Zamiast ręcznego tworzenia, agent:
- Pobiera dane z arkusza źródłowego (lub kilku)
- Agreguje – sumy, średnie, porównania z poprzednim okresem
- Wypełnia szablon raportu
- Generuje podsumowanie tekstowe
- Wysyła do odbiorców
„Każdego piątku o 8:00 wygeneruj raport tygodniowy ze Sprzedaży i wyślij do zespołu zarządu."
Agent uruchamia się automatycznie (przez harmonogram w OpenClaw), wykonuje scenariusz, i zanim przyjdziesz do biura – raport jest w skrzynkach.
Śledzenie transakcji / lekki CRM
Nie każda firma potrzebuje rozbudowanego CRM. Często wystarcza dobrze zorganizowany arkusz:
| Data | Klient | Wartość | Status | Ostatni kontakt |
|------|--------|---------|--------|-----------------|
| 2026-03-05 | Firma X | 50000 | Negocjacje | 2026-03-04 |Agent może automatycznie:
- Dopisywać nowe kontakty z wiadomości
- Aktualizować status na podstawie konwersacji
- Przypominać o kontynuacji rozmów
Wskazówka: Połącz śledzenie w Sheets z automatyzacją Gmail. Agent przeczyta wiadomości od klientów i sam zaktualizuje status w arkuszu.
Gotowe przepisy do użycia
| Przepis | Co robi | Kiedy użyć |
| recipe-create-expense-tracker | Tworzy arkusz wydatków | Nowy rejestr |
| recipe-copy-sheet-for-new-month | Kopiuje szablon na nowy miesiąc | Cykliczne raporty |
| recipe-send-personalized-emails | Spersonalizowana wysyłka z Sheets | Kampanie mailingowe |
| recipe-log-deal-update | Rejestruje aktualizację transakcji | Śledzenie CRM |
| recipe-generate-report-from-sheet | Generuje raport z danych | Automatyzacja raportów |
Spersonalizowana wysyłka – wiadomości na skalę
Masz listę 500 klientów w arkuszu. Chcesz wysłać każdemu spersonalizowaną wiadomość z jego imieniem, nazwą firmy i dedykowaną ofertą.
Przepis recipe-send-personalized-emails:
- Odczytuje arkusz z danymi klientów
- Dla każdego wiersza podstawia dane do szablonu wiadomości
- Wysyła przez Gmail (lub tworzy szkice do przeglądu)
- Rejestruje status wysyłki w arkuszu
gws recipe-send-personalized-emails \
--spreadsheet-id "SHEET_ID" \
--range "Klienci!A2:E500" \
--template "Dzień dobry {imię}, przygotowaliśmy dla {firma} ofertę..."500 spersonalizowanych wiadomości w minutę. Bez kopiowania, bez błędów.
Sheets + inne serwisy
Sheets → Docs
Agent może wygenerować raport tekstowy w Google Docs na podstawie danych z Sheets:
„Utwórz dokument z podsumowaniem Q1 na podstawie danych z arkusza Sprzedaż."
Tabele, wykresy, komentarze – wszystko automatycznie.
Sheets → Gmail
Jak wyżej – spersonalizowana wysyłka. Ale też:
- Powiadomienia gdy wartość przekroczy próg
- Alerty o brakujących danych
- Cotygodniowe podsumowania
Sheets → Calendar
Import wydarzeń z arkusza do kalendarza. Przepis recipe-create-events-from-sheet pokazany w artykule o Calendar.
Połączenie scenariuszy: Dane sprzedażowe → raport w Docs → wysyłka mailem → wydarzenie w kalendarzu z kontynuacją. Jedno polecenie, cztery serwisy.
Praktyczne porady
Znaki specjalne w powłoce
Zakresy w Sheets używają wykrzyknika (np. Sheet1!A1:B10), który ma specjalne znaczenie w powłoce. Zawsze używaj pojedynczych cudzysłowów:
# Dobrze
gws sheets values get --params '{"range": "Sheet1!A1:B10"}'
# Źle – wykrzyknik zostanie zinterpretowany
gws sheets values get --params "{"range": "Sheet1!A1:B10"}"Paginacja dużych arkuszy
Dla arkuszy z tysiącami wierszy używaj paginacji:
gws sheets spreadsheets values get \
--params '{"spreadsheetId": "ID", "range": "Data!A1:Z1000"}' \
--page-allAgent dostanie strumień NDJSON – każda strona jako osobny obiekt.
Optymalizacja żądań zbiorczych
Zamiast 100 osobnych żądań, jedno zbiorcze:
# Źle: 100 żądań
for i in {1..100}; do gws sheets values update ...; done
# Dobrze: 1 żądanie
gws sheets spreadsheets values batchUpdate --json '{...100 zmian...}'Google ma limity API – żądania zbiorcze są nie tylko szybsze, ale też bezpieczniejsze pod kątem limitów.
| Zakres | Uprawnienia | Użycie |
| spreadsheets.readonly | Tylko odczyt | Pobieranie danych |
| spreadsheets | Pełny dostęp | Odczyt + zapis + tworzenie |