with sendSMS and Odoo?
Add a new contact into a specified group in SendSMS. See the documentation
Checks if a specific phone number is in the blocklist. See the documentation
This action sends an SMS message using the SendSMS.ro API. See the documentation
The sendSMS API provides a straightforward way to integrate SMS capabilities into automation workflows on Pipedream. This API allows you to send text messages directly to users' phones, which can be pivotal for timely alerts, critical notifications, or personalized marketing messages. With Pipedream's serverless platform, you can trigger these SMS communications based on a wide variety of events, such as new e-commerce orders, support ticket updates, or even changes in third-party APIs.
import { axios } from "@pipedream/platform"
export default defineComponent({
props: {
sendsms: {
type: "app",
app: "sendsms",
}
},
async run({steps, $}) {
return await axios($, {
url: `https://api.sendsms.ro/json?action=user_get_info`,
params: {
username: `${this.sendsms.$auth.username}`,
password: `${this.sendsms.$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();
},
})