Presentation is loading. Please wait.

Presentation is loading. Please wait.

Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purposes only, and may not be.

Similar presentations


Presentation on theme: "Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purposes only, and may not be."— Presentation transcript:

1

2 Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle.

3 Automation Strategies with the Eloqua API
An Oracle | Eloqua Power Hour Powered by

4 Presenters T.J. Fields – Oracle | Eloqua, Senior Product Manager
Chris Campbell – Oracle | Eloqua, Senior Product Manager

5 Power Hour Agenda First, Some Background A Closer Look
Using Eloqua’s RESTful APIs Where to find information

6 In the beginning Eloqua’s first public API
Basic entity CRUD operations Bulk operations (DTS) SOAP API 2008 Our First Formal API Key use cases were Data Warehousing and Custom CRM integration Enabling Customers to integrate with Eloqua’s data entities in a supported way Good in that we exposed the data, but had challenges around errors and simplicity of the data model

7 Extending the marketing automation system
Step-based Apps (Cloud Connectors) Perform external operations on campaign members SOAP API Cloud Connectors Enabling external applications to extend the marketing automation workflow - Seamless integration to the execution of marketing automation (PB or later, Campaign Canvas) UX integration between the Eloqua UI and your Cloud Connector UI, for the Marketing User Extend the actions that the Eloqua platform can take, enabling you to provide real value for Eloqua customers through platform extensions 2008 2014

8 Time for REST Application API Built for E10 Asset & Data Access
Real time! SOAP API Cloud Connectors Application API 2008 2014

9 Scale It… Bulk API 1.0 Simple Scalable Complete RESTful APIs SOAP API
Cloud Connectors Application API Bulk API 1.0 Provide a better approach to large volume data transfer (imports and exports) Addressing issues with the SOAP API: simplify the data model to make it easy to understand for the simple cases, and easy to use for even the more complex scenarios Moving from SOAP to REST, to simplify access to the data and no longer relying on SOAP tooling and constraints Move towards a standard addressing language (ML), to provide both readable and validatable addressing of data when communicating with Eloqua Scalability was a key driver – so imports and exports could be done with millions of records in a short period of time, and so the impact on the rest of the transactional system would be low Completeness in terms of: Full management of Import/Export definitions through the API (where the SOAP DTS API required external configuration) Granular detail on all synchronous responses, to provide immediate and clear information about any errors Reference level documentation (generated), Bulk API Guide and 2 types of live documentation “apps” 2008 2014

10 Activities Anyone? Bulk API 2.0 Retrieve Activity Data
Enhanced Filtering capabilities offers more customized datasets Access to import errors in the staging area RESTful APIs SOAP API Cloud Connectors Application API Bulk API 1.0 Bulk API 2.0 2008 2014

11 A Closer Look

12 API Uses Many possibilities Integration with external systems
REST and Bulk API API Uses Many possibilities Integration with external systems Build Cloud “Apps” appcloud.eloqua.com Solve more complex use cases Perform specific, repeatable tasks or functions © 2013 Eloqua Education Services

13 REST and Bulk API Eloqua’s APIs SOAP Protocol for exchanging data relies on XML. Eloqua's SOAP API has been available since 2008 (primarily used with the E9 platform) Direct Access Web services Single record create/update and multiple record retrieval Data and asset creation available E10 is built using this API Bulk Web services Designed to handle large volumes of records Import/export of Data Contacts, Custom Objects, Activities, Cloud Connectors © 2013 Eloqua Education Services

14 Eloqua’s APIs Current Status Consumers SOAP APIs (v1 – 1.2)
Maintenance only, heavily used Direct Access RESTful APIs Broad access to most of Application Bulk Access RESTful API access to a subset of the system 3rd Party Apps & Integrations CRM Integration Eloqua Apps E10, Mailer, EPP AppCloud Apps

15 Using Eloqua’s RESTful APIs

