What do you want to automate

with Columns Ai and Odoo?

Prompt, edit and deploy AI agents that connect to Columns Ai, 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
Build Graph From Scratch with the Columns Ai API

Builds a graph object from scratch and publishes it. See the documentation

 
Try it
Build Graph From Template with the Columns Ai API

Builds a graph object from a template and publishes it. See the documentation

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

Connect Columns Ai

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
import { ChartType } from 'columns-graph-model';
import { Columns } from 'columns-sdk';

export default defineComponent({
  props: {
    columns_ai: {
      type: "app",
      app: "columns_ai",
    }
  },
  async run({steps, $}) {    
    const rows = [{
        "value": 312,
        "state": "WA",
        "parent": "US"
      }];// rows is an example data set where you should organize your data in a similar way.

    //Instantiates a Columns SDK object with your API Key.  
    const columns = new Columns(this.columns_ai.$auth.api_key);
    const data = columns.data(['state'], ['value'], rows);
    const graph = columns.graph(data);

    // switch to different chart types: BAR, PIE, DOUGHGUT, LINE, AREA, SCATTER, etc.
    graph.type = ChartType.COLUMN;

    // customise the graph (lots of options in its data model)
    graph.settings.general.palette = ['#ff0000', '#00ff00', '#0000ff'];
    graph.settings.general.background = '#00000002';
    
    return graph;          
  },
})

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