Agent Desktop

Get Involved. Join the Conversation.

Comments

  • Sebastiaan Draaisma

    Added functionality (IP address) and made it hidden through an invisible div as hiding the text field prevents data from being sent (widget info).

    <div id="item" style='display:none'><rn:widget path="input/FormInput" name="Incident.c$browser" table="incidents" hide_on_load="false"/></div>

    Complete script

    <?php
                    $browser = $_SERVER['HTTP_USER_AGENT'];
                    $ip_address = $_SERVER['REMOTE_ADDR'];
                    if (array_key_exists('HTTP_X_FORWARDED_FOR', $_SERVER)) {
                    $ip_address = array_pop(explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']));
                    }
                    ?>
                    <div id="item" style='display:none'><rn:widget path="input/FormInput" name="Incident.c$browser" table="incidents" hide_on_load="false"/></div>
                    </script>
                    <script type="text/javascript">
                    function setValue() {
                    document.getElementById("rn_TextInput_13_Incident.CustomFields.c.browser").value = "<?php echo $browser.', '.$ip_address; ?>";
                    }
                    window.onload = setValue;
                    </script>

    See attached ask.php
    The only other thing to make this work is to create a custom field (text area) for incidents that you call browser
    Incident.c$browser

  • Sebastiaan Draaisma

    Hi Sristy

    I had a spare moment and just build you a working example (see attached ask.php) based on the following code:

    <rn:widget path="input/FormInput" name="Incident.c$browser" table="incidents" hide_on_load="false"/>
                    <script type="text/javascript">
                    function setValue() {
                    document.getElementById("rn_TextInput_13_Incident.CustomFields.c.browser").value = "<?php echo $_SERVER['HTTP_USER_AGENT']; ?>";
                    }
                    window.onload = setValue;
                    </script>

    You just need to hide the field, it's just an example and there might be other ways.
    You are then able to use the custom field in business rules, workspaces and reports and use some custom scripting to report on individual details

    ask.php (2KB)
  • Sebastiaan Draaisma

    Hi Sristy.

    It is only possible to retrieve this information from the customer portal (CP), through a customization on the CP that captures this data into a custom field that you use in your console as the data you want is not available out of the box.

  • Sristy Arya

    Hi,

     

    Thanks for the answers , but I wanted to know this from console & not portal .

    Thanks

  • Sebastiaan Draaisma

    Hi Justin.

    A report is indeed an option. There are however some downsides:

    • The report object can not be adjusted in heigth (especially noticable when having a single row report)
    • These fields are not available for inline editing which would only allow you to show the fields without the ability to change them.

    I have no experience with desktop add-ins (I should expand my knowledge on this) :-)

  • Justin

    you could do it with a report, each of those items is reported seperatly (contacts.city, contacts.postal_code). While a report object is somewhat clunky it being reportable makes it something you could likely add easily as a desktop addin. 

  • Sebastiaan Draaisma

    Good question Muthulakshmi.

    I see the point you are making. To overcome this you could create your own SLA function which would allow for more dynamic control. The idea here is to use a custom field that you set through a scheduled report. Report schedules can be as short as 15 minutes which equals the utility responsible for escalations. Through logic, filters and PHP you will be able to write a custom date time stamp into your custom field based on very specific criteria which you could use inside workspaces, rules, analytics etc, giving you a custom SLA. When the field gets updated through the API within the reports custom script, the business rules get triggered as the incident gets updated allowing you to perform aditional actions.

  • Sebastiaan Draaisma

    You are welcome Ajay.

    As for the reset you can create a reset script that runs every day at 00:15 through a scheduled report, resetting custom fields that are NOT NULL

  • Muthulakshmi Muthaiah

    Thanks for the quick response Sebastiaan Draaisma!!!!. 

    I am experiencing the below problems if I create two SLA's.

    For example, Group A has an SLA-A (2 hours resolution time with 24/7) and Group B has an SLA-B(2 hours resolution time with 8 AM to 9 PM working hours)

    The incident will be created at 8 PM and assigned to Group A then the SLA for the incident is SLA-A. At 9 PM, the Group -A transferred the incident to Group B so the SLA changed to SLA-B for that incident. So already one-hour left for that incident in Group A. Again the SLA reset for Group B and the SLA for the Group B is reset to 2 hours again from the incident transferred date and time. Suppose, Group B again transfers the incident to Group A means again the SLA reset to 2 hours.

    For the above scenario, it won't match the KPI for both the teams. So, what is the use to maintain the SLA's in this scenario and also the customer didn't get a response since the SLA won't breach for both the teams

    Is there any possible workaround to overcome the above problem? Kindly help on this issue else if it is not possible to do it the way I want. Kindly update me.

    Thanks in Advance!

    Regards,

    Muthulakshmi

     

  • Ajay Yadav

    Hi Sebastiaan,

    Thanks for the detailed explanation. now i have an idea to do this now i just need to think how to implement this, i want to restrict incident by date so if their are 10 incidents for today then i will block but tomorrow custom fields value should be zero. so 10 incident per day.

     

  • Sebastiaan Draaisma

    You could do this with 2 different SLA's in which you have different resolution times. You can then create 2 different escalation rules and an aditional rule that clears escalation if it get assigned to a different SLA

  • Sebastiaan Draaisma

    Hi Ajay.

    There are multple ways of dong this but one way would be the use of a custom field for contacts (integer 0 - 99)
    I just checked and because the custom fields for contacts are not available in the business rules THEN section for incidents you would need to either work with a custom process incrementing the custom field on incident creation or through a custom script.

    Custom processes are not my strongest point so I can't advice you on that but from a custom script point of view you would use the incidents.c_id in a ROQL query to access the custom field for that contact and increment the current value with 1.

    A business rule for incidents does have the custom field for account available in the IF section which will allow you to choose your action (do not create incident or change status to keep a record)

  • Ajay Yadav

    Hi Sebastiaan,

    Old post I know, but how this workaround will set up, i have similar requirement where i want to stop multiple incidents from same contact, we keep upload incident we want to make sure that people are not uploading file multiple times

     

  • Sebastiaan Draaisma

    Ah... that's a shame...

    I'm not sure if you are able to do this with custom objects and if you have any left in your contract.
    An alternative may be to look at which custom fields are no longer required or which custom fields you can merge into one.

    A custom text/integer field can sometimes replace several yes/no fields when using a binary aproach.

  • chidambaram CT

    Hi Sebastiaan,

    Total no of custom fields reaches max limitation. We can't create anymore custom fields.