Ask Search:
Brad HoldenBrad Holden 
Ok I am sorry for being a complete newbie... I have spent the last year grappling with some very minor Salesforce development (on a part-time basis) for a small non-profit. I have learned a lot, but still have only placed a very tiny scratch on the surface! 
So now our Self-Signed Certificate is apparently expiring and I have NO IDEA what that means. Any googling of this quickly gets into going-over-my-head territory. Can someone please explain what I have to do and what is in danger of happening if I don't do it? Here's the message:

You have one or more certificates in your Salesforce org Tin Roof Global 00D6100000084nr that will expire soon. Review the list below and visit Certificate and Key Management from Setup to make an update.

I have gone to Certificate and Key Management and have downloaded the .crt file but am really unsure what I am supposed to do with it!

Thanks in adavance
Best Answer chosen by Brad Holden
Hey Brad,

There are few places where a sefl-signed certificate could be used.

1. Identify Provider - If you are using SFDC as IDP for Single Sign On. You can find it under Setup >> Administer >> Security Controls >> Identity Provider.

2. Single Sign-On Settings - If you are using SFDC as Consumer for Single Sign On. You can find it under Setup >> Administer >> Security Controls >> Single Sign-On Settings.

If your certificate is used in one of the above places, it is quite intuitive to edit this screen and replace the certificate.

3. Installed Packages / Connected Apps.
Some of the third party apps could use your Self-Signed Certificates (Environment Hub is an example).
You can look at them in Setup >> Build >> Installed Packages
I suggest you go through them one at time and find out if they use your certificate.

Connected Apps will be same procedure as above. But you will find the connected apps under Setup >> Manage Apps >> Connected Apps.

Hope this helps.
Greg ShawGreg Shaw 
I have a lightning component that uses lighting:textArea and was working last week but now that Summer '18 has been pushed to the sandboxes it no longer works. The error raised is:

