Skip Navigation
Expand
How are the popular answers getting displayed in the customer portal?
Answer ID 10127   |   Last Review Date 03/18/2019

How does the TopAnswers standard widget display the popular answers in the customer portal pages?

Environment

Oracle B2C Service, All releases

Issue

After moving from May 2016 to May 2017, I noticed that the Popular Answers results in the customer portal no longer coincide with the results I get in the console standard report ID 162. It appears the means of displaying the Popular Answers in the customer portal changed between these two releases.

Resolution

The standard TopAnswers widget logic is based on a Knowledge Foundation (KF) API request launched in the back-end, each time the Popular Answers section is displayed in the customer portal. In older releases, such as May 2016, this coincides with the results retrieved via standard report ID 162, however this is no longer the case for releases starting with May 2017 onward.

The KF API request responsible for returning the most popular answers for a specific site is the GetPopularContent request.

The GetPopularContent request will return the answers based on the scoring logic described in the articles below:

Answer ID 1346: Comparing the weight, score and computed score
Answer ID 2816: Answer Ranking and Scoring

In order to check if the data returned by the customer portal is the correct set of data i.e. the full list of popular answers for that specific site, one must perform the following tests:

1. Use any webservices API testing tools (SOAP UI, for instance) and load the WSDL in the format https://<host_name>/cgi-bin/<interface>.cfg/services/kf_soap?wsdl

2. Use an account with KF API permissions to run the StartInteraction request, that will retrieve the interaction ID, necessary to perform all subsequent KF API requests:

----------------------------------------------------------------------------------------------------------------------------------------------

<?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
    <s:Header>
        <h:ClientInfoHeader xmlns:h="urn:messages.ws.rightnow.com/v1" xmlns="urn:messages.ws.rightnow.com/v1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
            <AppID>Sample KF Client</AppID>
        </h:ClientInfoHeader>
        <VsDebuggerCausalityData xmlns="http://schemas.microsoft.com/vstudio/diagnostics/servicemodelsink">uIDPowfN8lOn2udHmZwG/+2xwtkAAAAAg9DLWDdXBkWQLVJ21UC8sOya2j2A15VMowQwelJ6ztsACQAA</VsDebuggerCausalityData>
        <o:Security xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" s:mustUnderstand="1">
            <o:UsernameToken u:Id="uuid-f06c87fc-0f19-4421-b29a-6e65949991d3-1">
                <o:Username>comland</o:Username>
                <o:Password>Connect1</o:Password>

----------------------------------------------------------------------------------------------------------------------------------------------

3. Use the SessionToken returned by the StartInteraction request to run the GetPopularContent request as below:

----------------------------------------------------------------------------------------------------------------------------------------------

<?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
    <s:Header>
        <h:ClientInfoHeader xmlns:h="urn:messages.ws.rightnow.com/v1" xmlns="urn:messages.ws.rightnow.com/v1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
            <AppID>Sample KF Operations</AppID>
        </h:ClientInfoHeader>
        <VsDebuggerCausalityData xmlns="http://schemas.microsoft.com/vstudio/diagnostics/servicemodelsink">uIDPo6QI3GjqY4tIm3XKo/9HCAkAAAAAjKWgs+WbtkO79bIDgJ23JiKQzqUSLnNJmdaEUQnfwR0ACQAA</VsDebuggerCausalityData>
        <o:Security xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" s:mustUnderstand="1">
            <o:UsernameToken u:Id="uuid-9baa4c29-9617-4770-9f3f-c9efae06331b-1">
                <o:Username>comland</o:Username>
                <o:Password>Connect1</o:Password>
            </o:UsernameToken>
        </o:Security>
    </s:Header>
    <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
        <GetPopularContent xmlns="urn:messages.ws.rightnow.com/v1">            <SessionToken>aUGDDKo~VZkcOvgpPb1O9gte7W0tifVBC5rU8wTsxBclpe8iNOUq5bHwgSPjVJ_pcK3AqFIoeE4v~ap_gyDBRLugQoUO9V4w6SRWsdc~GoMcXFHPfIAIGJi0t2qPbKiBBEEMr8WQsg1Tc!</SessionToken>
            <ContentSearch>
                <Filters xmlns="urn:knowledge.ws.rightnow.com/v1">
                    <ContentFilterList xsi:type="ServiceProductContentFilter">
                        <ServiceProduct>
                            <Name xmlns="urn:base.ws.rightnow.com/v1">Replacement/Repair Coverage</Name>
                        </ServiceProduct>
                    </ContentFilterList>
                </Filters>
                <ValidNullFields xmlns="urn:knowledge.ws.rightnow.com/v1" xsi:nil="true"/>
            </ContentSearch>
            <Limit>10</Limit>
        </GetPopularContent>
    </s:Body>
</s:Envelope>

----------------------------------------------------------------------------------------------------------------------------------------------

4. Check if the answers returned by the later request are the same as those displayed by the TopAnswers standard widget via the Popular Answers section of the customer portal. If they are, then the widget is working correctly and returning the correct set of data. If they are not, a request must be submitted to the Oracle B2C Service support department, to further look into the issue.

Notify Me
The page will refresh upon submission. Any pending input will be lost.