Google Apps Script Integration
Use Google Apps Script to automatically import CSV Getter data into Google Sheets on a schedule. This guide covers the complete setup: script, error handling, email alerts, and time-driven triggers.
Quick Start
Step 1: Open the Script Editor
Step 2: Paste the Script
/**
* Fetches data from CSV Getter and writes it to the active sheet.
* Replace ENDPOINT_URL with your actual CSV Getter endpoint URL.
*/
// ========== CONFIGURATION ==========
var ENDPOINT_URL = "https://api.csvgetter.com/YOUR_ENDPOINT_ID";
var SHEET_NAME = "Sheet1"; // Target sheet tab name
var BEARER_TOKEN = ""; // Leave empty if auth is not enabled
var NOTIFY_EMAIL = ""; // Email for failure alerts (leave empty to skip)
// ====================================
function fetchCSVGetterData() {
try {
var options = {};
// Add auth header if Bearer token is set
if (BEARER_TOKEN) {
options = {
headers: {
"Authorization": "Bearer " + BEARER_TOKEN
}
};
}
// Fetch data from CSV Getter
var response = UrlFetchApp.fetch(ENDPOINT_URL, options);
var statusCode = response.getResponseCode();
if (statusCode !== 200) {
var errorMsg = "CSV Getter returned status " + statusCode + ": " + response.getContentText();
Logger.log(errorMsg);
sendFailureAlert(errorMsg);
return;
}
var csvContent = response.getContentText();
if (!csvContent || csvContent.trim() === "") {
var emptyMsg = "CSV Getter returned empty data.";
Logger.log(emptyMsg);
sendFailureAlert(emptyMsg);
return;
}
// Parse CSV into rows
var rows = Utilities.parseCsv(csvContent);
// Get the target sheet
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getSheetByName(SHEET_NAME);
if (!sheet) {
sheet = spreadsheet.insertSheet(SHEET_NAME);
}
// Clear existing data and write new data
sheet.clearContents();
sheet.getRange(1, 1, rows.length, rows[0].length).setValues(rows);
Logger.log("Successfully imported " + rows.length + " rows (including header) at " + new Date().toISOString());
} catch (error) {
var errMsg = "Error fetching CSV Getter data: " + error.message;
Logger.log(errMsg);
sendFailureAlert(errMsg);
}
}
/**
* Sends an email alert when the import fails.
*/
function sendFailureAlert(errorMessage) {
if (!NOTIFY_EMAIL) return;
try {
var subject = "CSV Getter Import Failed - " + SpreadsheetApp.getActiveSpreadsheet().getName();
var body = "The scheduled CSV Getter import failed.\n\n" +
"Spreadsheet: " + SpreadsheetApp.getActiveSpreadsheet().getUrl() + "\n" +
"Sheet: " + SHEET_NAME + "\n" +
"Endpoint: " + ENDPOINT_URL + "\n" +
"Time: " + new Date().toISOString() + "\n\n" +
"Error: " + errorMessage + "\n\n" +
"Please check your endpoint at https://csvgetter.com";
MailApp.sendEmail(NOTIFY_EMAIL, subject, body);
Logger.log("Failure alert sent to " + NOTIFY_EMAIL);
} catch (e) {
Logger.log("Could not send failure alert email: " + e.message);
}
}Step 3: Configure
Step 4: Test
Setting Up a Time-Driven Trigger
Option A: Via the Apps Script UI
Option B: Via Code
Importing JSON Instead of CSV
Using SQL Filters
Credit Usage
Frequency
Credits/Month
Troubleshooting
Issue
Cause
Fix
Last updated