Wednesday, May 15, 2013

Summer '13 Release Series: Global Actions

Define Global Actions

Global Actions, what are they? Global Actions are a new feature in Summer '13, allowing you to create records from a chatter post within SFDC. This is taking the Social Enterprise to a whole new level. You can create any object record right from your feed. Making your feed the one stop shop for all interactions.

How do I setup Global Actions?

Setup of Global Actions is actually very straight forward and easy to do. Here are the steps to doing so:
  1. First ensure that Chatter is enabled in your org. Go to Setup->Customize->Chatter->Settings and make sure the enabled Checkbox is set to "True" as seen here:
  2. Next Scroll Down on the same page and click the, "Enable Publisher Actions" this is what allows you to add/edit and update the Chatter feed buttons and icons:
  3. Now you need to create a Global Action. This is a new menu found under
    Setup->Create->Global Actions shown here:
  4. A Global Action as you will see can be made for any object, or it can be custom designed to do something extra that you wish. For this example, I will create a simple Global Action for Accounts:
  5. Now you are prompted to create a page layout. These are the fields that will be available in the chatter feed when the user clicks on your new button. Keep these to a small number as much as possible. ONLY use essential fields as seen here:
  6. Now that you have a page layout, you can set "Predefined Fields" if you may in fact know fields ahead of time based upon who would be creating these records. This can be done with system fields and formulas like a profile of the user creating the record.
  7. Now that you have setup your Global Action, you will need to add it to your Publisher Layout. Wait! What is a publisher layout? Well, it is a new menu added when you enabled Publisher Actions to your Chatter section in the Admin menu. Found at
    Setup->Customize->Chatter->Publisher Layouts. These are the actual layouts that are shown in the chatter feed. These can be customized on a per profile basis. This is HUGE, for enabling new buttons and controlling chatter a little more. Now you can control who can run polls, attach files, and even post to chatter based upon profile. Here we add the new button to the layout:
  8. Now check out what you've done in the feed:
  9. And as with any page layout you can change things up to make the new button more prominent for users to see:
Now you have officially setup Global Actions for your org. You can now go crazy by creating a new Publisher Layout for any and all profiles. You can create Global Actions for all of your objects or just a few that make sense. Have fun, and experiment with one more thing that you can do in Clicks and Not Code.

Friday, March 29, 2013

Dataloader.io

Dataloader in the Cloud

Are you a Salesforce.com Administrator? Do you use Linux or Mac? Are you frustrated with the options to use for Dataloader? Setting up WINE or using Lexiloader can sometimes can be frustrating because it was not made by Salesforce. Well kiss goodbye to your frustrations. 




Introducing Dataloader.io, dataloader.io is a tool that works 100% in the cloud, so irrespective of your operating system it just works. You can now do everything that DataLoader can do and more. Dataloader.io allows you to Save upserts and queries for later use. It also keeps a history of what you have done so you can refer back to it, in the event that something goes wrong.

  • Tired of scrolling through the list of Objects in your organization to find the right one? Dataloader.io has a simple search field to find it fast.
  • Tired of looking for the right field for data mapping? Dataloader.io has a searchbox for that too.
    • Not only that but if your fields in your CSV are close matches Dataloader.io will do a simple automapping for you.
    • Dataloader.io is great for mapping lookups for matching values. You can use the lookup field and access almost any field on the parent object to use as a match. This is GREAT! It means that you don't have to rely on Account Id's or things that might not make sense for the match. 
  • Best of all Dataloader.io makes it simple and easy to use.
This is just a short blurb, but I love this tool and I use it all the time.

Watch the video if you are still not convinced:


Friday, March 22, 2013

Email to Case

On Demand Email to Case

Salesforce.com offers two different ways to handle inbound email to case. By far the easiest to setup and manage is the On Demand Email to case. It can be setup with virtually no training, you don't need to know anything about SMTP or IMAP or POP or anything else that sounds like intimidating mail related lingo. You don't technically even need to have access to the mail server itself. Salesforce.com on Demand email to case has a few simple setup steps that are as follows:
  1. First go to Setup-> Customize-> Cases-> Email-to-Case and click the edit button
  2. Check "Enable Email-to-Case
    1. This will make the "Enable On-Demand Service" available below on the same page. Select that too.
    2. You can also determine if you want to allow HTML emails in the system or if you want case owners notified of new cases when they come in, but this is optional and not required at this time. If your not sure what this means, then take a look at the SFDC Email to Case documentation found here.
  3. Hit Save
  4. Now you will have a new section as shown here that will appear below the Email-to-Case settings: 
  5. Setup a Routing Address by clicking the "New" with the drop down set to Email2Case.
    1. You will now be prompted to give the address a routing name. This is what will appear on the outbound emails or replies from that address. You may want this to be something like, "My Company Name Support" 
    2. The email address is what is prompted for next. You can use any email address you want, so long as you have access to the inbox you can use it. Remember you don't have to setup email to case with a mail server, although it is not a bad idea to do so. The point is that you don't have to.
    3. Save email headers
      1. Why would you want this? Mostly this is just something that you can use to evaluate the original header of the email. This is typically used in setting up rules for spam control. If you are using a mail server, you might not care to use this option as the original message should contain this detail on your mail server.
    4. Accept Emails from:
      1. This option actually allows you to make your inbound email to case inclusive only. This is extremely powerful if you only want to accept email from one domain address or specifically one address. You can put things like, "gmail.com" or "justtesting@none.com" You may also use commas to separate input.
    5. You can have every email that enters the system create both a Task and a Case. This can turn out to be a lot of overhead and extra work, so I wouldn't recommend that you select this setting.
    6. Set a default priority for the case as it comes in from that email address. This is especially useful if you do any type of Quality of Service or (QOS) by email address. For example if you had a "SUPER IMPORTANT CUSTOMER SUPPORT" email alias, you would want that to have a case priority of HIGH while other cases maybe come in at LOW or MEDIUM.
    7. The next step seems silly, to select a case origin. You are setting up email to case, the origin is obviously email, right? Well, not in every case. What this allows you to do is setup an EXTREMELY inexpensive integration. In this way you can leverage email to case to handle emails coming from a different system. Then maybe your Case Origin would be "Customer Portal" or maybe its an internal case and the origin would be something like, "Finance". At any rate you have options.
    8. Select Record Type
      1. NOTE: This option ONLY appears if you have more than one record type setup already. But this can be handy if you want to have you assignment rules do different things based upon record type of cases as they come into the system.
    9. Click Save.
  6. You should have got an email from SFDC in the inbox of the email address that you specified.
    1. Click on the activation link. It should take you to a pretty page like this:
  7. Now that you have verified the email address and setup everything in SFDC your done, right? Wrong! How are the emails supposed to get to SFDC? You have to setup a forwarding rule in your inbox or on your mail server.
    1. There are many ways of doing this, but the basics are as follows. Now that you have your address verified in Salesforce, go back to Setup-> Customize -> Cases ->Email-to-Case and copy the "Email Service Address" that appears on the right hand side of your newly setup email address.
    2. Take and setup forwarding inside of your email client or mail server to forward all emails from the original address to your Email Service Address. This will make sure that when you send an email to the address it ends up in SFDC as a case.
  8. You're Done!
You have now setup Email-to-Case for on Demand. This is the best option for setting up email in Salesforce.com to do using Clicks and Not Code. The biggest limitation to this option is that there is a 5MB cap on attachments. Salesforce will not process inbound emails for on-demand email-to-case if the attachment exceeds 5MB. 

Salesforce also offers a second option for Email-to-Case, that allows for larger sized attachments, this can be done through just "Email to Case" but is NOT on demand. For instructions on how to set this up, please go here.  A word of caution with this option, it is NOT supported by Salesforce. If it is not working, it is up to you and your IT staff to figure out why. This also is a complex setup that will require more technical resources to be involved.


Friday, December 23, 2011

Salesforce Tools for Mac OS-X Mass Update Anything

Mass Update Anything


One tool that I have found, I cannot live without is Mass update anything. It is available on both Mac and Windows, although they are slightly different on each operating system. Mass update anything is a very simple app that allows you to specify criteria to pull down and update through the API. This is very nice for anyone without a lot of coding experience and just needs to make quick updates to a lot of records.

Here is a link to the force.com page.  Here are a few screenshots of the tool on OS-X.

Query Builder allows you to  select the object and dependencies that you want to select the information you want to update. This will format the query for you, so you don't need to know or understand SOQL to create it.

Thursday, December 22, 2011

Can I push a profile from Sandbox to Production?

Yes, pushing a profile from Sandbox to Production can be done. It is not possible to push through the Deployment Manager in Salesforce. The inbound/outbound change sets is still new and fairly limited. The meta-data for Profiles can be brought in using the Salesforce IDE. It is important that you bring down all elements that are included in the profile that you are pushing. Personally I just bring down everything that is available in the IDE meta-data in case I ever need it. Here are some simple steps to push the Profiles through the IDE.


  1. Download and Install Eclipse IDE for Salesforce. You may find it here.
  2. After setting up the IDE, create a "New Project" (File->New->Force.com Project
  3. Give your project a name and description, enter your credentials to your sandbox.
  4. When asked to select the metadata components, select the option for "Selected Metadata components" and click choose.
  5. For ease of use, choose "Select All". This will bring down all metadata and may take some time to complete depending on the size of your org.
  6. Click, "Ok" then "Finish"
  7. You should now have all the elements that you need to deploy your profiles to production. You may do so by clicking on the profiles folder under the project to select it.
  8. Once selected right click and select in the menu "Force.com->Deploy to Server"
  9. Enter the proper credentials for your Production Environment and select the desired profiles from the menu.
That's really all there is to it. Ensure that you keep your IDE Project up to date and accurate so you don't push old settings by using the "Refresh from server" option often.

Friday, November 4, 2011

Salesforce Tools for Mac OS-X Lexi Loader

As most of the products made for Salesforce.com are designed with Windows users in mind, if you use a mac you may feel like you are getting the short end of the stick sometimes. I know that I did at first. There were cool things like the data loader, the excel connector and the outlook connector; that just didn't exist on the mac. Well here are a few of the tools that I have found that help those Mac users out there feel like we aren't all alone. I will highlight several tools over the next handful of posts that I make to the blog. 

Just to point out the great work that has been done. These tools are mostly if not all developed by our friend Simon Fell. Check out his site Pocket Soap.

The first tool that is essential for all administrators is the Data Loader. Unfortunately Salesforce has not yet implemented a Data Loader for Mac users. At the current pace, I have my doubts that this will ever happen, but if you do get a chance vote up this idea on the idea exchange. The solution was provided by Simon Fell.

Lexi Loader
Lexi loader is a great tool designed specifically for the mac. It does everything that the data loader can do. That is, Inserts, Updates, Upserts, Deletes,  and Exports. Overall a great alternative to trying to run Data Loader in a VM.

This tool follows almost exactly the same format and setup that the Data Loader does. The only real difference that I have been able to find between the two is the distinction for Hard Deletes that is made within the Data Loader. I don't often use Lexi Loader for deletes so I am not sure at this time how Lexi Loader preforms deletes. Enjoy this great tool!

Monday, October 31, 2011

Submit for Approval Button

The other day I was looking for a way to create a button for submitting a record for approval I wanted to do this so that I could have it on the top of the record instead of in the related lists. I found a bit of java script that allows me to do this in a custom button. For those of you that are looking to do this it's very easy to do. Here's how:


  1. Go to your object and select the Buttons and Links section.
  2. Click to Create a New button.
  3. Give the button a name
  4. Choose a Detail Page Button 
  5. Select Execute JavaScript as the behavior.
  6. Select OnClick JavaScript as the Content Source
  7. In the code area enter the following code block. *Please note that you can edit the pop alert text to fit your scenario as well as change the name of the object to the object you would like to work with. In this example, I am using the Case object as an alternative means for escalating cases.*

    {!REQUIRESCRIPT('/soap/ajax/23.0/connection.js')}
    
    if ((Modal.confirm && Modal.confirm('Once you escalate this case, you must recall the approval before you can edit it. Continue?')) || (!Modal.confirm && window.confirm('Once you submit this case, you must recall the approval before you can edit it. Continue?'))) navigateToUrl('/p/process/Submit?id={!Case.Id}&retURL=%2F{!Case.Id}');
    

  8. Finally Add the button to the page layout.
Please note that this button will only work if you have an approval process setup for the object that you are creating it on. If there is not one, the button will obviously not submit the record through an approval process that does not exist.