ã¯ããã«
ããã«ã¡ã¯ïŒçŸåœ¹ãšã³ãžãã¢å
Œããã¯ããã¬ãŒã®@YushiYamamotoã§ãã
ä»åã¯ã Google Apps ScriptïŒä»¥äžGASïŒ ã䜿ã£ãŠãã«ã¹ã¿ããŒãµã¯ã»ã¹æ¥åãå¹çåããæ¹æ³ãåå¿è
åãã«åããããã解説ããŸããGASã¯Google WorkspaceïŒæ§G SuiteïŒãšé£æºããæåã§è¡ã£ãŠããé¢åãªäœæ¥ãèªååã§ãã䟿å©ãªããŒã«ã§ããããã°ã©ãã³ã°åå¿è
ã§ãåãçµã¿ããããããå
·äœçãªã³ãŒãäŸãèŠèŠçãªå³ã亀ããŠãå±ãããŸãããããäžç·ã«æ¥åãã©ã¯ã«ããŠã¿ãŸãããïŒð
ãããžã§ã¯ãã®ãŽãŒã«ãšGASã®åºæ¬
äœãç®æãã®ãïŒ
ãã®èšäºã§ã¯ã以äžã®2ã€ã®ããã·ã§ã³ã«ææŠããŸãïŒ
-
æ¥åã®æ£åžã
ä»ã®ã«ã¹ã¿ããŒãµã¯ã»ã¹æ¥åã®æµãã課é¡ãæŽçããŠããã©ããæ¹åã§ãããããæç¢ºã«ããŸãã -
GASã§èªåå
ç¹°ãè¿ãäœæ¥ãããŒã¿åŠçãã¹ã¯ãªããã§èªååããæéãç¯çŽããŸãã
GASã£ãŠäœïŒ
GASã¯ãJavaScriptãããŒã¹ã«ããã¹ã¯ãªããèšèªã§ãGoogleã®ããŒã«ïŒSheetsãGmailãDriveãªã©ïŒãšç°¡åã«é£æºã§ããŸããç¹å¥ãªãœãããã€ã³ã¹ããŒã«ããªããŠãããã©ãŠã¶äžã§åããŸããããšãã°ïŒ
- Google Sheetsã§ã®ããŒã¿æŽç
- Gmailã§ã®èªåã¡ãŒã«éä¿¡
- ã«ã¬ã³ããŒãå€éšAPIãšã®é£æº
ããã°ã©ãã³ã°åå¿è ã§ããJavaScriptã®åºæ¬ããããã°ååå§ããããŸãïŒ
ã«ã¹ã¿ããŒãµã¯ã»ã¹ã§ã®GAS掻çšã·ãŒã³
1. 顧客ããŒã¿ã®æŽçãšåæ
ã«ã¹ã¿ããŒãµã¯ã»ã¹ã§ã¯ã顧客æ å ±ãGoogle Sheetsã«æºãŸã£ãŠããããšãå€ãã§ãããããããªãšããGASã§ä»¥äžã®ãããªäœæ¥ãèªååã§ããŸãïŒ
- éè€ããŒã¿ã®åé€
- æ¡ä»¶ã«åãããŒã¿ã®æœåº
- ç°¡åãªã¬ããŒãäœæ
ã³ãŒãäŸïŒéè€ããŒã¿ããµã¯ããšåé€
顧客ãªã¹ãã«åãååãäœåºŠãå ¥ã£ãŠãããå°ããŸãããã以äžã®ã¹ã¯ãªããã§éè€ãåé€ããŸãããã
function removeDuplicates() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const data = sheet.getDataRange().getValues(); // ã·ãŒãã®å
šããŒã¿ãååŸ
const uniqueData = [];
const seen = new Set();
// éè€ãã§ãã¯
data.forEach(row => {
const key = row.join(); // è¡ãæåååããŠããŒã«ãã
if (!seen.has(key)) {
uniqueData.push(row);
seen.add(key);
}
});
sheet.clearContents(); // ã·ãŒããã¯ãªã¢
sheet.getRange(1, 1, uniqueData.length, uniqueData[0].length).setValues(uniqueData); // ãŠããŒã¯ãªããŒã¿ã ãæžãæ»ã
}
äœ¿ãæ¹:
- Google Sheetsãéããã¡ãã¥ãŒã®ãæ¡åŒµæ©èœãâãApps Scriptããéžæã
- äžã®ã³ãŒããã³ããããŠä¿åã
- ãremoveDuplicatesããå®è¡ãããšãéè€ãæ¶ããŸãïŒ
2. 宿ã¬ããŒãã®èªååãšã¡ãŒã«éä¿¡
顧客æºè¶³åºŠïŒCSATïŒãè§£çŽçïŒChurn RateïŒã®ã¬ããŒããæåã§äœãã®ã¯æéãããããŸããããGASãªããã¬ããŒãäœæããã¡ãŒã«éä¿¡ãŸã§èªååã§ããŸãã
ã³ãŒãäŸïŒé¡§å®¢æ°ãã¬ããŒãããŠããŒã ã«éä¿¡
function sendCustomerReport() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Customer Data');
const data = sheet.getDataRange().getValues();
// 顧客æ°ãèšç®ïŒããããŒè¡ãé€ãïŒ
const totalCustomers = data.length - 1;
const reportContent = `çŸåšã®é¡§å®¢ç·æ°: ${totalCustomers}å`;
// ã¡ãŒã«éä¿¡
GmailApp.sendEmail('team@example.com', 'ãèªåã顧客ã¬ããŒã', reportContent);
}
ãã€ã³ã:
- ã·ãŒãåïŒ
Customer Data
ïŒã¯èªåã®ãã®ã«å€æŽããŠãã ããã - ã¡ãŒã«ã¢ãã¬ã¹ãå®éã®å®å ã«æžãæããŠãïŒ
æ¥åæŽçã®æµãããããŒãã£ãŒãã§ãã§ãã¯
GASãå§ããåã«ãæ¥åæŽçã®ããã»ã¹ãæŽçããŠãããšã¹ã ãŒãºã§ãã以äžã¯ç°¡åãªãããŒãã£ãŒãã§ãïŒ
ãã®æµãã«æ²¿ã£ãŠé²ããã°ãè¿·ããå¹çåãé²ããããŸãïŒ
GASãäžæã«äœ¿ãã³ã
1. APIåŒã³åºãã¯ãŸãšããŠïŒ
GASã¯åŠçãå€ããšé ããªãããšããããŸããäžåºŠã«ããŒã¿ãååŸã»åŠçãããäžæ¬æäœããããããã§ãã
äŸïŒããŒã¿ãäžæ°ã«å€§æåã«å€æ
function processSheetData() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const data = sheet.getDataRange().getValues();
// å
šããŒã¿ã倧æåã«
const processedData = data.map(row => row.map(cell => cell.toString().toUpperCase()));
sheet.getRange(1, 1, processedData.length, processedData[0].length).setValues(processedData);
}
ãããããšãã»ã«ããšã«åŠçããããé«éã«åããŸãïŒ
2. ãšã©ãŒãèµ·ããŠãæ ãŠãªãæºå
ã¹ã¯ãªãããæ¢ãŸããšå°ãã®ã§ããšã©ãŒãã³ããªã³ã°ãå ¥ããŠãããŸãããã
äŸïŒãšã©ãŒæã«ã¡ãŒã«ã§éç¥
function safeExecution() {
try {
removeDuplicates(); // éè€åé€ãå®è¡
Logger.log('åŠçãæ£åžžã«å®äºããŸãã');
} catch (e) {
Logger.log(`ãšã©ãŒçºç: ${e.message}`);
GmailApp.sendEmail('admin@example.com', 'ãç·æ¥ããšã©ãŒéç¥', `ãšã©ãŒå
容: ${e.message}`);
}
}
ããã§äœããã£ãŠãããæ°ã¥ããŸããã
GASã§åŸãããã¡ãªãã
GASãå°å ¥ãããšãã«ã¹ã¿ããŒãµã¯ã»ã¹æ¥åã«ãããªè¯ãããšããããŸãïŒ
-
æéã®ç¯çŽ
æäœæ¥ãæžãã顧客ãšã®ã³ãã¥ãã±ãŒã·ã§ã³ã«éäžã§ããŸãã -
ãã¹ã®æžå°
èªååã§ãã¥ãŒãã³ãšã©ãŒãæžããŸãã -
ãªã¢ã«ã¿ã€ã 察å¿
ã¬ããŒããéç¥ãããå±ãã®ã§ãè¿ éãªå¯Ÿå¿ãå¯èœã«ã
ããšãã°ãæåã§30åããã£ãŠããã¬ããŒãäœæããŒãã«ãªãã£ãŠããããªãã§ããïŒãã®åã顧客æºè¶³åºŠã¢ããã«æéã䜿ããŸããïŒ
ãŸãšããšæ¬¡ã®ã¹ããã
Google Apps Scriptã¯ãã«ã¹ã¿ããŒãµã¯ã»ã¹æ¥åãå¹çåãã匷åãªå³æ¹ã§ãããã®èšäºã§ç޹ä»ããã³ãŒããã³ãã䜿ãã°ãããã«å¹æã宿ã§ããŸãããŸãã¯å°ããªã¿ã¹ã¯ããèªååããŠã¿ãŠãã ããïŒ
次ã«ãã£ãŠã¿ãããš:
- èªåã®æ¥åã§GASã詊ããŠã¿ãïŒããšãã°ãéè€åé€ããã¹ã¿ãŒãïŒã
- æ £ããŠããããå€éšAPIãããã·ã¥ããŒãäœæã«ææŠïŒ
Happy Coding! ð©âð»ðšâð»
ãåèãªã³ã¯ã
- Google Apps Scriptå ¬åŒããã¥ã¡ã³ã
- GmailAppãªãã¡ã¬ã³ã¹
- SpreadsheetAppãªãã¡ã¬ã³ã¹
åå¿è ã§ãããã«å§ãããããããã·ã³ãã«ãã€å®è·µçãªå 容ã«ããŸããããã²è©ŠããŠã¿ãŠãæ¥åããã£ãšã©ã¯ã«ããŠãã ãããïŒ
æåŸã«ïŒæ¥åå§èšã®ãçžè«ãæ¿ããŸã
ç§ã¯ãæ¥åå§èšãšã³ãžãã¢ãšããŠWEBå¶äœãã·ã¹ãã éçºãè«ãè² ã£ãŠããŸããææ°æè¡ã掻çšããã¬ã¹ãã³ã·ããªWebãµã€ããã€ã³ã¿ã©ã¯ãã£ããªã¢ããªã±ãŒã·ã§ã³ãAPI飿ºãªã©ãå¹ åºãããŒãºã«å¯Ÿå¿å¯èœã§ãã
ã課é¡è§£æ±ºã«åãã峿Šåãæ¬²ããããé«å質ãªWebå¶äœãäŸé Œãããããšããæ¹ã¯ããã²ãæ°è»œã«ãçžè«ãã ãããäžç·ã«ããžãã¹ã®æé·ãç®æããŸãããïŒ