with NetHunt CRM and Odoo?
The NetHunt CRM API provides powerful access to manage customer relationship data programmatically. With this API and Pipedream, you can automate tasks, synchronize customer data across platforms, trigger communications based on customer interactions, and much more. Pipedream's serverless execution model and vast library of app integrations open up a myriad of possibilities for streamlining sales processes and enhancing customer engagement by automating the flow of information between NetHunt CRM and other business tools.
import { axios } from "@pipedream/platform"
export default defineComponent({
props: {
nethunt_crm: {
type: "app",
app: "nethunt_crm",
}
},
async run({steps, $}) {
return await axios($, {
url: `https://nethunt.com/api/v1/zapier/triggers/readable-folder`,
auth: {
username: `${this.nethunt_crm.$auth.email_address}`,
password: `${this.nethunt_crm.$auth.api_key}`,
},
})
},
})
import xmlrpc from 'xmlrpc';
export default defineComponent({
props: {
odoo: {
type: "app",
app: "odoo",
}
},
async run({ steps, $ }) {
const url = this.odoo.$auth.server_url;
const db = this.odoo.$auth.db;
const username = this.odoo.$auth.username;
const password = this.odoo.$auth.password;
// Create clients for common and object endpoints
const common = xmlrpc.createSecureClient(`${url}/xmlrpc/2/common`);
const models = xmlrpc.createSecureClient(`${url}/xmlrpc/2/object`);
// Using async/await with promises
async function getFields() {
try {
// Authenticate and get uid
const uid = await new Promise((resolve, reject) => {
common.methodCall('authenticate', [db, username, password, {}], (error, value) => {
if (error) reject(error);
resolve(value);
});
});
// Get fields
const results = await new Promise((resolve, reject) => {
models.methodCall('execute_kw', [
db,
uid,
password,
'res.partner',
'fields_get',
[],
{ 'attributes': ['string', 'help', 'type'] }
], (error, value) => {
if (error) reject(error);
resolve(value);
});
});
return results;
} catch (error) {
throw new Error(error);
}
}
return await getFields();
},
})