Telegram Logger bot

Sharing guidance & code for setting up a Telegram logger bot. It logs all data entered to the bot into a Google Spreadsheet.

Bot in action


  1. Create Telegram bot using botfather.
  2. Set up a Spreadsheet for logging data.
  3. Set up Google Apps Script. Copy code below.
  4. Deploy as web app. Set access to “Anyone, even anonymous”
  5. Initialise bot token, spreadsheet id & web app url values in code
  6. Set web hook by running the setWebhook() function.


  • Each time you make changes to the code, make sure your deploy as web app again (and also have the version number changed when you do so).
  • If you change the name of your sheet, make sure to have it also reflected in your code. Sheet1 is the default value of sheet in a new spreadsheet.


// initialise these values
var ssID = "1J-rID8K6DNt2jeMZ7DWOH5YA7baYKTiWl1pJ3iE"; //change this to id of sheet
var token = "5672193:AAEhKCprHAOc9XfQ4HKilPyU"; //insert your bot token here
var webAppUrl = "";//change this url once you set up the webhookvar url = "" + token;function doPost (e){

var contents = JSON.parse(e.postData.contents);
var text = contents.message.text;
var id =;
var name = contents.message.from.first_name + " " + contents.message.from.last_name;
var first_name = contents.message.from.first_name;var ss = SpreadsheetApp.openById(ssID);
ss.getSheetByName('Sheet1').appendRow([new Date(),id, first_name,text]);
sendText(id, "Added to sheet");


function sendText(id, text) {
var response = UrlFetchApp.fetch(url + "/sendMessage?chat_id=" + id + "&text=" + text);
}// run this function one time for setting web hook
function setWebhook() {
var response = UrlFetchApp.fetch(url + "/setWebhook?url=" + webAppUrl);

Improvements that can be made to code

  • Create spreadsheet through code itself.
  • Have key values set as project properties & masked.


Create Telegram bot using botfather

Deploy as web app

Select access as “Anyone, even anonymous”

Initialise project variables

set webhook by running the function

Bot in action