Skip to content

Instantly share code, notes, and snippets.

@sud0n1m
Forked from nicolasembleton/customer.io_upload.js
Created November 20, 2012 14:13
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save sud0n1m/4118180 to your computer and use it in GitHub Desktop.
Save sud0n1m/4118180 to your computer and use it in GitHub Desktop.
Import your customer data with custom parameters into customer.io
//#!/usr/bin/env node
var http = require("http"),
fs = require("fs"),
sys = require('sys'),
exec = require('child_process').exec;
var ENDPOINT="https://app.customer.io/api/v1/customers/";
var SITEID="YOUR SITE ID";
var APIKEY="YOUR API KEY";
var path = "./users.csv";
var delimiter = ",";
var cnt = 0;
var cmd_queue = [];
/** Helper to output the curl command stdout */
function puts(error, stdout, stderr) {
// Some output for debugging purposes
console.log("Command: " +cnt);
sys.puts(stdout);
// Next command in the chain
cnt++;
if(cnt < cmd_queue.length) {
exec(cmd_queue[cnt], puts);
}
}
fs.readFile("./users.csv", function(err, data) {
if (err) throw err;
// Be careful with the new line character, excel outputs \r
var lines = data.toString().split("\r");
for(var line in lines) {
var spread = lines[line].split(delimiter); // CSV delimiter
// console.log(spread);
var account_id = spread[0],
account_email = spread[1],
user_id = spread[2],
email = spread[3],
created_at = spread[4],
surveys = spread[5],
answers = spread[6],
campaigns = spread[7],
plan = spread[8];
cmd_queue[line] = ' \
curl -i ' +ENDPOINT +user_id + ' \
-X PUT \
-u ' +SITEID +':' +APIKEY +' \
-d created_at=' +created_at + ' \
-d email=' +email +' \
-d id=' +user_id +' \
-d plan=' +plan + ' \
-d answers_received=' +answers + '\
-d number_of_surveys=' +surveys + ' \
-d number_of_campaigns=' +campaigns + ' \
-d country="" \
-d language="EN" \
';
// console.log(command);
}
// trigger the first cmd chain
exec(cmd_queue[0], puts);
});
@adam-bitium
Copy link

I edited this for my fields, but I am trouble getting companies with spaces in their names uploaded (e.g Company X). Any ideas?

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