with Odoo and Holded?
Emit new event when an existing contact is created in Holded. See the docs
Emit new event when invoice is generated in Holded. See the docs
Deliver an email with a document to a contact through Holded. See the docs
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();
},
})
The Holded API offers access to a versatile platform that combines accounting, invoicing, inventory, and project management. It's designed to streamline various business processes. With Pipedream, you can connect Holded to hundreds of other apps to automate workflows. This means you can sync invoices with your CRM, get real-time alerts for new sales, or even automate inventory updates. The API's endpoints allow you to manage contacts, products, accounting, and more, enabling your business to stay organized and efficient.
import { axios } from "@pipedream/platform"
export default defineComponent({
props: {
holded: {
type: "app",
app: "holded",
}
},
async run({steps, $}) {
return await axios($, {
url: `https://api.holded.com/api/invoicing/v1/contacts`,
headers: {
"Accept": `application/json`,
"key": `${this.holded.$auth.api_key}`,
},
})
},
})