Wdrożenie CRM w firmie B2B bardzo rzadko musi wiązać się z rachunkiem licencyjnym za Salesforce czy HubSpot. Dla zespołów do 15 osób Google Sheets + Apps Script to rozwiązanie, które obsłuży pipeline sprzedaży, automatyczne follow-upy i audit trail – za $0/miesiąc.

Struktura arkusza CRM: co i gdzie

Zanim zaczniesz pisać skrypty, potrzebujesz poprawnie zaprojektowanej struktury. Minimalna architektura Sheets CRM to trzy zakładki:

Zakładka Zawartość Kluczowe kolumny
Leady CRM Aktywne szanse sprzedaży Firma, Email, Status, Handlowiec, Wartość, Ostatnia aktywność, Wyślij follow-up (checkbox)
Historia Audit trail zmian statusów Data zmiany, Kto zmienił, Stary status, Nowy status, Lead ID
Konfiguracja Parametry skryptów Lista handlowców, Emaile powiadomień, Szablon follow-up

Statusy w kolumnie „Status” powinny być listą walidowaną (Dane → Walidacja danych → Lista elementów): Nowy lead → Kontakt nawiązany → Oferta wysłana → Negocjacje → Zamknięty (Wygrana) → Zamknięty (Przegrana). Apps Script będzie reagował na zmianę konkretnej wartości w tej kolumnie.

Problem natywnych Arkuszy bez skryptów

Gdy zespół sprzedaży liczy 5 osób i wszystkie edytują jeden plik jednocześnie – przypadkowe nadpisanie komórki z kluczowym mailem to kwestia czasu. Brak historii zmian, brak blokady przydzielonych leadów, brak automatycznych przypomnień. To wymusza zakup licencji CRM.

Tutaj wkracza Google Apps Script (GAS) – środowisko JavaScript działające serwerowo, powiązane z Twoim kontem Google, reagujące na zdarzenia w arkuszu. Uruchamiane przez Googla, nie przez Twój komputer – działa 24/7 nawet gdy laptop jest zamknięty.

3 fazy automatyzacji CRM

  • Automatyczny Lock: Gdy lead zostaje przydzielony handlowcowi (kolumna „Handlowiec” uzupełniona), skrypt blokuje wiersz przed edycją przez inne osoby. Koniec z „podebraniem bazy”.
  • Trigger OnEdit: Zmiana statusu na „Oferta wysłana” automatycznie: zapisuje timestamp w „Ostatnia aktywność”, dodaje wpis do zakładki Historia, opcjonalnie wysyła powiadomienie mailowe do managera.
  • Automatyczny Follow-Up: Checkbox w kolumnie 6 → Apps Script wysyła spersonalizowany e-mail przez MailApp bez otwierania Gmaila. Handlowiec klika jedno pole, klient dostaje e-mail w 2 sekundy.

Kod: automatyczny e-mail po zmianie statusu

Funkcja poniżej reaguje na zaznaczenie checkboxa w kolumnie 6 (Wyślij follow-up) i wysyła spersonalizowany e-mail do klienta:

function onEdit(e) {
  const sheet = e.source.getActiveSheet();
  const range = e.range;

  if (sheet.getName() === “Leady CRM” && range.getColumn() === 6 && e.value === “TRUE”) {
    const row = range.getRow();
    const email = sheet.getRange(row, 2).getValue();
    const fname = sheet.getRange(row, 1).getValue();
    const status = sheet.getRange(row, 4).getValue();

    MailApp.sendEmail({
      to: email,
      subject: “Podsumowanie naszej rozmowy – “ + fname,
      body: `Dzień dobry ${fname},\n\nDziękuję za rozmowę. Status Twojego projektu: ${status}.\nSkontaktuję się ponownie w ciągu 48h.\n\nPozdrawiam`
    });

    // Timestamp wysłania
    sheet.getRange(row, 7).setValue(“Wysłano: “ + new Date().toLocaleString(“pl-PL”));
    // Odznacz checkbox żeby nie wysyłać duplikatów
    range.setValue(false);
  }
}

Kiedy Sheets CRM przestaje wystarczać?

Sheets CRM ma konkretne ograniczenia. Warto je znać przed wdrożeniem:

Sytuacja Sheets CRM wystarczy?
Zespół 1–10 handlowców, <500 leadów miesięcznie Tak – idealne rozwiązanie
Integracja z własnym systemem ERP przez API Częściowo (Apps Script może wywołać REST API)
Zaawansowane raportowanie sprzedaży (pipeline, forecast) Tylko z Data Studio jako warstwa wizualizacji
Zespół 15+ handlowców, >1000 leadów miesięcznie Nie – czas na HubSpot lub Pipedrive
Ścisłe wymagania RODO (dane klientów zewnętrznych) Tylko z odpowiednią konfiguracją IAM i RLS
Apps Script zamienia Sheets w aplikację backendową – za $0 miesięcznie. Gdy pipeline sprzedaży przekracza 1000 leadów lub wymagania RODO stają się skomplikowane, rozważ migrację do dedykowanego CRM. Do tego momentu Sheets CRM + Apps Script to niezastąpione narzędzie dla rosnącego MŚP.