16 Uri Format Eloqua REST APIs
https://<host>/api/<context>/<version>/<resource>[/<resource id>][/child resource>][/<child resource id>][?parameters] All endpoints in a given API will have the same root/base Uri (not including host). https://secure.eloqua.com/api/bulk/1.0 An example of the format in use is: https://secure.eloqua.com/api/bulk/1.0/contact/lists?page=2&pageSize=50 An example with child resources: https://secure.eloqua.com/api/bulk/1.0/customObject/5/field/6

17 REST API: Process Overview
REST and Bulk API REST API: Process Overview Authenticate Determine endpoint from Eloqua API (https://login.eloqua.com/id) Basic HTTP authentication or OAUTH Construct object Needed for POST, PUT Not needed for GET, DELETE Call the API endpoint /assets/contact/fields?depth=complete&count=1&page=1 Full list of parameters: rest-api--request-url-parameters Read response (next slide) © 2013 Eloqua Education Services

18 REST API: Response (JSON)
REST and Bulk API REST API: Response (JSON) {"elements": [ {"type":"ContactField", "id":"100001", "createdAt":" ", "depth":"complete", "name":" Address", "updatedAt":" ", "updatedBy":"8", "dataType":"text", "displayType":"text", "internalName":"C_ Address", "isReadOnly":"false", "isRequired":"false", "isStandard":"true", "isAccountLinkageField":"false", "isPopulatedInOutlookPlugin":"false", "updateType":"always" }, "id":"100002", "name":"First Name", "updatedAt":" ", "internalName":"C_FirstName", "updateType":"newNotBlank" }, ... © 2013 Eloqua Education Services

19 Common Patterns Eloqua REST APIs
CRUD support using POST, GET, PUT and DELETE POST /contact/import GET /contact/import/5 PUT /contact/import/5 DELETE /contact/import/5 Search using GET with plural resource GET /contact/imports?page=2&pageSize=50&search=name=a*&orderBy=n ame%20ASC POST Tunneling available with X-HTTP-Method-Override header PATCH is supported in a limited number of cases, for partial updates.

20 Partial Requests Eloqua REST APIs depth fields fieldsUri
Minimal/partial/complete fields Json syntax fieldsUri Persisted fields value, for re-use PATCH is supported in a limited number of cases, for partial updates. Concerns: - REST is chatty -> deep object graphs with partial request/response

21 Response Codes & Errors
Eloqua REST APIs Status Code Tunneling available with X-HTTP-Status-Code-Override header Status Codes 2XX for success (200/201/204) 4XX for client resolvable error (400/401/403/404/409/412/413) 5XX for server error (500/503) Error Responses Path to invalid Field Invalid value Failed constraint text { "failures": [ "field": "destinationUri", "value": "/contact/list/ ", "constraint": "Must reference an existing item, by uri." } ] 200 OK: Success (On GET/PUT verbs) - Response Body contains expected Data Transfer Object (“DTO”) 201 Created: Success (On POST verb) - Response Body contains expected DTO 204 No Content: Success 400 Bad Request One of: There was a parsing error. There was a missing reference. There was a serialization error. There was a validation error. - Response Body contains the details of the failure in a “FailureResponse” DTO 401 Unauthorized - Login Required. - You are not authorized to make this request. 403 Forbidden - This service has not been enabled for your site. - XSRF7 Protection Failure. 404 Not Found (The requested resource was not found.) 409 Conflict (There was a conflict, likely due to a uniqueness constraint.) Response Body contains the details of the failure in a “FailureResponse” DTO 412 Precondition Failed The resource you are attempting to delete has dependencies, and cannot be deleted. 413 Request Entity Too Large (for the staging area) - Storage space exceeded. 500 Internal Server Error The service has encountered an error. 503 Service Unavailable - Service is unavailable. - There was a timeout processing the request.

22 Async Processing (Bulk API)
Eloqua REST APIs Import Flow Create Import definition POST data to staging area Create sync task & monitor Export Flow Create Export definition GET data from staging area Staged data access

23 Where to find information

24 Code It Eloqua’s Developer Community

25 Thank you and Questions…

26

27


Download ppt "Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purposes only, and may not be."

Similar presentations


Ads by Google