MadKudu - Account scoring

node v8.17.0
version: 3.0.0
endpointsharetweet
var jsforce = require("jsforce") var madkudu = require("@madkudu/madkudu-node")(process.env.madkudu_api_key) const sequential = require('promise-sequential'); const get_scores = function(objects) { return sequential(objects.map(item => { return function(previousResponse, responses, count) { // console.log(item) return madkudu.company.find({ domain: item.Website }) } })) .then(res => { // console.log(res) const scores = [] for (var i = 0; i<objects.length ; i++) { let score = _.find(res, {domain: objects[i].Website}) score = score ? score.properties.customer_fit : null console.log(score) scores.push({ Id: objects[i].Id, MK_customer_fit_score__c: score ? score.score : null, MK_customer_fit_segment__c: score ? score.segment : null, MK_customer_fit_signals_JSON__c: score ? JSON.stringify(score.top_signals) : null, }) } // console.log(scores) return scores }) .catch(console.log) } const main = function() { var conn = new jsforce.Connection() return conn.login(process.env.salesforce_username, process.env.salesforce_password + process.env.salesforce_security_token) .then((user_info) => { return conn.query("SELECT Id, website FROM Account WHERE website <> null AND MK_customer_fit_score__c = null LIMIT 100") .then( res => { return get_scores(res.records) .then(scores => { return conn.sobject("Account").update(scores) }) }) }) .catch(console.log) } exports.endpoint = function(request, response) { return main() .then(() => {response.end("success")}) .catch(() => {response.end("error")}) }
Loading…

no comments

    sign in to comment