Creating a Real-Time Decisions Project : Day 1

And for my next trick, I shall be .... building an Oracle Real-Time Decisions project. For anyone who didn't catch the posting on this blog earlier this year, Real-Time Decisions is a part of Oracle BI Suite Enterprise Edition, originally built by Sigma Dynamics and included as part of Siebel CRM, and now available standalone to add real-time marketing features to your business process or application.

Real-Time Decisions is effectively a data mining engine that takes on board details, for example, of a customer, adds to it some contextual information - what the customer has rung up about, how long they were on hold waiting for a call centre operator, what part of the year it is and so on - and comes up with a recommendation, or a product offer, that's most likely to help you meet your business goals.

For example, you may have a call centre application that is used by operators dealing with incoming customer service calls. A customer may call in who's in your "Gold customers" category, and normally you'd try and cross-sell them a savings account, or a bond or whatever. However when it turns out that they are calling with a complaint, and it's the time of the year when customer retention is particularly being focused on, Real-Time Decisions might actually recommend a free gift, or a bonus interest rate, or whatever. The key thing is that Real-Time Decisions builds up a predictive model of what offers are most likely to be taken up by particular segments of customers, and it comes up with recommendations that you can influence by emphasizing particular business goals - minimize transaction costs, retain more customers and so on. One of the main differentiators for Real-Time Decisions is that the process of picking a data mining model, and the building of that model, is completely automated meaning that you don't need statisticians to work out whether to use neural networks, bayesian models or whatever for your predictive model - RTD does all that for you.

I do in fact have a working demo of RTD which I use as part of the Business Intelligence Masterclasses that I run with Oracle University (next venues, Sweden, Hungary, Ireland and The Netherlands), but it's one that was put together by the RTD product management team and I want to now build one myself, to see how the process works. I have been through the RTD tutorial that you can access on OTN, but again there's no substitute for building your own demo, working through all the problems and so on, as opposed to working through a step-by-step tutorial.

So, on to the demo scenario. One of the first tricky points that I encountered was to come up with a scenario that matched how RTD works. RTD generally makes marketing recommendation based on a predictive model plus contextual information you feed through in real-time. For my example, I wanted to really avoid having to build an application as working with JDev, ADF and so on is a bit outside my area of competence, so one area I thought of was to add some decision-making capability to a BPEL business process, which would let me build up a workflow but avoid all the GUI development, etc. As the rest of my BI Masterclass is based around the Oracle SOA Suite Order Bookings BPEL process, the scenario I eventually came up with is around picking manufacturers for a customer order.

In the Order Bookings process, customers place orders via a Web interface which eventually make their way, via Enterprise Service Bus, to a BPEL process. The BPEL process then logs the order, gathers some customer information, verifies the credit card number and then gets to a point where it has to decide which manufacturer to use.

It does this by first of all getting quotes from two manufacturers, Select Manufacturer and Rapid Manufacturer, via a Web Service. Once the quotes come in, it chooses the one it wishes to use based on who provides the lowest quote. In my example, I'm going to replace this with an RTD "Inline Service" that takes the quotes, plus some contextual information and information on the customer and order, and selects the most appropriate manufacturer based on my business goals at the time - minimize cost, increase customer satisfaction, give us the greatest chance the manufacturer will accept the order an process it first time (as opposed to reject it, or end up delivering late). This scenario isn't too far from the RTD demo I currently have (which allocates satellite TV installations based on similar criteria), but it'll be integrated into the SOA Demo Order Bookings process, I'll have to figure out the plumbing myself, and I'll be on my own.

So, in the next posting, I'll be looking at what sorts of data and processes I'll need to get the most out of Oracle Real-Time Decisions.