Files
Gainsight/Scripts/GoogleScripts/Sheets_to_Jira/IntoJira.js
2023-05-08 12:12:31 -04:00

109 lines
3.4 KiB
JavaScript

/* Pertinent Information and Codes:
Custom Fields:
Channel = customfield_10121
Campaign = customfield_10120
SDR = customfield_10122
Start Date = customfield_10015
Prior to making this publicly available, I added a commented list of users & their account numbers.
Without accounts: Adan, Drew
*/
function myFunction() {
var URL = "https://your_company.atlassian.net/rest/api/3/issue/";
var token = "api_toke_goes_here";
var user = "user@company.com";
var UserCredentials = Utilities.base64Encode(user + ":" + token);
// Setting up data range and empty arrays
const sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2; // First col of data to process
var numRows = 1132; // Number of rows to process
var dataRange = sheet.getRange(startRow, 1, numRows, sheet.getLastColumn()).getValues();
for (col in dataRange) { // For a data col within the entire data range
var col = dataRange[col];
let sdr = col[0]; // Column - A
let name = col[1]; // Column - B
let bookingDate = Utilities.formatDate(col[2], "America/New_York", "MM/dd/yyyy"); // Column - C
let meetingDate = Utilities.formatDate(col[3], "America/New_York", "MM/dd/yyyy"); // Column - D
let rawDate = Utilities.formatDate(col[3], "America/New_York", "yyyy-MM-dd");
let company = col[4]; // Column - E
let channel = col[5]; // Column - F
let result = col[7]; // Column - H
let campaign = col[8]; // Column - I
let info = col[9]; // Column - J
let list = [sdr, name, rawDate, bookingDate, meetingDate, company, channel, result, campaign, info];
let sdrDict = {
"Mike" :
"account_num_goes_here",
"Nick" :
"account_num_goes_here",
"Appleby" :
"account_num_goes_here",
"Doug" :
"account_num_goes_here",
"Quba" :
"account_num_goes_here",
};
if (list.includes("Norm")) {
var data = {
"fields": {
"project": {
"key": "NPIPE",
},
"issuetype": {
"id": "10275",
},
"summary": list[5],
"description": {
"type": "doc",
"version": 1,
"content": [
{
"type": "paragraph",
"content": [
{
"type": "text",
"text": "Booked Date - " + list[3] + '\n' +
"Meeting Date - " + list[4] + '\n' +
"Description from Tracker: " + list[9] + '\n' +
"Last Status - " + list[7]
}
]
}
],
},
"customfield_10015": list[2], // Start (Meeting) Date - rawDate
"customfield_10127": [ // Campaign
list[8],
],
"customfield_10128": [ // Channel
list[6],
],
"customfield_10129": [{"id" : sdrDict[list[0]]}], // SDR
}
},
payload = JSON.stringify(data);
Logger.log(payload);
var headers = {
"Accept": "application/json",
"Content-Type": "application/json",
"Authorization": "Basic " + UserCredentials,
"muteHttpExceptions": true,
}
var options = {
"method": "POST",
"headers": headers,
"payload": payload
}
//Logger.log(options);
var response = UrlFetchApp.fetch(URL, options);
//Logger.log(response);
var respCode = response.getResponseCode();
//Logger.log(respCode);
}
}
};