Zewnętrzne narzędzia typu Zapier czy Make.com niesamowicie ułatwiają modelowanie danych – niestety tak długo, aż firma nie przekroczy miesięcznego limitu wywołań (często liczonego np. w paru tysiącach tasków / webhooków). Zablokowani abonamentami rocznymi po 100$ / miesiąc, menedżerowie B2B często szukają "lekkostrawnego" kodu, by zastąpić proste zaciągnięcia CRM wewnątrz zwykłej komórki z własnego darmowego serwera arkusza.

Klasa UrlFetchApp to potężna ukryta broń analityka

GCP (Google Cloud Platform) oferuje darmowy mechanizm "UrlFetchApp" wewnątrz edytora Apps Script każdej zakładki Arkusza Google. Dzięki niej Twój arkusz może zadziałać jak przeglądarka internetowa – połączy się z dowolnym zabezpieczonym systemem CRM lub platformą dostawy przesyłek, pobierze surową tablicę JSON i zaleje nią komórki byś mógł je potem wyrzucić do Looker Studio.

Przykład: Codzienne pobieranie Kursów Walut z NBP (REST API)

W poniższym krótkim kodzie udowadniam, jak zasilić swoje wyceny B2B oficjalnym kursem Euro NPB, wyciągając tablicę kursów pod kluczem `.rates` przy ominięciu płatnych wtyczek:

function pobierzKursNBP() {
  const url = "https://api.nbp.pl/api/exchangerates/rates/A/EUR/?format=json";
  
  // Wysyłamy zapytanie GET w ułamku sekundy
  const odpowiedz = UrlFetchApp.fetch(url, { "muteHttpExceptions": true });
  
  // Przekuwamy surowy tekst na słownik (Obiekt JSON)
  const json = JSON.parse(odpowiedz.getContentText());
  
  // Nawigujemy wewnątrz struktury JSON po Kurs i Date
  const aktualnyKurs = json.rates[0].mid;
  const dataPublikacji = json.rates[0].effectiveDate;
  
  // Wbijamy informacje na sztywno do komórek
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Pulpit Wycen");
  sheet.getRange("A2").setValue(dataPublikacji);
  sheet.getRange("B2").setValue(aktualnyKurs);
  
  Logger.log("Pomyślnie odświeżono cennik z dnia: " + dataPublikacji);
}

Zarządzanie uwierzytelnieniem (Headers / Bearer Tokens)

A co jeśli API jest płatne i chronione? Żaden problem. Używając funkcji fetch możesz przekazać drugi opcjonalny argument zwany options, wewnątrz którego bez trudu zagnieździsz klucze prywatne Authorization: Bearer , które wygenerował dla Ciebie dostawca SaaS. Wymaga to pewnej znajomości bibliotek zapytań HTTP (Postman/cURL), jednak po zmapowaniu obiektów z JSON.parse() zyskujemy bezkresne pole do zasilania komórek tabel. Brak pośredników to szybsza akcja arkusza i brak powszechnie krzepnących przestojów (np. 15-minutowy timer w platformie darmowych węzłów typu Make).

Czytaj: Pobieranie danych z dowolnego API do Arkuszy

Zobacz pokrewny materiał jak za pomocą kodu Apps Script łączyć się z zewnętrznymi API.