Search
  • Ravi Sharma

Create & Connect Salesforce External Objects to OData 4.0 APIs

Updated: Oct 19, 2020

Great news! Now you can create OData service using our Ignite platform and exchange data with your Salesforce Organization using OData 4.0


We will divide this section into two parts:

  1. How to create an OData service in the Ignite platform.

  2. How to connect your OData APIs to Salesforce.

To create an OData workflow compatible with Salesforce Connect (External Object Connection), you will need our Ignite-OData and Ignite-sequelize nodes.


These steps are also mentioned in the OData node's help section and in our tidbits YouTube video which can be found here.

1. Let's dive in and create an OData service from scratch inside of our Ignite platform.

To create an OData service we will need an API endpoint to serve the incoming requests, which we can create using the http-in node.

Go ahead, drag and drop a http-in node and configure it. To make it compatible with incoming OData requests which comprises of dynamic URLs, you need to append a /Root/* or /Serviceroot/* variable to the endpoint. This endpoint will now serve all the incoming get requests matching in Serviceroot/ or Root/.


Note: To enable your service to perform upsert operations, you will need to add a few other http-in nodes to support requests with other http verbs (Post Put Patch Delete).


Going forward you will need to provide a database model for your service to serve incoming metadata requests. This can be achieved using a function node, setting the msg. model property to a valid model and adding a wire from http-in nodes to the function node. See the example below.

var model = {
    namespace: "odata",
    entityTypes: {
        "users": {
            "id": {"type": "Edm.Int32", "key": true},
            "fullname": {"type": "Edm.String"},            
            "username": {"type": "Edm.String"}            
        }
    },   
    entitySets: {
        "users": {
            entityType: "odata.users"
        },
    }
};
msg.model = model;
return msg;


Next, drag and drop an OData-in node and connect a wire from the function node to the OData-in node. Great job, we are halfway through now!


Drag and drop an Ignite-Sequelize node and connect a wire from the OData-in node to the Sequelize node. Configure your Sequelize node and provide your database connection variables.