Integracje

Wysyłaj odpowiedzi z formularza do Arkuszy Google

YeetForm nie ma dziś natywnej synchronizacji z Arkuszami Google, ale możesz uzyskać ten sam efekt, jeden wiersz arkusza na odpowiedź, dopisywany automatycznie, za pomocą niewielkiego Google Apps Script i webhooka. Ta strona przeprowadza Cię przez dokładny skrypt (około 15 linii), sposób wdrożenia go jako aplikacji webowej i skierowania webhooka YeetForm na powstały URL. Zajmuje to kilka minut i nie wymaga własnego serwera.

Konfiguracja

1.

Dodaj integrację webhook

Arkusze Google nie mają natywnego konektora YeetForm, więc mostem jest webhook: w zakładce Integracje formularza dodaj endpoint Webhooks wskazujący na URL aplikacji webowej Google Apps Script.

2.

Utwórz Apps Script

W docelowym arkuszu otwórz Extensions → Apps Script, wklej poniższy skrypt i wdróż go jako aplikację webową (Execute as: Me, Who has access: Anyone with the link). Użyj URL-a wdrożenia jako endpointu webhooka.

function doPost(e) {
  var payload = JSON.parse(e.postData.contents);
  if (payload.event !== "response.created") return ContentService.createTextOutput("ignored");

  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var labels = {};
  (payload.fields || []).forEach(function (f) { labels[f.id] = f.label; });

  var row = [payload.response_id, payload.submitted_at];
  Object.keys(payload.answers).forEach(function (id) {
    row.push(labels[id] || id, payload.answers[id]);
  });

  sheet.appendRow(row);
  return ContentService.createTextOutput("ok");
}
3.

Wdróż i zdobądź URL

Wdrożenie tworzy URL w rodzaju https://script.google.com/macros/s/.../exec - wklej go w pole webhooka YeetForm z kroku 1.

4.

Wyślij testową odpowiedź

Wyślij formularz (albo użyj przycisku testowego na integracji webhook) i potwierdź, że nowy wiersz pojawia się w arkuszu z odpowiedziami w odpowiedniej kolejności.

5.

Utrzymuj arkusz i formularz w synchronizacji

Jeśli później dodasz lub usuniesz pola formularza, zaktualizuj mapowanie kolumn w skrypcie - odczytuje on odpowiedzi po id pola, a nie po pozycji, więc nie rozjedzie po cichu istniejących kolumn, ale nowe pole wymaga dodania nowej linii w skrypcie.

Wskazówki

  • →Użyj response_id odpowiedzi jako klucza deduplikacji w arkuszu (pomiń dopisywanie wiersza, jeśli wiersz z tym id już istnieje), ponieważ ponowione dostarczenie webhooka wysyła ponownie tę samą odpowiedź.
  • →Mapuj kolumny z tablicy fields payloadu (id na etykietę) zamiast wpisywać id pól na sztywno, aby skrypt przetrwał zmianę nazwy lub kolejności pól.
  • →To przepis oparty na webhooku, a nie natywna integracja - jeśli limit Apps Script lub Twoje konto ma problemy, wiersze po cichu przestają się pojawiać; sprawdzaj status dostarczenia w zakładce Integracje formularza, zamiast obserwować wyłącznie arkusz.

Zbuduj formularz z AI w kilka sekund

Zacznij za darmo

FAQ

Czy istnieje natywna integracja z Arkuszami Google?+
Nie - YeetForm nie synchronizuje się bezpośrednio z Arkuszami. Ta strona pokazuje przepis webhook-do-Apps-Script, który daje ten sam efekt: jeden wiersz na odpowiedź, dopisywany automatycznie.
Czy to zadziała z funkcją 'miejsce docelowe Arkusze' z Formularzy Google?+
Nie, ta funkcja jest specyficzna dla Formularzy Google. Ten przepis używa aplikacji webowej Google Apps Script jako własnego endpointu, wyzwalanego przez webhook YeetForm, niezależnie od Formularzy Google.
Co jeśli później dodam nowe pole do formularza?+
Skrypt mapuje odpowiedzi po id i etykiecie pola, więc dalej działa, ale zupełnie nowe pole wymaga dodania linii do skryptu (lub drobnej poprawki), aby pojawić się jako własna kolumna - zobacz wskazówki powyżej.
Czy to ponawia próbę, jeśli skrypt zawiedzie?+
Tak - pod spodem to zwykłe dostarczenie webhooka, więc nieudana odpowiedź Apps Script jest ponawiana do 3 razy jak każdy inny webhook.