CRM On Demand Recommended Practices: Integration, The Oracle Advantage An Oracle White Paper Updated 9/13/2011 Recommended Integration Practices for Oracle CRM On Demand Introduction Today‟s companies are struggling with a simple, yet fundamental problem. They need to understand their customers! Historically organizations approached their marketplace from a “go to market” product point of view which, whilst maintaining a holistic view of each particular product line, fragmented the customer information across numerous information silos. In today‟s global economy, the relationship with the customer is key. Fail to understand your customer, predict his needs or differentiate yourself through the value he sees in your services, then they will move on. This trend of shifting from a product centric organization to a customer focused one is often the driving force behind the majority of purchases of CRM solutions today. However, in order to gain a complete understanding of a customer‟s relationships & hierarchies both within your organization and outside, you need more than an isolated CRM platform; you need an integrated environment that leverages all customer related information to drive and provide value into each and every interaction and transaction. Oracle and Siebel (the pioneer of Customer Relationship Management systems) have been helping customers, many of them the largest global organizations in the Fortune500, on this journey towards customer centricity. Our experience has taught us that integrating to CRM is not always that simple; typically organizations suffer with data quality issues. Many CRM projects have overrun or failed to deliver on expected value due to a failure to plan for, or include capabilities that improve the customer data quality. CRM’s role in Enterprise Data Quality As part of a CRM integration strategy it is easy to include processes that will increase the accuracy and completeness of customer information, ensuring consistency across all operational systems. But this requirement, as part of a companies overall data quality strategy, must be planned for from the beginning for the overall CRM project to be successful. When considering tools and approaches for integration, more often than not, CRM projects look at the problem through small point to point use cases, choosing technologies and solutions focused on specific integration approaches that cannot scale to meet the requirements of Enterprise Data Quality. Sadly, this typically causes CRM to become yet another cause of stand alone data within the corporation, rather than enabling it to become a key agent in driving data accuracy and value. Getting this right through both the selection of the integration architecture and the implementation strategy, in the long term drastically reduces the costs associated with data management. Modern strategic objectives require companies to create a single view of the customer, and clearly taking a customer centric approach that enables CRM to be intrinsic within all enterprise processes is where the most value can be made. Sharing data in a holistic manner drives expansion in customer insight, enabling all areas of the business to make informed decisions during customer interactions, and to proactively recognize and then manage specific customer events in order to protect and maximize their value to the business. Vendor Lock-in ? However, delivering integration for CRM is not always that simple. There is a huge amount of confusion in the marketplace as to which of a vendors own tools are the best to use. Some of the principles behind these sales strategies are more to do with vendor lock in, than delivering the right solution for the customer. Another challenge customers face is that typically, CRM vendors simply provide integration points, proprietary development environments and coding rules, which leave the customer taking all the risk to actually make it work. Each customer approaches the problem from their own standpoint meaning that every customer is trying to re-invent the perfect solution. Simply put, there are many ways to fail or add inefficiency into an integration process, and if you make the wrong choice of solution at the beginning. This can lead to poor performance and scalability at a later date when it matters most. It is easy to assign integration projects in isolation without considering the bigger picture. This results in the growth of point to point integration redundancy increasing TCO, and because only a few developers are involved in the actual integration coding, this drives the expertise and control into the hands of the few, typically driving up the costs and risks involved. Additionally, if the integration development platform is delivered in a hosted basis, this adds risk to integration stability because you have no control of platform upgrades and the integration failures is can cause. Also for many enterprise companies, integration is seen as a core system and cannot be susceptible to the downtime based on typical hosted service level agreements, so this should be considered when making the decision on which approach to take. There is huge uncertainty being created today in the world of software as a service and in particular how it relates to the delivery of CRM solutions. Certain solution providers in the industry identify add on development platforms, complementary to the CRM solution as being the ideal solution for solving every historical challenge in the CRM solution space. In situations where the completeness of the CRM model, or its industry support, is not adequate enough, vendors have sought to introduce these platforms to fill the gap, but rather than follow the Industry Standard approach to delivering application platforms, they seek to introduce a level of proprietary coding that makes it harder for customers to move to other solutions or platforms in the future. DIY CRM? Using a development platform to develop required functionality for the CRM platform was an approach taken by Siebel in the early days, but this was soon discovered to drive up the TCO of CRM projects. With some SaaS CRM vendors, self building your CRM solution is clearly a requirement as essentially the product does not meet the needs of the industry or business when it is initially delivered as a service. The customer is provided with a tools framework within which they are expected to leverage custom objects to configure basic CRM functionality in order to bolster the breadth of the product. Whilst initially this may be seen as a mandatory requirement for business flexibility, it typically falls a lot short of delivering on the business needs as huge expense is required to analyze requirements and develop the solution with typically high levels of failure. It is often understood that re-engineering already existing flawed processes does not always deliver business value, but this typically becomes the underlying trend of self build CRM solutions. The Oracle CRM On Demand model which leverages all of the rich data model and object services available from within the original Siebel market leading CRM platform drives instantly higher levels of business value because the Siebel CRM On Demand platform provides such a wealth of functionality out of the box. Middleware approaches and integration is always seen as a complex, risky and costly problem to solve. It is recognized that so many times, traditional approaches to integration and software development have clearly imposed such huge cost cycles and maintenance that their must be a better way. Positioning these hosted development platforms as also being the answer to the integration challenge can introduce even more risk and duplication into the work being undertaken by the CRM project team. Firstly, hosting introduces a distance factor to the access and assembly of data for integration, which experience has shown us is better facilitated locally for performance. Latency is the bane of nearly every integrated project, and relying on formulation and aggregation of data having to take place across the internet within an environment which cannot be tuned for specific processes, risks huge performance issues. With integration, the key to cost reduction is re-usability. Developing integration code which is purely targeted at the CRM platform and typically proprietary in nature tends to make it less re-usable, driving up needless duplication. A platform as a service and its utility bill approach to payments may initially provide some costs savings over traditional middleware purchases, but quite often finance packages and use over time means that in the end they are more expensive. It should be recognized that in essence, whether the platform is hosted or not plays such a small part in the overall huge costs incurred for these types of projects that it is an irrelevant factor. For small companies with little existing infrastructure and small volumes of integration, clearly these hosted development platforms can provide value. Within the Enterprise business space however, better alternatives exist that take advantage of existing investments, leverage new techniques, industry standards and approaches to ensure costs are reduced and the risks managed. This paper identifies the advantages and disadvantages of each integration approach available today, presenting some of the architectural thinking that should be considered when deciding how best to integrate with a SaaS CRM platform. It identifies how the use of open, industry standard tools and approaches can drive down the cost of integration and also how Oracle‟s Application Integration Architecture, one innovative solution to application system integration, addresses reducing the research and development efforts and costs associated with this, one of today‟s, most critical business problems. Consuming Customer Data Information within Oracle CRM On Demand Before we look at the alternative approaches to integration we should understand the functionality that exists within CRM On Demand for consuming information from other systems in order to deliver a comprehensive CRM environment to its users. Each SAAS CRM vendor has a series of integration constructs and configuration options which are similar in nature. Although it is only fair to conclude that as CRM On Demand‟s heritage combines: the market leading knowledge from Siebel on integrating into a CRM Platform, with the No 1 integration and middleware experience from Oracle; its ability to address these challenges is seen as market leading by many! As an overview, CRM On Demand allows you to achieve the following typical integration requirements: Build Mashups within CRM on Demand of multiple data sources Build Mashups of CRM on Demand data within external web sites like Google or private portals Make calls out to external applications Provide complete Create, Read and Write access to data via SOAP Notify external applications of events in CRM On Demand Integrate CRM On Demand with Outlook and Notes Integrate to desktop products such as Word and Excel Integrate with applications on the desktop Take advantage of prebuilt integration tools and methodologies Mashups In web environments the term mashup refers to a web application that combines data from more than one source into a single integrated tool. In CRM on demand this can involve the combining of various sources of customer information to deliver a comprehensive view. Content used in mashups is typically sourced internally for data such as account records, transaction history, asset details or from a third party for business information from sources such as Yahoo and Reuters via public interfaces. Methods of sourcing content for mashups include Web Service API‟s, Web feeds (e.g. RSS or Atom), and even screen scraping. Public examples of mashup environments include: Yahoo, Amazon, eBay, and Google. Leveraging this concept and the power of mashups within the CRM On Demand environment simplifies the integration challenge, quickly delivering value to the end users. Mashups within CRM on Demand are differentiated from simple embedding of data from another site to form compound UI‟s. A CRM solution that simply embeds a map or a YouTube video for instance is not a mashup. CRM On Demand supports accessing and delivering mashed up information in context and relevance, increasing the value of the capability and the information delivered to the user. For example if you embed a Google Map within CRM On Demand, you can pass context and data that enables the map to highlight a customer‟s locations, or the location of all the customers for a particular agent. However, the power of mashups is not just within the inbound integration arena with CRM On Demand. Easy administration tools enable you to identify elements of information from the system that you wish to display within an external application and generate the code your developers would need to embed in order to achieve the results. Where the content being integrated within the CRM On Demand would benefit from a larger amount of screen real-estate, application screens can be embedded on their own tab to blend them seamlessly into the CRM dashboard, ensuring their role as part of the overall process is seen as complimentary to the entire user experience. Supporting RSS Feeds RSS, or Really Simple Syndication is a family of standardized Web feed formats used to publish frequently updated information such as blogs, news headlines, rich media and other types of data. CRM On Demand includes a native applet type for reading and aggregating RSS feeds. By using multiples of these applets onto a CRM screen it is easy to provide an aggregation of a number of different RSS sources into the world of CRM, relevant to a customer, your business or your competition. Making Calls out to an External Application If, as part of a particular business process, the flow needs to move over to another application, then this is achieved in CRM On Demand using a simple control known as a Web Link. Business reasons for this may be because their is a need to interact with the child applications menu‟s and process controls and their interaction would seem alien within the CRM On Demand framework. For this integration concept it is easy to pass context as control is passed, identifying if you want the child application to open its own window or take over the current one. Typical uses of this would be to query a back office platform for a list of the latest transactions on an account or to obtain customers latest orders. Web Tabs, Applets, and Links are all useful for triggering processing in an external application and CRM On Demand uses Web Service standards such as “REST” URLs from external applications to support this requirement. In many cases the called application can then perform specialized processing based upon the URL call. If the called application requires additional data that cannot be included in the URL call, then typically the best practice is to have the called application retrieve any additional information it needs from CRM On Demand via the web service API‟s. These approach subsequently can support any process updates required to the CRM data as part of the integration calls. Examples of processes that drive this type of interaction are: 1) Synchronize new account creation between applications: The initial customer information is entered into CRM on Demand and the create account link pressed. The required call is made to the back office system and the process initiates to create the account. Additional customer data is requested from CRM to complete the transaction in the back office system and the Account Id is updated back to CRM On Demand at the end of the process. 2) Trigger Quote to Order processing: The request to raise a quote and order is passed to the appropriate systems which in turn request customer and product information from the CRM On Demand system in order to process. Quote and Order status is often updated within the CRM On Demand system over time to maintain the customer profile and enable the agent to be informed at all times. The strength of CRM On Demands Web Service support CRM On Demand has full capabilities to generate WSDL for configured records not just out of the box data. The API‟s support Full Create / Read / Update / Delete (CRUD) access to all data records and provide support for handling Complicated Parent-Child relationships. Access to the Web Service API‟s is session-based for security and performance, requiring authentication with a valid sign in id and password. Transmission of information is then secured over HTTPS, leveraging full support of standards-based XML/SOAP message formats, with all communications encrypted with Secure Sockets Layer (SSL) minimum 128-bit encryption. Having to authenticate access to the web service ensures that all data visibility and access is the same as if the user was accessing through the UI. Further validation is made with permissions being re-checked every time data is accessed to ensure visibility and security rules are maintained at all times. These rich API‟s do not just support CRM transaction data such as customer data, activities etc, but also provide support for user data to allow for example, automated provisioning of new users, deactivating old users, and monitoring usage, password setting, etc. Finally a full audit trail of web service calls is available to the company administrator in order to monitor activities and transactions. Outbound Event Notification CRM On Demand includes a mechanism that enables the application to message external applications about events. For guaranteed delivery, the events remain on the queue until they are received by the external application, ensuring no loss of events if the external application is down. The notification events are generated by the CRM On Demand workflow environment and can be based upon both events (e.g., record updated) and conditions (e.g. order status = “committed”). One advantage of this approach over and above solutions where a synchronous call is made to a company‟s internal environment from the SAAS platform is that it does not require the customer to open a hole in their firewall for CRM On Demand to gain access. The precise mechanism used enables the customer‟s application or middleware server to make a web services call to CRM On Demand to pull events from the queue. The events may then require additional requests to the web service API‟s for more information depending on the type of transaction/action required. Whilst in this section we have detailed how easy it is to consume, post and retrieve information from the CRM On Demand solution this typically only represents some 10-25% of the integration challenge. More often than not the complexity and challenge comes from obtaining, cleansing and formatting the information from existing corporate solutions in order to present it to CRM On Demand, or translate CRM structured data back into a corporations existing platforms. The following sections cover the choices and architectural considerations that should be reviewed when deciding on the various approaches to follow in order to address this challenge. Approaches to Integration for SaaS CRM Platforms In today‟s emerging marketplace for Software as a Service, we recognize the emergence of two basic approaches to formulating and delivering information for SaaS CRM data integration, namely; Data formatting and functional control is hosted off-premise (External) Data formatting and functional control is hosted on-premise (Internal) The decision to which approach is most appropriate for an organization is typically driven by the following considerations: The characteristics of the enterprise The volume of data and complexity The security profile of the information The availability of existing IT assets and the desire for re-use The required use and re-use of data and function within other processes and systems System performance Cost and Complexity Technically it is possible use both approaches (External/Internal) for SaaS data integration. But once an enterprise reviews the considerations, the decision typically polarizes the choice to one approach. External Hosted Development Platforms Scenario: Data is required for a UI or CRM business process. In a distributed environment where customer data is distributed across the enterprise, the challenge exists in formatting data for use in the UI or business process. This is especially required where existing services only exist to extract data streams. Typically these data streams need to be submitted for further processing in order for the data to be assembled in a logical sequence that: matches the CRM application goals and is correctly formatted for the UI or process. In this example, a request for customer data from an existing on-premise system is initiated from a SaaS CRM system using an Externally Hosted development platform. As procedural logic flows and constructs on the development platform are being used to format the information the request typically has to route through the following process: 1. Internal data UI Page is built and sent to browser 2. Request for external data instantiates request to external development platform 3. External development platform calls for required data from target system(s) 4. System(s) respond with data streams 5. External development formats data streams into UI layout and presents back to requesting UI browser It is clear that this approach requires relatively high volumes of global network traffic, and therefore has the potential for issues to arise with latency and response times. This approach also typically requires firewall policy changes and exposes volumes of corporate data across the internet. As further functionality is developed, records in context as a user scrolls through a list, or (Create, Read, Update, Delete etc) then these factors are further exacerbated. There is an additional complication associated with some of these hosted development platforms based on the fact that although, most of them will claim to be Java, typically they are proprietary derivatives of Java development platforms that are deficient in capability and have limitations requiring work-a-rounds. A non-standard based approach requires additional training, specialized developer resource, which all contributes to driving up costs and forcing vendor lock-in. An external development environment is strategically suited to organizations that: Have limited investment in infrastructure and in-house development strategies Have minimal functional and data requirements that can be easily maintained during vendor upgrades Do not want to share integration assets (data & function) with other corporate solutions Hosted Middleware Platforms from Oracle There is however an option to have Oracle host a middleware development platform for our customers alongside the CRM On Demand operations environment to achieve the delivery of a “Platform as a Service.” Our Austin Data centre has years of experience in hosting these capabilities for our customers alongside its ERP, HCM and SCM hosting services. As you will find later in this document, Oracles technology for Integration and Middleware processing is based on Open Industry Standards, so this would add considerable benefits to enterprise companies considering this type of requirement, however the data, performance and suitability issues already detailed with regard to this approach would still be a concern. Company evaluation teams should be cautious of this approach when the majority of back office solution platforms that need to be interacted with exist within the customers own organization and firewall. Internally Deployed Development Platforms The same example is used for comparative illustration: Scenario: Data is required for a UI or CRM business process. In a distributed environment where customer data is distributed across the enterprise the challenge exists in formatting data for use in the UI or business process especially where existing services exist to extract only data streams. These data streams need to be submitted for further processing in order that they are correctly formatted for the UI or process. A request for customer data from an existing on-premise system initiated from a SaaS CRM system has to route through the following process: 1. Internal data UI Page is built and sent to browser 2. UI instantiates a Service call to an internal web based data provider service 3. Internal service responds with formatted content – browser displays content This approach minimizes global network traffic, and bypasses external latency and network performance issues. As CRUD functionality expands, the development environment does not introduce significant further complexity when compared to an external environment. This is especially valuable as an argument when existing integration assets can be and should be used (e.g. IBM Websphere, Oracle Fusion etc…). Significantly, this approach does not expose high volumes of corporate data to the internet and so carries a proportionately reduced risk of exposure and data leakage. Oracle CRM On Demand recommends and adopts the internal development environment approach as a recommended method for preparing and delivering information for integration into our applications. This approach is based on our fundamental objective that the Oracle CRM On Demand platform has been tailored to meet the demands of customers with sophisticated CRM requirements and with demands and characteristics above and beyond those of SMB, so local aggregation of data makes logical sense and can typically leverage existing assets. Additionally Oracle includes a framework for consumption of raw data content based on Industry Standard solutions: RSS sources including: o Web development environments e.g.: PHP o Middleware solutions egg: Websphere o RSS Generators e.g.: RSSBUS Google Gadget or Yahoo Widget technology to: o Frame data in a rich UI component framework o Consume data outside of CRM On Demand If existing data feeds are already structured for web consumption in an existing page, applet of portlet format, then CRM On demand Web applets and Web Tabs Integration framework allows easy use within the application. Existing Assets Large organizations typically have already decided on a strategic approach to enterprise integration and have made significant investments both in infrastructure assets and people. Consequently there is a strong desire to maximize the use of these integration assets and to develop an organizational consistency using these tools. A strong re- usability model is often created based on existing integration tools and the best practice knowledge and organizational expertise. The introduction of an external development platform challenges the re-usability model fundamentally by introducing yet another integration solution into the organization. A more appropriate approach and one that follows both organizational strategy and re-usability models is to develop open standard based integration services on the strategic middleware already adopted by the enterprise, allowing consumption and re-use across the enterprise. Middleware Data Level Integration SaaS puts additional demands on enterprise integration, by extending the scope of data that can be sent over the corporate firewall. By leveraging existing middleware solutions within the Enterprise, organizations can create an architecture that minimizes this requirement. There are two approaches to integration with middleware, each with a capability maturity that underpins the value they can deliver to the business. Using an SOA and re-usability model within existing Middleware environments will deliver additional value to the CRM model as well as other domains of the . CRM On Demand Recommended Practices: Integration, The Oracle Advantage An Oracle White Paper Updated 9 /13 /2 011 Recommended Integration Practices for Oracle CRM On Demand. Consuming Customer Data Information within Oracle CRM On Demand Before we look at the alternative approaches to integration we should understand the functionality that exists within CRM On Demand. complementary to the CRM solution as being the ideal solution for solving every historical challenge in the CRM solution space. In situations where the completeness of the CRM model, or its