Saturday, December 31, 2016

Opportunity Contact Roles Validation

When you have a requirement to make sure, when each Opportunity reach certain criteria, Contact Roles is required, but Opportunity Contact Roles is not available in Workflow, Process Builder, and even Apex Trigger directly.

There are a few options to achieve this:
a). Process Builder on Opportunity and call Flow
On Opportunity when Edit, populate Primary Contact Role to a custom field, then use Validation Rule to make sure the opportunity comply with the rule.

b). 3rd party tool such as Roll Up Helper
Similar to above, use Roll Up Helper to populate Primary Contact Role to a custom field, then use Validation Rule to make sure the opportunity comply with the rule.

c). Write trigger on Opportunity
Similar to above, use trigger on Opportunity to populate Primary Contact Role to a custom field, then use Validation Rule to make sure the opportunity comply with the rule.

If you are too lazy to venture for option a and b, and have no developer for option c. Here is the easiest option by installing an unmanaged free app from AppExchange.

After install this app Opportunity Contact Roles Validation, you will find 2 new fields at Opportunity level and 1 validation rule, by default it would be:
AND( Probability > 30, NOT(Primary_Contact_Assigned__c))
change the rule if you would like to check if Probability is beyond 30%
AND( Probability > 0.3, NOT(Primary_Contact_Assigned__c))

- You just need to modify the validation rule to follow your business process
- Because the trigger is on Opportunity, not Opportunity Contact Roles, new contact added to Contact Roles will not immediately effect, but when user edit the Opportunity, it will be re-calculate by Trigger.

This app require Enterprise, Unlimited, Performance edition, when I install into a DE, it give me warning that it will not work.

Type: Unmanaged Package; AppExchange

Paid/Free: free

Publisher: Pactera


Version: 1.0.0

Blog last update: 31 December 2016

Wednesday, December 21, 2016

Premier Primer

This app is intended for Premier Success Plans customers and their admins to store important Premier information and useful Premier Education Assets.

Learn what the Premier experience is all about with this app designed for customers who want to get the most out of Premier benefits and services.
  • Store your Premier support passcodes and support numbers in a centralized location
  • Quickly access educational assets to help you take full advantage of your Premier experience
  • Discover new ways for your company to leverage the Premier program and realize value through programs and offerings tailored to your needs

Premier Primer shows you how to get up to speed quickly with recommended steps and stores your unique Premier customer codes and support contact information.

Type: Managed Package; AppExchange; Private Listing

Paid/Free: free

Publisher: Salesforce


Version: 1.6.0

Blog last update: 21 December 2016

Monday, December 19, 2016

Limits Monitor

This app built by Salesforce for admin to see the limit from iOS device. Limits monitor gives you a clear view of your technical limits and get in front of potential issues. Limits Monitor provides real-time tracking and configurable notifications for your Salesforce instance from your phone. This app Requires iOS 10.0 or later.

As of now - version 1.3, we can monitor 23 limits, includes daily storage, API calls and events with hourly reports, dashboard refreshes, emails, and so on.

Here is the items you can check from the app:
1. Concurrent Asynchronous Report Runs
2. Concurrent Durable Streaming API Clients
3. Concurrent Streaming API Clients
4. Concurrent Synchronous Report Runs
5. Daily API Requests
6. Daily Asynchronous Apex Executes
7. Daily Bulk API Requests
8. Daily Durable Generic Streaming API Events
9. Daily Durable Streaming API Events
10. Daily Generic Streaming API Events
11. Daily Streaming API Events
12. Daily Workflow Emails
13. Data Storage
14. File Storage
15. Hourly Asynchronous Report Runs
16. Hourly Dashboard Refresh
17. Hourly Dashboard Result
18. Hourly Dashboard Status Requests
19. Hourly OData Callouts
20. Hourly Synchronous Report Runs
21. Hourly Time-Based Workflow
22. Mass Emails
23. Single Emails
24. Daily Bandwidth Limit**
25. Daily Request Time Limit**

** this last two items is available in version 1.2, but removed in version 1.3

Type: App Store / iOS

Paid/Free: free

Publisher: Salesforce


Version: 1.3

Blog last update: 21 December 2016

Sunday, November 13, 2016

My Favorites - The Bookmark App for Salesforce

As of now (Winter 17 Release), Salesforce user cannot create their own bookmark of records they need to pay attention for - this is not about bookmark on Chatter feed / post, but bookmark on records. 

Here an idea posted in IdeaExchange, as of now only have 360 points.

But, rather then wait Salesforce to built this, if you are Salesforce developer, or have Salesforce developer, they can built a simple script for this purpose with help of custom objects. However, if you do not have developer ready, there is a paid app in AppExchange called My Favorites.

