Webotvůrci

Sběr dat do Google Sheets

Upraveno: 15. 6. 2025
Délka čtení: 3 min

Potřebujete data z Kontaktních formulářů schraňovat i mimo emailové schránky a doplněk, provádět nad nimi analýzy či další akce? Máme pro vás dva návody, jak data dostat za použití webhooku do Google tabulky, kde s nimi můžete dále pracovat.

V prvním návodu si ukážeme, jak vytvořit jednoduchou automatizaci v MAKE a ve druhém použijeme Google Apps Script, kde je potřeba trochu programování.

MAKE

Make (dříve Integromat) je služba, ve které můžete bez složitého programování připravovat automatizace, které vám ušetří čas a manuální práci. Import dat do Google Tabulek je jedním z nejjednoduších příkladů, jak se dá MAKE využít. Mimo to je možné přes MAKE vytvářet scénáře, díky kterým svůj formulář propojíte s řadou služeb jako jsou například Raynet, Ecomail, Freelo, Sharepoint, Dropbox, OneDrive, Google produkty a mnoho dalších. Základní tarif je zdarma, takže pokud nemáte v plánu velké automatizace o velkých objemech a počtech scénářů, vystačíte si s ním.

Ujistěte se, že váš formulář z Kontaktních formulářů je funkční a přijímá data vyplněná na eshopu. Následně se pusťte do budování automatizace.

Pro import dat do přes webhook skrze MAKE si vytvořte nový scénář, kam dáte pouze dvě položky a to Webhook (vlastní webhook) a Google Sheets (Add a Row). Následujte náš návod, je to snadné.

Pro základní nastavení odesílání webhooku se prosím podívejte na náš návod Odesílání webhooku.

Jakmile máte vytvořený webhook a máte jej vložený do administrace v Kontaktních formulářích (pozor, nezapomeňte zkontrolovat, že v doplňku jste zaškrtli možnost Odeslat v sekce Webhook u daného formuláře) a máte stále otevřený modul Webhook, webhook v MAKE již poslouchá data, která do něj přicházejí, aby mohl zjistit strukturu dat. Pokud jste náhodou nastavení webhooku zavřeli, stačí jej znovu otevřít a kliknout na Redetermine data structure a poslech znovu zapnout.

Když poslech běží, jděte na webovou stránku, kde máte nasazený formulář a kompletně jej vyplňte a odešlete jej. Následně se vraťte do MAKE a zkontrolujte, že data v pořádku dorazila (obvykle to trvá několik sekund):

Klikněte na Uložit. Poté klikněte na plus u modelu Webhooky a najděte Google Sheets a vyberte Add a Row.

Ve vytvořeném modulu je následně potřeba vytvořit spojení s vaším Google účtem, aby měl Make přístup do vašeho Google Disku. Po přihlášení vyberte Search Method „Search by path“, vyberte Drive, ve které se cílový soubor nachází (pokud jej nemáte ještě vytvořený, teď je ten správný čas), ve Spreadsheet ID vyhledejte váš soubor (buď podle názvu nebo se můžete k němu proklikat přes složky) a v Table contains header vyberte, zda tabulka má nebo nemá záhlaví. Uložte.

Následně jednorázovně spusťte scénář a vyplňte u sebe na webu formulář.

Po odeslání formuláře data automaticky dorazí do Make a můžete zkontrolovat, jaká data přišla a jakou mají strukturu. Já měla jednoduchý formulář s jedním Textovým vstupem.

Následně si otevřete modul s Google sheets a nastavte si, kam chcete, aby se data zapisovala. Stačí kliknout ve Values do řádku pro příslušný sloupec, vybrat pole, které se má do daného sloupce zapisovat a následně uložit.

Když máte všechna potřebná pole přirazena do správných sloupců, spusťte scénář, aby automaticky za vás pracoval a pro jistotu ještě jednou odesláním formulářem zkontrolujte, že vše funguje, jak má.

Podobně můžete svůj formulář propojit i s Excel tabulkou přes One Drive. Stačí použít modul Microsoft 365 Excel (Add a Worksheet Row).

Integrace přes Google Apps script

V tomto návodu si vytvoříme webovou aplikaci, která bude naše data přijímat stejně jako v přechozím příkladu a všechna data z JSON souboru, který přijde propíše do tabulky.

Vytvořte si Google Tabulku na Google Disku. Ve své jse, list pro sběr dat nazvala Data.

Následně v tabulce vyberte z horního menu Rozšíření – Apps Script. Otevře se vám editor skriptů.

V editoru smažte všechen výchozí obsah a vložte tento kód:

/**
 * Jméno listu s daty – můžeš přepsat, pokud se váš list jmenuje jinak.
 */
const SHEET_NAME = 'Data';

function doPost(e) { return handleWebhook(e, 'POST'); }
function doGet(e)  { return handleWebhook(e, 'GET');  }

function handleWebhook(e, method) {

  const ss    = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = ss.getSheetByName(SHEET_NAME) || ss.insertSheet(SHEET_NAME);

  const params   = Object.keys(e.parameter).length ? e.parameter
                  : e.postData   && e.postData.contents ? JSON.parse(e.postData.contents)
                  : {};


  const headerRange = sheet.getRange(1, 1, 1, Math.max(sheet.getLastColumn(), 1));
  let   headers     = headerRange.getValues()[0];


  if (headers[0] !== 'Čas') {
    sheet.insertColumnBefore(1);
    sheet.getRange(1, 1).setValue('Čas');
    headers.unshift('Čas');
  }

  for (const key of Object.keys(params)) {
    if (headers.indexOf(key) === -1) {
      sheet.getRange(1, headers.length + 1).setValue(key);
      headers.push(key);
    }
  }

  const row = Array(headers.length).fill('');
  row[headers.indexOf('Čas')] = new Date(); 

  for (const [key, value] of Object.entries(params)) {
    const colIndex = headers.indexOf(key);
    if (colIndex !== -1) row[colIndex] = value;
  }

  sheet.appendRow(row);

  return ContentService
         .createTextOutput('OK')
         .setMimeType(ContentService.MimeType.TEXT);
}

a klikněte na Uložit.

Následně klikněte na Implementovat a Nová implementace.

V okně, které se vám otevře, klikněte na ozubené kolo vedle Vyberte typ a vyberte Webová aplikace.

Vyplňte:

  • Popis: třeba „Webhook pro kontaktní formuláře“.
  • Provést jako: váš účet (doporučeno).
  • Kdo má přístup: Kdokoli (nebo Kdokoli s odkazem).

Klikněte na Implementovat. Google vás vyzve k autorizaci – potvrďte všechny kroky.

Zobrazí se Adresa URL webové aplikace – tu si zkopírujte.

Propojení s doplňkem Kontaktní formuláře

  1. V administraci e-shopu otevřete doplněk Kontaktní formuláře.
  2. U vybraného formuláře vložte zkopírovanou URL do sekce Webhook.
  3. Zaškrtněte Odeslat a nastavení uložte.

Teď integraci otestujte. Vyplňte a odešlete formulář na e-shopu.

Otevřete list Data – měla by se přidat nová řádka se všemi poli + časem.

Pokud chcete zapisovat jen některá data, upravte kód a přidejte filtr na povolené klíče. Nezapomeňte po změně kód znovu nasadit nebo aktualizovat existující implementaci – případně upravte URL v doplňku, pokud došlo ke změně.

Pomohl Vám tento článek?
Dislike 0 0 z 0 shledali tento návod přínosný.