Action failed: aura:if$controller$init [Definition does not exist on the client for descriptor:markup://lightning:textArea]

And the stack trace is:
Object.c [as kb]()@https://<instance>

The component still works in production which is on Spring '18. Anyone else having issues with lightning:textArea? Or is there some quirk that has changed?

Thanks, Greg.
Best Answer chosen by Ed ( 
Justin RichmondJustin Richmond
Found a good writeup about the cause of the issue (and potentially Salesforce's response to the issue) here:

Overall it would be good to change the case sensitivity so it is fixed when Salesforce eventually enforces.
Jessica GagnonJessica Gagnon 
We just rolled out Signal Sign On for my org. It now disables the user from Active Directory which disables the user from signing in to all our systems. However this does not deactivate the Salesforce user account which means I have an licence which could be freed up. Is there a way for me to automatically disable a user who has not logged in in the past 30 days? 
Best Answer chosen by Jessica Gagnon
Doug AyersDoug Ayers
There's a couple options. If you want seamless integration with your AD, you might consider purchasing Salesforce's "Identity Connect" add-on to keep not just active/inactive in sync but all the other user details (

For a more "free" approach based on a "not logged in within last 30 days" you might consider a scheduled batch apex job to automate this process.

Another option is to manually, once a week (or whenever) use a tool like Enabler for Excel ( or the Salesforce Data Loader to export active users with login date within last 30 days, do a quick excel change, then update the affected records.
Steven CabanSteven Caban 
I am trying to create an action in the process builder whereby a task is created and a reminder time is automatically chosen from a picklist field on the account page.
I simply want it to set the reminder for tomorrow at a specified time.
I would like to use AM/PM but I gave up and used the "15:00" format for the picklist instead.
I was able to muster up this formula on the account page which should be taken by the process builder:
+ TEXT(Best_Time__c) + ":00")

However the value returned is 5 hours behind the value I chose in the picklist.
I learned that the only way to return a DATE/TIME from a string is to use DATETIMEVALUE() but it does not accomodate timezone or daylight savings differences. How do I fix this? Is there a simpler way?
Please help me I am doing all the SF admin work for my own business.
Best Answer chosen by Steven Caban
Madhanprabhu ThangaduraiMadhanprabhu Thangadurai
Hi Steven,

Be aware of timezone conversion issues!!

Within the Salesforce application, dates & date/times are stored and managed in UTC (Universal Time Zone or Greenwich Mean Time).
Date and Date/Time field values are converted and displayed in the timezone specified in your user personal information settings. However, in a formula, NO TIMEZONE CONVERSION IS PERFORMED. This means, unless you happen to be in London, your date calculations will be off by the number of hours you are shifted away from GMT (and don't forget about daylight savings time!)

If you create a Formula to display a calculated Date/Time Formula value such as:

      TEXT(NOW() - CreatedDate)

the value displayed will be a UTC value and likely inaccurate for your time zone.

You will want to modify your Formula to adjust the Timezone value.  If you are 7 timezones removed from UTC, you should calculate the decimal value of 7 hours of a 24 hour period:

     7 * 60 minutes = 420 minutes

     420/1440 minutes in a 24 hour period = 0.2916

The resulting formula modification would be:

     TEXT((NOW() - CreatedDate) - 0.2916) (
Stephen PriceStephen Price 
I was wondering if it is possible to update fields from the Description field on Cases after a case is created through Email on Demand.  My use case is that I don't want to have to custom code an inbound email handler to do the exact same thing that the Email On Demand just to updates fields.  I have a custom inbound email handler created in the sandbox that works and strings out the email and updates the fields as needed, but I'm not sure how to write the test class for everything it does (add attachments, update the email object, etc.) and I have to use two rerouting rules in Outlook to route the intial inbound email template that strings the lines I want updating fields and any replies (since I receive string errors on replies since things are not in the same locations and I don't know how to code it to ignore stringing replies).  It would be simpler if I could just string the Description field and update the fields from there after the email is received, but I'm not sure how to write the Apex.

If anyone could point me in the right direction it would be appreciated.  From what little knowledge of apex that I do know, it would have to look something like this:

trigger ExtractEmailFields on Case (before insert, before update){
String[] emailBody = email.plainTextBody.split('\n', 0);
String Field1 = emailBody(0).substring(5);
String Field2 = emailBody(2).substring(7);

And then I'm not sure what I need to do next.  Also, as per the original part of the question, can I string the email body after it is received by the standard Email to Case On Demand function, or would I be stringing the Description field on the case.  As for the next part, I know I need to set the string value equal to the field name, but I'm not sure of the proper coding.  It should look something like:
if Case c = new Case();
c.Field_1__c = Field1;
c.Field_2__c = Field2;

I posted this question on the developer force forums over a week ago and there were no replies.  I'm not a coder and am trying to learn, if someone could help put me on the right path I'd be a happy admin.

Best Answer chosen by Stephen Price
Deepak AnandDeepak Anand
Give this a shot:

trigger trgr_CaseDescriptionPreFormat on Case (before Insert, before Update) {

    for(Case cas :{
        List<String> fields = cas.Description.split('\n');
        cas.State__c = fields[0].split(':')[1].trim();
        cas.City__c = fields[1].split(':')[1].trim();
        cas.Explanation_1__c = fields[2].split(':')[1].trim();
        cas.Explanation_2__c = fields[3].split(':')[1].trim();
        cas.Explanation_3__c = fields[4].split(':')[1].trim();
        cas.Explanation_4__c = fields[5].split(':')[1].trim();
        cas.Explanation_5__c = fields[6].split(':')[1].trim();
        cas.Name__c = fields[7].split(':')[1].trim();

Daniela SchmitzDaniela Schmitz 
Some time ago I voted on an idea, and since then I receive almost daily updates from other users voting on the same idea, but unfortunately nothing useful. So I would like to stop receiving these mails (on this specific idea), or stop following the idea. Any way to achieve this? On the idea I do not see a button to "unfollow".

Best Answer chosen by Daniela Schmitz
Pritam ShekhawatPritam Shekhawat
You can't unfollow specific Idea or unfollow email form specific idea You can upvote this idea here Ability to "Unfollow" an Idea

 but you can turn off for all ideas. Goto>Edit >Your Profile>In Notifications > uncheck this checkbox Notify me when people reply to my ideas and reviews
User-added image
Admin ADPAdmin ADP 

When I try to use the Apex Data Loader or another application such as Jitterbit to upsert data into fields on the opportunity, I get an error that says "ID value of incorrect type: [text from .csv file attempted to load into field]". I get this error in a lookup field that accesses the Account Name on the Account object. 

I am using the an external id called "reference_number__c".  I've researched this error on this forumn and elsewhere, but can't find an answer that works. Any help would be greatly appreciated.

Best Answer chosen by Moderator ( 
Aaron DeRanAaron DeRan
So you are trying to upsert a custom external ID field into the Account Name lookup field? Lookup fields must be populated by record IDs.

You will need to export your Accounts with Salesforce 18 character ID and your External ID fields. Then use VLOOKUP() to match the Account ID from Salesforce to the External IDs on your upsert file. Then match the Account ID column to the Account Name lookup field.
Eunice ParkEunice Park 
Hello, on the Case lightning page, I want to have certain fields made visible on the main Case Details component, and a different grouping of fields visible on a second Case Details component as a sidebar. Is this possible? It seems it is only pulling the default case page layout and doesn't give me an option to use multiple page layouts. I am hoping there is a workaround. Thanks.
Best Answer chosen by Eunice Park
Adam MarksAdam Marks
You would need to develop a Lightning Component that only shows a subset of fields on the side bar. At the moment there is no declarative solution for this. 
n an a 
I'm working on a migration project

and i and removing some of the fields in the new environment what happens when i migrate the information over and those fields aren't present on the page layout any more 
Best Answer chosen by n a
Kristopher EagerKristopher Eager
If you have removed fields from the page layout but still have date populated in those fields (or add new data), the data will still exist in the fields but won't be visible in the page layout. You can still run reports to access the data in the now hidden fields.
Roshan SahatiyaRoshan Sahatiya 
Omni-Channel Implementation  

I am in process of setting up Omni-Channel. The requirement is that when an Agent accepts a case, the case status should be updated to 'In Progress'.

I know that the owner of the case changes from the Omni-Channel Queue to the agent who accepts the case, however this event doesn't trigger any workflows rules or Apex triggers which makes field updates hard.
Have anyone experienced the same scenario or have gotten a way around it? Any ideas would be appreciated.
Thank you
Best Answer chosen by Roshan Sahatiya
Roshan SahatiyaRoshan Sahatiya
Ok, finally worked out around this to have a solution in place.

1. Create a field on case that stores Accept date and time.
2. Create an apex trigger on the AgentWork object that will populate the new field 'Accept date and time' on the related case. 
3. In the same AgentWork trigger, update the Case status to 'In Progress'.

Please note that the trigger on the AgentWork object should be an after update/before update context, otherwise the trgigger doesn't fire for the insert events.