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
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.
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");
}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.
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.
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.