877.703.4488 info@cloudmybiz.com
Tip of the Week – Use Custom Buttons to Save Your Sales Team Time

Tip of the Week – Use Custom Buttons to Save Your Sales Team Time

Speed and efficiency are essential for just about everyone using Salesforce. Whether you are pursuing a new sale or just trying to get back to a client, you need to move quickly and not get bogged down with multiple records and manually populating fields. Keeping logs of calls is a common practice that, while important for metrics and historical knowledge, can be a little inefficient. However, we have a solution for that! All you have to do is use the following URL hack as an example to create a custom button that will automatically create a “Left Message” task record with the information you need pre-populated.

/00T/e?followup=1&title=Call&retURL=%2F{!Lead.Id}&who_id={!Lead.Id}&what_id={!Lead.Id}&tsk5=Left+VoiceMail&tsk6=Left+a+voicemail+for+{!Lead.Name}&tsk5_fu=FU+VM+w+{!Lead.Name}+from+{!Lead.Company}&tsk4_fu={!TODAY()+2}

For a step by step guide on creating custom buttons using URL hacks, click here! Just follow those steps, using the new code above and streamline your process!

-Ryan and the Salesforce Guys

Tip of the Week – Dynamic Report links are one of the coolest tools in Salesforce

Tip of the Week – Dynamic Report links are one of the coolest tools in Salesforce

Reports are an awesome tool in Salesforce. In a matter of minutes, you can filter, group, and summarize your data in countless ways to give you exactly the information you need and reorganize it in seconds. But let’s say your team constantly needs to see a very specific Report based on information from a record. Maybe you want to quickly see how much revenue is being generated by accounts in the same State as the one you’re looking at, or what Cases have been opened by people from the same company while you’re working on a support ticket. Your team could all constantly update the same Report or you could create an individual Report for each circumstance, but that means slowing down the process or filtering through thousands of Reports. Wouldn’t it be easier if you could just have one Report that was smart enough to always give you the information you need right now? Well, you can with dynamic Reports in Salesforce!

This is the quick and dirty guide to creating dynamic Reports for those of you with too little time in your day. You’ll probably want to grab a cup of coffee like you did when you read our URL hacking guide, but know that this is only skimming the surface of what you can do with dynamic Reports.

So, start off by creating a Report – we’ll call our example Opportunities Won by State. Add all the fields your team needs. Next, add the filters you want to apply starting with the ones that need to be dynamic. To make your life easier, throw in values for those filters rather than leaving them blank so that you can see what the Report will look like when it works. In my Report, the first filter in my Opportunity Report (which should be dynamic) is Billing State equals CA, and the second (which should always stay the same) is Stage equals Closed Won. Save your Report to a public folder, and make a note somewhere of the Report ID (the 15 character code after salesforce.com/ in the URL – see example below) and the exact order of those filters.

https://na8.salesforce.com/00O60000003ioH4

Now, go to the object where you want to access the Report from (I want to see mine from Accounts) and create a new Custom Link. Be sure the Content Source is set to URL, then in the big box, enter a /, the Report ID, and a ?. It should look like this:

/00O60000003ioH4?

Almost done! Now comes the fun part. We need to tell the Report what parameter values (pv’s) to use. When I created my Report, my first filter, or parameter, was Billing State. So I’ll start by typing pv0= (note the 0 – Salesforce starts the count from 0 rather than 1 here). Next, I’ll select the merge field I’m looking for using the formula editor to insert, or if I know the API name, I can just enter it in the format of {!sObject.Field}. It should look like this:

/00O60000003ioH4?pv0={!Account.PostalCode}

Let’s say I had one more filter that I wanted to be dynamic. I don’t just want to see Opportunities from this State, but ones referred by the same Account. Just add an & (no spaces) in between each value and increment the number after pv:

/00O60000003ioH4?pv0={!Account.BillingState}&pv1={!Account.Referred_by_Account__c}

Once you’ve finished setting up the link, save it, then add it to your page layout. Go to a record and click on the link to test. Sometimes you’ll find that you may have mixed up your pv’s or that the filters are too restrictive or too open-ended and you’re not getting the data you need. If that happens, open up your Report in one tab, your Custom Link in another, and a sample record in a third. This will allow you to quickly make changes to your Link and Report and see the results. Once you’re totally satisfied, let your team know about the awesome new feature that’s already waiting on their page layouts and treat yourself to another well-deserved cup of coffee!

-Jared and the Salesforce Guys

Tip of the Week – Hack away at work with URL hacking in Salesforce

Tip of the Week – Hack away at work with URL hacking in Salesforce

Just a quick warning before we get started: this week’s post is going to get a little technical, but if you take a deep breath, cuddle up with your coffee mug (I prefer tea myself), and have Salesforce on the ready to try things out, you’ll be just fine I promise.

