What do you want to automate

with WATI and Odoo?

Prompt, edit and deploy AI agents that connect to WATI, Odoo and 2,500+ other apps in seconds.

Trusted by 1,000,000+ developers from startups to Fortune 500 companies

Adyen logo
Appcues logo
Bandwidth logo
Checkr logo
ChartMogul logo
Dataminr logo
Gopuff logo
Gorgias logo
LinkedIn logo
Logitech logo
Replicated logo
Rudderstack logo
SAS logo
Scale AI logo
Webflow logo
Warner Bros. logo
Adyen logo
Appcues logo
Bandwidth logo
Checkr logo
ChartMogul logo
Dataminr logo
Gopuff logo
Gorgias logo
LinkedIn logo
Logitech logo
Replicated logo
Rudderstack logo
SAS logo
Scale AI logo
Webflow logo
Warner Bros. logo
Create Record with Odoo API on New Contact Created from WATI API
WATI + Odoo
 
Try it
Create Record with Odoo API on New Incoming Message from WATI API
WATI + Odoo
 
Try it
Search and Read Records with Odoo API on New Contact Created from WATI API
WATI + Odoo
 
Try it
Search and Read Records with Odoo API on New Incoming Message from WATI API
WATI + Odoo
 
Try it
Update Record with Odoo API on New Contact Created from WATI API
WATI + Odoo
 
Try it
New Contact Created from the WATI API

Emit new event when a contact is created from an incoming WhatsApp message.

 
Try it
New Incoming Message from the WATI API

Emit new event when there is an incoming message on your number.

 
Try it
Add Contact with the WATI API

Adds a new contact on the WATI platform. See the documentation

 
Try it
Create Record with the Odoo API

Create a new record in Odoo. See the documentation

 
Try it
Search and Read Records with the Odoo API

Search and read records from Odoo. See the documentation

 
Try it
Update Record with the Odoo API

Update an existing record in Odoo. See the documentation

 
Try it
Send WhatsApp Template Message with the WATI API

Enables sending of WhatsApp messages using a pre-approved template. See the documentation

 
Try it
Integrate the WATI API with the Odoo API
Setup the WATI API trigger to run a workflow which integrates with the Odoo API. Pipedream's integration platform allows you to integrate WATI and Odoo remarkably fast. Free for developers.

Overview of WATI

The WATI API allows you to power up your customer engagement by leveraging WhatsApp messaging. With Pipedream's capabilities, you can create serverless workflows that integrate WATI to automate personalized notifications, process inbound messages, and manage contacts. This can help scale your customer service, marketing campaigns, and streamline communications with WhatsApp's wide user base.

Connect WATI

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import { axios } from "@pipedream/platform"
export default defineComponent({
  props: {
    wati: {
      type: "app",
      app: "wati",
    }
  },
  async run({steps, $}) {
    return await axios($, {
      url: `${this.wati.$auth.api_endpoint}/api/v1/getContacts`,
      headers: {
        "Accept": `*/*`,
        "Authorization": `${this.wati.$auth.access_token}`,
      },
    })
  },
})

Connect Odoo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
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();
  },
})

Trusted by 1,000,000+ developers from startups to Fortune 500 companies

Adyen logo
Appcues logo
Bandwidth logo
Checkr logo
ChartMogul logo
Dataminr logo
Gopuff logo
Gorgias logo
LinkedIn logo
Logitech logo
Replicated logo
Rudderstack logo
SAS logo
Scale AI logo
Webflow logo
Warner Bros. logo
Adyen logo
Appcues logo
Bandwidth logo
Checkr logo
ChartMogul logo
Dataminr logo
Gopuff logo
Gorgias logo
LinkedIn logo
Logitech logo
Replicated logo
Rudderstack logo
SAS logo
Scale AI logo
Webflow logo
Warner Bros. logo