Last active
December 7, 2016 03:38
-
-
Save Yamotty/e5c773b3158d3780ada8 to your computer and use it in GitHub Desktop.
spreadsheetで管理する日次KPIをSlackに自動投稿する ref: http://qiita.com/Yamotty/items/bb2f002ba843386ce6f5
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 定義文 | |
var slack = { | |
postUrl: 'https://slack.com/api/chat.postMessage', | |
token: '(A)', // Slackのtoken | |
groupId: "(B)", // Slack MarketingグループのID | |
userName: "(C)", // botの名前 | |
} | |
// 前日のKPIを取得し、SlackのMarketingグループへ送る | |
function getTodayColumnPostSlack() { | |
// 前日の日付をyyyy/MM/ddで取得する | |
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("(D)"); | |
var yesterday = new Date(new Date().getTime()-1000*60*60*24); | |
var formattedDate = Utilities.formatDate(yesterday, "JST", "yyyy/MM/dd"); | |
// 前日日付のカラムの座標を指定する | |
var startDate = new Date("2015/01/01"); | |
var msDiff = yesterday.getTime() - startDate.getTime(); | |
var column = Math.floor(msDiff / (1000*60*60*24)) + 3; | |
var cell; | |
// KPIの値を取得する | |
while(true) { | |
cell = sheet.getRange(2, column); | |
if (Utilities.formatDate(yesterday, "JST", "yyyy/MM/dd") == formattedDate) { | |
Logger.log("Findout"); | |
var orderNum = sheet.getRange(7, column).getValue().toFixed(0); | |
var orderUnitPrice = sheet.getRange(15, column).getValue().toFixed(0); | |
var signupNum = sheet.getRange(20, column).getValue().toFixed(0); | |
var CPA = sheet.getRange(46, column).getValue().toFixed(0); | |
var CPO = sheet.getRange(47, column).getValue().toFixed(0); | |
var CVR = sheet.getRange(48, column).getValue().toFixed(4)*100; | |
// Slackへ送る | |
var slackApp = SlackApp.create(slack["token"]); | |
var Slackpost = slackApp.postMessage(slack["groupId"],"```" + "\n" + "昨日のMarketing Quick Report" + "\n" + "オーダー件数:" + orderNum + "\n" + "オーダー単価:" + orderUnitPrice + "\n" + "会員登録数:" + signupNum + "\n" + "CPA:" + CPA + "\n" + "CPO:" + CPO + "\n" + "CVR:" + CVR + "%" + "\n" + "```", {username : slack["userName"]}); | |
return column; | |
} else { | |
} | |
column += 1; | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 定義文 | |
var slack = { | |
postUrl: 'https://slack.com/api/chat.postMessage', | |
token: '(A)', // Slackのtoken | |
groupId: "(B)", // Slack MarketingグループのID | |
userName: "(C)", // botの名前 | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 前日の日付をyyyy/MM/ddで取得する | |
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("(D)"); | |
var yesterday = new Date(new Date().getTime()-1000*60*60*24); | |
var formattedDate = Utilities.formatDate(yesterday, "JST", "yyyy/MM/dd"); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 前日日付のカラムの座標を指定する | |
var startDate = new Date("2015/01/01"); | |
var msDiff = yesterday.getTime() - startDate.getTime(); | |
var column = Math.floor(msDiff / (1000*60*60*24)) + 3; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// KPIの値を取得する | |
while(true) { | |
cell = sheet.getRange(2, column); | |
if (Utilities.formatDate(yesterday, "JST", "yyyy/MM/dd") == formattedDate) { | |
var orderNum = sheet.getRange(7, column).getValue().toFixed(0); | |
var orderUnitPrice = sheet.getRange(15, column).getValue().toFixed(0); | |
var signupNum = sheet.getRange(20, column).getValue().toFixed(0); | |
var CPA = sheet.getRange(46, column).getValue().toFixed(0); | |
var CPO = sheet.getRange(47, column).getValue().toFixed(0); | |
var CVR = sheet.getRange(48, column).getValue().toFixed(4)*100; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Slackへ送る | |
var slackApp = SlackApp.create(slack["token"]); | |
var Slackpost = slackApp.postMessage(slack["groupId"],"```" + "\n" + "昨日のMarketing Quick Report" + "\n" + "オーダー件数:" + orderNum + "\n" + "オーダー単価:" + orderUnitPrice + "\n" + "会員登録数:" + signupNum + "\n" + "CPA:" + CPA + "\n" + "CPO:" + CPO + "\n" + "CVR:" + CVR + "%" + "\n" + "```", {username : slack["userName"]}); | |
return column; | |
} else { | |
} | |
column += 1; | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Slackへ送る | |
var slackApp = SlackApp.create(slack["token"]); | |
var Slackpost = slackApp.postMessage(slack["groupId"],"```" + "\n" + "昨日のMarketing Quick Report" + "\n" + "オーダー件数:" + orderNum + "\n" + "オーダー単価:" + orderUnitPrice + "\n" + "会員登録数:" + signupNum + "\n" + "CPA:" + CPA + "\n" + "CPO:" + CPO + "\n" + "CVR:" + CVR + "%" + "\n" + "```", {username : slack["userName"]}); | |
return column; | |
} else { | |
} | |
column += 1; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment