Send email-alerts and log the email.

Use process build, flow or apex to send an email

See the sent email in the activity feed



We strongly recommend using Flows to send emails – they are better than process builders and easier to debug.


#1 Install

  • Upvote the idea for Salesforce to make this standard.
  • Install the package – this only works on Enterprise edition and up as it requires apex code. Or view in GitHub.
  • Open a process builder (or flow)
  • On the actions select the “Apex Class” option

#2 Select the recipients

  • Related To ID – the ID of the record you want to relate this to (eg. account or opportunity). Not a contact, lead or user
  • Contact/Lead ID – Required if you use an email template
  • ‘To – To Addresses’– enter a comma-separated list of email address. Eg.,
  • ‘To – bcc Email Addresses’– comma-separated list of email addresses to go into the BCC field
  • ‘To – cc Email Addresses’ – comma-separated list of email addresses to go into the CC field
  • ‘TreatTargetObjectAsRecipient’ – true or false – if false it won’t send the email to the contact or lead

#3 Enter the email content

  • ‘Body – Template Id’  – the id of the email template. eg. 00X600000012maf
  • Or instead, use ‘Body – Template Unique Name’ with the unique name (API name) of the email template. eg. “Email_template_name”

Or write your own content. You cannot use custom content with an email template due to a limitation in Salesforce Apex:

  • Subject – specify the subject
  • ‘Body – Plain Text ‘ – enter a plain text body
  • ‘Body – Html’ – or an HTML body
  • ‘Body – Use Signature’ – include the user’s standard signature

#4 Attachments

  • ‘Attachment – ContentDocument – Comma Separated Ids’ — This is the ContentDocumentId of the document you want to attach. It will take the latest ContentVerion.
  • ‘Attachment – ContentVersion – Comma Seperated Ids’ to specify a specific ContentVersionId
  • ‘Attachment – Comma Separated Ids’ – List of Attachment Ids

#5 Optional Extras

  • ‘From – Org Wide Email Address’ – Specify a specific from address. This must be an org wide email address.
  • ‘Setting – Save As Activity’ – You decide if you want to log the email as an activity or not. Defaults to True
  • ‘Setting – Apex Error Email’ – Send an email to the specified address containing all errors
  • ‘Setting – email Opt Out Policy’- this helps define what you do if a user has opted out of receiving email


  • You cannot use Email Templates without a Lead or Contact Id. This is a limitation of Salesforce Apex code. One workaround is to create a dummy contact. We know this is not ideal
  • Apex email sends have a limit of 5000 per day across your org. Note that all recipients in the to, cc and bcc fields count against this limit  An example being an email with 2 addresses in the “to” field and 1 address in the “cc” field would count as 3 calls against the limit.


The Ultimate Free Salesforce Admin Tools

Pragmatic Solutions while we wait on Salesforce Ideas

We love Salesforce and love the flexibility it gives us. There are times where functionality isn’t quite released yet. So this page contains a list of tools you can use until the functionality is released. They are all designed for admins to be fired from process builder.

We operated on the following principles:

  • Avoid replicating standard functionality
  • Build everything declaratively is possible (then anyone can understand and tailor it)
  • Avoid Apex – it is slow to develop on, harder to change, hard to delete and requires testing.
  • Use process builder and not triggers
  • Easily removable – we don’t want to install multiple features at once as we are planning for Salesforce to remove the need for workarounds with standard features.

Launch with Process Builder

Add Opportunity Contact Roles

A flow that checks if an opportunity contact already exists before adding one. Inputs: Contact ID and Opportunity ID. Unmanaged Package Idea to upvote

Add/update Campaign Members

Checks where a campaign member exists and then adds one. If you add straight from process builder you will get a flow error on duplicates. You can optionally choose to overwrite the status by entering a status and marking ‘OverrideStatus’ as true

Install Link. Idea to upvote

Delete Anything

Not supported by us as you can do it in flows and it’s a rare business case. There is this github package that can do it for you though: 

Idea to upvote.

Auto Convert leads

Convert Leads into Accounts, Contacts, and (optional) Opportunities on-demand according to your criteria. This solution includes one apex class and its unit test. See instructions in stall link for setting this up with Process Builder or Flow to automate your lead conversion needs.

Install Link. Idea to upvote.

Credit: Doug Ayers

Convert Contact to Person Account

Made with in process builder to work on professional edition. For lot’s of our client’s, it’s an all or nothing switch to person accounts. Data gets messy when you have contacts and person accounts in the same org. Unfortunatly, at present you cannot create a person account from a contact lookup, only contacts. So this tool in the background converts the contacts to a person account.

You will need to create a process builder to trigger this flow. Make the criteria a contact with no account. Launch this flow as the immediate action. Enter the record types and names. Mailing addresses are copied to billing and shipping.

Install Link. Idea to upvote.

Campaign Activator

Campaigns need to be active to work in Salesforce lookups. This simple process build will activate the campaign on the start date and deactivate the campaign a day after the end date.

Install Link. Idea to upvote .

Better Chatter Posts

We cannot post to related records in process builder. Use this flow to specify the record, message and anybody you want to mention (only one user).

Install Link. Idea to upvote.


If you need more advance features like rich text chatter posts or choosing the post is posted by see:

NPSP Process BuilderTools

Add/Update Relationships

You can create relationships with process builder. But, if the relationship already exists it will create a duplicate. Use this flow to check for an existing relationship and then only create a new one if the contacts are not already linked.

Install Link. Idea to upvote.

Add/Update Affiliations

You can create Affiliations with process builder. But, if the Affiliations already exists it will create a duplicate. Use this flow to check for existing affiliations and then only create a new one if the contact and accounts are not already linked.

Install Link. Idea to upvote.

Applications and Triggers

Rollup Anything (Declarative Rollups for Lookups)

A comprehensive and must use tool! Perform rollups on schedules or in real time from any lookup. It’s free and better than roll up helper or the built in roll-ups (which have major limitations)

Install Link. Idea to upvote.

Credit: Andy Fawcett

Declarative Scheduler (and add campaign members automatically)

Run monthly, daily, hourly schedules the declarative way. This tool utilises Salesforce’s report engine to select the records and fields you want to update. Then this tool changes a datetime field to trigger a process builder

Instructions. Idea to upvote.

Opportunity Primary Contact Role Trigger

So we can’t do anything with opportunity contact roles as they are a second class object. No triggers or process builders. So when a contact is added as the primary role we want to have access to that contact on the opportunity. To install: create a field called Primary_Contact__c on the opportunity. Now whenever, you edit the opportunity and there is no primary contact then this trigger will populate it will the primary contact in the opportunity contact roles.

Unmanaged Package (this could be built with process builder and flows, however, we wanted it to not have any dependencies on any fields as many of you will already have a primary contact field)

Idea to upvote

Preserve Related Files on Account, Contact, or Lead Merge

Apparently, you lose related files when you merge accounts, contacts or leads. That’s terrible. It’s not a known problem for most of our client’s but we install this fix so it never needs to be.

Install Link. Idea to upvote.

Credit: Doug Ayers

Campaign list builder

The Campaign List Builder is a tool to help you quickly build complex mailing lists based on multiple Campaigns. Using a series of filters, you decide who should be part of the Campaign list.

Install Link. Idea to upvote.

Opportunity Stage Insert

Opportunities are fussy as they always require a stage and close date. This simple trigger allows you to specify the stage to use for each record type and if a close date is missing it adds in today’s date:

Install Link. Idea to upvote.

Custom Fields to Quote Lines

When a Quote is created or is syncing and you create an OpportunityLineItem then Salesforce automatically copies and syncs the OpportunityLineItem standard fields to the QuoteLineItem standard fields. Custom fields are ignored.

This project allows you to define via custom setting which OpportunityLineItem custom fields you want copied down to the newly created QuoteLineItem custom fields.

Please note that this project currently does not handle syncing.

Install Link. Idea to upvote.

Credit: Doug Ayers

Even Lead Assignment

Lead Assigner allows Admins to distribute leads evenly among its sales representatives. Admins can configure rules for lead assignment and select users to whom leads need to be routed. It also provides the capability to assign leads to only logged in users.

Install Link. Idea to upvote.

Other Admin and Development Tools

Bulk Field Level Security Editor

Edit all of your profiles on all or your objects at once. A dream come true.

Install Link. Idea to upvote.

Bulk adding fields

Schema Builder – there is a lot of talk about bulk creating tools. We have tried a few approaches. But this standard feature is just as quick as anything. It gives FLS to everyone and doesn’t add it to the page layout. It’s not good for adding formulas or roll ups, but those shouldn’t be added on mass as they need consideration.

Trailhead Link

Skyvia Data Loader was a go to, but the free version has more limits now. Skyvia allows you to set constants and formulas on import which is great for set statuses or record types. You can also import child objects of the same row. Skyvia will import the parent object and then get the ID and add it to the child object in one go


Mass Switching validation rules, workflows, triggers and process builder.

An awesome tool to be able to toggl on and off all validation rules and workflows. Great for apex deployment are importing records.

Install Link. 

Credit: Ben Edwards

Shut Up and Learn to Collaborate!

Which is better? – working in a growing business

Jack, a copywriter working remotely, is communicated to by only his boss, Jane, and only via emails. Jack doesn’t feel involved in the company’s life and doesn’t feel a part of the team. As a result, he isn’t that committed to the project or the goals.
Jack, a copywriter working remotely, communicates with all of the team in real time throughout the day. He can access all the same people, systems and files as everyone else. He joins meetings via video link and edits documents with his manager live. His tasks and work is tracked the same way as everyone else.
You Decide.

The Challenges You Will Face Growing Your Team

To grow your business and keep your teams dynamic you have four main challenges:

  1. Keeping communication two way
  2. Keeping everyone informed
  3. Keeping everyone involved
  4. Keeping communication targeted


1. Keeping communication two way

Start-ups have excitement in the air with the whole team constantly engaging with each other. Communication works in small organisations because leaders often talk with staff, and staff provide feedback. As your business grows it’s harder to really listen and learn from staff. As a result staff become disengaged and you miss out on their insights. Use collaboration tools to keep constant two way communication.

2. Keeping everyone informed

The four goals of collaboration are:

  1. Everyone who needs to know knows
  2. Only the people who need to know are informed
  3. Anyone who can help, gives input
  4. Decisions are made in the context of the business direction and customer experience

Our staff normally work across different locations. To keep everyone informed we use social feeds (Slack) as they allow us to talk to each other in any location in real time. However, their real power is in organising conversations by topic, opportunity or issue. We can even tag certain staff members and teams to bring them into the conversation only when they are required.

3. Keeping everyone involved

Xilinx, a semiconductor manufacturer, implemented social media tools and reported an increase in engineer productivity by around 25%. They embraced collaboration and allowed employees to maintain “wikis” (online Wikipedia for a business) or online forums to share best practices and workarounds for particular problems.

Another great tool we have used for work planning is Trello. We have boards where we can see our tasks and what the rest of the team is working on. It also allows us to: assign each other tasks, link documents to tasks, vote on work priorities and store new ideas.

4. Keeping communication targeted

A joint study by a few European universities shows that communication and overall productivity tends to suffer with teams of 20+ members. In order to not get lost in miscommunication, make sure you set communication ground rules. For example: how to log task updates, how to link files to comments, and which feeds are used for what. The goal is that only the people who need to know are informed.

Collaboration works best when everyone knows their role. The next article in the scale your business series is how to replace outdated job descriptions with meaningful position contracts.

Stop relying on talented people

Talented people are used to solve problems. It makes sense. They have the knowledge, resourcefulness and capability to get things done. This is a problem because it’s not a scalable solution. Often the real underlying problem doesn’t get dealt with. Before long, a similar problem arises again and another talented person is tasked with solving it. What’s needed is a system that identifies the issues and provides a consistent workable solution anyone can follow.

“Talent should serve the system and the system should empower the talent.”

The same goes for achieving results. If your talented staff are achieving top results, don’t be tricked into thinking that every new staff member will automatically perform to the same level.



“I’ve seen time and time again that when our business coaching clients implement systems and sound business processes, their team enjoys more success, retention increases, and the cost of replacing any one team member drops dramatically.”


5 Steps To Building Empowering Systems:


1.Harness the knowledge of your best staff

The problem with brilliant people is that it’s too easy to rely on the experience and knowledge stuck in their heads. To grow you need to be able to replicate their experience and knowledge. There are many core tasks in your business, like sales, that your team repeat over and over again. You need to capture your staff’s knowledge and start to systematise by designing repeatable processes.


2. Map the process

The best place to start is by designing process maps. A “process map” visually describes the flow of activities of a process helping you gain a clear understanding of how things really work. Check out the example below:

How To Play Pictionary



3.Improve on your best

Designing your staff’s processes is very exciting. Your goal is to find the easiest and most repeatable way to add the most value. When done properly you go beyond documenting and uncover insights and efficiencies. You can allow people to think creatively about new ways of working. But remember, creativity is thinking of new ideas, innovation is implementing new ideas. You need to make sure any great ideas are put into practice.



4.Integrate each process into the rest of the business

Just documenting processes won’t change your business. You can’t just write policy and process documentation. You won’t get real results. These documents are rarely followed and rarely kept up to date. You must put a front end on the process that people can interact with.




5.Keep the processes alive

You need to remember that your systems and processes are always a work in progress. They are never static. As your market grows and adapts you need to change with it. We are not looking at putting in the final system that will work for a million customers today. You need to start with the 100 customers. But, that system for the hundred customers won’t work for the million customers tomorrow.


Give staff the authority and autonomy to be great. Involve them in the initial process design and then turn them into process champions. Make them accountable to improve the process. Make sure the process controls are helping the team meet the business objectives.

 “My first boss in consulting understood this concept. Whenever I had an issue there were only two outcomes for him: 1. I didn’t follow the process so go back and follow it or 2. The process didn’t work so bring me a recommendation on how to fix it.”


Let’s Get Practical – how to give people a way to interact with the process:

1. Visual controls 

  • Checklists. If the process states you need to complete five tasks, then give your staff a checklist to mark off as they complete them.
  • Budgets and dashboards. Allow staff to track how well they are following the process.

2. Procedural control

  • Review process for hiring. E.g. All interviews are conducted by two staff members.
  • Project initiation. Require a business case review before starting.
  • Sales scripts. Reduce thinking time and optimise profit and the customer experience. Include guides on pricing boundaries & upselling.

3. Embedded controls

  • Templates – by completing the template you have followed each step of the process (often without realising it). For example, when we do our free business health check we have standard questions and response templates. This allows us to pool our years of experience very quickly.
  • Saving Power – Hotels have a “lights off” policy to save power. To make this process work they require you to have the key in the room for the electricity to work. When you leave the room it turns off the electricity.
  • Expense process – you can’t make a payment unless you assign a budget code. This ensures the expense data is kept up to date.
  • Customer follow up – When the system registers a sale it automatically creates future tasks for follow up and prepopulates the correct templates or automatically sends an email.

4. Measurement controls

  • This is a carrot and stick approach. Track process efficiency and the outputs in your monthly KPIS. If a staff member is meeting their targets then you don’t need to worry. If they don’t they are now more inspired to follow the process.


Aim to Implement all four controls at once

Notice that all of these process controls reduce reliance on you, make life easier for your staff, optimise your profit and provide your customers a more consistent and optimised experience.

Building a process orientated business is not a one off exercise. It is a culture change. If you ever want to scale your business, sell it or reduce your stress you need to reduce the reliance on you.