!e.postData) return;
                  
                  
                  
                  
                  
                    const d = JSON.parse(e.postData.contents); // парсим объект
                  
                  
                    // const debug = ss.getSheetByName("Debug") || ss.insertSheet("Debug").setTabColor("RED");
                  
                  
                    // debug.getRange(1, 1).setValue(JSON.stringify(d, null, 5));
                  
                  
                  
                  
                  
                    // логика скрипта в зависимости от контента
                  
                  
                    const sh = ss.getSheetByName('Качество');
                  
                  
                    const lr = sh.getLastRow();
                  
                  
                  
                  
                  
                    let data = [];
                  
                  
                    if (lr == 0) data.push(["Дата", "Телефон", "Работа оператора", "Работа курьера", "Качество чистки", "Качество сервиса", "Улучшить"]);
                  
                  
                    const phone = d?.contacts?.phone ? d?.contacts?.phone.toString().replace("+", "") : "";
                  
                  
                    const created = d?.created ? d?.created.toString().replace("Z", "").replace("T", " ").split(".")[0] : new Date(); // дата, время
                  
                  
                    // const created = d?.created.toString().replace("T", " ").split(" ")[0]; // только дата
                  
                  
                    const a1 = d?.answers[0]?.a;
                  
                  
                    const a2 = d?.answers[1]?.a;
                  
                  
                    const a3 = d?.answers[2]?.a;
                  
                  
                    const a4 = d?.answers[3]?.a;
                  
                  
                    const a5 = d?.answers[4]?.a;
                  
                  
                  
                  
                  
                    const v = [[created, phone, a1, a2, a3, a4, a5]];
                  
                  
                    data = data.concat(v.map(c => c));
                  
                  
                  
                  
                  
                    sh.getRange(lr + 1, 1, data.length, data[0].length).setValues(data);
                  
                  
                    sh.getDataRange().removeDuplicates();
                  
                  
                  
                  
                  
                    return ContentService.createTextOutput('OK');
                  
                  
                  }
                  
                  
                
Поясните, что да вопросительные знаки в объекте d?
https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Operators/Nullish_coalescing_operator
https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Operators/Optional_chaining
Обсуждают сегодня