Saturday, March 28, 2015

Chatter Group Setting

Chatter Group is awesome tool for collaboration, it let you collaborate with specific people. For example, if you're working on a team project, you can create a group for your team to share project-related files and information. You can join up to 100 groups, and your company can have a total of 10,000 groups.
Few note to take for Chatter Group:
  • When you create a Chatter Group, you can set the level of access of the group.
  • Chatter groups have different levels of access: Public, Private, Unlisted and Allow Customers.
  • To know the level of access for the Chatter Group, click on Chatter tab | Click on Groups on the left side | Click the name of the group | Click on Group Settings link.

Public Chatter Group
  • Any users can see it.
  • Any users can post on it.
  • Any users can comment on it.
  • Any users can join it.

Private Chatter Group
  • Users must ask to join or be added by the group’s owner or manager.
  • Only group members can see and add posts, comments and files.
  • Users with the “Modify All Data” and “View All Data” permission can see, join, update and post on it.
  • Users with the “Manage All Data” permission can also change group settings.

Unlisted Chatter Group
  • Only group members and users with “Manage Unlisted Groups” permission can see and add posts, comments and files.
  • Users cannot ask to join. They must be invited by the group’s owner or manager.
  • Offers more privacy compared to private group
  • Non-members cannot see or access unlisted groups in list views, feeds and in search results.
  • This is not enabled by default. The system admin should click on Setup | Customize | Chatter | Settings | Edit button | tick Enable Unlisted Groups” checkbox under Groups section | Save.

Private or Unlisted Chatter Group with “Allow Customers” option enabled
  • The group’s owner and manager can invite customers to join the private or unlisted group.
  • You can easily identify groups with customers by the orange upper left corner of the group photo
  • The “Allow Customer Invitations” must be enabled: Click on Setup | Customize | Chatter | Settings | Edit button | tick Allow Customer Invitations check box under Customer Invitations section | Save.


Thursday, March 26, 2015

Salesforce1 Mobile app Simulator

In previous blog we discussed about what is Salesforce1 User, user with Salesforce1 checkbox ticked will access Salesforce1 from supported web browser from supported device.

When we untick Enable the Salesforce1 mobile browser app in Salesforce1 setting,
Salesforce1 User option in user detail will be removed.

But, on top of that, when you disable above setting, you will also no longer able to use Salesforce1 with simulator:
- one/ , example, or
- extention/app for Google Chrome

You will get error message URL No Longer Exists

Reference: Salesforce1 Simulator using one/

Wednesday, March 18, 2015

Salesforce1 User

For Salesforce Admin, when you create user, you may realize that I do not see Salesforce1 User field, but after save, in the user detail "Salesforce1 User" is automatically tick, and there is no way to set it untick by default.

Actually, what is purpose of checkbox "Salesforce1 User" ?
Many of us will think, if I untick the checkbox, that particular will not able to use Salesforce1 mobile app. But, the answer is NO.

So, what is this checkbox do?
It has nothing to do with user ability to use Salesforce1 mobile app. But if you aware of Salesforce1 Mobile Browser App, with this functionality turn on, if user using supported device in supported web browser, user will get Salesforce1 mobile app experience when the open from web browser, without have to install the app in your device.

For complete list of devices with the web browser supported, click this link Requirements for Using the Salesforce1 App. Below screenshot of Salesforce1 app with mobile browser.

For user with Salesforce1 User disable in the user detail, when they login using web browser in mobile device, example: Safari browser on latest iPhone or iPad, user will see normal, instead of Salesforce1 app user interface.

For admin who plan to turn off ALL users with Salesforce1 Mobile Browser App funtionality:
1. Navigate to Setup | Mobile Administration | Salesforce1 | Settings
2. Deselect Enable the Salesforce1 mobile browser app
3. Click Save

Once you deselect "Enable the Salesforce1 mobile browser app", option of Salesforce1 User in user detail will be removed.


Monday, March 16, 2015

Salesforce Certification Matters

So your company implemented Salesforce Sales Cloud one year ago and so far running well. A top tier Salesforce consulting company help your company implement Sales Cloud with industry best practice. Within one year, you have been appointed as Salesforce administrator, you learn every single rule implemented in your Salesforce org, from custom field, validation rule, until workflow rule in all objects.

But, do you know that you may be just use 30% of Salesforce functionalities, and every year, Salesforce have 3 release which mean a lot of functionalities introduce in every 4 months.

How to learn the remaining 70% functionalities that you never aware, such as: Library, Chatter Actions, Collaborative Forecast, Territory Management, Communities, and so on, not to say the new functionalities every release.

Try to convince your boss to secure budget to sit in Salesforce Administration Essentials for New Admins (ADM201), it is not cheap, but your company should get the benefits to have someone within the company who know and been trained well, the investment for this course should be worth for the company in long run.

I have attend a few training held by Salesforce University and I really recommend for you to attend it, to know Salesforce featured in depth, whether you are system administrator or new developer.

In this course you will learn all essentials skill you need to have be a good Salesforce admin. Here is the curriculum offered by Salesforce.

Another benefit if you take above course, you will get free voucher to sit for Salesforce Administrator exam. Why you need to be certified?
- to prove and demonstrate your credibility / professional skill
- to convince you have the knowledge and confidence to take full advantage of Salesforce
- to improve your productivity and process
- because you are certified, to maintain your certification active, you need to pass every release exam

Your Salesforce certification can be verified online (unless you opt-out)

Here is the complete Salesforce certification available right now, but this doesn't mean you need to take all of them.

Let me share a story when worked with a consultant without any certifications. The consultant said he has been 5 years in the industry, so no need to take any certifications. But, when the project going-on, we can see his skill is not really up to date and team not really able to work with him. So, beware when your company hiring consultant, make sure he/she is certified. Doing same thing for 5 years is equal to repeat the same job of 1 year for 5 times.

Salesforce Success Communities
Answering questions in Answer Success Communities will open your mind on what other users do with their Salesforce, you maybe never know what is report type? what is person account? Some of this is available for you to use for free in your Salesforce. Until the new Lightning Process Builder introduce recently in Spring '15 release.

So, come to, if you have some questions need other users help, don't be shy to ask your questions, usually within minutes someone from some other parts of the world will response. If you know answer of question that someone ask, try to answer the question to help other user. Communities is helping each other...

ReferenceAchieve Outstanding CRM Administration

Sunday, March 8, 2015

Salesforce: Auto Add User to Chatter Group

As of now Spring '15 release, when create a new user in Salesforce, we cannot auto add user to Chatter Groups, except write Apex Trigger code in User object (see Bob Buzzard's blog), or get paid app from AppExchange ChattoMate.

But, with new Visual Flow + Process Builder, this has been made possible without writing code or using paid app.

Use Case: business request to add all Salesforce/Chatter users to a Chatter Group called 'All Users'. There is also an existing process to auto deactivate user if user last login is more than 2 months. By default, deactivate user will be remove user from the Chatter Group. When user request to be re-activate, user should be added back to the Chatter Group. Manual add user to the Group is not ideal as admins prone to forget, we need to look for solution to automate it.

Here is the simple logic to use Visual Flow and Process Builder:

1. Create Process Builder
  • When user created or edited, call Visual Flow below
2. Create Visual Flow
  • Check is user has been member of the Chatter Group
  • If not found, add user to the Chatter Group
But, issue arise as Salesforce do not allow to have Setup change and a Data change at the same. In that case, creating a user is Setup changed, and adding user to Chatter Group Member is Data changed. This causes the Mixed DML error. here is the full error message:
UPSERT FAILED ---  ERRORS : (MIXED_DML_OPERATION) DML operation on setup object is not permitted after you have updated a non-setup object (or vice versa): CollaborationGroupMember, original object: User ---

Workaround: change the transaction of adding user to Chatter group as future change. To make it simple, we'll create a new custom Checkbox field in User object to flag that particular user need to be added to Chatter Group.

Here is the updated logic:

1. Create a Workflow with Time-Dependent Action 
  • When user created or edited, and the checkbox is false, perform "future" Field Update action to update the custom field to true
2. Create Process Builder
  • When the flag is true, call Visual Flow below
3. Create Visual Flow
  • Lookup if user is member of the Chatter Group
  • If not found, add user to the Chatter Group

Create Visual Flow
1. Navigate to Setup | Create | Workflow & Approvals | Flows

2. Click New Flow button

3. Drag Record Lookup element onto the canvas

4. Enter Record Lookup Name = Check User Exist in Chatter Group

5. Select CollaborationGroupMember as look up object
    - CollaborationGroupId = the Chatter Group Id
    - MemberId = create new Variable, name it UserId 

6. Assign the Id to by create a new variable

7. Name the variable as GroupMemberId

8. This is what we have for Lookup 

9. Click OK button to continue

10. Drag Decision element onto the canvas

11. Enter Decision Name = Lookup Result

12. Enter outcome name = Not Found with condition as below:

13. Click OK button to continue

14. Connect Record Lookup element with Decision element

15. Drag Record Create element onto the canvas

16. Enter Decision Name = Create Membership

17. Select object = CollaborationGroupMember
     - CollaborationGroupId = the Chatter Group Id
     - CollaborationRole = select PICKLIST VALUES Standard
   [Admin or Standard]
     - MemberId = select variable UserId
     - NotificationFrequency = select PICKLIST VALUES D
       [D = Daily Digest; P = Each Post; W = Weekly Digest; N = Never]

18. Just leave record Id created, as we do not need it. Click OK button to continue

19. Connect Decision element with Record Create element

20. It will prompt you for Decision Routing, select Not Found (this is outcome name we set in step 12 above)

21. Hover mouse over Record Lookup and click the green arrow icon to set it as Start element.

22. This is the complete Flow

23. Click Save button, enter name = Add User to Chatter Group; select type = Autolaunched Flow, click OK to continue

24. Click Close button to back to list of Flows, then click Activate link, otherwise the flow will not visible in Process Builder.

Create Workflow with Time-Dependent Action 
1. Add a custom object Checkbox in User object = Add to Chatter group, with Default Value = unchecked.

2. Create a workflow rule as below:

3. Create Field Update action to update custom object Checkbox "Add to Chatter group" to true. It is important to select "Re-evaluate Workflow Rules after Field Change", otherwise later on field update here will not trigger Process Builder when this flag set to true.

4. Back to the workflow and add Time Trigger action, set it to 0 hours after Rule trigger date. Usually the trigger will kick-in within 15 minutes as it will be put the actions to queue, you can monitor from Setup | Time-Based Workflow, click Search button.

5. Add created field update action (step 3) as Time-Dependent Workflow Actions in this workflow.

6. Activate the workflow.

Create Process Builder 
1. Navigate to Setup | Create | Workflow & Approvals | Process Builder 

2. Click new Button to create new Process Builder

3. Enter name = Auto Add User to Chatter Group All

4. Select Object = User, and select Start the process = when a record is created or edited .Click Save button to continue.

5. Add Criteria, see following setting and click Save to continue

6. In Immediate Actions, call Flow created earlier

7. Click Activate button to activate the Process

Sunday, March 1, 2015

Use Thanks in to Recognize your Co-workers

As of Spring '15 release, Thanks is available for free for all Sales Cloud Users. Now, your users have access to Thanks feature, including ability to create, edit, share, and give thanks badges without a license.

By default, Salesforce provide 12 badges for you to use, but you can create custom badges specific for your company.

Enable Thanks 
To enable Thanks, navigate to: Setup | Customize | | Settings, look for Thanks Settings section and enable it.

If you enable Restrict Custom Badge Creators, this will restrict not all users able to create / manage badge, only users with Create custom Badge Definitions permission able to manage badges, include create new custom badge and modify out-of-the-box badges.

Give Thanks
To give Thanks to your co-worker, navigate to Feed in Home page or from Chatter page, including Chatter Group. Click Thanks icon, select a badge, type user name you want to thanks and message.

If you do not see Thanks icon in the feed, make sure it has been added in Global Publisher Layout. Navigate to Setup | Create | Global Actions | Publisher Layouts, click Edit link to the layout.

Receive Thanks
User who received Thanks will be notified by email, also the badge will be visible in user feed and recognition page.

1. User feed
Thanks will be visible in both feed of users who give and received thanks, include in Chatter Group if the feed post to the Chatter Group.

2. Email notification
User who received Thanks will get email notification that someone just post a Thanks feed to Chatter.

3. Recognition page
All Thanks received by a user will be visible for that User Recognition page in Chatter profile. This can be used as option for manager to evaluate his sub-ordinates when it come to appraisal.

Create Custom Badge
If your system admin enable "Restrict Custom Badge Creators", only users with "Create custom Badge Definitions" permission able to create custom badge for Thanks. Otherwise, this will be available for all users to create custom badge. Here is the steps:
  1. Open Badges tab, if you do not see it, make sure your profile have visibility for Badges tab. Or open, change ap1 to your company Salesforce instance.
  2. Click New button
  3. Enter Badge Name, Description and upload image URL
  4. If you select Company Badge, the badge will be available to use by all users
  5. If Company Badge is not selected, after you save it, you can define users or public groups have access to that badge in Access related list. Badge recipients do not need to have access to the badge to receive the badge, only user who give Badge need to have access to the badge.

Make sure the badge is Active, otherwise the badge will not available to any users who would like to give Thanks.