메뉴 건너뛰기

정보자료게시판

설문 응답지 구글폼 설문에서 Smore.im으로 업글

by Summa posted Jul 21, 2024
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

구글폼은 그 대단한 기능에도 불구하고 너무 구린 디자인을 갖고 있다.

 

헉 소리 나게 예쁜 typeform이 나왔지만 헉소리나게 비싼 가격으로 인해 엄두를 내고 있지 못하다가

smore.im이 나왔다. 예쁜디자인에, 무료버전 제한도 그리 많지 않은 너무 좋은 설문 앱이다.

 

자 그래서 응답을 하면 응답이 있었다는 알림을 줘야 하는데 구글폼은 onformsubmit 트리거가 있어서 쉽게 할 수 있다.

그런데 smore.im을 구글시트와 연동을 하면 onformsubmit 트리거를 사용할 수는 없다.

 

처음엔 onEdit를 갖고 낑낑대다가 onEdit는 수정된 셀 하나에만 작동하는 것이라는 사실을 알았다.

더 큰 문제는 사용자가 직접 수정하는 행위에 국한되고, smore에서 보내는 행 추가에는 동작을 안한다.

다른 방법이 없나 싶어 zapier webhook post request도 알아보고, 슬랙의 outgoing webhook도 알아봤지만

다들 유료에 난리다.

 

결국 구글시트에서 onChange를 사용해 무사히 해결했다.

 

https://whiseung.tistory.com/entry/Apps-Script%EC%9D%98-trigger-%EC%82%AC%EC%9A%A9%EA%B8%B0

 

https://developers.google.com/apps-script/guides/triggers/events?hl=ko

 

function onChange(e) {

var sheet = e.source.getActiveSheet();

var sheetName = sheet.getName();

if(sheetName == "Smore-" ) {

var range = e.range;

const row = sheet.getLastRow();

const lastColumn = sheet.getLastColumn();

const values = sheet.getRange(row, 1, 1, lastColumn).getValues()[0];

e.getValue();

Logger.log("새로 추가된 행의 값: " + values);

var message = "[응답알림] \n" + values[1]+", " + values[2]+", " + values[3]+", " + values[4]+", " + values[5];

var chatId = "-3"

var response = sendTelegram(message, chatId);

// 메일 발송

var aliases = GmailApp.getAliases();

Logger.log(aliases); //returns the list of aliases you own

Logger.log(aliases[0]); //returns the alias located at position 0 of the aliases array

const subject = '잘 접수되었습니다';

const body = '안녕하세요. 감사합니다. 

';

// var response =

GmailApp.sendEmail(values[3], subject, body + footnote, {

htmlBody: body + footnote,

bcc: '[email protected];',

name: '헤아림',

'from': aliases[0]

}

);

}

}

위로