2

I've noticed an issue that seems to be specific to the service console user interface.

I have a VF email template on the case object. Included on this email template is a link to the case record, which I achieve using the following code from this thread.

<apex:variable var="url" value="{!LEFT($Api.Partner_Server_URL_140, FIND(".com/",$Api.Partner_Server_URL_140)+3)}"/>
<apex:outputLink value="{!url}/{!relatedTo.Id}">Case Link</apex:outputLink>

I've tied this VF email template to an email alert triggered by a case workflow rule. Those work correctly regardless of UI used.

However, the 'Case Link' generated from the template seems to be different in the resulting email, depending on whether you were using the regular SF UI or the Service Console UI.

When I make the necessary changes to a case to trigger an email alert within the standard UI, the case link generated from the template works fine. The actual URL behind the 'Case Link' text in the email is

https://na29.salesforce.com/5003400000niUibAAE

But when I make the same changes on the same case in the Service Console, the URL looks like this:

javascript:srcUp('https%3A%2F%2Fna29.salesforce.com%2F5003400000niUibAAE%3Fisdtp%3Dvw');

Which throws security errors with most email clients and prevents it from opening (client security probably blocks the javascript).

Seems like this is directly related to how URLs to console viewed records differ from the standard. My question is, how can I provide a link to my case record that works in both the console view and the standard UI, and can be accessed by both internal users and Customer Community users?

(Edited for additional info)

2 Answers 2

4
+100

Don't use apex:outputLink, but create a hardcoded link like this

<a href="{!url}/{!relatedTo.Id}">Case Link</a>

You're only using this VF for the email template, right? Then this should work. If you need a link that opens a tab in the console if available, but opens the normal way otherwise, you'd have to go like this:

<a href="{!url}/{!relatedTo.Id}" onclick="return (function() { if(srcUp) { srcUp('{!url}/{!relatedTo.Id}&isdtp=vw'); return false; } })()">Case Link</a>

Basically, on click, it runs some Javascript that checks if the srcUp function exists, and if so, uses it to open a new tab and returns false to prevent the normal click behaviour. I have not tested this but it should work...!

The isdtp=vw parameter that we add to the URL is used in the Service Console to indicate that the page should be rendered without the tabs and sidebar.


Edit: if you want to make this re-useable, you could create a component like this:

<apex:component>
    <apex:attribute name="link" type="String" description="Where to link to" required="true"></apex:attribute>
    <apex:attribute name="text" type="String" description="The text to display in the link" required="true"></apex:attribute>
    <a href="{!link}" onclick="return (function() { if(srcUp) { srcUp('{!link}&isdtp=vw'); return false; } })()">{!text}</a>
</apex:component>
3
  • Yup, it works, thanks! Bounty is yours. 'Bonus' question: with your method, the link now works, but takes me to a standard UI view of the case in both scenarios - is there a way to create a link that opens the record in the console UI?
    – smohyee
    Mar 17, 2016 at 21:29
  • 1
    Ah, I was waiting for that question ;-) Yes, you can do that. I've added it to the answer! Thanks. Mar 18, 2016 at 7:03
  • 1
    Oh, you're good. You're very good.
    – smohyee
    Mar 24, 2016 at 15:06
1

Do you have access to this Trigger? If so, could you provide a snippet of the code which sends the email after grabbing, and setting the template, please?

2
  • Hi James. There isn't a trigger involved. Rather, I'm using workflows and email alerts with visualforce email templates. The code snippet I posted was from the VF template. I could post more if you like.
    – smohyee
    Mar 17, 2016 at 20:17
  • And just to clarify the situation: the workflows are working fine, both when in the console UI and the regular UI. I'm getting the proper emails in both cases, the only difference is the 'Case Link' part of my email.
    – smohyee
    Mar 17, 2016 at 20:19

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .