# Telegram notification

**URL:** <https://community.glideapps.com/t/telegram-notification/39188>\
**Category:** Ask for Help\
**Created:** [March 3, 2022, 12:28pm UTC](https://community.glideapps.com/t/telegram-notification/39188 "2022-03-03T12:28:25Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![nadiernad](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/nadiernad/32/31563_2.png) [@nadiernad](https://community.glideapps.com/u/nadiernad)\
**Post date:** [March 3, 2022, 12:28pm UTC](https://community.glideapps.com/t/telegram-notification/39188/1 "2022-03-03T12:28:25Z")

</div>

How to create a script in this “function isian” using the onChange trigger. This script uses the onFormSubmit trigger, how to change it so that it can use the onchange trigger. I have data in a spreadsheet that uses a trigger on form submit in this script which is triggered from a google form, I want to change the trigger using the onChange trigger how do I do it or what does the script and where I place it, I’m still very new to this. Hope someone can help me?

```auto

var token = 'Masukan token yang didapat dari BotFather';
var telegramUrl = 'https://api.telegram.org/bot'+token;
var webAppUrl = 'masukan url server yang didapat dari publish web app'

//ini untuk mengaktifkan Server Bot nya
function setWebhook(){
  var url = telegramUrl+'/setWebhook?url='+webAppUrl;
  var response = UrlFetchApp.fetch(url);
  
  Logger.log(response.getContentText())
}

function doPost(e){
  
  //masukan id google sheet tempat dimana menyimpan data toko
  var ss = SpreadsheetApp.getActiveSpreadsheet();
   
  //menangkap request dari server telegram
  var contents = JSON.parse(e.postData.contents);
  
  //variabel text digunakan untuk menyimpan text yang dikirim oleh user
  var text = contents.message.text;
  //variabel yang digunakan untuk menyimpan id percakapan dari user
  var id = contents.message.chat.id;
  
  //memberi respon jika text yang dikirim user adalah kata reg
  if(text == "reg"){
    
    var balasPesan = "terima kasih anda sudah terdaftar di layanan bot ini"
    //memasukan chat id panitia ke sheet chat_id pada baris 2 kolom 1	
    SpreadsheetApp.getActiveSpreadsheet().getSheetByName("chat_id").getRange(2,1).setValue(id)
    kirimPesan(id,balasPesan)
  
  }else{
    
   var pesan= "*Selamat datang di Menu PPDB* \n"
    +"Bot ini terdiri dari beberapa menu : \n"
    +"a. Register layanan \n"
    +"Ketik : reg \n";
    kirimPesan(id,pesan,'markdown');
  }  
}

//fungsi ini digunakan untuk mengirim pesan
function kirimPesan(chatid, pesan, parseMode, replyMarkup) {
  var formData = {
     'chat_id': chatid,
     'text': pesan
  };
  
  if ( (typeof parseMode !== 'undefined') || (typeof parseMode !== null) ) {
    formData['parse_mode'] = parseMode;
  }
  
  if ( (typeof replyMarkup !== 'undefined') || (typeof replyMarkup !== null) ) {
    formData['reply_markup'] = replyMarkup;
  }
  
  var ret = request('sendMessage', formData);
  return ret;
}
  
function request(method,data){
  
  var options = {
    'method':'post',
    'contentType':'application/json',
    'payload':JSON.stringify(data)
  };
 

  var res = UrlFetchApp.fetch(telegramUrl+'/'+method,options)
  
}

function isian(e){
  var waktuDaftar = e.values[0]
  var nama = e.values[1]
  var smp = e.values[2]
  var jurusan = e.values[3]
  var noHp = e.values[4]
  
  
  var template = DriveApp.getFileById("Masukan id template document pendaftaran")
  var folderSimpanFile = DriveApp.getFolderById("Masukan id Folder yang digunakan untuk menyimpan file")
  //membuat copyan dari template dengan nama dari field yang di isikan pendaftar
  var copyTemplate = template.makeCopy(jurusan+" "+nama+" "+smp, folderSimpanFile)
  //membuka dokumen tersebut	
  var docPendaftar = DocumentApp.openById(copyTemplate.getId())
  //mendapatkan tag template untuk diganti dengan isian dari google form	
  var bodyDoc = docPendaftar.getBody()
  
  bodyDoc.replaceText("{{Nama}}", nama)
  bodyDoc.replaceText("{{SMP}}", smp)
  bodyDoc.replaceText("{{Jurusan}}", jurusan)
  //menyimpan dan menutup inputan dari pendaftar 
  docPendaftar.saveAndClose()
  //membuka dokumen dan merubahnya menjadi pdf
  var pdf = DocumentApp.openById(copyTemplate.getId()).getAs('application/pdf')
  //membuat link pdf nya
  var urlPdf = folderSimpanFile.createFile(pdf).getDownloadUrl()
  //mendapatkan chat id dari bot panitia ppdb
  var id = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("chat_id").getRange(2,1).getValue()
  
  //Mengirim pesan ke panitia ppdb ketika ada pendaftar
  var pesan= "Mohon untuk segera dikonfirmasi pendaftar \n"
    +"Nama : "+ nama+" \n"
    +"SMP : "+ smp+"\n"
    +"Pilihan : "+ jurusan+"\n"
    +"WA : wa.me/62"+noHp+"?text=*Assalamualikum%2CKami%20dari%20Panitia%20PPDB%20SMK%20Pemalang*%0ABerikut%20ini%20adalah%20bukti%20pendaftaran%20Anda%20%3A\n"
    +"Bukti : "+ urlPdf+"\n"	    
    kirimPesan(id,pesan);
}

```

---

<div class="post-metadata">

**Author:** ![ThinhDinh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/thinhdinh/32/49_2.png) [@ThinhDinh](https://community.glideapps.com/u/ThinhDinh)\
**Post date:** [March 4, 2022, 12:01am UTC](https://community.glideapps.com/t/telegram-notification/39188/2 "2022-03-04T00:01:58Z")

</div>

> [@nadiernad](#):
>
> This script uses the onFormSubmit trigger, how to change it so that it can use the onchange trigger.

You can follow the steps below.

1/Go to Extensions \> App Script

 ![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/a/3/a371e227d0c0e459e38afba759a6cf90352e5d18.png)

2/On the left hand side panel, choose “Triggers”.

![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/7/8/78fcbdd63c6fe1c32db892ff33f59273f972fd36.png)

3/Identify the trigger that is running your “isian” function, or if it does not exist, create one using this button on the bottom right.

![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/b/5/b5181935f5860f1a5d0954e29ea4f6812f20d180.png)

4/Create a new onChange trigger by choosing the event type to be “on change”.

 ![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/9/3/932d4905f438e022a9973f18baefc2c91ba46ccd.png)

---

<div class="post-metadata">

**Author:** ![nadiernad](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/nadiernad/32/31563_2.png) [@nadiernad](https://community.glideapps.com/u/nadiernad)\
**Post date:** [March 13, 2022, 6:56am UTC](https://community.glideapps.com/t/telegram-notification/39188/3 "2022-03-13T06:56:03Z")

</div>

thank you @ThinhDinh for responding, but I have tried this and it doesn’t work, the script must be changed so that it can use the trigger on change

---

<div class="post-metadata">

**Author:** ![ThinhDinh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/thinhdinh/32/49_2.png) [@ThinhDinh](https://community.glideapps.com/u/ThinhDinh)\
**Post date:** [March 13, 2022, 8:14am UTC](https://community.glideapps.com/t/telegram-notification/39188/4 "2022-03-13T08:14:10Z")

</div>

It would help if you can post the logs here. What exact problem did Google Scripts report?

---

<div class="post-metadata">

**Author:** ![nadiernad](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/nadiernad/32/31563_2.png) [@nadiernad](https://community.glideapps.com/u/nadiernad)\
**Post date:** [March 13, 2022, 8:35am UTC](https://community.glideapps.com/t/telegram-notification/39188/5 "2022-03-13T08:35:07Z")

</div>

solved thanks @ThinhDinh for the response, the script should be changed to use the onchange trigger, because the current script is only for triggering form submission

---

<div class="post-metadata">

**Author:** ![system](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/system/32/53398_2.png) [@system](https://community.glideapps.com/u/system)\
**Post date:** [March 14, 2022, 8:35am UTC](https://community.glideapps.com/t/telegram-notification/39188/6 "2022-03-14T08:35:40Z")

</div>

This topic was automatically closed 24 hours after the last reply. New replies are no longer allowed.