Type: AppExchange (Managed Package)

Paid/Free: paid USD 60 / user / year



Version: 1.22

Blog last update: 13 November 2016

Thursday, October 20, 2016

S-Docs Document Generator (PDF, Word, XLS, Report, Emails)

S-Docs is Native document generator on the Salesforce. S-Docs was built from the ground up on Salesforce. It’s powerful, yet intuitive for Salesforce users and admins. S-Docs is completely FREE to use with up to 2 templates!

Follow this step to configure S-Docs Quick Install & Config Guide, in short 4 steps:

1. Install from AppExchange

2. Create Template - once installed go to "S-Docs Templates" tab to create new tempate
- Relate to an Object
- Define file format
- To add image, upload the image to document and make it available externally

3. Add Button to page layout - go to the object layout and find "S-Docs" and "Email S-Docs" button

4. Open the record and click the button added.
- Click "S-Docs" button
- Select the template
- File added into Attachment

Here is sample result:

Type: AppExchange (Managed Package)

Paid/Free: Free for 2 templates

Publisher: ME2 Systems LLC


Version: 2.256

Blog last update: 20 October 2016

Thursday, October 6, 2016

Multi-Select Picklist Frequency Reports

Have you ever tried to create a Matrix Report that groups by a Multi-Select Picklist? Then you know that Salesforce can't group by a single picklist values. With a few easy clicks "Multi-Select Picklist Frequency Reports" app will create a Matrix report grouped by individual picklist values.

1. Go to "Multi-Select Picklist Frequency Reports" tab
- Select object
- Select field (only multi-select picklist) will be shown here
- Select Group By field for report
- Select a List View for filter
- Click Run and wait..

Once done, you will received email with link to the report

2. Go to the Report
You will present with standard Salesforce report and the multi-select picklist has been nicely split into single value.

3. Dive-in
Let's see what behind this. First let's see how the structure of the data, we'll change the format into tabular.

So, when you click Run button, this program will populate data by grouping and filtering into custom objects. Then, present into matrix report. Simple but powerful, it maybe not powerful enough to show the report for your top management, but it serve basic need to analyze data easier.

Note: be ware that every time you run a report for the same object, this will overwrite existing data / report.

Type: AppExchange (Managed Package)

Paid/Free: Free

Publisher: Marzapps


Version: 1.2

Blog last update: 6 October 2016

Thursday, September 29, 2016

Salesforce advanced Code searcher

There are 2 main tools when you add this Google Chrome extensions. Go to Salesforce setup page to find them:

1) Advanced Quick Find 
This part gets added in side navigation bar on all set-up pages. Select the code component that you want to go to, then start typing the name of the code,an autocomplete suggestion pops up, select the one that you want to go to.

2) Developer Utilities
2.1) Search Your Code - this will include search in: Class, Page, Trigger and VF component.
This component get added in home page only. Let's say you want to know where you want to know where is an object used your code, like proj__c. Right now to find this out you have to either go thru all the code individually or create a project in eclipse and then search there. There's no way we can do this directly in Salesforce. This string search will help you do that. You have to check the code components in which you want to search the code, enter a string in the input text field and hit enter. You will be presented with a list of code components where the string is used.

2.2 ) Code Coverage Extract: View and download the code coverage in your org.

Type: Google Chrome extension

Paid/Free: Free


Version: 1.3.4

Blog last updated: 29 Sep 2016

Thursday, September 8, 2016

Salesforce QuickNav

