What do you want to automate

with Odoo and Keycloak?

Prompt, edit and deploy AI agents that connect to Odoo, Keycloak 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
New Event Created from the Keycloak API

Emit new event when a new event is created. See the documentation

 
Try it
Create User with the Keycloak API

Create a new user in Keycloak. The username must be unique. See the documentation

 
Try it
Delete User with the Keycloak API

Delete a user from Keycloak. See the documentation

 
Try it
Get User with the Keycloak API

Retrieve the representation of the user. See the documentation

 
Try it
Update User with the Keycloak API

Updates a user in Keycloak. See the documentation

 
Try it
Integrate the Odoo API with the Keycloak API
Setup the Odoo API trigger to run a workflow which integrates with the Keycloak API. Pipedream's integration platform allows you to integrate Odoo and Keycloak 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 Keycloak

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import { axios } from "@pipedream/platform"
export default defineComponent({
  props: {
    keycloak: {
      type: "app",
      app: "keycloak",
    }
  },
  async run({steps, $}) {
    return await axios($, {
      url: `${this.keycloak.$auth.url}/admin/realms`,
      headers: {
        Authorization: `Bearer ${this.keycloak.$auth.oauth_access_token}`,
      },
    })
  },
})

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