Skip to content

Instantly share code, notes, and snippets.

@miftahafina
Last active November 8, 2024 05:37
Show Gist options
  • Save miftahafina/8316958c94f964753e0d91cce3122d19 to your computer and use it in GitHub Desktop.
Save miftahafina/8316958c94f964753e0d91cce3122d19 to your computer and use it in GitHub Desktop.
Input Data dari WhatsApp ke Google Sheet - Full Tutorial: https://youtu.be/UOpdL3wrivg
function doPost(e) {
// Buka sheet
let sheetUrl = "YOUR_SHEET_URL";
let file = SpreadsheetApp.openByUrl(sheetUrl);
let sheet = file.getSheetByName("Sheet1");
// Rapikan data
let req = JSON.stringify(e).replace(/\\/g, "").replace("}\"", "}").replace("\"{", "{");
let reqJson = JSON.parse(req);
let senderMessage = JSON.stringify(reqJson["postData"]["contents"]["senderMessage"]);
// Mengurai isi pesan
let parsedMessage = senderMessage.split("#");
// ['"daftar', 'afin', '17/08/1945', 'Indonesia']
let nama = parsedMessage[1].trim();
let tanggalLahir = parsedMessage[2].trim();
let alamat = parsedMessage[3].trim().slice(0, -1);
// Membuat ID
let row = sheet.getLastRow() + 1;
let prefixIdPendaftar = 220000;
let idPendaftar = `A-${prefixIdPendaftar + row - 1}`;
// Insert data
sheet.getRange(`A${row}`).setValue(idPendaftar);
sheet.getRange(`B${row}`).setValue(nama);
sheet.getRange(`C${row}`).setValue(tanggalLahir);
sheet.getRange(`D${row}`).setValue(alamat);
// Respon
let response = {
data: [
{
message: `Terima kasih, ananda ${nama} berhasil terdaftar dengan ID ${idPendaftar}.`
}
]
};
return ContentService.createTextOutput(JSON.stringify(response));
}
@sukirman1901
Copy link

Halo mas,
Bagaimana jika pemisahnya adalah enter tidak pagar.

contoh form

Pesanan
Nama :
Produk :
Jumlah :

@Dhika151
Copy link

Selalu gagal saat simpan, eror line 5

@barrulwalid
Copy link

Error
TypeError: Cannot read properties of undefined (reading 'replace')
doPost @ Kode.gs:8

@kangjessy
Copy link

image

@mbah-noto
Copy link

image

Saya juga sama seperti ini

@ruudv20
Copy link

ruudv20 commented Jul 18, 2024

kode script sdh berhasil aq save dan semua settingan sdh aq sesuaikan baik instal auto reply di hp juga sudah, cuma pas ketika aq coba kirim pesen WA dari nomor lain, dengan format: Daftar # Miftah Afina # 17/08/1945 # Pemalang , koq tidak masuk di sheet google drive secara otomatis ya??? mohon arahan dan petunjuknya bang

@kangjessy
Copy link

@ruudv20 boleh liat kodenya? biasanya permasalahan data tidak masuk sheet bisa jadi karena kesalahan sheet yang dituju

@student010010100
Copy link

Error
TypeError: Cannot read properties of undefined (reading 'replace')
doPost @ Kode.gs:8

@4hm4d78
Copy link

4hm4d78 commented Nov 8, 2024

Trimakasih Atas Scriptnya berjalan dengan baik

Mau tanya gan
Scriptnya sedikit saya rubah agar format Pengiriman bisa seperti ini ;

Nama :
NIS :
Kelas :

Namun Jadi terkendala ketika ada huruf "n" maka tidak di respon, mohon petunjuknya

Trimakasih

Berikut script hasil modifnya

function doPost(e) {
// Buka sheet
let sheetUrl = "https://docs.google.com/spreadsheets/d/1fZA6EVegx6cV5NZlc9WZqKgBTZZX8zMQpiRAjPxdvDs/edit?gid=0#gid=0";
let file = SpreadsheetApp.openByUrl(sheetUrl);
let sheet = file.getSheetByName("Sheet1");

// Rapikan data
let req = JSON.stringify(e).replace(/\/g, "").replace("}"", "}").replace(""{", "{");
let reqJson = JSON.parse(req);
let senderMessage = JSON.stringify(reqJson["postData"]["contents"]["senderMessage"]);

// Mengurai isi pesan
let parsedMessage = senderMessage.split("n");
// ['"daftar', 'afin', '17/08/1945', 'Indonesia']
let nis = parsedMessage[1].split(":")[1].trim();
let nama = parsedMessage[2].split(":")[1].trim();
let email = parsedMessage[3].split(":")[1].trim();
let status = parsedMessage[4].split(":")[1].trim().slice(0, -1);

// Membuat ID
let row = sheet.getLastRow() + 1;
let prefixIdPendaftar = 300;
let idPendaftar = MDQ${prefixIdPendaftar + row - 1};
let pass = 4${prefixIdPendaftar + row +111};

// Insert data
sheet.getRange(A${row}).setValue(nis);
sheet.getRange(B${row}).setValue(nama);
sheet.getRange(C${row}).setValue(email);
sheet.getRange(D${row}).setValue(idPendaftar);
sheet.getRange(E${row}).setValue(pass);
sheet.getRange(F${row}).setValue(status);

// Respon
let response = {
data: [
{
message: Terima kasih, Bapak/Ibu ${nama}, Anda berhasil terdaftar pada System Kami, dengan : *Username* ${idPendaftar} dan *Password* ${pass}.
}
]
};

return ContentService.createTextOutput(JSON.stringify(response));
}
Ini hasil modif

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment