Hands-on Training: Extend and Customize the Nonprofit Starter Pack
...
Friday, February 28, 2014
Salesforce: Setup Audit Trail
Salesforce: Setup Audit Trail
Setup audit trail helps to track setup changes done by system
administrators or users with extra permissions. This feature is very
useful for organizations with multiple administrators; or even to find
if you forget when to a feature is enabled.
You can view the setup audit trail history, from Setup - Security Controls - View Setup Audit Trail.
It will show latest 20 entry, you also can download up to past 180
days history into CSV file. Audit Trail will show information of Date,
User, Action, Section, and Delegate User (if any).
Please note that NOT ALL changes is tracked in Audit Trail, such as:
Outlook Configurations, List Views and etc. Here list of type tracked in
Audit trail :
- Administration
- Customization
- Security and Sharing
-...
Salesforce: change email address without confirmation
How to change user email address without confirmation
As security measure in Salesforce, when admin change user email address
(maybe in sandbox, typo or other reasons), Salesforce will send an
verification email to the new email address, user need to verify by
click a link in the email. Before user verify the link, email address
will not change, no matter how many times you do it, even using API.
But, can admin change the email address without confirmation email? Yes, here is the trick:
Click Edit on user detail page
Change the email address AND check "Generate new password and
notify user immediately" checkbox (all the way at the bottom of the
edit screen) at the same time
Click Save button
Salesforce will change email address immediately, no confirmation is
needed! But, of...
Thursday, February 27, 2014
Salesforce: Multiple ways to add people to a Campaign

Salesforce: Multiple ways to add people to a Campaign
I think most of Salesforce admin know, Salesforce is huge, there are so
many features that we are not aware and further, Salesforce add hundred
of features in every release. So, it is good to keep our knowledge up to
date.
In this blog, I would like to share on how to add people in Campaigns.
Most of us only know to add Campaign members from Campaign page. But,
there are few more ways.
1. Add Campaign Members from Contact/Lead Reports
You can add contacts or leads from contact or lead report, make sure you or your user have this permission: Marketing User checked AND “Edit” on campaigns...
How to check Record Type enabled for Salesforce Profiles easily?

How to check Record Type enabled for Salesforce Profiles easily?
To check if a record type is enabled for specific profile is easy, just
open the profile and scroll to Record Type Settings. You can see and
edit record type for specific object. But, hang on, how about if I have
100 profiles? It mean, you need to open all 100 profiles and check it
one by one. Hmm, not a good one.
As of now (Summer '13 Release), there is no way to check in
Salesforce.com, which profiles are enable to specific record type. Admin
have to manually open each profiles, then scroll to Record Type
Settings related list to see if record type is enable for...
Tuesday, February 25, 2014
Salesforce Sandbox Refresh

Salesforce Sandbox Refresh & How to refresh salesforce sandbox
Available in: Enterprise, Unlimited, and Database.com Editions only
Permission to view sandbox: “View Setup and Configuration”
Permission to create, refresh, activate, and delete sandbox: “Modify All Data”
From Spring '13 release, newly created sandboxes have the default email deliverability setting System email only.
The System email only setting is especially useful for controlling
email sent from sandboxes so that testing and development work doesn't
send test emails to your users.
From Summer '13 release, you can create sandbox Template to choose data included...
Monday, February 24, 2014
What are Sandbox templates?
What are Sandbox templates?
The Summer ’13 release includes a couple major changes for sandbox users: templates and a new look that makes it even easier to create and manage your sandboxes.
Sandboxes contain copies of your organization’s configuration and (optionally) data. Use sandboxes for training or to test, configure, and deploy changes to a production organization. Full sandboxes are particularly useful for development teams to coordinate testing and deployment to production organizations.
Previously, when you created a Full sandbox, all of your organization’s data was copied to the sandbox. Now, Sandbox templates let you pick-and-choose...
Thursday, February 20, 2014
What is Apex?
What is Apex?
Apex is a strongly typed, object-oriented programming language that allows developers to execute flow and transaction control statements on the Force.com platform server in conjunction with calls to the Force.com API. Using syntax that looks like Java and acts like database stored procedures, Apex enables developers to add business logic to most system events, including button clicks, related record updates, and Visualforce pages. Apex code can be initiated by Web service requests and from triggers on objects.
When Should I Use Apex?
The Salesforce prebuilt applications provide powerful CRM functionality. In addition,...
What is Visualforce?
What is Visualforce?
Visualforce is a framework that allows developers to build sophisticated, custom user interfaces that can be hosted natively on the Force.com platform. The Visualforce framework includes a tag-based markup language, similar to HTML.
In the Visualforce markup language, each Visualforce tag corresponds to a fine-grained user interface component, such as a section of a page, a related list, or a field. The behavior of Visualforce components can either be controlled by the same logic that is used in standard Salesforce pages, or developers can associate their own logic with a controller class written
in Apex
Where...
Tuesday, February 18, 2014
Chatter usage and activity report

Chatter usage and activity report
For organisation using Chatter, you may need and interested to know how Chatter usage in your company.
1. Chatter Usage Dashboards
This is free app from AppExchange, you can install from this link
From this dashboard you can see:
- top 10 most popular users
- top 10 most popular groups
- number of chatter groups (private vs public)
- total User feed & group feed
- top users post to group
- etc
2. Chatter Activity and Influence report
Create custom report type
Click on Setup - Create - Report Types - New Custom Report Type and choose "Chatter Activity"
object. Give it a name "Chatter...
Sunday, February 16, 2014
Salesforce "Email Privileges Revoked" error message

Salesforce "Email Privileges Revoked" error message
When you write apex code in Salesforce to send email in Sandbox
instance, you may find error "Email Privileges Revoked" error message.
You may never see this error earlier. What is the caused?
As per Spring'13, Salesforce have added a way for you to control
the type of email your organization sends, with the new Access level
setting in Setup > Administration Setup > Email Administration > Deliverability.
While you typically won’t change this setting day-to-day, these options
can be useful when you need to temporarily suspend outbound email...
Saturday, February 15, 2014
Improve Salesforce report performance
Salesforce.com report is a simple, yet very powerful feature.
Out-of-the-box, it come with multiple type of reports, and admin can
create more custom report type as needed. With report builder introduce
few years back, it even easier to use and more user friendly.
But, sometimes you may found that report take sometimes to load, or time-out (although this is very rare happened).
What is the caused?
1. Too many columns in report
Just add columns as needed. More columns to display will take more time
to run report. You also can hide details, when it needed, just click
"Show Details" button.
2. Too many records
Set report filter criteria correctly and efficiently, you can add multiple criterias and time frame.
3. Inefficient filters
Contain and Does Not Contain take longer...
Friday, February 14, 2014
How to restrict sharing access in Salesforce?

We often heard that business would like to restrict x number of users to
access Account, while open it to rest of users. How we can do that in
Salesforce?
However in Salesforce, it is the other way round. You need to specify
who can access an object, NOT about who cannot access an object.
If your company decide not to give access to anyone in company (to view
or edit an object), Organization-Wide Defaults (OWD) should be set to
Private, then add sharing rule for that object based on: Criterias,
Public Groups, Roles or 'Roles and Subordinates'.
If OWD is set to Private or Public Read-Only. It will be shared in following rule:
Role...
Thursday, February 13, 2014
Salesforce Campaign field do not show in Lead page layout

A user come to me and ask, "Why the Campaign field in Lead page disappear after create a new lead?"
Hmmm... as system admin, what will you check?
- Make sure Campaign still exist in page layout - checked
- Check Field-Level Security for particluar user profile - checked
User still do not see Campaign field in Lead after it saved or when he
edit a Lead, but it is visible when user create new Lead. After some
finding, it is designed by default from Salesforce.com
Here is the explanation:
1. The Campaign lookup field on the lead page only available when user create new Lead.
2. It will disappears after a new lead is created because the...
Tuesday, February 11, 2014
Salesforce Custom Label

Custom Label maybe not so popular among Salesforce administrator compare
to other feature, such as: workflow, formula field and so on. Custom
Label enable developers to create multilingual applications by
automatically presenting information in a user's native language from
Apex class or Visualforce page.
Not only for developers, Custom Label actually also available for system
administrators to be used in formula field. A value from a formula
field can be depend on value from custom label referred, when display in
page layout, it will be displayed based on language selected in user
detail. Please note if you want to set Custom Label...
Sunday, February 9, 2014
Delete Campaign in Salesforce
A user come to me that she do see delete button in a campaign she create wrongly.
As usual, I check user profile and page layout.
- User profile have delete permission on Campaign object - checked
- Page layout have delete button - checked
So, what is the caused?
Finding.... campaign is not the same with other object. You need to
enable "Marketing User" for particular user to be able to see that
'Delete' button.
Click Your Name | Setup | Manage users | User | Look up for the user's name | Edit | Enable the marketing user checkbox | Save.
The Marketing User check box on the user profile page indicates whether
or not a user has the right to create and manage campaigns including:
Create a new campaign
Edit an existing campaign
Delete an existing campaign
Update campaign statistics
Import...
Saturday, February 8, 2014
Salesforce change account owner

Do you know or realize, when account owner is changed manually through salesforce UI the new owner will also gain ownership of
all notes and open activities for this account (completed activities will not be transferred)
all contacts tagged to account owned by old owner
all opportunities tagged to account (including closed opportunities
if you select the "Transfer closed opportunities" and opportunity owned
by different owner if you select "Transfer open opportunities..." as
screenshot below
But, if you change the account owner through API, or API tool such as:
Data Loader, only the Account Owner is changed. It...
Friday, February 7, 2014
Salesforce Archived Activities
One day, a user come to me, "Why I do not see some of my activity
history in report, although it is visible in the page layout related
list from an object" ?
This is because Salesforce archives activities (tasks and events) that are over a year old. Activity archive criteria:
Events with an ActivityDateTime or ActivityDate value greater than or equal to 365 days old
Tasks with an IsClosed value of true and an ActivityDate value greater than or equal to 365 days old
Tasks with an IsClosed value of true, a blank ActivityDate field, and a create date greater than or equal to 365 days ago
If you are using Data Loader, you need to select Export All instead of Export, and if using other API tool, make sure it call queryAll() instead of query() function.
You can also filter on the...
Thursday, February 6, 2014
Salesforce Account Team Member and Account Share

Account Team Member and Account Share only available in Enterprise and
Unlimited edition (included Developer edition). An account team is a
team of users that work together on an account. You can add a user into
Account Team manually from Account Team related list in Account Page
Layout.
After click Add button, you can specify Account Access, Contact
Access, Opportunity Access, Case Access, and Team Role. If your default
sharing in OWD is Private for that object, you will see Private, Read
Only, and Read/Write option in picklist. You can add up to 5 users every
time add team member manually.
But, if you need to...
Wednesday, February 5, 2014
Mass upload/insert non-English characters to Salesforce
We can mass upload / insert data to Salesforce easily using Data Loader
or other API tool. But, if we get the data in Excel file with
non-English characters, non-English characters will be come ?? if we
save it to CSV file directly from Ms Excel.
To able to upload in non-English characters, the file should be in UTF-8
and here is a step by step procedure that needs to be done since it is a
limitation of Excel to save non-English character to csv file.
[ MS Excel ]
1. Open the *.xlsx file from MS Excel
2. Click menu > Save As
3. Put any name for the file and choose "Unicode Text (*.txt)" for "Save as type :" and Click Save
[ MS Notepad ]
4. Open the unicode text file using Microsoft Notepad. Some characters
can appear as a box, however, this is because Notepad cannot display
some...
Tuesday, February 4, 2014
Salesforce Time-Dependent Workflow and Entry Criteria

Time-Dependent Workflow is a very nice feature out-of-the-box from
Salesforce. You can easily configure it to do action such as: create
task, send email alert, field update and send outbound message. The
actions will only trigger when a certain date or hour hit as it is
configured.
Actions for Time-Dependent Workflow is exactly the same with Immediate
Workflow, and you can share the same actions between Time-Dependent
Workflow with Immediate Workflow, depend on your business needs, even to
combine Time-Dependent and Immediate workflow in the same workflow
rule.
One thing you need to note when create Time-Dependent Workflow is the Evaluation...
Saturday, February 1, 2014
How to report Chatter records following by users?

As of Salesforce Spring '13 release, maximum people and records a user
can follow in Chatter is 500. Once a user hit 500, user unable to follow
any user or record.
Question, how to check number of people + records has been followed?
Easy answer, click on user profile and it will show in right panel of
count and items "Following". Then, you can click "Show All (number)" to see all records and people that user are following.
But, is there anyway to list all items following for all users? We
cannot find in Chatter reports on this. If you are familiar with SOQL or
Data Loader, this is possible...
The object that stored all...
Query Chatter feed item & how the structure in Salesforce object

Salesforce admin can enable Chatter feed tracking on Salesforce object, include custom objects.
Go to Setup - App Setup - Customize - Chatter - Feed Tracking
Select object to track and tick "Enable Feed Tracking", you can select up to 20 fields.
In the background, once an object is enable for feed tracking, Salesforce will create new object end with suffix Feed (for Standard object) or _Feed (for Custom object). This is available in API version 18.0 and later.
Using SOQL, you can do this query:
Select Id,
ParentId, Type, Title, Body, CommentCount, LikeCount, LinkUrl,
RelatedRecordId, ContentFileName, ContentSize, ContentType From
Object1__Feed
This...