As your org grows and new fields are added, the time it takes users to enter new records creeps ever-closer to the point of “are you kidding me”.  You may want values like the Account automatically populated when a user creates an Opportunity from a Contact, but you’re going to have to bring in a developer who will spend hours on coding and testing, and you may still have to deal with future maintenance. The more fields, the more development hours. Your users are complaining about the effort to just drop a new record in the system, but the cost to make it easier just doesn’t make sense. Well, with a few custom buttons, you can chop away at that effort today, no developer required.

Ok, now, take a sip of coffee and open up Salesforce in a couple tabs before continuing. Ready now?

Go to the object you want to add the button under. For this example, we’re going to create a Case from the Contact record. Now, click through to any record (Contact here), go to the related list in question, click New, and copy the URL. It should look something like this:

https://na9.salesforce.com/500/e?retURL=%2F003E000000ppK6E&def_contact_id=003E000000ppK6E&def_account_id=001E000000oA7Ym

Now, in another tab, go to the target object (Case here) in the backend, go to Buttons and Links, and click “New Button or Link”. Set the name to “New” (or whatever you’d like), select “List Button”, under Behavior select “Display in existing window without sidebar or header”, and set Content Source to “URL”. Paste your URL into the big text box and strip away the first segment so that it looks something like this:

/500/e?retURL=%2F003E000000ppK6D&def_contact_id=003E000000ppK6D&def_account_id=001E000000oA7Yn

(Note: The “/500/” tells the system which object you’re working with. The “e” before the “?” stands for Edit, because you’ll be on an edit page.)

Now the real fun begins. Let’s first make this button dynamic by replacing the IDs we got from the original URL with merge code. For this, under Select Field Type, change it to Contact, then choose Contact ID. Replace the Contact IDs (big long string of numbers and letters here starting 003) with the thing the system spat out. Do the same for the Account (the piece starting 001):

/500/e?retURL=%2F{!Contact.Id}&def_contact_id={!Contact.Id}&def_account_id={!Account.Id}

(Note: The “retURL” stands for Return URL, which is where you’ll be redirected if you click Cancel. The “%2F” stands for “/”. Because adding a “/” in the URL would confuse your web browser, this code is needed. “def_contact_id” and “def_account_id” are the IDs for the Contact and Account which will be automatically populated.)

After that, we need to start dropping in the other fields you want to fill in. In my org, many of my Contacts have assistants who I need to be in touch with, so I have a lookup to Assistant (Contact) on both my Contact and Case records. To get that information in, I’ll open another tab, go to the Case fields in the back end, drill down to the Assistant field, and take the ID from the URL. Here’s the URL:

https://na9.salesforce.com/00NE0000005IhLH?setupid=CaseFields

And here’s the ID: 00NE0000005IhLH

Go back to your button code, add an & to the end followed immediately by “CF” then the ID you just found and then an =. Your new code will look like this:

/500/e?retURL=%2F{!Contact.Id}&def_contact_id={!Contact.Id}&def_account_id={!Account.Id}&CF00NE0000005IhLH=

(Note: The “CF” you place at the beginning of the field ID stands for Custom Field. This is how the system identifies that this is a field which needs to take a value.)

Again, use the Select Field Type and Insert Field dropdowns to select the Assistant Name and add that directly after the = sign. Because this is a lookup, we also have to set the ID. Copy the piece before the merge code (from & to =), then before the =, add “_lkid”. Now insert the Assistant ID. Your code should look something like this now:

/500/e?retURL=%2F{!Contact.Id}&def_contact_id={!Contact.Id}&def_account_id={!Account.Id}&CF00NE0000005IhLH={!Contact.Assistant__c}&CF00NE0000005IhLH_lkid={!Contact.AssistantId__c}

(Note: You will only need to add “_lkid” for Lookup fields. You can skip this step if you want to add something to a text or number field.)

Use Quick Save to save your button (this way you don’t have to click back in to edit it). Now go back to the object you want to start from (Contacts), click “Edit Page Layout”, scroll all the way down to the bottom and click edit next to the target object (Cases) related list section. At the bottom, you’ll see a Buttons section. Expand that, deselect the New button checkbox, then add your new button under Custom Buttons to the right hand side and click Ok then Save. When you get back to your record, click the New button, and if everything is right, it should work like a dream!

Because there are thousands of things you can do with this functionality, this post could go on for hours. For the sake of not giving you a migraine, I’ll let you play around with this for now. If you need any help, I’d recommend starting with Google or popping over to #askforce to get quality support in 120 characters or less. And don’t forget, you can always drop us a line.

-Jared and the Salesforce Guys