Policy Automation for B2C Service

Get Involved. Join the Conversation.


  • Jasmine Lee

    Here are some notes I sent someone else a while ago in answer to the same question...

    Guided Assistance and OPA

    • Both Service Cloud Guided Assistance and OPA Web Determinations can give the user (e.g. contact center agent, customer on a public website) a more interactive experience
    • There is some overlap in what you might do with Guided Assistance vs Web Determinations, but there are also many differences
    • Differences include: the type of logic which can be used, the way the logic is written, the data integration options and the testing tools available
    • In most cases, one of the two, i.e. Guided Assistance or Web Determinations will be more appropriate than the other

    Reasons you might use OPA instead of Guided Assistance

    • Logic is about making determinations or calculating values, rather than purely procedural
    • You want to pre-seed data from Contact (for logged in user) into interview flow in the Customer Portal
    • You want to create or update a Contact at the end of the interview flow from the Customer Portal
    • You want to trigger some action to happen at the end, e.g. generate an Incident
    • You want the policy model to be available outside of the Customer Portal
    • You want to assess multiple goals (decisions) at the same time
    • You need free text fields for some questions
    • You want integrated testing tools for testing the logic prior to deployment
    • You want a decision report explaining the outcome

    Reasons you might use Guided Assistance instead of OPA

    • Question flow is primarily procedural, rather than about making determinations – and only required within the Customer Portal or Agent Desktop
    • Question flow has minimal branching and simple logic – and only required within Customer Portal or Agent Desktop
    • Purpose is to direct users to knowledgebase articles. It is very easy to directly link Answers into various nodes in a Service Cloud Guide


  • Davin Fifield

    Sheri, assuming you get this using an actual phone number field, you will then need to use a custom JavaScript to format it as a phone number as you type.

    An easy way to trigger this JavaScript is to add something unique onto the end of the control label in the OPA screen definition, like "**MyControl". The JavaScript then looks for any controls with an associated label containing that unique text, and applies the changes needed.

    The JavaScript might be something like this:

    $(function () {
        function formatMyControl(src) {
        /* Put logic for changing the control contents in here */
        /* This is applied to any control on the page that has their label containing '**MyControl' */
        $("label:contains('**MyControl')").each(function () {
            var ctl = $(this).closest(".control-item").find(".control input");
            $(this).text($(this).text().replace("\**MyControl", ""));
            if (ctl.length > 0) {
  • Scott Berry


    Firstly I'll go into detail about why this isn't working: The OPA widget in Service Cloud generates a token for the logged in user to pass to OPA to securely request to load data at the start of the interview, but passes this to the iframe that gets embedded on the Service Cloud page. The interview proceeds within the iframe to the end, but the redirection acts on the iframe only, not the page hosting it, so the interview-generated redirect URL doesn't have access to the code which generates the security token (this is one of the main functions of the OPA Widget).

    So even if you were to construct the URL using the user's ID, it would still lack the token required to begin the second interview.

    I can only think of one possible workaround until we develop an in-interview way of generating these security tokens or alternate solution. Note: I haven't tested this idea, but if it's really blocking you then it's the only thing to try!
    The logic to generate the token is in the OPA Widget controller and helper php files provided in the example widget's documentation: if that same logic were used directly on a blank php page, it might be possible to redirect the user (within the iframe) to that page, the page then generates a new token for the user, and immediately redirects them to "interview 2"
    i.e. the Submit and Redirect button aims the iframe at [mysite].xyz/opa-redirect.php?policy_model_name=myInterview&initID=78
    that php page then generates the token along with the passed in interview and init ID, then redirects to that URL, generated using the existing widget logic.

    Without testing this myself I can't see any reason why this wouldn't work, except perhaps in older versions of IE (I think they do something like prevent iframes' access to cookies, and therefore the logged in user?)

    Hope this helps, and gives you food for thought.

  • Heike Lorenz

    SAVE THE DATE | Policy Automation Focus Group Events

    NA and LAD Dates Announced



    12th September Washington DC 

    14th September Toronto



    19th September Sao Paulo 


    Save the date and come join us!

    Please RSVP to heike.lorenz@oracle.com

  • Andrew M

    See this post. It refers to the CXDev Toolbox which is a great tool.

  • Fiona Guy

    Also the Student Benefits example project installed with Policy Modeling (Policy Modeling Project tab -> Open Example Project) shows an example of creating an incident - perhaps check that works in your environment and compare what is different in your own policy model.  

  • Fiona Guy

    Hi Muthu

    Without seeing your policy model it's hard to diagnose. Perhaps start by reviewing the list of mapping limitations, particularly checking that every attribute belonging to the incident is correctly mapped. 



  • Jasmine Lee

    Hi Shyam,

    Yes, you can change the input type of date attributes to a calendar picker: Input control types - Date

    This documentation link is to the latest version of OPA, but the calendar input is also in OPA August 2016.


  • Davin Fifield

    For the Feb 2017 release, we plan to add support for syncing Service Cloud Custom field menu item lists to OPA projects.

  • Jasmine Lee

    Also, if retrieving a Service Cloud list for use in OPA, it needs to be set up in OPA as a 'value list'.

    See these articles:

    Value Lists

    Use a Value List

    (Still only applies to out-of-the-box Service Cloud lists though)


  • Jasmine Lee

    Hi Joe,

    According to the OPA Nov 2016 documentation, only out-of-the-box Service Cloud lists can be retrieved in OPA: Oracle Service Cloud lists supported by OPA


  • Fiona Guy

    Hi Kurt 

    Looks like you are missing the rule to actually infer the thread entity instance. There's information on how to write these rules under the topic Write rules that infer relationships and entities. Specifically see worked example 2. 

    So in your example you need something like:

    the threads (the job site text) exists if

    the incident subject is known


    the job site text = the concatenation of ... (whatever you want your thread text to be. Make sure any attributes are already known - ie don't belong to the thread entity)

    Also note that you can't use html in the text string to format your text (although watch this space for improvements in this area). 

    I've separately emailed you a modified version which hopefully you can get working. Let us know how you go. 


  • Carl Elliott

    Are these questions being answered by the agent or by the customer online?   That would make a difference in how easy it is to capture them.   

    1. If you don't need them in fields just put the answers in the message thread or repurpose a message thread type and call it answers. This option doesn't give you many reporting options. 

    2. If the agent is filling out the info, I would suggest either a Custom Object or create survey questions.  The CO would be easier to report on.  

    3. If the customer is filling them out online, survey questions would be the easiest option to display and gather the feedback. You can do it with a custom object but it would take more coding to display and capture the info.  

    The main advantage for a CO would be you don't have to create the record for each incident.  If you are going to capture the info for every incident then system attributes or custom fields would be acceptable. 

  • Brad Tuckett

    This message is explained in the "Troubleshoot embedded interviews" topic in the OPA documentation, but most likely you need to add the server hosting this script as an authorised host (see "Configure security for embedded interviews")

  • Davin Fifield

    Suggested approach at the moment:

    * Use rules to infer 5 entity instances for e.g. "the attachment" entity

    * Put an entity container for that entity onto a screen

    * Add an upload control to that entity container (it will be mandatory by default)

    This will ensure you get at least 5 attachments, one for each of the entity instances.

    It doesn't prevent more than 1 attachment file for each instance.

    If you are saving the attachments to Service Cloud, it also means you will need to map the attachments onto a related table, instead of the main object.

    We have plans to provide more flexibility around attachments in a future release.