Salesforce Email With Attachments

Have you noticed that when you send an email from salesforce that you do not have the ability to send attachments from the record from which you sent the email? The Salesforce email system does have a nice "include attachments" function, and you can load attachments from the salesforce documents repository and from your local computer, but a serious limitation is the ability to include attachments from the record that you were viewing when you decided to send an email.

Let me give an example. Let's say you have a Contract record. You just produced the contract and saved it against the Contract record for that client. Now you want to send an email with that Contract document. You click "Send an Email" from the contract record. You can load a document from you computer or from the salesforce documents repository, but not from the originating contract record.

Click on Image to see Full Screenshot

Custom Development to the Rescue

So the way we've solved this problem for many clients is by writing a Visualforce page to replace the existing email system. We've approached this from many different angles depending on the exact needs of the client - so the resulting systems have all taken different forms. But here is what I would consider the "ideal" solution. Visualforce Email System With Attachment Loader

The main part of the system will be a duplication of the existing email author. While we're duplicating that,  we would improve some of the features there to make lookups and associations a little more convenient, but for the most part, our new system would look much like the other one.

The most significant departure from the standard system would be the "Attach File" popup. It is here that our custom functionality would be most evident. In this popup we would start with asking the user from where would they like to load their attachments. The options would be:

> The originating object
> Any other record in the system (provide a lookup where the user can select the object first, then the record, then any attachments found on that record)
> Their own computer
> Documents in Salesforce documents folder
> Documents from Content. 

Once functioning like this, the email system would be at its most useful. While we haven't built this system to function in exactly this way yet for any client, we've done several close variations on it.

If you need this functionality, let's discuss your requirements. We can certainly develop a useful system using the power of Visualforce and Apex to get what you need accomplished. Custom development is a lot less expensive these days than in years past and you can have the system you need built to your exact specification for probably less than you think. (Well, some of you have pretty small amounts in your mind, so, besides those people, we may be able to surprise you).

If you would like to chat with me about a development project like this, or any other custom development idea that you have for your system, please contact me at

Custom Portals in

If you are considering using one of's portals, either their customer portal or their partner portal - you may want to consider a "custom" portal rather than one of the Standard portals.

(also see a more recent blog post with additional information on this topic)

So what's the difference?

Salesforce provides its clients with two portal options: the customer portal and the partner portal.

The Salesforce customer portal is generally geared toward providing you a way to allow your customer's to see information that relates only to their account with you; things like their Account and Contact information, maybe the contracts they have on file with you, their Assets, etc. The primary limitation of a customer portal is that the portal user can only view their own account information. Customer portals cost from about $4-$10 per user/per month, depending on how they are licensed (and that can be confusing!).

The Salesforce partner portal is provided so that you can allow companies that you work with to provide you leads and generally manage the sales process associated with those leads through conversion and the movement of an opportunity through your sales pipeline. Your partners can also manage cases associated with accounts that they're working with. The primary enhancement of the partner portal is that you can view data across many accounts (also leads, opportunities, etc). Partner portal licenses generally run about $35 per user/per month.

Both portal types can view custom objects, regardless of ownership.

The salesforce standard ("standard" meaning it is provided by salesforce) portals are easy to configure and deploy - that is their primary advantage. Their primary disadvantage is that you are somewhat "stuck" with how salesforce delivers the interface. You can modify colors and fonts, links, the objects displayed, and a few other factors, but in general, the portal looks like a salesforce portal.

So what is a Salesforce Custom Portal?

For many of our clients, they need a portal, and are willing to pay for the salesforce licenses to get access to the portal, but they want significantly altered functionality, and "look and feel" than what they get in the standard portals. provides us with the ability to completely override their portal experience and replace it with a custom user interface ("Custom" meaning that it is new and built just for you). We can take advantage of the portal licensing, portal security, portal encryption, and build it on top of the database, so that we can provide full access to data in a fully customized user experience.

You'll notice in this screenshot that the login page is unique to the needs of the client, is completely different than the standard salesforce portal login page, has the look and feel of the client's main website, and still provides standard login page functions.

Once logged in, you'll notice that this portal, again retains the look and feel of the client website, yet has exactly the functionality that they wanted to provide their clients. Its data is fed by their database so both internal user and external portal users are working with the same data set.

Hybrid Portals - a mix of Custom and Standard

There are times when the standard portal is okay for your needs in some respects, but not others. In those cases we use the standard portal, but override any of the standard pages and replace them with our own functionality.

Here are a few examples of that:

a second example:

In these examples we used Salesforce visualforce functionality to build and display the functions that we needed rather than standard salesforce portal pages.

The Power of Visualforce and Apex Programming

A beautiful thing about and Visualforce is the fact that we can write code to accomplish whatever is needed. Using Visualforce (and the Apex programming language), we can build pages that do exactly what a client needs. They can interface with the underlying database to retrieve data, operate on it, present, save it, etc - in any way that supports the portal user. I point this out in the context of the portal, but Visualforce can be used inside of a standard salesforce system as well, even when not using the portal.

So in the above example, we used Visualforce to provide a list of orders, pages to overview those orders, and pages to allow for the entry and review of orders - in exactly the way desired by our client that they designed to best meet the needs of their clients.

Building your Own Portal?

If your company is thinking about building a customer or partner portal and you would like to gain some insights into the process and inquire about your options. Give us a call or visit our website. We can build your portal or simply help you make a better "portal option" decision.

You can reach us through