What do you want to automate

with Odoo and E2B?

Prompt, edit and deploy AI agents that connect to Odoo, E2B 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 the Odoo API

Create a new record in Odoo. See the documentation

 
Try it
Run Code with the E2B API

Run or interpret code using the E2B service. 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
Integrate the Odoo API with the E2B API
Setup the Odoo API trigger to run a workflow which integrates with the E2B API. Pipedream's integration platform allows you to integrate Odoo and E2B remarkably fast. Free for developers.

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();
  },
})

Connect E2B

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import 'dotenv/config';
import { Sandbox } from '@e2b/code-interpreter';

export default defineComponent({
  props: {
    e2b: {
      type: "app",
      app: "e2b",
    }
  },
  async run({steps, $}) {

    const sbx = await Sandbox.create({
        apiKey: this.e2b.$auth.api_key
    }); // By default the sandbox is alive for 5 minutes

    return await sbx.runCode('print("hello world")'); // Execute Python inside the sandbox

  },
})

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