with Odoo and Gravity Forms?
Emit new event when a new form submission is received.
Creates a new entry in a Gravity Forms form. See the documentation
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 Gravity Forms API allows you to interact programmatically with Gravity Forms, a WordPress form plugin, to create, update, delete, and retrieve form entries. Within Pipedream, you can leverage this API to automate workflows, integrate with other apps, and manipulate form data in real-time. By connecting Gravity Forms to Pipedream's serverless platform, you open up possibilities to sync form submissions with databases, trigger notifications, or even process payments automatically.
import { axios } from "@pipedream/platform"
export default defineComponent({
props: {
gravity_forms: {
type: "app",
app: "gravity_forms",
}
},
async run({steps, $}) {
return await axios($, {
url: `https://${this.gravity_forms.$auth.base_api_url}/wp-json/gf/v2/forms`,
headers: {
"Content-Type": `application/json`,
},
auth: {
username: `${this.gravity_forms.$auth.consumer_key}`,
password: `${this.gravity_forms.$auth.consumer_secret}`,
},
})
},
})