Wednesday, May 16, 2018

#629 OIC integration with Eloqua via REST adapter

The OIC Eloqua adapter is currently rather limited in its functionality



























Essentially you can create -
Accounts
Contacts
Fusion Leads
Opportunity
Purchase History as well custom objects

From an OIC perspective, this is only outbound to Eloqua.

So how do I get Contact data from Eloqua?
I have covered this in a post from 2016, but some things have changed.

Using the Eloqua REST API

The Eloqua API docs are here

BTW - I usually try the calls out in Postman, before configuring the REST requests in OIC.

The first step is to determine the base URL - 

GET https://login.eloqua.com/id 


That is, the base URL of the REST request, in other words, to which Eloqua server will I be sending this request.

























Line 15 contains the base url - in my case, https://secure.p03.eloqua.com

Now I want to get a particular contact from Eloqua - key is the Eloqua Contact ID.

Here is my contact in Eloqua -















As you can see, the ID value is CMK11000000000016

I only need the 16, for the get contact REST request.





















To get all contacts -

https://yourBaseURL/api/REST/2.0/data/contacts


























Now I want to search for a contact based on the email address, which is essentially unique in Eloqua.
Note: In the screenshot above, you see that the property - name - contains the email address.

My REST call is as follows -

https://secure.p03.eloqua.com/api/REST/2.0/data/contacts?search='name=abba@zabba.com'&depth=complete&count=100


So what do these parameters mean?

search - my search criteria. I can search on any Contact field/property.
depth - possible values - minimal (only a small nr of properties returned)
partial - all properties of the contact returned, as well as the minimal properties of related objects
complete - everything
count- max nr of records to be returned

The full description of the search option is here

Now to my REST request -

























For curl, use:
curl --user "yourCompany\yourUser:yourPwd" --request GET https://secure.p03.eloqua.com/api/REST/2.0/data/contacts?count=2 -k

I added the -k to avoid SSL certificate verification



Ok, that works fine, on to the OIC integration.
A simple scenario here- the integration will create a contact in Eloqua via the OIC Eloqua adapter.
Hoowever, there will be a pre-req check where I leverage the Eloqua to check whether the Contact
already exists within Eloqua.

I create the REST connection in OIC -












My Eloqua connection is already there -




















I create an orchestration -

The Trigger is REST.

I then add the call to Eloqua to check if the Contact already exists -




























Note: I will use "minimal" depth.

Here is the first draft of the integration - only testing the REST request -

























The Mapping is as follows -

















Here is the SWITCH condition -





















I now test the OIC integration, using Postman -




I now execute the same request with a new email address -





















I now add the logic to create the new account.
I could use the Eloqua adapter, but, as this post is concerning direct use of the Eloqua REST API,
I will use it.
































The mapping is as follows -














Below is the return mapping from the OIC integration.
As you can see, I am returning the current status of the contact from Eloqua -
















I test as follows -





















Wednesday, April 25, 2018

Thursday, April 19, 2018

#626 Integration instance tracing in OIC

Instance tracing is very useful in the development phase -
Now we can activate this globally - e.g. for our Development OIC instance -



















or at instance level -
































Here is my Orchestration -






















If I enable tracing -



















If I don't -








Note: the payload is not written to the Activity Stream, it is written to the diagnostic-log, which
you can download from the Monitoring --> Dashboards page.












Tuesday, April 17, 2018

#625 Installing the APIP CS Gateway

I started by logging in to the Management Console as a Gateway user.
The Gateway user has the Gateway role assigned and so she can manage Gateways.



















I create a new Gateway -














As you see, I called it DevGateway - what an innovative name!


I click on the Grants node and assign some permissions on this gateway.


















I can do this for the various permissions -










































I download the installer -

















I unzip it -



















Now back to the Management Console -







We need to generate a node properties file that will contain such info as the
mgt console url; they will need to communicate after all.

This file is called gateway-props.json and will be created by the install wqizard. So 
I click on Open Installation Wizard. 
















Accept the defaults and click the next icon -
































We now download the generated config file -































I now execute the installer -

python2.7 APIGateway.py -f bb.gateway-props.json -a install-configure-start-join

install, configure, start are self explanatory.
join- registration of the gateway node with the APIP CS Mgt Console.































The step above has done the join i.e. I now need to go to the Mgt console and approve the new node.

















As you see, the join request is awaiting processing.







I can set the polling interval -

















thanks to my A-Team colleagues for making this as simple as possible.