This is another extension from Jeff Hube, see previous blog for Salesforce Toolbar. With this extension added, press the tilde key (~ or `) to open a textbox from which you can easily access any page from Salesforce's setup menu or any tab.

Start typing the name of the setup page or tab you would like to access and then click it once it appears in the list, or use the up and down arrow keys to select it and press enter. Holding shift while pressing enter will open it in a new browser tab.

Type: Google Chrome extension

Paid/Free: Free

Publisher: Jeff Hube


Version: 1.0.7

Blog last update: 8 Sep 2016

Salesforce Toolbar

If you are Salesforce developer, this extension "Salesforce Toolbar" will help you easily navigate to: Apex Classes, Apex Triggers, Visualforce Pages, Visualforce Components, Custom Objects, Custom Labels, Custom Settings, and Apex Test Execution. 

It also give you quick access to: Workbench, Console, Debug Logs, System Overview, Installed Packages, Standard Object, Convert ID from 15 characters, and current Org Id.

Type: Google Chrome extension

Paid/Free: Free

Publisher: Jeff Hube


Version: 2.8.1

Blog last update: 8 Sep 2016

Monday, September 5, 2016

Code Coverage Report

To deploy Apex Class to production, you need to have minimal 75% of overall code coverage. You can check code coverage from Developer Console | Test | New Run and select all Test Classes and Run. Tests tab will tell you all Test Classes completed successfully or failed, you also can drill down to Methods for each Test Class.

Look at "Overall Code Coverage" panel for the Classes, including Percent and Lines coverage.

You also can monitor this from Setup | Develop | Apex Test Execution, or to Run Test by click "Select Tests.." button, but this will not tell you the code coverage percentage.

If you are not using any IDE, you will find percentage coverage in Developer Console only, and you cannot copy and paste it to your team or for documentation, except take screenshots, but when you have too many class, this would be hard.

So, there is a free app from appexchange that can help you to extract this information. The app called Code Coverage Report. This app will not run test class for you, but just to report your last code coverage. The app also allowed you to extract into Excel file easily.

Type: AppExchange (Managed Package)

Paid/Free: Free

PublisherAmit Chaudhary


Version: 1.2

Blog last update: 5 September 2016

Monday, August 22, 2016

Salesforce1 Simulator

Once this extension added to your Google Chrome browser, navigate to chrome://apps or click Chrome App Launcher next to Windows Start button.

This extension will be very helpful when you would like to test some changes done in Salesforce and it may effect in Salesforce1, or you need to demo Salesforce1 app but you do not have the devices.

Click above icon, a new window will be open to prompt you to enter your Salesforce login credential (depend on instance you would like to work on).

NOTES as of now, there are 2 things that you need to configure in Salesforce to make this extension works:
1. Enable Lightning Experience
2. From Setup | Apps | Mobile AppsSalesforce1 Settings, select "Enable the Salesforce1 mobile browser app".

Type: Google Chrome extension

Paid/Free: Free

Production / Developer -


Version: 0.1.3

Blog last updated: 22 Aug 2016

Wednesday, August 3, 2016

Chatter Monitor

Chatter Monitor is a Free Google Chrome Extension from Fronde.

Once you have the extension added, add your Salesforce/Chatter account and you can add multiple accounts you would like to monitor. Things yout can do with this extension:
- Post to your feed or a Chatter group
- Monitor feed
- Search feed
- Check your user detail and suggest item to follow
- Groups that you are member

Type: Google Chrome extension

Paid/Free: Free


More information:

Version: 2.0.5

Blog last updated: 4 Aug 2016

Tuesday, July 12, 2016

Document your Salesforce org with Octopus

In short, Octopus is a free app available in AppExchange built by Astrea It Services Pvt Ltd. Octopus allows you to document all the items in your Salesforce org. Get information about apex classes, pages, workflows, triggers, objects, fields and much more in a single place. You can also download it as a PDF/Word file for future reference.

To get information about Approval Processes, Validation Rules, Workflow Rules, Workflow Field Updates, please ensure that your Salesforce instance URL has been added in the remote site settings - navigate to Setup | Administer | Security Controls | Remote Site Settings, for example, if your Salesforce instance is, the Remote Site URL would be

Once installed from AppExchange, navigate to Octopus tab, select items you would like to document, or you can select all items. Click View button or PDF or Word icon, and done. With just an easy a few clicks, you will get result from Salesforce org with information of:
  • Name
  • Namespace Prefix
  • Table Enum or Id
  • Active
  • Last Modified Date

Sample result:

Even you downloaded the information as PDF or Word document, you still can click the Name link to open the real metadata in Salesforce.

Type: AppExchange (Managed Package)

Paid/Free: Free

Publisher: Astrea It Services Pvt Ltd


Version: 1.25

Blog last update: 12 July 2016

Tuesday, July 5, 2016

Schema Surfer

Schema Surfer offers the fastest way to browse and explore your Salesforce "object" metadata. Whether you need to quickly see all the child relationships of an object, determine if an object is queryable, or determine what is the object prefix, Schema Surfer is the app for you.

Here are a few of the great features included in Schema Surfer:
- Filter object list by API Name
- Filter object list by Label
- Filter object list by three character object prefix
- View all fields about an object in a grid or sortable table/list layout (Label, API Name, Data Type)
- View all the child and parent relationships for an object on one page
- Drill down on a field to view complete field level metadata information

Why I bold sortable? because Salesforce default object/field view is not sortable - vote for this idea.

Once Schema Surfer you installed, navigate to Schema Surfer tab, or click + tab if you do not see it on default.

Type: AppExchange (Managed Package)

Paid/Free: Free

Publisher: envyapps


Version: 1.1.0

Blog last update: 7 July 2016

Saturday, July 2, 2016

Declarative Rollups for Lookups

Declarative Lookup Rollup Summaries Tool is one of the most popular free tool for Salesforce admin built by fellow Salesforce MVP - Andrew Fawcett.

Out of the box, Salesforce support Roll-Up Summary field when the parent-child relation is Master-Detail relationship. But in many cases, we have to use Lookup relationship, example: sharing setting, when the child record owner may differ with parent record owner, and etc.

Without this tool, you need to engage developer to write trigger (and test class) in child object to roll-up the value to the designated parent field. With Declarative Lookup Rollup Summaries Tool, as admin, we just need to install the package and do a simple configuration to enable it, you can choose either real-time or scheduled (hourly, daily, weekly, etc).

To get full documentation, discussion and issues, go to GitHub and join Declarative Lookup Rollup Summaries Tool success community for discussion and questions
This blog will just explain basic steps to install and configure the tool:

1. Install Package 
Current version 2.4.2 when this blog written - for Production; or for Sandbox.

2. Create Remote Site Setting
Once the packaged install, navigate to "Welcome" tab and click "Create Remote Site Setting" button.
This step will create a new Remote Site URL in your Salesforce org.

3. Create Lookup Rollup Summary
Navigate to tab "Manage Lookup Rollup Summaries" and enter required information.

In this sample, I would like to count number of Lane records and roll-up to Opportunity object. You cannot select Active at this moment until deploy the child trigger. So, just save this without select Active checkbox.

4. Deploy Child Trigger
Click "Manage Child Trigger" button and click "Deploy" button. This step will create a trigger in the child object.

5. Activate the Lookup Roll-up
Navigate back to "Manage Lookup Rollup Summaries" tab and select Lookup Rollup Summary created, now you should be able to enable Active checkbox to activate the roll-up configured.

6. Real-time or Scheduled
In the "Calculation Mode" you can choose Real-time or Scheduled (we will not discuss Developer and Process Builder in this blog).
Select Real-time will auto calculate when child record added, modified or deleted. Select Scheduled, you need to schedule when the calculation trigger, click "Schedule Calculate" button to schedule when it will be triggered, by a specific hour, hourly, specific day, etc. Example: you can configure multiple hour, such as: daily 2 AM and 6 AM by hold Ctrl key when click.

You can monitor next scheduled run from Setup | Jobs | Scheduled Jobs.

If you configure the calculation mode as Real-time on existing child object with records, parent record will not be auto populate with the roll-up value until there is activity in a related child record, either create, update or delete. So, you may need to create another roll-up with Scheduled to calculate existing values.

Type: Managed Package; Private Listing

Paid/Free: Free

Publisher: Andy in the Cloud

Version: 2.4.2

Blog last update: 2 Jul 2016

Sunday, June 12, 2016

Mass Update Contacts Address

With Process Builder, you can create a process to auto update all Contact Address when Account Address changed, but it do not give you option to manually run the process, unless you add custom field as parameter to mass update all Contact Address.

But with Mass Update Contacts 2.0 app from AppExchange, it allow your users to manually select an address from Account to update an address in Contact. You can use default button added when install the package called Mass Update Contacts, or create custom a button that call Visualforce page MUCPro.

Note: even this app is free, it limit you only to 100 users, and you need to assign your users with license, navigate to: SetupInstalled Packages, find the app and click Manage Licenses to add users able to use this app.

With custom button, user will always see the button, but will get no license error when user click it. While with standard button Mass Update Contacts, user without license will not see the button.

Select address from Account:

Select address in Contact:

Type: AppExchange (Managed Package)

Paid/Free: Free

Publisher: X-Squared On Demand


Version: 2.0.2

Blog last update: 12 Jun 2016

Wednesday, June 8, 2016

Salesforce Schema Lister

Schema Lister is one of the toolkit available in Salesforce Toolkit by Ben Edwards.

This tool uses the Salesforce Metadata API to build a list of objects, fields and field attributes from within your Salesforce Org. It will produce list of all of your Salesforce objects (standard and custom) and all of your custom fields (standard and custom). You also able export it into Excel file for easy reference or other purpose, such as: documentation or audit or etc.

Information produce for each field:
  • Field Label
  • API Name
  • Type  
    • Unfortonately at this moment it doesn't show the field length
    • It show picklist values (including multi-select picklist values)
  • Help Text

Open to start, select if you would like to access Production or Sandbox environment, and click "Login to Salesforce with OAuth" button, if you already open Salesforce in the different tab in the same web browser, it will just authenticate, otherwise you need to enter your Salesforce username and password.

Once login, click "Get Schema" button, this will take few minutes for to query your objects and fields, so it is depends on how complex / many your objects and fields. Once done, it will show you the Org Id (make sure you are in the right org), jump to object link for easy navigation and "Export to Xlsx" button to export into Excel file.

Type: 3rd party with OAuth

Paid/Free: Free

Publisher: Ben Edwards

Installation: nothing to install, direct access to

Version: n/a

Blog last update: 8 Jun 2016

Sunday, May 29, 2016

Metadata Search

This app from AppExchange should be one of the favorite app for Salesforce admin and developers, it help us to search for anything related to metadata in your Salesforce.

The Salesforce Global Search feature is primarily meant to search for data in standard objects and custom objects.

Then, Salesforce Setup Search (beta) able to search for following items:
  1. Approval Post Templates 
  2. Approval Processes 
  3. Assignment Rules 
  4. Compact Layouts 
  5. Custom Buttons or Links 
  6. Custom Home Pages 
  7. Duplicate Rules 
  8. Email Alerts 
  9. Email Templates 
  10. Field Updates 
  11. Fields 
  12. Groups and Queues 
  13. Home Page Components 
  14. Objects 
  15. Permission Sets 
  16. Profiles 
  17. Roles 
  18. Static Resources 
  19. Users 
  20. Workflow Outbound Messages 
  21. Workflow Rules 
  22. Workflow Tasks 

  • Only search with label name, not with API name
  • Not need to enter full name, example: search for "Monitor" will return "My Monitor" or "Monitor (%)"
  • Not to enter special characterexample: % ( ), search Monitor (%) will return no result, although Monitor (%) is the real label

With Metadata Search app (currently version 1.24), it search following items:
  1. Apex Classes
  2. Apex Triggers
  3. Approval Processes
  4. Apps
  5. Assignment Rules
  6. Business Processes
  7. Buttons and Links
  8. Components
  9. Custom Settings
  10. Dashboards **
  11. Email Templates
  12. Fields
  13. Objects
  14. Pages 
  15. Permission Sets
  16. Public Groups
  17. Profiles
  18. Queues
  19. Recent Items
  20. Record Types
  21. Reports **
  22. Roles
  23. Setup Audit Trials
  24. Sites
  25. Static Resources
  26. Validations Rules
  27. Workflow Email Alerts
  28. Workflow Field Updates
  29. Workflow Outbound Messages
  30. Workflow Rules
  31. Workflow Tasks
** this app currently do not search filter or fields in Report and Dashboard, only the name.

  • The searching process is slower compare to standard Setup Search.
  • You can use label name or API name to search
  • In order to be able to search Workflow/Validation Rules, the app need to connect to the Salesforce Tooling API. A Remote Site Setting must be created in your org before you can use this tool. Please create Remote Site Setting (Setup | Security Controls | Remote Site Settings) with Remote Site URL, example: or if you use custom domain

Type: AppExchange (Managed Package)

Paid/Free: Free

Version: 1.24

Blog last update: 29 May 2016

Sunday, May 8, 2016

Workbench for Salesforce admin

"Workbench" has been famous for quite sometimes for Salesforce developer, but it is also very useful for Salesforce admin. It's an awesome tool, cloud based, so no need to install anything in your desktop and can be use from anywhere with internet connection. So, why use Workbench?
  • Eyeball object and field (characteristics, limits) to understand objects and fields and their relationships 
  • To get metadata components information, such as: report, flow, etc.
  • To see current session information 
  • Quickly query and extract data from Salesforce 
  • Insert, delete, update, upsert, delete single records or .CSV files into Salesforce
  • Deploy metadata changes (instead of using Migration Toolkit)
  • Retrieve metadata package
  • Explore REST resources (to see what information can be programatically extracted / inserted via an API
  • Enter Apex code to be executed as an anonymous
  • Password Management
  • It's free (although no support from Salesforce)
  • Do all of the above in the one place!

How to start using it?
Easy, go to and log in to your sandbox (or production org if you know what you do, caution this is a very powerful tool).

Use case
I would like to quickly sneak through all the fields available for a record, remember report do not support all object or all fields, so we can utilize Workbench for this purpose.
Make sure you have login to Salesforce, click new tab from web browser and paste following in the URL:
change with the valid Record Id

Few other use cases to utilize Workbench for admin:

To start doing any of the above, here are the relevant documentation links:

For complete documentation -

Type: 3rd Party App

Paid/Free: Free

Publisher: n/a


Version: n/a

Blog last updated: 8 May 2016

Wednesday, May 4, 2016

Configero Visual Role Manager

The Configero Visual Role Manager is a drag & drop management console for organizing roles and users within roles. Roles can be created, deleted, reorganized and users can be assigned to other roles through an easy to use drag & drop interface.

Roles are displayed in a hierarchical organizational chart and can be dragged and dropped above or below other roles.

Users are listed within each role and can be reassigned to a different role by dragging and dropping. Unassigned users are listed in a separate panel and can be searched and dragged to existing roles.

Type: AppExchange (Managed Package); Private listing

Paid/Free: Free

Publisher: GetFeedback


Version: 1.5

Blog last updated: 4 May 2016

GetFeedback - Online Surveys for Salesforce

GetFeedback is one of the most famous online survey tool tightly integrated with Salesforce. It also provide pretty user interface and easy to use interface. Survey responses can be easily mapped into Salesforce on Accounts, Contacts, Cases & custom objects. Surveys can be display perfectly on smartphones, tablets, and browsers.

By default, GetFeedback does not know who you send your surveys out to, because the link is generic, example:

You need to make the survey "Salesforce aware" by adding parameters at the end of survey URL.

You can design this in Salesforce email template as merge field, example:{!Contact.Id}&CASE_ID={!Case.Id}&ACCOUNT_ID={!Account.Id}&CONTACT_NAME={!Contact.FirstName}

You also can add contact name in survey with passing their name as email template, example:{!Contact.Id}&CASE_ID={!Case.Id}&ACCOUNT_ID={!Account.Id}&CONTACT_NAME={!Contact.FirstName}

Those URL can be hidden using an HTML link, example: click here to start

A. Distributing "Salesforce Aware" surveys
- Mass Email from Salesforce with email template designed
- Click a button/link from Salesforce with email template designed
- Email alert to send email from workflow
- Use 3rd party email tool that include Salesforce ID as parameters

B. Viewing "Salesforce Aware" survey responses in GetFeedback
Click Analyze tab in GetFeeedback to see all survey response. If your survey URL include paramater, such as:
CONTACT_ID=0039000001poglz, you will see CONTACT_ID column with the value for the survey response.

C. Mapping "Salesforce Aware" survey responses to Salesforce fields
If you haven't connect GetFeedback to Salesforce, click your name | Account Settings, then find Salesforce menu, then click button 'Connect to Salesforce', and select Allow access in the next screen.

Click Salesforce tab in GetFeedback, you can select any available actions below, it can be one action or more for each survey.

For each survey from GetFeedback, you need to create the Salesforce mapping and action from GetFeedback, once setup done, survey result will be auto push to Salesforce in almost real-time.

1. Create a new record in object
By select this, you are going to use a custom object to capture new survey response data. If you select this option, you need to create a custom object and many fields needed prior this step.

There are 5 mapping sources you can use in this option:

Question, Answer, Response Attribute is necessary to map for this option.

2. Update field in existing object
You might want each response to update fields on an existing object in Salesforce if you want to put your survey response data within an existing standard object (e.g. Case or Account) without the additional overhead of using a custom object. For the response data to make it to the right place, you'll need to pass the Salesforce ID for the existing object as a merge field in the survey URL.

If you select this option, new survey answer will overwrite historical survey result. This is not so recommended unless you really do not want to know history survey.

Same with (1), there are 5 sources you can map when using this option.

3. Create or update Lead or Contact
This selection allows you to use the survey respondent's email address as a way of avoiding duplicate Contacts or Leads in  Salesforce. If a Contact or Lead has the same email address, system will update most recently modified or recently created, or update all. If none are found with the same email address, it'll create one.

You can use merge field such as email address, or Id, or other unique information. This option will also overwrite historical survey result if existing data exist.

Same with (1), there are 5 sources you can map when using this option.

4. Create an Activity in an object
This selection will create an activity record on an existing object for each response. For the response data to make it to the right place, you'll need to pass the Salesforce ID for the existing object as a merge field in the survey URL.

There is nothing to map here as system will create an Activity History and relate it to the record. But, you also cannot create report if select this.

Limitation & Summary: 
1. You can have multiple actions for each survey mapping, example: "Create a new record in object" + "Create an Activity in an object"

2. Ideally you need to select action (1) to maintain historical survey result, this option also great to present the survey result in report or dashboard.

3. By select action (1), you can use just one custom object to combine all survey, you need to create many fields to cover future usage. But if you opt to create new object for every survey, I think this is not practical, it will mess up your salesforce objects usage and layouts, personally I do not like this approach.

4. Using only one custom object approach, all questions and answers field need to be in text format with max length 255, some standard field such as Completion Date can be in Date/Time format.


Type: AppExchange (Managed Package)

Paid/Free: Paid

Publisher: GetFeedback

This app is not installed from AppExchange, but login to GetFeedback and link it to your Salesforce instance (sandbox or production)

Version: n/a

Blog last updated: 5 May 2016

Thursday, April 21, 2016


SalesVisual lets you visualize your Salesforce object relationships at-a-glance. Simply install it and discover how your contacts, accounts, opportunities, users, campaigns and products relate to each other. SalesVisual allow visual relationship mapping for Salesforce that help you understand your opportunities, key contacts and related records even not related using Map button from.

Functions offered by the tool:
  • Mouse over icon to get popup detail of the record
  • Full screen mode, zoom with mouse scroll
  • Hide and show object (available objects is based on the data)
  • Open record detail 
  • Map the record to center
  • Map Account, Contact, Opportunity from List view

  • Do not show related child Accounts
  • Do not show Account Owner, except the Parent Account have Opportunity with the same owner
  • Do not show Contacts unless the Contact added as Contact Roles in Opportunity

This free version of SalesVisual only support native objects, including:
  • Contacts
  • Accounts
  • Opportunities
  • Users
  • Products
  • Campaigns 

From Account
- Show Account
- Show Parent Account (Not child or peers Accounts)
- Show Account Owner if only have the Parent Account have Opportunity with the same owner
- Show all Opportunities and Opportunities Owner of Account
- Show all Opportunities and Opportunities Owner of Parent Account
- Show all Opportunity Lines related to Opportunities shown
- Show only Contacts and Contact Owners listed in Contact Roles of Opportunity, not all Contacts, and it can be from different Account because of Contact Roles
  If from Contact from different Account
  - Show Account and Account Owner of the Contact
  - Show Opportunities and Opportunities Owner related to the Contact
- Campaigns related to Opportunity or Contact listed in Campaign Member

From Contact
- Show Contact and Contact Owner
- Show all Opportunities and Opportunities Owner related to the Contact
  * Opportunity will be auto added when Contact is added as Contact Role in Opportunity
  If the opportunity have Contact role from different Account
  - Show Account and Account Owner of the Contact
  - Show Opportunities and Opportunities Owner related to the Contact
- Show all Opportunity Lines related to the Opportunities shown
- Show Account and Account Owner
- Campaigns related to Opportunity or Contact listed in Campaign Member

From Opportunity
- Show Opportunity
- Show Opportunity Owner
- Show all Opportunity Lines related to the Opportunities shown
- Show Account
- Show peer Opportunities
- Show peer Opportunities Owner
- Show Contacts listed in Contact Roles, not all Contact, it can be from different Account because of Contact Roles
  If from Contact from different Account
  - Show Account and Account Owner of the Contact
  - Show Opportunities and Opportunities Owner related to the Contact

Available checkboxes of object is based on available data related to that record, ideally you need to select all checkbox to see related of all records, otherwise, you will see stand-alone record without link.

Watch demo:

Type: AppExchange (Managed Package)

Paid/Free: Free

Publisher: IntellectSpace


Version: 1.11

Blog last updated: 21 Apr 2016

Tuesday, April 19, 2016

User Field History Tracking

In many cases, we need to track value changes in User object. But, as you know that we are not able to set Field History Tracking in user object (until now April 2016). If you have developer, you can get developer to write trigger on user object and write the changes to a custom object. But if you don't have, User Field History Tracking app package is here to help.

User Field History Tracking implement the same idea as I said earlier, with a trigger in user object and write the changes into a custom object. Once you installed this package from AppExchange, you will notice new app "User Field History Tracking", you just need to set fields need to track, either standard or custom field from User Field History Setup tab.

Select one or more fields to track field history. Once you have completed your selections, click "Save Settings". The selected field(s) will then be tracked from that point forward. If you remove a field(s) from history tracking and click "Save Settings", field history will no longer be tracked. Any previous history for the removed field(s) will still be available as User Field History records. You may come back to this page at any time to update the fields selected for history tracking.

All changes happened after you set field to track will be available as new record in User Field History object. For here you can see, who change what, what is the previous and new value, when is the change happened.

Type: AppExchange (Managed Package); Private listing

Paid/Free: Free

Publisher: Stratus Consulting Group, LLC


Version: 4.1

Blog last updated: 19 Apr 2016

Sunday, April 17, 2016

Clone This User

With Clone This User (CTU), the administrator can look up the existing user that serves as the basis for the new one, enter name and email, and generate the username & password immediately. Clone Users from the desktop or Salesforce1 Mobile.

The general idea for this product comes from the instant need that admins need to create new Salesforce user on ad hoc request to duplicate one user for this new one. We imagined the scenario that an urgent email comes in to the Salesforce admin from the hiring manager while the administrator is out at lunch, even though ideally this need to inform earlier.

How could the admin quickly and easily create the user record with all the related permission sets, public group access, and user features selected.

Once the package installed, add a custom link Clone to the user page layout. Open user detail to clone from and click Clone link to start.

Once done, you will get the success message, or error message if failed.

As current version, it do not clone following standard field and any custom fields:
  • Title
  • Department
  • Division
  • Currency
  • Phone
  • Extension
  • Fax
  • Mobile

But, following assignment/group will be clone to new user:
  • Permission Set Assignments
  • Public Groups
  • Queue Membership
  • Permission Set License Assignments

Type: AppExchange (Managed Package)

Paid/Free: Free

Publisher: Arkus, Inc.


Version: 1.1

Blog last updated: 17 Apr 2016

Friday, April 15, 2016 Quick Login As

As admin in Salesforce, you can login to any user by enable "Administrators Can Log in as Any User" from Setup | Security Controls | Login Access Policies. Once enabled, you will see Login link in user list view or Login button in user detail.

There is no issue with standard functionality given by Salesforce to login as someone else. But, with a Google Chrome extention " Quick Login As", it will make you easier login as someone else by save a few clicks and maintains the page currently being viewed.

Main Points:
- Gives a popup of the users listed on the user listing page so you can select to login as a different user on any page.
- When a user is selected, it logs you in as that user and keeps you on the page you were viewing.
- When you log out, it will take you back to the page you were originally on when you logged in as the other user.

Additional Points:
- Above the user list in the popup, the "View" dropdown is available so you can change to another view from the user listing page.
- Only the first 4 columns from the user listing table are shown by default (including the login column) since the popup has a limited width.  A "All Columns" button is available if you can't identify the user you need by the default columns shown.

Type: Google Chrome extension

Paid/Free: Free


Version: 1.4

Blog last updated: 15 Apr 2016

Wednesday, April 13, 2016

Inline Account Hierarchy

By default to see Account Hierarchy structure in Salesforce, click View Hierarchy link next to Account Name, it will show you all related accounts in parent and child relationship.

Inline Account Hierarchy package contains a custom Visualforce page that displays the Account hierarchy as a collapsible tree. So, you can see all related accounts in parent and child relationship, in a glance in Account page without additional click to open Account Hierarchy page.

Type: AppExchange (Not Managed Package)

Paid/Free: Free

Publisher: Salesforce Labs


Version: 1.4

Blog last updated: 13 Apr 2016

Wednesday, March 30, 2016

Graphics Pack for Salesforce

In many cases, we would like to display a value as image, so this will catch user attention better (make sure the image is located in proper area in page layout). With formula field, this should be not an issue, but sometimes, we just need to find a right image and upload it to a document folder.

Salesforce by default provide hundreds of icon, you can find it here Icons Available for Use, see this sample:
IF(Closed_Won_Amount__c>100000, IMAGE("/img/samples/stars_500.gif","5"), 
IF(Closed_Won_Amount__c>50000, IMAGE("/img/samples/stars_400.gif","4"), 
IF(Closed_Won_Amount__c>30000, IMAGE("/img/samples/stars_300.gif","3"), 
IF(Closed_Won_Amount__c>10000, IMAGE("/img/samples/stars_200.gif","2"), 


** Closed_Won_Amount__c is a roll up summary from Opportunity Amount.

But if standard images provided are not enough, you can download a package from AppExchange called Graphics Pack. This is free provided by Salesforce Labs. Once installed, you will get thousand of images in Document folders.

Click Graphics Pack Overview tab from Graphics Packs app menu to see list of the images provided by Graphics Pack. 'Graphics Pack' contains hundreds of images / icons that can be used in salesforce applications for tabs, image formulas, and Visualforce pages
- Additional graphics for image formulas
- Additional graphics for tabs
- Additional graphics for Visualforce pages

IF( NOT ISNULL(SLAExpirationDate__c), IF (SLAExpirationDate__c > Today(), IMAGE("","Over SLA"), IMAGE("/servlet/servlet.ImageServer?id=01590000000J9eb&oid=00D90000000H7oz","Not over SLA") ),"No SLA identified")

If you notice, in the 1st IMAGE() formula, I use full URL in a custom domain and 2nd formula with relative URL /servlet/servlet.ImageServer?id=01590000000J9eb&oid=00D90000000H7oz
I would suggest to use 2nd formula as best practice.

How to get the URL?
Open the image from document folder, right click the image and select "Open in new tab" if you use Google Chrome or similar menu using other web browser, get the URL and you will get something like this - You just need to copy after .com until before &lastMod, so it would be /servlet/servlet.ImageServer?id=015500000028BXr&oid=00D300000000SHq notice that it is similar with sample above in 2nd IMAGE() formula.

Type: AppExchange (Not Managed Package)

Paid/Free: Free

Publisher: Salesforce Labs



Version: 1.2.0

Blog last updated: 30 Mar 2016