<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1048785611436799673</id><updated>2012-01-05T10:30:32.539-08:00</updated><category term='Salesforce.com Sites'/><category term='Reports'/><category term='Salesforce.com Development'/><category term='salesforce.com email service inbound email2lead email-to-lead custom development apex'/><category term='web form salesforce.com'/><category term='Salesforce'/><category term='Salesforce.com Tools'/><category term='Salesforce.com Customer Portal'/><category term='Visualforce Development'/><category term='mailing lables'/><category term='Apex Development'/><category term='salesforce platform user'/><category term='salesforce.com dashboard'/><category term='salesforce.com report'/><category term='salesforce.com salesforce excel connector Professional Edition Data'/><category term='salesforce.com salesforce 18 digit 15 IDs ID Snapptraffic Consulting www.snapptraffic.com'/><category term='Salesforce.com Reports'/><category term='Salesforce.com partner portal'/><category term='Salesforce.com Dashboards'/><category term='salesforce customer portal'/><category term='Salesforce.com Salesforce Consulting Consultant Consultants Snapptraffic Consulting http://www.snapptraffic.com'/><category term='salesforce.com excel connector download professional edition Snapptraffic Consulting www.snapptraffic.com'/><category term='Salesforce Partner Portal'/><category term='Salesforce.com'/><category term='salesforce salesforce.com partner portal users reports insufficient privileges'/><category term='salesforce.com apex visualforce developer developers development trigger triggers'/><category term='vlookup'/><category term='address labels'/><category term='web2anything'/><category term='web-to-anything'/><category term='salesforce.com lead distribution round robin trigger visualforce'/><category term='Salesforce Custom Portal'/><category term='salesforce.com import person accounts data loader'/><category term='Login'/><title type='text'>Salesforce Vision</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://salesforcevision.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1048785611436799673/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://salesforcevision.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Mike Snapp</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://photos1.blogger.com/blogger/6108/2803/1600/Mike%20Snapp.0.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>26</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1048785611436799673.post-6425690249345920696</id><published>2012-01-05T10:15:00.000-08:00</published><updated>2012-01-05T10:16:26.932-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='salesforce platform user'/><category scheme='http://www.blogger.com/atom/ns#' term='salesforce.com report'/><category scheme='http://www.blogger.com/atom/ns#' term='salesforce.com dashboard'/><category scheme='http://www.blogger.com/atom/ns#' term='Salesforce.com Dashboards'/><category scheme='http://www.blogger.com/atom/ns#' term='Salesforce.com Reports'/><title type='text'>Dashboards for Platform Users</title><content type='html'>Here is another issue that can be difficult to figure out.&lt;br /&gt;&lt;br /&gt;We have a lot of clients using Platform licenses for many of their users. This is a good deal for a client because they get all the power of Salesforce Enterprise edition for well under half the price. Enterprise Edition is about $125/user/mo. The Platform Edition is a lot less - about $50/user/mo. I've seen people get it for as low as $20/user/mo if they worked a deal with Salesforce.&lt;br /&gt;&lt;br /&gt;The limitation of the platform edition is that you don't get the Salesforce "Applications" like the Sales Cloud (Leads &amp;amp; Opportunities), the Marketing system (Campaigns), the Support Cloud (Cases, Assets), etc. So this can be a significant limitation depending on your needs - but for those who don't need those objects, you can save a lot by using custom objects rather than the salesforce standard objects. BTW, you do get Accounts, Contacts, Reports, Dashboards, Chatter, and a whole bunch of the other Enterprise level systems with the Platform such as workflow rules, approvals, the API, full visualforce capability, custom profiles, record types, etc - so it can be a great option if it fits your needs.&lt;br /&gt;&lt;br /&gt;But there is one little thing that I kept running into that I finally solved: Platform Users running Dashboards.&lt;br /&gt;&lt;br /&gt;In researching this issue I found out that people on the forums simply say: platform users can't use dashboards - BUT THAT ISN'T TRUE!&lt;br /&gt;&lt;br /&gt;It's actually pretty simple - if you want a platform user to be able to see a dashboard, the running user must also be a platform user. Simple as that. Make a new dashboard. Set a platform user as the running user. Build your reports and dashboard elements.&lt;br /&gt;&lt;br /&gt;If you need help on any salesforce.com issue, feel free to contact me at &lt;a href="http://www.snapptraffic.com/"&gt;www.snapptraffic.com&lt;/a&gt;. Our consulting services at Snapptraffic Consulting are geared towards helping the salesforce.com customer get the most out of their system. From troubleshooting to full scale implementation and development - we can help.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1048785611436799673-6425690249345920696?l=salesforcevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://salesforcevision.blogspot.com/feeds/6425690249345920696/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1048785611436799673&amp;postID=6425690249345920696' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1048785611436799673/posts/default/6425690249345920696'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1048785611436799673/posts/default/6425690249345920696'/><link rel='alternate' type='text/html' href='http://salesforcevision.blogspot.com/2012/01/dashboards-for-platform-users.html' title='Dashboards for Platform Users'/><author><name>Mike Snapp</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://photos1.blogger.com/blogger/6108/2803/1600/Mike%20Snapp.0.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1048785611436799673.post-811906147119106243</id><published>2011-12-09T07:23:00.001-08:00</published><updated>2011-12-09T11:42:20.432-08:00</updated><title type='text'>Salesforce Email With Attachments</title><content type='html'>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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-Hei0ywf_KBA/TuIqvHQQHSI/AAAAAAAAAEU/i_3sUP1vFss/s1600/Email+with+Attachments.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="513" src="http://2.bp.blogspot.com/-Hei0ywf_KBA/TuIqvHQQHSI/AAAAAAAAAEU/i_3sUP1vFss/s640/Email+with+Attachments.jpg" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Click on Image to see Full Screenshot&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;Custom Development to the Rescue&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;So the way we've solved this problem for many clients is by writing a Salesforce.com 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.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;Salesforce.com Visualforce Email System With Attachment Loader&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;The main part of the system will be a duplication of the existing email author. While we're duplicating that,&amp;nbsp; 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.&lt;br /&gt;&lt;br /&gt;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:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Times,'Times New Roman',serif;"&gt;&amp;gt; The originating object&lt;br /&gt;&amp;gt; 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)&lt;br /&gt;&amp;gt; Their own computer&lt;br /&gt;&amp;gt; Documents in Salesforce documents folder&lt;br /&gt;&amp;gt; Documents from Content.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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).&lt;br /&gt;&lt;br /&gt;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 Salesforce.com system, please contact me at www.snapptraffic.com&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1048785611436799673-811906147119106243?l=salesforcevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://salesforcevision.blogspot.com/feeds/811906147119106243/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1048785611436799673&amp;postID=811906147119106243' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1048785611436799673/posts/default/811906147119106243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1048785611436799673/posts/default/811906147119106243'/><link rel='alternate' type='text/html' href='http://salesforcevision.blogspot.com/2011/12/salesforce-email-with-attachments.html' title='Salesforce Email With Attachments'/><author><name>Mike Snapp</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://photos1.blogger.com/blogger/6108/2803/1600/Mike%20Snapp.0.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-Hei0ywf_KBA/TuIqvHQQHSI/AAAAAAAAAEU/i_3sUP1vFss/s72-c/Email+with+Attachments.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1048785611436799673.post-1246328315953627379</id><published>2011-12-07T09:58:00.001-08:00</published><updated>2011-12-07T13:16:05.427-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Salesforce.com Customer Portal'/><category scheme='http://www.blogger.com/atom/ns#' term='Salesforce Custom Portal'/><category scheme='http://www.blogger.com/atom/ns#' term='Visualforce Development'/><category scheme='http://www.blogger.com/atom/ns#' term='Apex Development'/><category scheme='http://www.blogger.com/atom/ns#' term='Salesforce Partner Portal'/><title type='text'>Custom Portals in Salesforce.com</title><content type='html'>If you are considering using one of Salesforce.com's portals, either their customer portal or their partner portal - you may want to consider a "custom" portal rather than one of the Salesforce.com Standard portals.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;So what's the difference?&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;Salesforce provides its clients with two portal options: the customer portal and the partner portal.&lt;br /&gt;&lt;br /&gt;The Salesforce&amp;nbsp;&lt;i&gt;customer portal&lt;/i&gt; 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!).&lt;br /&gt;&lt;br /&gt;The Salesforce&amp;nbsp;&lt;i&gt;partner portal&lt;/i&gt; 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.&lt;br /&gt;&lt;br /&gt;Both portal types can view custom objects, regardless of ownership.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;So what is a Salesforce Custom Portal?&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;Salesforce.com 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 salesforce.com database, so that we can provide full access to salesforce.com data in a fully customized user experience.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-D4tdfcsxQaY/Tt-vSleOqKI/AAAAAAAAAD0/i7F3y46f26c/s1600/Portal+Screenshot.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="222" src="http://1.bp.blogspot.com/-D4tdfcsxQaY/Tt-vSleOqKI/AAAAAAAAAD0/i7F3y46f26c/s320/Portal+Screenshot.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;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 salesforce.com database so both internal user and external portal users are working with the same data set.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-_4tXtM-tOd0/Tt-wEwCU96I/AAAAAAAAAD8/MpTXSW2orx8/s1600/Portal+2+Screenshot.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="214" src="http://2.bp.blogspot.com/-_4tXtM-tOd0/Tt-wEwCU96I/AAAAAAAAAD8/MpTXSW2orx8/s320/Portal+2+Screenshot.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;Hybrid Portals - a mix of Custom and Standard&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;Here are a few examples of that:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-6rrqvbXMDt0/Tt_BhZ-hRwI/AAAAAAAAAEE/YsSl0jzqwzM/s1600/Hybrid+Portal.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="192" src="http://4.bp.blogspot.com/-6rrqvbXMDt0/Tt_BhZ-hRwI/AAAAAAAAAEE/YsSl0jzqwzM/s320/Hybrid+Portal.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;a second example:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-y13lIldCxC0/Tt_BpgQH6jI/AAAAAAAAAEM/l-rlSXScKIU/s1600/Hybrid+2+Portal.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="192" src="http://1.bp.blogspot.com/-y13lIldCxC0/Tt_BpgQH6jI/AAAAAAAAAEM/l-rlSXScKIU/s320/Hybrid+2+Portal.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;In these examples we used Salesforce visualforce functionality to build and display the functions that we needed rather than standard salesforce portal pages.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;The Power of Salesforce.com Visualforce and Apex Programming&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;A beautiful thing about salesforce.com 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 salesforce.com 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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;Building your Own Portal?&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;You can reach us through &lt;a href="http://www.snapptraffic.com/"&gt;www.snapptraffic.com&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1048785611436799673-1246328315953627379?l=salesforcevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://salesforcevision.blogspot.com/feeds/1246328315953627379/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1048785611436799673&amp;postID=1246328315953627379' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1048785611436799673/posts/default/1246328315953627379'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1048785611436799673/posts/default/1246328315953627379'/><link rel='alternate' type='text/html' href='http://salesforcevision.blogspot.com/2011/12/custom-portals-in-salesforcecom.html' title='Custom Portals in Salesforce.com'/><author><name>Mike Snapp</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://photos1.blogger.com/blogger/6108/2803/1600/Mike%20Snapp.0.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-D4tdfcsxQaY/Tt-vSleOqKI/AAAAAAAAAD0/i7F3y46f26c/s72-c/Portal+Screenshot.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1048785611436799673.post-6739158205980373427</id><published>2011-09-22T15:46:00.000-07:00</published><updated>2011-09-22T15:51:10.909-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='salesforce salesforce.com partner portal users reports insufficient privileges'/><title type='text'>Reports for Salesforce.com Partner Portal Users</title><content type='html'>Want to drive yourself crazy? Try figuring out why your Salesforce Partner Portal Users can't view reports. It won't be the obvious things.&lt;br /&gt;&lt;br /&gt;- You'll try looking at the report folder permissions, ensuring that partner portal users are selected. Okay, that was easy, but it didn't work.&lt;br /&gt;- Next you'll confirm which profile your partner portal users are on and go look at that profile to ensure that they have general user permission to view reports. Alright, got that set - still "Insufficient Privileges"&lt;br /&gt;- You check the salesforce partner portal settings and ensure that they have the report tab turned on. Yeah, yeah, yeah, it was - still no reports.&lt;br /&gt;- And finally you ensure that the sharing model doesn't prevent them from seeing the data in the report. No joy.&lt;br /&gt;&lt;br /&gt;Then what else could you possibly check? What else is there to check? Certainly nothing obvious.&lt;br /&gt;&lt;br /&gt;Well that is where I found myself recently, having checked everything I could think of. I searched Google for Salesforce Partner Portal Reports and after looking through about 20 links, came across an exchange on the salesforce.com forums where a user realized what the issue was and mentioned it.&lt;br /&gt;&lt;br /&gt;As it turns out, salesforce.com is "expecting" you to be in a private sharing model with regard to your partner portal users and their use of reports. Meaning, they built things thinking that is how you would be using the system. Therefore, even if you are in an open sharing model, all the way down to your partner portal users, if they run a report that includes records that they do not own, they will receive an "Insufficient Privileges" error.&lt;br /&gt;&lt;br /&gt;According to the sharing model, they should have no problem viewing these records, but since they don't own the records and have not had the records explicitly shared with them through a sharing rule - they get that error. &lt;br /&gt;&lt;br /&gt;I don't quite get why, maybe someone who understands this more thoroughly can explain, but in a nutshell,&amp;nbsp;in order to grant partner portal users permission to view reports, you must:&lt;br /&gt;&lt;br /&gt;1) make the sharing model PRIVATE, then&lt;br /&gt;2) use a sharing rule to grant them visibility over the records in the object that is being reported on.&lt;br /&gt;&lt;br /&gt;I know, go figure. Didn't make sense to me. But it worked.&lt;br /&gt;&lt;br /&gt;If you need help on any salesforce.com issue, feel free to contact me at &lt;a href="http://www.snapptraffic.com/"&gt;www.snapptraffic.com&lt;/a&gt;. Our consulting services at Snapptraffic Consulting are geared towards helping the salesforce.com customer get the most out of their system. From troubleshooting to full scale implementation and development - we can help.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1048785611436799673-6739158205980373427?l=salesforcevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://salesforcevision.blogspot.com/feeds/6739158205980373427/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1048785611436799673&amp;postID=6739158205980373427' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1048785611436799673/posts/default/6739158205980373427'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1048785611436799673/posts/default/6739158205980373427'/><link rel='alternate' type='text/html' href='http://salesforcevision.blogspot.com/2011/09/reports-for-salesforcecom-partner.html' title='Reports for Salesforce.com Partner Portal Users'/><author><name>Mike Snapp</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://photos1.blogger.com/blogger/6108/2803/1600/Mike%20Snapp.0.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1048785611436799673.post-486508376858436186</id><published>2011-08-29T20:35:00.000-07:00</published><updated>2011-08-29T20:35:15.540-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='salesforce.com salesforce 18 digit 15 IDs ID Snapptraffic Consulting www.snapptraffic.com'/><title type='text'>The Salesforce 18 Digit ID</title><content type='html'>As a Salesforce.com consultant, I've run into this 18 digit vs. 15 digit ID issue many times when working in Salesforce.com. Here is why:&lt;br /&gt;&lt;br /&gt;When working with data in salesforce.com there will be times when you need the 18 digit ID of a given record. This will most likely happen because you have two tables in Excel and you need to do a lookup from one table to the other using an ID.&lt;br /&gt;&lt;br /&gt;Say for example you need a list of contacts at accounts where you have open opportunities. If not using Contact Roles, which is the case for many companies, in order to produce this list you have to make yourself a report of Accounts &amp;amp; Contacts and a report of Accounts &amp;amp; Opportunities - both brought into excel as separate sheets. If both reports have the Account ID on it, you would think you can simply do a vlookup from one excel sheet to the other to find matching accounts.&lt;br /&gt;&lt;br /&gt;You can do this lookup, but you might be stumped to find out that many "hits" occur that weren't legitimate. Meaning, you "matched" an account that wasn't really a match.&lt;br /&gt;&lt;br /&gt;The reason is that a Salesforce ID is a 15 digit CASE SENSITIVE string of characters. The excel vlookup function though ISN'T CASE SENSITIVE! Therefore, an ID that looks like this in SF:&lt;br /&gt;&lt;br /&gt;0016000000MRatd&lt;br /&gt;&lt;br /&gt;might match this id:&lt;br /&gt;&lt;br /&gt;0016000000MRAtd&lt;br /&gt;&lt;br /&gt;or this one:&lt;br /&gt;&lt;br /&gt;0016000000MRaTd&lt;br /&gt;&lt;br /&gt;or this one:&lt;br /&gt;&lt;br /&gt;0016000000mRatd&lt;br /&gt;&lt;br /&gt;and so on...&lt;br /&gt;&lt;br /&gt;And I've been amazed to find out how many false hits occur. "What are the odds?", you might say to yourself. Higher than you think!&lt;br /&gt;&lt;br /&gt;Salesforce.com gets around this by creating an 18 digit version of the ID. The last 3 digits of the 18 digit ID are all capital letters and each of those 3 is a checksum for the other digits in the 15 digit ID. The 16th digit is a checksum of the first 5 characters, the 17th checks the second 5, and the 18th checks the last 5. It's a good technique for ensuring an exact match.&lt;br /&gt;&lt;br /&gt;In order to do a vlookup on IDs in excel, you MUST use the 18 digit IDs. The question is: how do you get the 18 digit ID?&lt;br /&gt;&lt;br /&gt;For years I used an excel sheet I had written to calculate the checksum columns and return the 18 digit ID. (If you want that excel sheet, ask me for it and I'll send it to you) It worked fine, but was a drag to use. It finally occurred to me that there must be a formula I could create in a Salesforce custom formula field that would return the 18 digit ID. A quick google search revealed this formula. (Hat tip to&amp;nbsp;Erik Mittmeyer who posted it on a developer board in Salesforce)&lt;br /&gt;&lt;br /&gt;Id &amp;amp; MID("ABCDEFGHIJKLMNOPQRSTUVWXYZ012345",(  &amp;nbsp; &amp;nbsp;IF(FIND(MID(Id,1,1), "ABCDEFGHIJKLMNOPQRSTUVWXYZ")&amp;gt;0,1,0)  &amp;nbsp; &amp;nbsp;+IF(FIND(MID(Id,2,1), "ABCDEFGHIJKLMNOPQRSTUVWXYZ")&amp;gt;0,2,0)  &amp;nbsp; &amp;nbsp;+IF(FIND(MID(Id,3,1), "ABCDEFGHIJKLMNOPQRSTUVWXYZ")&amp;gt;0,4,0)  &amp;nbsp; &amp;nbsp;+IF(FIND(MID(Id,4,1), "ABCDEFGHIJKLMNOPQRSTUVWXYZ")&amp;gt;0,8,0)  &amp;nbsp; &amp;nbsp;+IF(FIND(MID(Id,5,1), "ABCDEFGHIJKLMNOPQRSTUVWXYZ")&amp;gt;0,16,0)  &amp;nbsp; &amp;nbsp;)+1,1) &amp;amp; MID("ABCDEFGHIJKLMNOPQRSTUVWXYZ012345",(  &amp;nbsp; &amp;nbsp;IF(FIND(MID(Id,6,1), "ABCDEFGHIJKLMNOPQRSTUVWXYZ")&amp;gt;0,1,0)  &amp;nbsp; &amp;nbsp;+IF(FIND(MID(Id,7,1), "ABCDEFGHIJKLMNOPQRSTUVWXYZ")&amp;gt;0,2,0)  &amp;nbsp; &amp;nbsp;+IF(FIND(MID(Id,8,1), "ABCDEFGHIJKLMNOPQRSTUVWXYZ")&amp;gt;0,4,0)  &amp;nbsp; &amp;nbsp;+IF(FIND(MID(Id,9,1), "ABCDEFGHIJKLMNOPQRSTUVWXYZ")&amp;gt;0,8,0)  &amp;nbsp; &amp;nbsp;+IF(FIND(MID(Id,10,1), "ABCDEFGHIJKLMNOPQRSTUVWXYZ")&amp;gt;0,16,0)  &amp;nbsp; &amp;nbsp;)+1,1) &amp;amp; MID("ABCDEFGHIJKLMNOPQRSTUVWXYZ012345",(  &amp;nbsp; &amp;nbsp;IF(FIND(MID(Id,11,1), "ABCDEFGHIJKLMNOPQRSTUVWXYZ")&amp;gt;0,1,0)  &amp;nbsp; &amp;nbsp;+IF(FIND(MID(Id,12,1), "ABCDEFGHIJKLMNOPQRSTUVWXYZ")&amp;gt;0,2,0)  &amp;nbsp; &amp;nbsp;+IF(FIND(MID(Id,13,1), "ABCDEFGHIJKLMNOPQRSTUVWXYZ")&amp;gt;0,4,0)  &amp;nbsp; &amp;nbsp;+IF(FIND(MID(Id,14,1), "ABCDEFGHIJKLMNOPQRSTUVWXYZ")&amp;gt;0,8,0)  &amp;nbsp; &amp;nbsp;+IF(FIND(MID(Id,15,1), "ABCDEFGHIJKLMNOPQRSTUVWXYZ")&amp;gt;0,16,0)  &amp;nbsp; &amp;nbsp;)+1,1)&lt;br /&gt;&lt;br /&gt;To put this formula to work, simply create a custom formula field that returns type text, place the code above in the formula field and voila, you've got an 18 digit ID that you can easily add to any report. Huge time saver.&lt;br /&gt;&lt;br /&gt;If you need help implementing this or with any other salesforce.com issue you might face, feel free to contact me at www.snapptraffic.com. We can help you with any setup, customization, or development issue you might face in Salesforce.com. &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1048785611436799673-486508376858436186?l=salesforcevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://salesforcevision.blogspot.com/feeds/486508376858436186/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1048785611436799673&amp;postID=486508376858436186' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1048785611436799673/posts/default/486508376858436186'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1048785611436799673/posts/default/486508376858436186'/><link rel='alternate' type='text/html' href='http://salesforcevision.blogspot.com/2011/08/salesforce-18-digit-id.html' title='The Salesforce 18 Digit ID'/><author><name>Mike Snapp</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://photos1.blogger.com/blogger/6108/2803/1600/Mike%20Snapp.0.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1048785611436799673.post-2709628017484728127</id><published>2011-07-31T14:30:00.000-07:00</published><updated>2011-07-31T14:30:56.170-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='salesforce.com import person accounts data loader'/><title type='text'>Importing Person Accounts into Salesforce.com with the Data Loader</title><content type='html'>Here is a challenge you may face - importing account data into Person Accounts in Salesforce.com. If you are using the Data Loader that you downloaded from Salesforce.com or the Lexi Loader for the Mac, then use these techniques to upload your data into Salesforce and have the import process create Person Accounts for you.&lt;br /&gt;&lt;br /&gt;The key to this process is telling the data loader what kind of Record Type you want for the account. In your import CSV, ensure that you have a column for "Record Type". Then you'll add the record type ID for Person Accounts in your system. This is a little tricky. Here is how you do it:&lt;br /&gt;&lt;br /&gt;Navigate to the Person Account record type via the following path:&lt;br /&gt;&lt;br /&gt;Setup/App Setup/Customize/Accounts/Person Accounts/Record Types&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-6Wy6Sw1x5JA/TjXGlbazAQI/AAAAAAAAADs/aK1ROU8ivYc/s1600/2011-07-31_15-17-10.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://3.bp.blogspot.com/-6Wy6Sw1x5JA/TjXGlbazAQI/AAAAAAAAADs/aK1ROU8ivYc/s320/2011-07-31_15-17-10.jpg" width="229" /&gt;&lt;/a&gt;&lt;/div&gt;Then on the Person Account description page, look at the URL, the first ID found in the URL is the Person Account ID. &amp;nbsp;See the next image:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-cIM9P7J_pZg/TjXHd7pQaiI/AAAAAAAAADw/r-qZw7-tZfo/s1600/2011-07-31_15-19-23.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="174" src="http://4.bp.blogspot.com/-cIM9P7J_pZg/TjXHd7pQaiI/AAAAAAAAADw/r-qZw7-tZfo/s320/2011-07-31_15-19-23.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Just paste that ID into the Record Type column that you created in your CSV import file. Then when you upload your data into salesforce.com with the data loader you'll be able to create Person Accounts.&lt;br /&gt;&lt;br /&gt;Another thing to remember. Don't import into the Account Name field (labeled Name). Instead, import into the LastName and FirstName field instead.&lt;br /&gt;&lt;br /&gt;A couple of snags you might run into.&lt;br /&gt;&lt;br /&gt;- First, Person Accounts must be enabled in your instance of Salesforce. This is something that you must have Salesforce.com Tech Support do for you.&lt;br /&gt;&lt;br /&gt;- Second, the person to whom you are assigning the new account must be able to use Person Accounts. This is a profile setting. Navigate to the user profiles via the following path:&lt;br /&gt;&lt;br /&gt;Setup/Administrative Setup/Manage Users/Profiles/Select desired profile&lt;br /&gt;&lt;br /&gt;In the profile management page, find this link:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-EBIbhGMdKE8/TjXFnkXSpYI/AAAAAAAAADo/8yIQfWjR5cE/s1600/2011-07-31_15-12-07.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="142" src="http://1.bp.blogspot.com/-EBIbhGMdKE8/TjXFnkXSpYI/AAAAAAAAADo/8yIQfWjR5cE/s320/2011-07-31_15-12-07.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Click Edit. On the resulting page, ensure Person Accounts are selected.&lt;br /&gt;&lt;br /&gt;If you have any trouble or need some help with importing, or Salesforce in general, feel free to contact us through our website - www.snapptraffic.com&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1048785611436799673-2709628017484728127?l=salesforcevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://salesforcevision.blogspot.com/feeds/2709628017484728127/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1048785611436799673&amp;postID=2709628017484728127' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1048785611436799673/posts/default/2709628017484728127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1048785611436799673/posts/default/2709628017484728127'/><link rel='alternate' type='text/html' href='http://salesforcevision.blogspot.com/2011/07/importing-person-accounts-into.html' title='Importing Person Accounts into Salesforce.com with the Data Loader'/><author><name>Mike Snapp</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://photos1.blogger.com/blogger/6108/2803/1600/Mike%20Snapp.0.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-6Wy6Sw1x5JA/TjXGlbazAQI/AAAAAAAAADs/aK1ROU8ivYc/s72-c/2011-07-31_15-17-10.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1048785611436799673.post-2784092703938580961</id><published>2011-05-19T07:51:00.000-07:00</published><updated>2011-05-19T07:51:23.909-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Salesforce.com Sites'/><category scheme='http://www.blogger.com/atom/ns#' term='salesforce customer portal'/><category scheme='http://www.blogger.com/atom/ns#' term='Salesforce.com partner portal'/><category scheme='http://www.blogger.com/atom/ns#' term='Salesforce.com Development'/><title type='text'>Salesforce Portal Development</title><content type='html'>&lt;div style="text-align: left;"&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;&lt;b&gt;Do You Need A Portal for Your Salesforce.com System?&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;Salesforce.com  comes out of the box pre-configured with Self-Service, Customer, and  Partner Portals. Beyond that, Salesforce sells licenses for completely  custom portals. Not only can Salesforce offer you portals for your  customers and for your partners, but they also host websites on their  system called "Salesforce.com Sites".&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;In  addition to the portals, Salesforce Sites makes it possible for you to  make information stored in your organization's instance of  Salesforce.com publically visible on the internet. A common example is  that of "Job Openings". A database in Salesforce.com of Job Openings for  the company can be listed on the internet in a way that the general  public can view them. &lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;&lt;b&gt;Authenticated Sites and Custom Portals&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;You  may want to authenticate visitors to the site though. For example, if  you want to permit someone to submit a resume against one of the listed  Job Openings, you may want to authenticate them. This essentially  becomes a "portal." &lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;So  while Salesforce.com offers portals that require no programming, but  rather just "point &amp;amp; click" configuration, some applications don't  fit that provided functionality. In the example "Job Openings Resume  Submission System", it would probably be better suited to a custom  portal built on a Salesforce.com Site. &lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;&lt;b&gt;Custom Websites Built on Salesforce.com Data&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;As  more companies adopt Salesforce.com for their main business data  management and CRM platform, they are finding that they want to build  websites and portals based on the data in their system. Deciding on the  correct approach can be daunting. There are customer portals, partner  portals, self-service portals, publically visible Salesforce.com sites,  and an entire range of custom portal solutions.&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;&lt;b&gt;Learning about Salesforce Licensing and Salesforce.com Portal Options&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;You  may know that you need to give your customers or partners access to  your Salesforce data in some way, but unsure of the best portal option,  or the best Salesforce.com licensing option. There is a BIG difference  between the pricing models offered by Salesforce.com, some licenses are  as much as $35/mo/user, others as inexpensive as a few pennies - some free. Picking  the correct licensing option is critical.&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;In general, there are 4 general categories of Salesforce.com Portals:&lt;/span&gt;&lt;br /&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;Partner Portals&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;Customer Portals&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;Authenticated Sites&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;Salesforce.com Sites &lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;&amp;nbsp;In each of these you are giving access to your salesforce.com data to people who are not users of your salesforce system.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;&lt;b&gt;Salesforce Partner Portal:&lt;/b&gt; the idea behind a partner portal is that your partners who resell your products &amp;amp; services can login to a system tied to your salesforce.com organization where they can record their leads, keep track of their accounts and contacts, and advance the opportunities that they are pursuing on behalf of your company. It gives them a place to share their progress with you. &lt;b&gt;Main functional distinction: &lt;/b&gt;it gives the users access to multiple accounts and contacts - its access extends &lt;b&gt;ACROSS&lt;/b&gt; your organization - fully controlled of course by sharing rules and the role hierarchy.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;The Salesforce.com Partner Portal is a SYSTEM within Salesforce. Meaning, it already exists, you simply buy licenses for it and configure it. You can do custom Salesforce.com development with APEX and visualforce pages to add functionality to it, but that is not required. You can simply configure it the way you want it and give your partners licenses.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;Licenses for Partner Portals cost about $35/user/mo - although you can probably work a deal with Salesforce depending on the number you are purchasing.&lt;/span&gt;&lt;br /&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;&lt;b&gt;Salesforce Customer Portal:&lt;/b&gt; the idea here is that your customers can login to a system to see information that relates to them as a customer of your organization. A salesforce customer portal gives a user access to THEIR account data, so in distinction to the partner portal, it is not CROSS organizational. And like the Salesforce Partner Portal, it is a system in Salesforce that can simply be configured and deployed.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;These licenses cost under $10/user/mo depending on the number and plan.&lt;/span&gt;&lt;br /&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;Although salesforce provides a customer portal system, you can override this system and deploy an entirely custom salesforce.com portal. We often use these licenses, but deploy a custom website instead. The customer portal license gives us the ability to authenticate and encrypt the session on the custom website (see note below about authentication and encryption).&lt;/span&gt;&lt;br /&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;&lt;b&gt;Authenticated Sites:&lt;/b&gt; Salesforce provides this licensing option for the times when you will be displaying data from salesforce in an entirely custom way and only displaying information from accounts, contacts, and custom objects. Check with your account manager at Salesforce for the pricing. It can be confusing, there are many options.&lt;/span&gt;&lt;br /&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;&lt;b&gt;Salesforce.com Sites:&lt;/b&gt; Salesforce offers a "guest-user" license that essentially makes it possible for a developer to produce a website displayed on a page hosted by salesforce that displays salesforce.com data to the general public. No licenses are needed - no additional expense except for the licenses you already purchase for your users. &lt;/span&gt;&lt;br /&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;&lt;b&gt;A Note about Authentication and Encryption:&lt;/b&gt; to authenticate means to ensure that the correct person is viewing data within your system. Encryption means that the authenticated user is viewing that data securely - through an "encrypted" session in the browser, evidenced by the HTTPS in the address and usually a little padlock displayed somewhere in the browser.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;We can authenticate users on Salesforce.com Sites &lt;i&gt;without buying a Salesforce License&lt;/i&gt;. You just store a username and password somewhere in salesforce and only present applicable information after those have been entered correctly. So you know you have the correct person viewing the system - BUT - it isn't encrypted this way - the information is being displayed in a non-secure session (HTTP, not HTTPS in the address bar). This is sufficient for many applications.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;However to encrypt a session, get the HTTPS and padlock displayed - you must have a salesforce.com license of some kind. You can't get into a secure session without a salesforce license. You can authenticate with no license, but you can't encrypt with no license.&lt;/span&gt;&lt;br /&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;Therefore - a Salesforce.com Sites page can be authenticated if it is needed and the developer writes the code to verify the user's identity. It will not be encrypted. But you can display any data from your salesforce.com system out to the general public using Sites. If you want to encrypt that data, then you'll need to get an Authenticated Sites or Customer Portal license for the people who will be using that system.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;Note: all the licensing and portal options above are available only in the Enterprise &amp;amp; Unlimited Editions of Salesforce.com.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;&lt;b&gt;Need Help?&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;If you want help determining the right license type for your application or need help building your custom website or setting up your portal, feel free to contact us. Snapptraffic has a great team of developers and lots of expertise when it comes to building and deploying custom Salesforce.com sites and portals. You can reach us through our website at:&lt;/span&gt;&lt;br /&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;&lt;a href="http://www.snapptraffic.com/"&gt;www.snapptraffic.com&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1048785611436799673-2784092703938580961?l=salesforcevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://salesforcevision.blogspot.com/feeds/2784092703938580961/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1048785611436799673&amp;postID=2784092703938580961' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1048785611436799673/posts/default/2784092703938580961'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1048785611436799673/posts/default/2784092703938580961'/><link rel='alternate' type='text/html' href='http://salesforcevision.blogspot.com/2011/05/salesforce-portal-development.html' title='Salesforce Portal Development'/><author><name>Mike Snapp</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://photos1.blogger.com/blogger/6108/2803/1600/Mike%20Snapp.0.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1048785611436799673.post-7043704091930114284</id><published>2011-04-26T09:43:00.000-07:00</published><updated>2011-04-26T09:50:17.694-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='salesforce.com email service inbound email2lead email-to-lead custom development apex'/><title type='text'>Using a Salesforce.com Email Service - Email2Anything</title><content type='html'>We have created several email services over the last few months. I thought I would mention how this cool functionality in Salesforce.com can be put to work for you.&lt;br /&gt;&lt;br /&gt;An email service is a system in Salesforce.com that gives you an email address to which you can send emails that you want handled by Salesforce.com in some way. The "handling" of the email is through custom APEX code that gets executed when an email is received at that address. You might need:&lt;br /&gt;&lt;br /&gt;Email2Lead (Email to Lead)&lt;br /&gt;Email2Contact (Email to Contact)&lt;br /&gt;Email2Opportunity (Email to Opportunity)&lt;br /&gt;Email2Anything! (Email to Anything else!)&lt;br /&gt;&lt;br /&gt;If you want to send an email to Salesforce.com and have it handled in a special way. Then the email service is the way to make that happen. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Inbound Email Service Requests &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;We used an email service in the Snapptraffic instance of Salesforce to handle help requests that come to us from our clients. When a client sends an email to our help request email address with a description of a problem that they need solved, we have code that does a search for their email address (through all the Contact records) and upon finding it creates a new "Request" record, associates it with the contact record, sends a reply to the contact, and informs their account manager that a new request is waiting for them. It also creates activity records with the email details. One other cool thing we did was include an "Request ID" in the subject line of any emails so that our code could associate inbound emails with existing requests rather than create new ones.&lt;br /&gt;&lt;br /&gt;(You may be wondering why we didn't just use cases which has a lot of this functionality already in place. My Snapptraffic reps are on Platform licenses of Salesforce rather than full Enterprise Licenses. Platform licenses are typically under $50/mo rather than $125/mo for Enterprise - but Platform licenses have access to Accounts, Contacts, and any custom objects, but not standard objects like Leads, Opportunities, Cases, etc - so I created a custom object to handle Requests and an email service to mimic the cases functionality)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Email2Lead - Emails from Lead Sources such as Brokers&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Another common request that we've built for clients recently is variations on "Email-to-Lead" (Email2Lead, Email to Lead, whatever people want to call it). Salesforce.com has no provision for this, but an email service can easily be written to provide this capability.&lt;br /&gt;&lt;br /&gt;The way we've implemented it is to allow the user to forward an email received from a new prospect into the email service and have the system create a new lead record based on that inbound message. We normally include "switches" in the email body whereby the user can provide some direction to the code to ask it to do certain things. For example, the user might want to populate fields on the Lead with data not discernible from the common email fields such as subject, to, from, etc - like possibly the Industry field. So we'll give the user the ability to add lines to the body like:&lt;br /&gt;&lt;br /&gt;Industry: Communications&lt;br /&gt;&lt;br /&gt;Our code will parse for these switches, then populate the lead fields accordingly. Some clients use many of these switches. The code then creates the lead record, sets all those fields, can auto-reply to the lead, and make any other necessary records (like activity records based on the email). One client uses a selectable "signature" with all of these switches embedded and they can quickly add the details they want before sending the email. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Email to Opportunity&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;One client wanted to be able to forward emails from existing clients and have the email service create a new opportunity. We used switches just like in the above example so that he could set any fields on the opportunity he desired by typing the name of that field and the value he wanted in it, like:&lt;br /&gt;&lt;br /&gt;Amount: $25,000&lt;br /&gt;Type: Existing Business &lt;br /&gt;&lt;br /&gt;The email service finds the correct Contact record (based on the email address), then creates a new Opportunity for the Account to which that Contact is associated and sets the fields of the Opportunity according to the switches in the email.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Handling Attachments&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;This is also another cool capability of the email service, taking any attachments and doing something intelligent with them. Want them attached to a new opportunity, the contact record, the existing account? Whatever it is, the code can do this. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Variations on "Email to Salesforce"&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;You've probably realized that Salesforce already has a standard email service called "Email to Salesforce" with some pre-defined functionality that works pretty well. It receives emails that you are sending to your clients from some other email system, like gmail, and finds the relevant lead or contact and attaches that email to their activity history. Many times this system is great right out of the box, but you may want something different. We can create a variation on "Email to Salesforce" and make it do whatever you can dream up. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Summary&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;So the Salesforce.com Email Service is a great tool for getting the emails you receive into Salesforce.com and handling them in a pre-defined, special way. Contact us at Snapptraffic.com if you want some assistance creating an email service specific to your business model.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1048785611436799673-7043704091930114284?l=salesforcevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://salesforcevision.blogspot.com/feeds/7043704091930114284/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1048785611436799673&amp;postID=7043704091930114284' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1048785611436799673/posts/default/7043704091930114284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1048785611436799673/posts/default/7043704091930114284'/><link rel='alternate' type='text/html' href='http://salesforcevision.blogspot.com/2011/04/using-salesforcecom-email-service.html' title='Using a Salesforce.com Email Service - Email2Anything'/><author><name>Mike Snapp</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://photos1.blogger.com/blogger/6108/2803/1600/Mike%20Snapp.0.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1048785611436799673.post-449395607514015768</id><published>2010-07-19T07:17:00.000-07:00</published><updated>2010-07-19T08:41:13.459-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='salesforce.com excel connector download professional edition Snapptraffic Consulting www.snapptraffic.com'/><title type='text'>Salesforce Excel Connector Download - Professional Edition</title><content type='html'>Trying to find the download for the Salesforce Excel Connector can be a real drag! Especially if you are trying to find a specific version. So if you have been having a hard time finding the right one, I've put them here for your convenience.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Download Site:&lt;/b&gt;&amp;nbsp;&lt;a href="http://www.salesforce.com/community/crm-best-practices/administrators/data-management/data-tools/excel-connector.jsp"&gt;Click here&lt;/a&gt;&amp;nbsp;for the Salesforce download page for the excel connector.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Professional Edition!&lt;/b&gt; Be sure to note, there are two versions of the excel connector, one for the Enterprise edition of Salesforce.com and one for the Professional Edition of Salesforce.com. The big difference between them is that the Professional Edition doesn't need access to the API.&lt;br /&gt;&lt;br /&gt;In general, there really isn't a strong need for the Enterprise Edition of the excel connector because in Enterprise Edition of Salesforce you have the Apex Data loader for the PC and the Lexi Loader for the Mac. But if you have Professional Edition of Salesforce without API access (which is most people), the Salesforce.com Excel Connector is the only way to load data.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;SOAP Version!&lt;/b&gt; When you first install the Excel Connector, it by default uses an older version of the SOAP, version 6. This will probably work okay for you in most circumstances. But sometimes you'll be looking for an object and not be able to find it in the list of available objects - that right there is a SOAP version issue. Try using a more recent version like:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #666666; font-family: Arial; font-size: 12px; line-height: 15px;"&gt;&lt;a href="https://www.salesforce.com/services/Soap/c/13.0" rel="nofollow" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #456789; font-family: inherit; font-size: 12px; font-style: inherit; font-weight: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;" target="_blank"&gt;https://www.salesforce.com/services/Soap/c/13.0&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Set that by clicking on the Advanced Tab on the login page.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Need Help?&lt;/b&gt; We offer help with the Excel Connector as a service in our business. So if you need a little hand holding, or just want to hand us your file and have us load it, visit our website at:&amp;nbsp;www.snapptraffic.com&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1048785611436799673-449395607514015768?l=salesforcevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://salesforcevision.blogspot.com/feeds/449395607514015768/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1048785611436799673&amp;postID=449395607514015768' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1048785611436799673/posts/default/449395607514015768'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1048785611436799673/posts/default/449395607514015768'/><link rel='alternate' type='text/html' href='http://salesforcevision.blogspot.com/2010/07/salesforce-excel-connector-downloads.html' title='Salesforce Excel Connector Download - Professional Edition'/><author><name>Mike Snapp</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://photos1.blogger.com/blogger/6108/2803/1600/Mike%20Snapp.0.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1048785611436799673.post-2578442455650271569</id><published>2010-05-15T09:48:00.000-07:00</published><updated>2010-05-15T09:48:54.319-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Salesforce.com Salesforce Consulting Consultant Consultants Snapptraffic Consulting http://www.snapptraffic.com'/><title type='text'>Salesforce.com Iterative Consulting Method</title><content type='html'>&lt;div align="center"&gt;&lt;span class="size14 Arial14" style="color: black; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;b&gt;Our Consulting Methodology&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;One question I get frequently when discussing our services with a new client is how we will be proceeding with their implementation. Every Salesforce.com consultant that you might have the opportunity to work with will have to base their consulting approach on some basic methodology. Consultants in general develop their approach to Salesforce.com implementations based on their prior experience, i.e, what is their background?&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;Our Salesforce Consulting implementation approach uses what we call - &lt;b&gt;"The Iterative Consulting Process".&lt;/b&gt; We feel it works best for the smaller client that wants quick gains at a low cost and doesn't have a heavy bureaucracy in place within their company that has to be dealt with to make improvements to their Salesforce.com system.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;The Salesforce.com Iterative Consulting Process&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;/span&gt;Our consulting method uses an iterative approach to customize Salesforce.com to  your business model. While we start out with the general roadmap as  defined during pre-project interviews the actual steps taken day to day  will be based on meetings we have with you where the highest priority  project tasks identified at that point are undertaken.&amp;nbsp; As our consultants understanding of your business model grows and as your understanding  increases of what Salesforce.com can do and how it functions, the  desired outcomes and list of requirements will become better defined.&amp;nbsp;  We will continue to iterate through a 4 step process with you where we:  1) Discuss the roadmap, current state of the system, and highest  priority requirements, 2) Identify the next customizations, 3) Build  those customizations, and 4) Review and continue again with step 1.&amp;nbsp; &lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial, Helvetica, sans-serif;"&gt;Changes to the system produce questions and insights that  would not have been thought of at the beginning of the project. As those  questions get answered, our understanding grows of your real needs. Our consultants find that the end result is much more suited to your business model than  a process whereby an attempt is made to define the entire scope of the  project in advance. &lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;b&gt;Immediate  End User Value and Continuous Improvement&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial, Helvetica, sans-serif;"&gt;The main idea behind the Iterative Consulting Process is to provide  immediate and continuous end user value. Out of the box, Salesforce.com  functions as a highly capable CRM system. Almost no development needs to  take place for users to begin using the standard functionality. Our  goal is to strive for continuous improvement, building on inherent  functionality with business-model-specific improvements. At no point  during the process should your users find that they cannot use the  system. As our development process moves forward, the system becomes  increasingly automated, increasingly useful, and increasingly tailored  to the exact set of tasks your users are engaging in and providing the  exact information your leaders require.&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;b&gt;It's Like “Home Improvement”&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial, Helvetica, sans-serif;"&gt;Since the users have continuous access to and value from the  system, there is no requirement to rush improvement. Move forward as  your budget and time constraints allow. The Iterative Consulting Process is much  like home improvement in that regard. There is always something that  will make your home more to your liking, more efficient, more  comfortable, more desirable, but not all of these things are required  immediately.&amp;nbsp; Pick the projects that are most pressing, and do those  first.&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;b&gt;The Estimating Process&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial, Helvetica, sans-serif;"&gt;At no point should a Snapptraffic Consulting invoice  surprise you. When we first engage you, we will develop a roadmap  together. This will serve as a guide to keep us moving in the right  general direction, and our initial estimate is prepared from that. You  will not; however, be billed for this amount. You are billed for  whatever work is accomplished on your behalf during a given calendar  month.&amp;nbsp; &lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial, Helvetica, sans-serif;"&gt;During the Iterative Consulting Process, you are in control  and well informed of the time being spent. Our consultants are continually estimating  the time involved as each project step along the roadmap is  undertaken.&amp;nbsp; During each call we note specific items that need to be  done. When the call is over, an “Action Item” will be created and sent  which details the work to be done and estimates the time required to do  it. If you approve that Action Item, we begin.&amp;nbsp; &lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial, Helvetica, sans-serif;"&gt;Where possible, and if desired, we will identify work that  does not require our Salesforce.com expertise and which can be  accomplished by your company internally to cut down on hours required.  We are happy to train you to do anything that we might otherwise do for  you.&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;b&gt;The Project Lifecycle&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial, Helvetica, sans-serif;"&gt;We are not an implementation company in the typical sense.  Our consulting is not geared towards simply designing, building, delivering, fee collection, and moving on to the next client. We intend to join you in the process of  continually improving your salesforce.com system. We hope to be an  on-going resource to you and a long-term member of your team.&amp;nbsp; &lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial, Helvetica, sans-serif;"&gt;With that said, we recognize that the improvements will be  front-loaded. In general, our initial setup, customizations, and  improvements will take a month or two of frequent consultations and  regular effort. Following that your users will settle into the new  system and our focus shifts to training, adoption, and answering  questions. Reporting tends to take on greater importance in the months  that follow as users are adding increasingly useful data to the system.  As time goes by, we meet occasionally to make refinements or add new  functionality. &lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial, Helvetica, sans-serif;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial, Helvetica, sans-serif;"&gt;For the project phases that were postponed due to  budget or time constraints, these get initiated when you are ready –  for the typical client we’ll tackle one or two of these a year. Of  course, we are always available to help with problems that come up  occasionally.&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;b&gt;Our Commitment and Guarantee&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="size12 Arial12" style="color: black; font-family: Arial, Helvetica, sans-serif;"&gt;Our commitment to our clients is to provide the most value  possible for the expense incurred.&amp;nbsp; Our underlying guarantee is to only  charge clients for that which they agree adds value to their system.&amp;nbsp; If  you are not satisfied with the work accomplished, you will not be  billed.&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;b&gt;Speak to Us&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;If you would like to discuss working with Snapptraffic Consulting on your implementation, please visit our website at &lt;a href="http://www.snapptraffic.com/"&gt;www.snapptraffic.com&lt;/a&gt;. One of our consultants would be glad to discuss your project and the estimated time and expense that might be involved. It's cheaper than you think, go ahead and ask us, we think you'll be surprised.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1048785611436799673-2578442455650271569?l=salesforcevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://salesforcevision.blogspot.com/feeds/2578442455650271569/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1048785611436799673&amp;postID=2578442455650271569' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1048785611436799673/posts/default/2578442455650271569'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1048785611436799673/posts/default/2578442455650271569'/><link rel='alternate' type='text/html' href='http://salesforcevision.blogspot.com/2010/05/salesforcecom-iterative-consulting.html' title='Salesforce.com Iterative Consulting Method'/><author><name>Mike Snapp</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://photos1.blogger.com/blogger/6108/2803/1600/Mike%20Snapp.0.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1048785611436799673.post-5429704938292150908</id><published>2010-05-06T22:06:00.000-07:00</published><updated>2010-05-06T22:06:14.909-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='salesforce.com apex visualforce developer developers development trigger triggers'/><title type='text'>Salesforce.com Apex Visualforce for Developers</title><content type='html'>If you have had Salesforce.com for any length of time, you may have realized that it is limited in certain ways. There is no question that Salesforce is incredibly customizable with just a point and a click, but sometimes the system is just not designed to do exactly what you want.&lt;br /&gt;&lt;br /&gt;Being the worldclass company that they are, Salesforce has anticipated the need of their clients to extend the functionality of the system beyond what can be configured with the setup menu (called Declarative Configuration). They extend this functionality with Visualforce which is built on a language called Apex.&lt;br /&gt;&lt;br /&gt;Visualforce allows a developer to write custom functionality in Apex that executes on top of the Salesforce system. Meaning, it resides on the internet - or, "in the cloud" as everyone likes to say these days. The power of "cloud computing" is that from the user's perspective, only a browser is required to access your business applications. From the developers perspective, one you develop the Apex it can be uploaded to the Salesforce.com servers. They store it, the back it up, the serve it. For the company who needs it's functionality, this situation is ideal. You can cut IT expenses significantly with Visualforce and Apex development rather than traditional server based development.&lt;br /&gt;&lt;br /&gt;The Apex Visualforce system provides the developer with all of the programming resources to query Salesforce.com, perform custom functionality on Salesforce data, save those results, and display them in a meaningful way. Custom interfaces are a powerful part of the visualforce system. Technically, Apex is the underlying code and Visualforce is the system that makes it possible to build a user interface. Triggers are also written in Apex. A Trigger is code that executes when a record is saved and takes some kind of custom action - another great way to extend Salesforce functionality!&lt;br /&gt;&lt;br /&gt;We've done hundreds of apex visualforce development projects and triggers for our clients since the release of Visualforce a few years ago. We have really been able to experiment with its functionality and our developers have learned how to develop quickly and inexpensively. A key requirement placed on us by our clients is low cost. We typically deal with small to mid-sized companies where development costs are a critical issue. They need the functionality, but they can't afford traditional development costs. Visualforce and Apex development works so beautifully for these kinds of clients because we can produce exactly what they need with minimal expense.&lt;br /&gt;&lt;br /&gt;On our website at: &lt;a href="http://www.snapptraffic.com/VisualforceExamples.html"&gt;http://www.snapptraffic.com/VisualforceExamples.html&lt;/a&gt; you can see examples of many of the projects we have done. We highlight these on the website to show some of the possibilities. Most of these projects can be done by a developer in 10-20 hours, so at our rates that means that the typical custom apex development project can be completed for less than a few thousand dollars. Almost any company can afford that.&lt;br /&gt;&lt;br /&gt;If you would like to discuss an idea that you have for a visualforce project for your salesforce.com system, give us a call (800-422-6490) or visit www.snapptraffic.com. We'd be more than happy to discuss the possibilities and the likely expense - there is no charge to talk your idea through, we'd actually be glad to hear about it. If you use us for development, great, if not, that's okay, we hope you enjoy the power of Visualforce and experience all the wonderful things it can do for your company.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1048785611436799673-5429704938292150908?l=salesforcevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://salesforcevision.blogspot.com/feeds/5429704938292150908/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1048785611436799673&amp;postID=5429704938292150908' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1048785611436799673/posts/default/5429704938292150908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1048785611436799673/posts/default/5429704938292150908'/><link rel='alternate' type='text/html' href='http://salesforcevision.blogspot.com/2010/05/salesforcecom-apex-visualforce-for.html' title='Salesforce.com Apex Visualforce for Developers'/><author><name>Mike Snapp</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://photos1.blogger.com/blogger/6108/2803/1600/Mike%20Snapp.0.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1048785611436799673.post-6982891010539348098</id><published>2010-04-18T11:05:00.000-07:00</published><updated>2010-04-18T11:05:49.934-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web-to-anything'/><category scheme='http://www.blogger.com/atom/ns#' term='web form salesforce.com'/><category scheme='http://www.blogger.com/atom/ns#' term='web2anything'/><category scheme='http://www.blogger.com/atom/ns#' term='Salesforce.com'/><title type='text'>Web Forms to Salesforce.com</title><content type='html'>If you've been a subscriber to Salesforce.com for a while, you've probably got your web-to-lead form all setup and working, and that is great - but what about when you want to feed data from a web form to some other object in Salesforce.com?&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Web-To-Anything &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;A very common request we get at Snapptraffic Consulting is the need to feed information from a web form to another object besides Leads (or Cases) which both come with built in mechanisms in Salesforce. Let's say you have a weekly webinar and you want to have a form on your website where people can sign up for that webinar, but you don't want the form submissions to come into the Salesforce.com as a new lead, but instead into a custom object you have called "Webinar Registrations". It would be incredibly helpful to be able to allow those form submissions to automatically come into salesforce.com and create a new Webinar Registration.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/__8inmqHmu0Y/S8nLs7Io_4I/AAAAAAAAAC0/rlnc6nYEdsQ/s1600/Web+Form+Screenshot.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/__8inmqHmu0Y/S8nLs7Io_4I/AAAAAAAAAC0/rlnc6nYEdsQ/s320/Web+Form+Screenshot.jpeg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;A typical web-form&lt;/div&gt;&lt;br /&gt;&lt;b&gt;Common Approaches&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;There are a few common approaches to solving "Web Form to Anything in Salesforce.com". Pretty much all of them require a web service that can receive the data from that form, process it, connect to Salesforce.com and submit that data. One third party service that I use for my clients is FormAssembly. It does a nice job by giving you the tools to build any form you need, validate the inputs, and pass that data into Salesforce. It's cheap too - about $34 a month for unlimited forms. Their are cheaper versions of their system, but those do not include the connector to Salesforce.com.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Prefill Web Forms With Salesforce Data&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Another common business requirement is the need to request information from a customer in an email and have that person click a link within that email which takes them to an online form where they can provide the information asked for in the email. Generally, you want to provide some mechanism to tie the form submission back to the salesforce record from which the email was sent.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;An Example: Post Sale Survey&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;So lets say that a few weeks after you win an opportunity with a client, you want to ask the client for a survey. You could create a button on the opportunity that sends an email to the client (or do this automatically with a workflow rule). Included in the email is a link that takes the recipient to your online form. Imbedded in the link to the form are references to the opportunity ID and any other form fields that you want pre-filled.&lt;br /&gt;&lt;br /&gt;FormAssembly is nice because it can parse the URL and pull from it any data that you want to pass into the form. The OpportunityID passes into a hidden field so that it will not be displayed on the form.&lt;br /&gt;&lt;br /&gt;When the customer fills out the questions on the survey and submits their results. FormAssembly will receive those results, process them, login to Salesforce via your login and create a new record in Salesforce with the results. Obviously you need a place in Salesforce to pass those results, which in most cases would be a custom object.&lt;br /&gt;&lt;br /&gt;Due to the fact that the opportunity ID has been passed through the email to the form, the results of the survey can be tied back to the originating opportunity. Once that form submission has been received, workflow rules can be triggered to notify someone at your company that a form has been submitted.&lt;br /&gt;&lt;br /&gt;Setting up this process is fairly straightforward, but there are quite a few steps to getting it setup properly, but none of them are cost prohibitive or terribly technically challenging. If you want a little hand-holding though, feel free to contact us (www.snapptraffic.com).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1048785611436799673-6982891010539348098?l=salesforcevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://salesforcevision.blogspot.com/feeds/6982891010539348098/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1048785611436799673&amp;postID=6982891010539348098' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1048785611436799673/posts/default/6982891010539348098'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1048785611436799673/posts/default/6982891010539348098'/><link rel='alternate' type='text/html' href='http://salesforcevision.blogspot.com/2010/04/web-forms-to-salesforcecom.html' title='Web Forms to Salesforce.com'/><author><name>Mike Snapp</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://photos1.blogger.com/blogger/6108/2803/1600/Mike%20Snapp.0.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/__8inmqHmu0Y/S8nLs7Io_4I/AAAAAAAAAC0/rlnc6nYEdsQ/s72-c/Web+Form+Screenshot.jpeg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1048785611436799673.post-1578932539726607383</id><published>2010-04-14T14:32:00.000-07:00</published><updated>2010-04-14T14:49:07.992-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='salesforce.com salesforce excel connector Professional Edition Data'/><title type='text'>Salesforce.com Excel Connector</title><content type='html'>I was working with a client who was trying to get data imported into Salesforce.com from the Professional edition. They were hoping to be able to use the Apex Data Loader. They were surprised to learn that the data loader cannot be used by Professional Edition. That version doesn't have API access and that access is required for the Apex Data Loader.&lt;br /&gt;&lt;br /&gt;So what do you do? The Salesforce.com Excel Connector. There might be other free ways to import data into Professional Edition, but if so, I haven't found them. The Excel Connector works great, but it is a serious challenge for the uninitiated to get figured out. I have frequently told clients where to find the excel connector, but they usually need a little assistance getting it installed properly and figuring out how to use it.&lt;br /&gt;&lt;br /&gt;There are a couple things I really like about the Excel Connector for Salesforce. One is that it lets you import or update records to any object in Salesforce, even in Professional Edition. It is much more powerful than the import wizards provided by Salesforce. But even better than that, when you do insert a new record, the Excel Connector for Salesforce returns into the excel file the ID of the records you just inserted. Even the Apex Data Loader doesn't do that. And for that reason, I frequently use the Excel Connector rather than the Apex Data Loader.&lt;br /&gt;&lt;br /&gt;Its main serious short coming is that it isn't available for the mac. For a long time it wasn't supported in Vista or Excel 2007, but I think that is resolved now.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;Anyway, the Excel Connector for Salesforce.com is an awesome, free way to get any data you need imported, deleted, or updated.&lt;br /&gt;&lt;br /&gt;If you need help with any kind of import work, in any edition of Salesforce for any kind of data, feel free to contact us through our website: www.snapptraffic.com. We'd be glad to help.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1048785611436799673-1578932539726607383?l=salesforcevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://salesforcevision.blogspot.com/feeds/1578932539726607383/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1048785611436799673&amp;postID=1578932539726607383' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1048785611436799673/posts/default/1578932539726607383'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1048785611436799673/posts/default/1578932539726607383'/><link rel='alternate' type='text/html' href='http://salesforcevision.blogspot.com/2010/04/salesforcecom-excel-connector.html' title='Salesforce.com Excel Connector'/><author><name>Mike Snapp</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://photos1.blogger.com/blogger/6108/2803/1600/Mike%20Snapp.0.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1048785611436799673.post-4661619740196317238</id><published>2010-03-04T06:08:00.000-08:00</published><updated>2010-04-19T11:48:04.551-07:00</updated><title type='text'>The Snapptraffic Spring '10 Newsletter</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: arial; font-size: 16px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;Its been&amp;nbsp;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;quite&amp;nbsp;&lt;/span&gt;a while since I sent out a newsletter, but I love to send out a note occasionally to let you know some of the neat things we're doing for our other clients. One of the great things about working with so many different clients who are using the same system, is that I get to see how they do what they do, and hear their ideas for improving their systems - which we often get to turn around and develop. I guess it is my own version of "crowd-sourcing"&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;The Benefits of "Crowd-sourcing" -&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Since my last newsletter, we seen and developed all kinds of cool things that you might benefit from. Plus I'll throw in a few things that I see as problem areas for large numbers of my clients - maybe you can benefit from what I've seen as I go from salesforce instance to salesforce instance. &amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;img align="left" alt="" border="0" src="https://na4.salesforce.com/servlet/servlet.ImageServer?id=01560000000ZKWz&amp;amp;oid=00D600000006uxo" /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Appointment Reminders!&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;One of the features that is sadly lacking in Salesforce.com is the ability to automatically send out appointment reminders to clients. We developed this internally for our own use because I couldn't find an app exchange product that did this inexpensively and I needed it badly. If you ever have issues with a clients forgetting appointments, it can often be resolved by simply sending an reminder the day before. This VisualForce app gives you a list of appointments for the following day and sends them all an email reminder. Couldn't be simpler! Let us know if you would like us to set this up for you in your system. Send a template of your choice to all the leads OR contacts that you have appointments with the following day.&lt;i&gt;(Salesforce Enterprise Edition Only)&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: 16px; font-style: normal;"&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: 16px; font-style: normal;"&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: 16px; font-style: normal;"&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: 16px; font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: 16px; font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;img align="left" alt="" border="0" src="https://na4.salesforce.com/servlet/servlet.ImageServer?id=01560000000ZKcE&amp;amp;oid=00D600000006uxo" /&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: 16px; font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: 16px; font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: 16px; font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: 16px; font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: 16px; font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: 16px; font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: 16px; font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: 16px; font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: 16px; font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Totals for Dashboards&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: 16px; font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: 16px; font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Did you know that a dashboard can have a total displayed under graph or table element? Tables &amp;amp; graphs make so much more sense when there is a total.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: 16px; font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: 16px; font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Its actually a separate element than the graph or the table. Its a metric element. Instead of putting the footer (e.g. "All Open Opportunities") under the main element, put it under the totals metric. That almost makes it look like the totals line is part of the main graphical element.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: 16px; font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: 16px; font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;It really works great. The only limitation is that you have to remember to move both elements when you are repositioning elements on the page.&amp;nbsp;&lt;i&gt;(Professional and Enterprise Editions)&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: 16px; font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: 16px; font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;New Dashboard Charting Engine&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&amp;nbsp;- By the way - if you haven't enabled the new dashboard charting engine released by Salesforce a few releases ago, you're really missing out. The new funnel dashboard element is great way to display a pipeline. &amp;nbsp;There is also a new "Donut" graph element - an interesting variation on the pie chart. I only mention it because I'm frequently working on client systems in which it hasn't been enabled. Take advantage of it, its got some great features.&amp;nbsp;&lt;i&gt;(All Salesforce Editions)&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: 16px; font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: 16px; font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;img align="left" alt="" border="0" src="https://na4.salesforce.com/servlet/servlet.ImageServer?id=01560000000ZKdb&amp;amp;oid=00D600000006uxo" /&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Internal Communications&lt;/span&gt;&amp;nbsp;- One of my clients,&amp;nbsp;&lt;i&gt;Shredit,&lt;/i&gt;&amp;nbsp;in Las Vegas, asked me for a way to make comments internally to each other regarding records in Salesforce, specifically accounts. We came up with a simple system that made it possible for someone to save a note regarding an account and have that note sent automatically via email to the account owner, or an alternative recipient if desired. It is a great way to communicate internally about an account, get those notes to the right people, and save them right with the account for future reference.&amp;nbsp;&lt;i&gt;(The Comments can be added in any edition of Salesforce, the email alerts will require Enterprise)&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: 16px; font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: 16px; font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;img align="left" alt="" border="0" src="https://na4.salesforce.com/servlet/servlet.ImageServer?id=01560000000ZKm9&amp;amp;oid=00D600000006uxo" /&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Contact Photos!&amp;nbsp;&lt;/span&gt;- I've been asked for this system quite a few times over the years.&lt;i&gt;&lt;b&gt;&amp;nbsp;(yes, that's me in the example screenshot)&lt;/b&gt;&lt;/i&gt;&amp;nbsp;Its pretty easy to implement. It is just a formula field with an image reference. I'm surprised that Salesforce hasn't added something built in to handle this, but so far they haven't. It works by loading the image of a contact to the documents repository within Salesforce. I recommend putting it in a folder called "Contact Photos." Then simply note the ID and reference that on the contact record. You can use an image formula to reference that ID. I also have a blank headshot image (like you see on Google, Facebook, or LinkedIn when you haven't loaded your image) that displays when the user hasn't yet loaded a picture.&amp;nbsp;&lt;i&gt;(Any Salesforce Edition)&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: 16px; font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: 16px; font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;img align="left" alt="" border="0" src="https://na4.salesforce.com/servlet/servlet.ImageServer?id=01560000000ZKuX&amp;amp;oid=00D600000006uxo" /&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: 16px; font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: 16px; font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Email Opt Out -&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;the lack of this one feature is why so many people need a third party email program.&amp;nbsp;When you are sending mass emails, Salesforce automatically disregards those who have opted out, so using this field is a powerful way to avoid spamming. Allowing recipients to opt out themselves can be a huge time saver (as opposed to doing it manually).&amp;nbsp;There is a way to do this in Salesforce! It is handled via an email sent back to a Salesforce email service address with "Unsubscribe" entered into the subject line. When Salesforce receives that email, it knows who it came from and if "Unsubscribe" is in the subject line, it places a checkbox in the "Email Opt Out" field. Some standard opt out text and links can be placed in the footer of your emails to give instructions to your recipients. See how it really works below (but don't send it unless you truly want to unsubscribe!)&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: 16px; font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: 16px; font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span" style="font-family: arial; font-size: 16px;"&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Workflow Rules -&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;If you have Enterprise edition of Salesforce, there is almost no excuse for not taking advantage of Workflow Rules. You can use these to automate so many daily tasks. They can automatically send emails, create &amp;nbsp;tasks, or &amp;nbsp;update fields. In a nutshell, a workflow rule executes when a record is saved. It evaluates the record and if the record satisfies the triggering condition it takes the action you've requested.&amp;nbsp;&amp;nbsp;Time based workflow can also react to dates.&amp;nbsp;They're great for informing people that a stage has advanced in an opportunity, letting people know that a case has been open for too long, or advising people to take some action in response to a due date. So many cool things you can use them for.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: 16px; font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: 16px; font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Visualforce APEX Development -&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;If you have need of custom functionality that extends beyond what you have standard in Salesforce, Visualforce is the way to get it done. When working with clients before Visualforce I frequently had to say to them,&amp;nbsp;&lt;i&gt;"You can't do that in Salesforce."&lt;/i&gt;&amp;nbsp;Now I typically say,&amp;nbsp;&lt;i&gt;"We'll have to do that in Visualforce."&lt;/i&gt;&amp;nbsp;&amp;nbsp;The power of Visualforce lies in the fact that it is custom code (a programmed language) that resides in Salesforce rather than on your local computer. So that code is available anywhere on any computer as long as they have a browser.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: 16px; font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: 16px; font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;b&gt;Is Visualforce Expensive?&amp;nbsp;&lt;/b&gt;In general, I find that most simple Visualforce projects take about 10 hours. By simple, I mean a page where information is gathered from your Salesforce database and displayed in some useful way to you and your users. More complex functions such as data entry, record creation and manipulation typically require about 20 hours. Most of the projects we've completed seem to take about somewhere between 10 and 20 hours. A few go over that, but generally they are much more complex and require several pages and functions.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: 16px; font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: 16px; font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;b&gt;We'd Love To Hear About Your Visualforce Project Ideas!&lt;/b&gt;&amp;nbsp;- Are you thinking about a program or function that you would like to have developed. Ask us about it, we'd be happy to do some brainstorming with you!&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: 16px; font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: 16px; font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span" style="font-size: 16px;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: 16px; font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span" style="font-size: 16px;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: 16px; font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span" style="font-size: 16px;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: 16px; font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span" style="font-size: 16px;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Thanks for reading!&amp;nbsp;Until next time,&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: 16px; font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span" style="font-size: 16px;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: 16px; font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span" style="font-size: 16px;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Michael Snapp&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: 16px; font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span" style="font-size: 16px;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Snapptraffic Consulting&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: 16px; font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span" style="font-size: 16px;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;www.snapptraffic.com&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: 16px; font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span" style="font-size: 16px;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: 16px; font-style: normal;"&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1048785611436799673-4661619740196317238?l=salesforcevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://salesforcevision.blogspot.com/feeds/4661619740196317238/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1048785611436799673&amp;postID=4661619740196317238' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1048785611436799673/posts/default/4661619740196317238'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1048785611436799673/posts/default/4661619740196317238'/><link rel='alternate' type='text/html' href='http://salesforcevision.blogspot.com/2010/03/snapptraffic-spring-10-newsletter.html' title='The Snapptraffic Spring &apos;10 Newsletter'/><author><name>Mike Snapp</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://photos1.blogger.com/blogger/6108/2803/1600/Mike%20Snapp.0.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1048785611436799673.post-5250723066813866517</id><published>2010-02-27T15:06:00.000-08:00</published><updated>2010-02-27T15:06:47.231-08:00</updated><title type='text'>Salesforce on a MAC (Mail Merge &amp; Data Loader)</title><content type='html'>One of the few remaining areas that are problematic for Mac owners with Salesforce.com is Mail Merge. The PC handles merge into Word from a Salesforce record nicely, but Mac owners have to do without.&lt;br /&gt;&lt;br /&gt;A great way to deal with the mail merge issues of Salesforce on the Mac is to write a simple visualforce page instead that renders as a PDF. We've been doing this a lot lately for our clients. These can be written quickly and rendered to look pretty much just like a Word document. Nice thing is, they function on any computer with the added benefit that they produce a PDF rather than a Word doc. They are actually much more powerful than the standard word merge because you aren't limited to the object from which you are calling the merge - since it's visualforce you can go get any record you need included in the merge. If you'd like us to produce one for you, visit our website at&amp;nbsp;http://www.snapptraffic.com/Salesforce_Home.html. Our salesforce consultants can easily get one of these setup for you.&lt;br /&gt;&lt;br /&gt;Another remaining issue is the data loader. I've been using the excel connector for years. It's awesome because it works with both the Professional and Enterprise editions of Salesforce (not Group unfortunately). Another great thing about the excel connector is that it returns Salesforce.com IDs when it inserts a new record - I LOVE that feature. Unfortunately, it only works on a Windows XP machine. You need another solution on the Mac. I recently found Lexiloader which looks and functions exactly like the SF data loader, except its written for the Mac. The excel connector is still a great solution because 1) Its free! 2) it allows you to load data into the Professional edition of Salesforce, and 3) it returns the ID's. Lexiloader isn't for Professional Edition, but its still great to have a data loader now for the Mac.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1048785611436799673-5250723066813866517?l=salesforcevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://salesforcevision.blogspot.com/feeds/5250723066813866517/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1048785611436799673&amp;postID=5250723066813866517' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1048785611436799673/posts/default/5250723066813866517'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1048785611436799673/posts/default/5250723066813866517'/><link rel='alternate' type='text/html' href='http://salesforcevision.blogspot.com/2010/02/salesforce-on-mac-mail-merge-data.html' title='Salesforce on a MAC (Mail Merge &amp; Data Loader)'/><author><name>Mike Snapp</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://photos1.blogger.com/blogger/6108/2803/1600/Mike%20Snapp.0.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1048785611436799673.post-1999186403363933955</id><published>2010-01-05T09:31:00.000-08:00</published><updated>2010-03-04T12:49:14.151-08:00</updated><title type='text'>Search for Duplicates Validation Rule</title><content type='html'>A common problem for Salesforce users is the accidental creation of duplicate records. Validation rules are often used to check the condition of a record before it is saved. Here is a validation rule we use to prevent the creation of a new record with the same name (unfortunately it only works on custom objects).&lt;br /&gt;&lt;br /&gt;It uses the VLOOKUP salesforce formula function which is only available for validation rules (unfortunately). This validation rule has two parts:&lt;br /&gt;&lt;br /&gt;1) It looks for a record of the same name&lt;br /&gt;2) It makes sure that the record isn't the exact same record as opposed to just a duplicate. This will happen when a record is edited, the name already exists (as itself) and when saved will trigger the part 1 result.&lt;br /&gt;&lt;br /&gt;Here is the rule. Simply replace the object name and field name (which can both be entered automatically when using the formula editor)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;and(&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Name = VLOOKUP&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; ($ObjectType.Service__c.Fields.Name , $ObjectType.Service__c.Fields.Name, Name ),&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;not(&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; Id=VLOOKUP&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ($ObjectType.Service__c.Fields.Id , $ObjectType.Service__c.Fields.Name, Name )))&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1048785611436799673-1999186403363933955?l=salesforcevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://salesforcevision.blogspot.com/feeds/1999186403363933955/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1048785611436799673&amp;postID=1999186403363933955' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1048785611436799673/posts/default/1999186403363933955'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1048785611436799673/posts/default/1999186403363933955'/><link rel='alternate' type='text/html' href='http://salesforcevision.blogspot.com/2010/01/search-for-duplicates-validation-rule.html' title='Search for Duplicates Validation Rule'/><author><name>Mike Snapp</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://photos1.blogger.com/blogger/6108/2803/1600/Mike%20Snapp.0.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1048785611436799673.post-714733169331265649</id><published>2009-10-10T13:20:00.000-07:00</published><updated>2009-10-10T13:31:01.962-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='salesforce.com lead distribution round robin trigger visualforce'/><title type='text'>A New Round Robin Lead Distribution Solution</title><content type='html'>A while back, I posted a solution to Round Robin Lead Distribution that passes leads from user to user, one after the other, as they are submitted via your web-to-lead system into Salesforce.com. It is a pretty good solution, but it has a few annoying limitations.&lt;br /&gt;&lt;br /&gt;That technique's main shortcoming is that it doesn't easily adapt to changes in the workforce or schedule. The distribution is handled via lead assignment rules that are responding to results of a formula on the lead record - which means that as you want to change who is part of that lead distribution "circle", you have to edit the formula on the lead record and change the lead assignment rules to list who is at work and should be receiving the leads.&lt;br /&gt;&lt;br /&gt;If you are a sales manger (who makes sure sales reps are getting and responding to leads) who isn't particularly tech savvy, you end up having to keep someone available who can understand how to make these modifications at the beginning of each work day to ensure the right people are getting the leads.&lt;br /&gt;&lt;br /&gt;We've finally revisited the "Round Robin Lead Distribution" issue and decided to solve it with the help of triggers and visualforce pages.&lt;br /&gt;&lt;br /&gt;The features we were wanted to have were:&lt;br /&gt;&lt;br /&gt;1) The ability for users to "check themselves in" to the lead distribution to save the manager from having to do that. &lt;br /&gt;2) Auto-logout users from the system after a given time so that they wouldn't continue to receive leads after they were no longer working. &lt;br /&gt;3) Provide a visualforce page where a manager could see or change the list of users currently in the distribution cycle as easily as possible.&lt;br /&gt;4) As each lead was submitted to salesforce.com, have the system look at all the users currently checked in to receive leads, and assign the new lead to the person who was least recently assigned a lead.&lt;br /&gt;5) A method whereby the sales manager can distribute all leads that were submitted during a time when no users were selected to receive them. &lt;br /&gt;&lt;br /&gt;To accomplish the above, we created the following components:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Custom Object:&lt;/b&gt; We started with a custom object called "Queue Members" which has a record for each user that is typically part of the lead distribution. This object references the user object and has a checkbox field for "Receive Leads" and a field that records the Date/Time of the last received lead. Also, a field is added to the Lead record with a lookup to the Queue Member record who received the lead - in doing this, a related list will show on each Queue Member record for all the leads assigned to that member via the lead distribution system.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Lead Queue:&lt;/b&gt; We created a new lead queue called "Round Robin Leads". It will temporarily hold leads received by the system until our trigger executes and determines who should own it.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Lead Assignment Rules:&lt;/b&gt; We added a lead assignment rule that takes any leads that the sales manager wants to distribute via the Round Robin system and assigns them to the Round Robin Leads queue. This will be added to the Lead Assignment Rules in a sort order that allows the manager to grab any special cases and assign them to other reps as needed. Some leads probably won't be assigned via Round Robin, so we still want to take advantage of the lead assignment rules to pass leads to the Round Robin system as desired rather than bypassing the lead assignment rules system altogether. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Trigger:&lt;/b&gt; A trigger was written that executes at new lead creation. That trigger first checks to see if the new lead is owned by the Round Robin Leads queue. If it isn't, the trigger leaves it alone, if it is, the trigger then evaluates the Queue Member records and finds all of them that are ready to receive leads (as indicated by the Receive Leads checkbox being checked). It sorts those and identifies the user that has least recently been assigned a lead and then proceeds to change the ownership of the lead to that member.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Workflow Rule&lt;/b&gt;: A workflow rule is used to deselect the Receive Leads checkbox for anyone who has checked it, 4 hours after it was checked. The rule executes two processes, 1) it deselects the checkbox, and 2) it sends an email to the user so that they know they are no longer in the lineup.&amp;nbsp; If the user wants to rejoin the distribution, they simply edit their Queue Membership record and check the "Receive Leads" checkbox. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Visualforce Page: &lt;/b&gt;This last component is a page that shows on one page all the members of the round robin distribution. This is used by the sales manager to see who is in the lineup. Next to each person's name is a checkbox. It is checked if they are currently receiving leads and can be selected or deselected by the sales manager to update the list of those receiving leads. It may happen from time to time, especially after hours, that there are no users in the queue to receive leads, consequently, leads will be left in the Round Robin Leads Queue. Therefore, this visualforce page will also show a list of any unassigned leads just above a button called "Distribute Unassigned Leads". When pressed, that button will execute code to cycle through all the leads currently in the queue and give them to the members selected. &lt;br /&gt;&lt;br /&gt;This is a fairly simple method that has fewer drawback than the formula based system I wrote about previously. Many salesforce customers will have the internal resources to build this system. If not, feel free to contact us - &lt;a href="http://www.snapptraffic.com/Salesforce_Home.html"&gt;click here for our services webiste&lt;/a&gt; - and we can deploy the system we wrote into your salesforce.com instance.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1048785611436799673-714733169331265649?l=salesforcevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://salesforcevision.blogspot.com/feeds/714733169331265649/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1048785611436799673&amp;postID=714733169331265649' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1048785611436799673/posts/default/714733169331265649'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1048785611436799673/posts/default/714733169331265649'/><link rel='alternate' type='text/html' href='http://salesforcevision.blogspot.com/2009/10/new-round-robin-lead-distribution.html' title='A New Round Robin Lead Distribution Solution'/><author><name>Mike Snapp</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://photos1.blogger.com/blogger/6108/2803/1600/Mike%20Snapp.0.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1048785611436799673.post-8171476844602564385</id><published>2007-10-31T13:34:00.000-07:00</published><updated>2007-10-31T13:58:50.574-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Salesforce'/><category scheme='http://www.blogger.com/atom/ns#' term='Salesforce.com'/><category scheme='http://www.blogger.com/atom/ns#' term='Salesforce.com Tools'/><title type='text'>Round Robin Lead Distribution</title><content type='html'>Here is an interesting problem: how do you import a stack of leads and evenly distribute them between several reps? There is no inherent function within &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;salesforce&lt;/span&gt; to &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;accommodate&lt;/span&gt; this feat. But there is a way to do it. Here is one good way.&lt;br /&gt;&lt;br /&gt;Essentially, you put an auto number on the lead record that assigns a new number to each new lead as they are created (or imported). To evenly distribute the leads between several reps, you simply divide that lead number by the number of reps and use the remainder +1 to assign each lead to one of the reps.&lt;br /&gt;&lt;br /&gt;I'll use three reps in my example. If the lead number (the one we automatically generated) is divided by three and you just examine the remainder, you'll see this progression:&lt;br /&gt;&lt;br /&gt;Lead Number Function Result &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;Remainder&lt;/span&gt; Remainder+1 (Assignment)&lt;br /&gt;1.......................... 1/3........... 0......... 1.................... 2&lt;br /&gt;2.......................... 2/3........... 0......... 2................... 3&lt;br /&gt;3.......................... 3/3........... 0......... 0................... 1&lt;br /&gt;4.......................... 4/3........... 1.......... 1................... 2&lt;br /&gt;5.......................... 5/3........... 1.......... 2.................. 3&lt;br /&gt;6.......................... 6/3........... 2......... 0................... 1&lt;br /&gt;&lt;br /&gt;Then just use assignment rules to assign the lead based on the result: just assign all the "1s" to the first rep, all "2s" to the second rep, and all the "3s" to the third rep.&lt;br /&gt;&lt;br /&gt;The way I did this was to create two new fields. The auto generated number field called "Lead Number" and a formula field called "Assignment."&lt;br /&gt;&lt;br /&gt;The formula I used for the Assignment field was this:&lt;br /&gt;&lt;br /&gt;MOD( Value(Lead_Number__c) , 3 ) + 1&lt;br /&gt;&lt;br /&gt;MOD gives you the remainder of a division, so you can see that I divided Lead Number by 3. The "Value" function takes Lead Number, which is actually a text field, and turns it into a real number. Then we add 1 so that a 0 is not returned.&lt;br /&gt;&lt;br /&gt;Then create your lead assignment rule called "Round Robin" with 3 rule entries. The first entry will assign all leads with an Assignment field = 1 to the first rep, and so on for the second two rule entries.&lt;br /&gt;&lt;br /&gt;If you have more reps, just divide by that bigger number and create the right number of rule entries.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1048785611436799673-8171476844602564385?l=salesforcevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://salesforcevision.blogspot.com/feeds/8171476844602564385/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1048785611436799673&amp;postID=8171476844602564385' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1048785611436799673/posts/default/8171476844602564385'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1048785611436799673/posts/default/8171476844602564385'/><link rel='alternate' type='text/html' href='http://salesforcevision.blogspot.com/2007/10/round-robin-lead-distribution.html' title='Round Robin Lead Distribution'/><author><name>Mike Snapp</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://photos1.blogger.com/blogger/6108/2803/1600/Mike%20Snapp.0.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1048785611436799673.post-878891913277701232</id><published>2007-09-12T13:28:00.000-07:00</published><updated>2007-09-12T20:05:49.807-07:00</updated><title type='text'>Many-To-Many Relationships</title><content type='html'>A client called me with a problem today. He has a custom object called "Projects" in which he keeps track of the construction projects his company is working on. He also keeps his contractors in the system as Accounts and Contacts.&lt;br /&gt;&lt;br /&gt;My client wanted to be able to create a link on the Account record to the Project Record to show which Projects a given contractor is working on. The problem he ran into appears when a contractor works on more than one project. Many contractors can link to the project record, but one contractor can't link to many project records.&lt;br /&gt;&lt;br /&gt;The problem is based on the one way link. Since the contractor (an account record) has only one field pointing to the project record, only one project can be assigned per contractor. We have what is called a "One-to-Many" relationship and we need a "Many-to-Many" relationship.&lt;br /&gt;&lt;br /&gt;While the functionality is not "built-in" to salesforce.com, there is a way to solve this problem. The solution is to create another object that serves as a link between the contractor and the project. We called this object "Project Contractor". Each "Project Contractor" record will have two fields, a lookup relationship field associated with the Project Object and another lookup relationship field associated with Accounts. Each record will, in essence, be a relationship between a particular project and a contractor. We name each record according to the project and the name of the contractor separated by a hyphen, for example, "Downtown Building-Jones Construction".&lt;br /&gt;&lt;br /&gt;Using this third object allows there to be a related list on both the Account Detail Page and the Project Detail page called "Project Contractor". Each related list can show multiple records. Therefore, a given contractor record (an Account record) can show on its related list all of the Projects that the contractor is working on. Then on a given Project record, there will be a related list that shows all of the contractors that are working on that project.&lt;br /&gt;&lt;br /&gt;You can move between the two records (contractor and project) via the Project Contractor record contained in the Project Contractor Object that will be found on the related lists of the Account and Project detail pages.&lt;br /&gt;&lt;br /&gt;In this way we have a many-to-many relationship link between the Account record and the Project record. Very, very cool.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1048785611436799673-878891913277701232?l=salesforcevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://salesforcevision.blogspot.com/feeds/878891913277701232/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1048785611436799673&amp;postID=878891913277701232' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1048785611436799673/posts/default/878891913277701232'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1048785611436799673/posts/default/878891913277701232'/><link rel='alternate' type='text/html' href='http://salesforcevision.blogspot.com/2007/09/many-to-many-relationships.html' title='Many-To-Many Relationships'/><author><name>Mike Snapp</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://photos1.blogger.com/blogger/6108/2803/1600/Mike%20Snapp.0.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1048785611436799673.post-8311916620678722139</id><published>2007-08-07T07:36:00.000-07:00</published><updated>2007-08-07T12:41:10.960-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Salesforce'/><category scheme='http://www.blogger.com/atom/ns#' term='Salesforce.com'/><category scheme='http://www.blogger.com/atom/ns#' term='Salesforce.com Tools'/><title type='text'>Button for Reverse Number Lookup</title><content type='html'>&lt;div&gt;Here is a pretty simple tool that I have found really helpful for some of the work that I do. I get leads from all over the country on my website. My web form, which feeds to web-to-lead in salesforce has a "best time to call" field that I added. I don't want to make the visitors to my web site fill out too much info because it tends to scare them away, so I only put a few neccesary fields - like the phone number, but I don't ask for time zone or city. However, if I'm going to call when they asked me to, I need to know where they are.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;a href="http://www.screencast.com/t/H2pghUeje"&gt;&lt;img id="BLOGGER_PHOTO_ID_5095975177455220098" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/__8inmqHmu0Y/RriKbJxtNYI/AAAAAAAAAA8/WJkvAzoACso/s320/Click+to+Play+Graphic+for+Blog.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;The easiest way for me to determine that is by doing a reverse number lookup on their phone number. I use the reverse number lookup on the whitepages.com website to find out the city and state of the lead. Then I know what time zone they are in. &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;That website allows you to feed the number you want to lookup in the URL. As a result, you can make a link or a button on your lead record, account record, or contact record that will automatically take the phone number stored in that record, send it to the whitepages website, and open up a page with the search results - big time saver. &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Watch this video to learn how to set it up. The link you will need is included below.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;http://www.whitepages.com/15055/search/ReversePhone?phone={!Contact.Phone&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1048785611436799673-8311916620678722139?l=salesforcevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://salesforcevision.blogspot.com/feeds/8311916620678722139/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1048785611436799673&amp;postID=8311916620678722139' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1048785611436799673/posts/default/8311916620678722139'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1048785611436799673/posts/default/8311916620678722139'/><link rel='alternate' type='text/html' href='http://salesforcevision.blogspot.com/2007/08/button-for-reverse-number-lookup.html' title='Button for Reverse Number Lookup'/><author><name>Mike Snapp</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://photos1.blogger.com/blogger/6108/2803/1600/Mike%20Snapp.0.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/__8inmqHmu0Y/RriKbJxtNYI/AAAAAAAAAA8/WJkvAzoACso/s72-c/Click+to+Play+Graphic+for+Blog.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1048785611436799673.post-1363154064979090482</id><published>2007-07-26T15:21:00.000-07:00</published><updated>2007-07-27T04:17:43.797-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Login'/><category scheme='http://www.blogger.com/atom/ns#' term='Salesforce'/><category scheme='http://www.blogger.com/atom/ns#' term='Salesforce.com'/><title type='text'>Desktop Login Shortcut</title><content type='html'>One little time saver that a client asked me about a few days ago was, "How do I put a shortcut on my desktop that automatically logs me into Salesforce?"&lt;br /&gt;&lt;br /&gt;Its actually pretty easy, but you'll have to make it yourself.&lt;br /&gt;&lt;br /&gt;Okay, here is how you do it.&lt;br /&gt;&lt;br /&gt;1) Go to the login page of salesforce and right click on the desktop. From the menu that pops up, click on create shortcut. That will put a shortcut on your desktop.&lt;br /&gt;&lt;br /&gt;2) Next, edit the shortcut by right clicking on the shortcut and selecting properties. You should see the following link in the URL field:&lt;br /&gt;&lt;br /&gt;https://www.salesforce.com/login.jsp&lt;br /&gt;&lt;br /&gt;3) You need to add the login validation text to the end of that link. It looks like this:&lt;br /&gt;&lt;br /&gt;?un=username&amp;pw=password&lt;br /&gt;&lt;br /&gt;The username is your salesforce login username email address. Note however, that you cannot put an @ symbol in the URL so it is replaced with a %40. So it will look something like this instead:&lt;br /&gt;&lt;br /&gt;?un=name%40domain.com&amp;amp;pw=password&lt;br /&gt;&lt;br /&gt;and obviously enter your actual password in place of "password". So the finished link will look something like:&lt;br /&gt;&lt;br /&gt;https://www.salesforce.com/login.jsp?un=name%40domain.com&amp;amp;pw=password&lt;br /&gt;&lt;br /&gt;4) Click on OK to save the properties box. Your desktop shortcut should now be active and will log you in automatically to salesforce.com and bring you to your home page.&lt;br /&gt;&lt;br /&gt;Another useful trick is to add a keyboard hotkey to the shortcut. You'll see the "Shortcut Key" field on the properties editor (same one you had open before). Type in S in the shortcut key. As soon as you type it, a "CTRL + ALT + S" will appear in the place of the S that you typed. Click on OK to save the properties box again.&lt;br /&gt;&lt;br /&gt;Now, when you want to login to salesforce.com, just hold down CTRL + ALT and type S and automatically a browser will open and login to your salesforce.com account.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1048785611436799673-1363154064979090482?l=salesforcevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://salesforcevision.blogspot.com/feeds/1363154064979090482/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1048785611436799673&amp;postID=1363154064979090482' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1048785611436799673/posts/default/1363154064979090482'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1048785611436799673/posts/default/1363154064979090482'/><link rel='alternate' type='text/html' href='http://salesforcevision.blogspot.com/2007/07/desktop-login-shortcut.html' title='Desktop Login Shortcut'/><author><name>Mike Snapp</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://photos1.blogger.com/blogger/6108/2803/1600/Mike%20Snapp.0.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1048785611436799673.post-9011670958974914327</id><published>2007-06-04T01:40:00.000-07:00</published><updated>2007-06-10T11:36:53.092-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Salesforce.com'/><category scheme='http://www.blogger.com/atom/ns#' term='Salesforce.com Dashboards'/><category scheme='http://www.blogger.com/atom/ns#' term='Salesforce.com Reports'/><title type='text'>Finding Information in Salesforce</title><content type='html'>One of the issues I see new users to Salesforce.com struggling with frequently is knowing where to go and what feature to use to find needed information. If you need to find a record, what is the quickest way? If you want all the contacts in a certain area, how do you do that? If you want to see a list of top performing sales reps, what Salesforce.com function do you use?&lt;br /&gt;&lt;br /&gt;Salesforce.com has made it very simple to find the answer to any of these questions, but with any capable system, finding your way through all that capability and learning to use those tools can be challenging. Let me see if I can make it any easier.&lt;br /&gt;&lt;br /&gt;Salesforce.com generally gives you 4 ways to find and display information:&lt;br /&gt;&lt;br /&gt;1) The Search Function&lt;br /&gt;2) The View Function&lt;br /&gt;3) Reports&lt;br /&gt;4) Dashboards&lt;br /&gt;&lt;br /&gt;Let me take these one at a time:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Search&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The Salesforce search function has two levels of complexity: basic search and advanced search. Search is a great feature - and quite powerful. The search form in on the sidebar every page of salesforce except setup pages. It is typically the fastest way to find one record. If you need to find someone at a certain company, just type some portion of the company name into the search box and click search.&lt;br /&gt;&lt;br /&gt;Advanced Search searches more fields than the sidebar Search, including notes, descriptions, and comments. It has the ability to use operators such as AND, OR, and AND NOT to help you find exactly what you are looking for. You can put quotation marks around multiple keywords to perform an exact phrase match, for example, "call john smith". Plus, it allows wildcards - add an asterisk to the end of your keyword to search for items that start with the word, for example, "acme*".&lt;br /&gt;&lt;br /&gt;You should note: Search does not display results from related lists. For example, if you are searching for a contact at a company, the search function will only find and display the Account Name, even though there may be several contacts at that company. Once you see the Account you are looking for, open that account record to display the contacts associated with it on the related lists.&lt;br /&gt;&lt;br /&gt;I find many users of salesforce only using one way to find information, when another way would make much more sense. The most common mistake I see is overusing search. For example, one user I worked with needed to see all his contacts in a given zip code to plan a series of on-site visits in his territory. He was trying to find these contacts using search. A much better way to find this information is the VIEW feature of salesforce.com.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;View&lt;/span&gt;&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Finding information is always about choosing a database, filtering that data, and choosing how to display it. As a matter of fact, functionally, this is all a database is good for. Storing information is only useful if you can later find what you saved. The View is just a more capable way of filtering and displaying information than the search.&lt;br /&gt;&lt;br /&gt;The primary limitation of the View is that it limits the filtering to the object type in which it is located. An salesforce object is a Lead, Contact, Account, Opportunity, etc. You might also have custom objects such as Projects or Invoices that help you manage your particular business processes. Since the View is limited to one object type, it cannot be used when looking for information spanning multiple types, such as all the contacts associated with a given account. To combine multiple object types, a Report must be used.&lt;br /&gt;&lt;br /&gt;At the top of each object main page, you will find the View drop down menu. Salesforce has already created many views that it thinks most people will commonly need such as All Contacts on the contacts page or My Opportunities on the opportunities page. But to really get the benefit of the View function, you'll have to learn to create new Views. To create a new view simply click on the "Create New View" link located right next to the View drop down menu.&lt;br /&gt;&lt;br /&gt;The Create New View page has three basic sections: 1) View Name, 2) Search Criteria, and 3) Select Columns. Each of these are fairly self explanatory, although the search criteria requires you to use basic logic functions such as "equals, does not equal, contains, does not contain", etc. Some people initially have some challenge with this if they prefer the visual functions of other CRM packages such as ACT. It is entirely logical though and allows for more precision when searching for certain records.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;strong&gt;Reports&lt;/strong&gt;&lt;br /&gt;&lt;/u&gt;&lt;br /&gt;The Report function overcomes the limitations of the View function and ads several additional capabilities. An important capability of the report function is the ability to combine information from multiple record types. This capability is addressed when a new report is created by asking the user to select the type of data to report on and offers the user the option to select data from related lists at the same time. Other important features of the Report function are its export capability, charting functions, and drill down functionality.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;strong&gt;Dashboards&lt;/strong&gt;&lt;br /&gt;&lt;/u&gt;&lt;br /&gt;The Dashboard is named such with the idea of a car's dashboard in mind. The dashboard tells the driver all he needs to know about the performance of his car. In the same way, the salesforce dashboard tells the company leadership in a glance about the performance of the company. It can also tell any user of salesforce about the performance of whatever aspects of the company they are responsible for. For example, sales reps can see dashboard elements about their sales, support reps can see dashboard elements about support, etc. Many different dashboard pages can be created and they are completely customizable.&lt;br /&gt;&lt;br /&gt;The Dashboard takes the data of the report and puts it in a chart. Reports have their own charting function, but the dashboard allows you to take the charts of many reports and put them on the same page. Each user can create any kind of dashboard that they like. Elements can be tables, charts, graphs, pie charts, etc - there is an unlimited variety of ways to display performance information.&lt;br /&gt;&lt;br /&gt;So there you go - when trying to find salesforce.com information, remember that there is more than just the search, also use Views, Reports, and Dashboards to get the most out of your implementation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1048785611436799673-9011670958974914327?l=salesforcevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://salesforcevision.blogspot.com/feeds/9011670958974914327/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1048785611436799673&amp;postID=9011670958974914327' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1048785611436799673/posts/default/9011670958974914327'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1048785611436799673/posts/default/9011670958974914327'/><link rel='alternate' type='text/html' href='http://salesforcevision.blogspot.com/2007/06/finding-information-in-salesforce.html' title='Finding Information in Salesforce'/><author><name>Mike Snapp</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://photos1.blogger.com/blogger/6108/2803/1600/Mike%20Snapp.0.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1048785611436799673.post-2881401152110721863</id><published>2007-05-28T06:32:00.000-07:00</published><updated>2007-05-28T18:07:38.981-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mailing lables'/><category scheme='http://www.blogger.com/atom/ns#' term='Salesforce'/><category scheme='http://www.blogger.com/atom/ns#' term='address labels'/><category scheme='http://www.blogger.com/atom/ns#' term='Salesforce.com'/><title type='text'>Creating Mailing Labels</title><content type='html'>Here is probably one of the more common and mundane tasks that a user of salesforce.com has to do every so often - create and print mailing labels of customer addresses. Both marketing users and sales reps will occasionally need to take a list of contacts and print mailing labels from them. The task is fairly straightforward, but it contains quite a few steps and can be confusing. To make it a little easier, I've laid out the basic steps below and made an example video so that you can watch me do it. &lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.screencast.com/users/Michael_Snapp/collections/Default/media/14d4bdfe-4ef4-4b0f-b370-d31e4f2b854b"&gt;&lt;img id="BLOGGER_PHOTO_ID_5069671055893965138" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/__8inmqHmu0Y/RlsW9w6jqVI/AAAAAAAAAAs/PokwLJRBeZ4/s320/Click+to+Play+Video+Graphic.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;strong&gt;The Basic Steps of Printing Mailing Labels&lt;/strong&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;strong&gt;using&lt;/strong&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;strong&gt;Salesforce.com&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;1) Create a report in Salesforce.com&lt;/strong&gt; that contains all the contacts or accounts that you want to mail to. &lt;/p&gt;&lt;p&gt;- There are address fields in both contacts and accounts as well as shipping and billing addresses in both areas. I mention that so that you'll be sure to get the correct address into your report.&lt;/p&gt;&lt;p&gt;- When you make your report, be sure to include the first and last name, and all the address fields you need such as street, city, state, zip, etc. &lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;- Set the criteria to filter only the contacts you need. You might want only a certain area code or all the contacts that are receiving the newsletter.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;strong&gt;2) Export that Report to MS Excel&lt;/strong&gt; using the export function given on the report. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;- Save that report in the excel file format (it might give you the option of saving as a web page).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;- Save that report to your hard drive. Word will need to load it from the hard drive.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;strong&gt;3) Prepare Labels in MS Word using Mail Merge function.&lt;/strong&gt; &lt;/div&gt;&lt;div&gt;&lt;br /&gt;- You'll be using both Excel and Word to complete this process. Excel contains the list of addresses, Word formats the labels and prints them. So we'll use the Mail Merge function in Word to prepare and print the labels.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;- The Mail Merge wizard is located by clicking on Tools/Letters and Mailings/Mail Merge. It does a very good job of taking you through all the steps. Basically, in Word you have to choose a label type, load the recipients list that is in the excel file, format the label, merge the list, then print it. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;There are a lot of individual steps to this whole process, but once you grasp what is going on, you won't have any difficulty. Watch the associated video for all the details. If you have any questions and need assistance with this process, you can reach me by &lt;a href="http://www.michaelsnapp.com/contact.html"&gt;clicking here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1048785611436799673-2881401152110721863?l=salesforcevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://salesforcevision.blogspot.com/feeds/2881401152110721863/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1048785611436799673&amp;postID=2881401152110721863' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1048785611436799673/posts/default/2881401152110721863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1048785611436799673/posts/default/2881401152110721863'/><link rel='alternate' type='text/html' href='http://salesforcevision.blogspot.com/2007/05/creating-mailing-labels.html' title='Creating Mailing Labels'/><author><name>Mike Snapp</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://photos1.blogger.com/blogger/6108/2803/1600/Mike%20Snapp.0.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/__8inmqHmu0Y/RlsW9w6jqVI/AAAAAAAAAAs/PokwLJRBeZ4/s72-c/Click+to+Play+Video+Graphic.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1048785611436799673.post-3699348413209791514</id><published>2007-05-26T10:39:00.000-07:00</published><updated>2007-05-28T11:12:45.195-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Reports'/><category scheme='http://www.blogger.com/atom/ns#' term='vlookup'/><category scheme='http://www.blogger.com/atom/ns#' term='Salesforce'/><category scheme='http://www.blogger.com/atom/ns#' term='Salesforce.com'/><title type='text'>Pulling Clients from the Black Hole</title><content type='html'>Do you ever have clients that you lose in a black hole? You know, the "what ever happened to the xyz account?" question that comes up every now and then. Salesforce.com has done an amazing job of helping companies keep track of existing clients, but there is one report type that I haven't seen inside salesforce that can be solved using excel instead.&lt;br /&gt;&lt;br /&gt;I call this kind of report the "without" report. Salesforce has built-in functionality to show you items that are linked; for example, it can show you all the contacts that have upcoming activities. It can show you all the Accounts with open Opportunities. But what if you want to see all the Contacts "without" an open Activity or all the Accounts "without" any Opportunities associated with them - you can't - because you are asking salesforce to show you what doesn't exist rather than what does exist.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.screencast.com/users/Michael_Snapp/collections/Default/media/caca4aa5-77f8-4f0d-9c1c-83343ece76b2"&gt;&lt;img id="BLOGGER_PHOTO_ID_5069614680153237794" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/__8inmqHmu0Y/RlrjsQ6jqSI/AAAAAAAAAAU/CtyR9HlJfDs/s320/Click+to+Play+Video+Graphic.jpg" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;br /&gt;A client asked me for just such a report this week. He was worried about losing prospects in a "black hole"; meaning, he wanted to know which Contacts had no open Opportunities or open Activities. He knew he had dozens of Contacts that had no upcoming activities - these clients wouldn't be hearing from him because he had never set a task for some kind of followup in the months to come. These clients were in a black hole and he wanted to pull them out.&lt;br /&gt;&lt;br /&gt;Here is how we found those contacts. We created two reports. One called "All Contacts" and the other called "All Open Activities." We exported both reports to MS Excel using "Printable View." We then copied the second report into a second worksheet on the first report and renamed the tabs. So to sum up what we've got so far, we had one MS Excel workbook containing two sheets, the first worksheet is called "All Contacts" and the second worksheet is called "All Open Activities." There isn't much on these worksheets. The first one has one column called Contacts. The second worksheet has two columns: Contacts and Activities.&lt;br /&gt;&lt;br /&gt;Essentially, the way we solve this problem now is to copy onto the first worksheet the activity from the second worksheet associated with each contact. So for each contact on the first worksheet, a lookup will be made onto the second worksheet. If that contact exists on the second worksheet, we'll copy the activity over to the first worksheet. Then we'll see all the contacts that have an open activity and all the ones that don't - which is the answer we're looking for. Now by simply sorting the list, you'll have a block of contacts with no upcoming open activity.&lt;br /&gt;&lt;br /&gt;The excel function we used to lookup the activity on the second worksheet is called &lt;strong&gt;VLOOKUP&lt;/strong&gt;. This formula will be located in the column next to the contact name on the first worksheet. It has 4 operators. They are:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Lookup_Value&lt;/strong&gt;: This is the field containing the value that you want to search the second sheet for. So we'll put the cell containing the contact name in there. It will be the cell just to the left of where you're putting the VLOOKUP formula.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Table_Array&lt;/strong&gt;: This is the table containing all the contacts and their open activities. For us, it is the contacts and activities columns on the second worksheet. Highlight that entire table, both columns. Be sure to fix the value with $ signs so it does not slide as you copy VLOOKUP into the rest of the column. It will look something like this: "All_Open_Activities!$A$1:$B$35"&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Col_Index_Num&lt;/strong&gt;: This is simply the column that contains the answer (the activity) that we're copying from the second sheet into the first. For our purposes, it is column 2 - so just put a 2 there.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Range_Lookup&lt;/strong&gt;: Just put FALSE. This has to do with how closely excel tries to match the contact names. In our case we want an exact match. If it doesn't find an exact match it will put "NA" for the answer.&lt;br /&gt;&lt;br /&gt;The formula will look like this: =VLOOKUP(A2, Sheet1!$A$1:$B$35, 2, FALSE)&lt;br /&gt;&lt;br /&gt;Now just copy the formula all the way down the second column and sort the list based on the activities in the second column which will put all the NAs together. The NAs are the contacts that do not have any upcoming activities scheduled.&lt;br /&gt;&lt;br /&gt;This same methodology can be used for any "without" report. It can show you the records of any object that do not show up on the related list of another object. Accounts without Opportunities, Leads without Activities, Accounts without Contacts, etc.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1048785611436799673-3699348413209791514?l=salesforcevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://salesforcevision.blogspot.com/feeds/3699348413209791514/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1048785611436799673&amp;postID=3699348413209791514' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1048785611436799673/posts/default/3699348413209791514'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1048785611436799673/posts/default/3699348413209791514'/><link rel='alternate' type='text/html' href='http://salesforcevision.blogspot.com/2007/05/pulling-clients-from-black-hole.html' title='Pulling Clients from the Black Hole'/><author><name>Mike Snapp</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://photos1.blogger.com/blogger/6108/2803/1600/Mike%20Snapp.0.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/__8inmqHmu0Y/RlrjsQ6jqSI/AAAAAAAAAAU/CtyR9HlJfDs/s72-c/Click+to+Play+Video+Graphic.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1048785611436799673.post-6346105246265789037</id><published>2007-05-26T07:35:00.000-07:00</published><updated>2007-05-26T08:17:01.591-07:00</updated><title type='text'>Sales System or Business Management System?</title><content type='html'>When most businesses think about transitioning to Salesforce.com, it is normally with the intent of streamlining the activity of the sales reps. Management starts to realize how many sales have been lost because a rep just forgot to call someone back or forgot a detail that cost the company business. Salesforce is for most companies a way to clean up the business of sales. In their mind it is a system for the sales team. Other companies have made the leap to salesforce because they need more visibility into the sales process and the pipeline. In both cases, management is thinking about the sales process, either cleaning it up or getting more information from it.&lt;br /&gt;&lt;br /&gt;Once a business gets started with salesforce.com however, they start seeing the potential to manage aspects of the business that are not sales related. Before long they say, "Hey, what is this cases stuff? Could our support reps be using that?" The next thing you know, you've got the technical support team using salesforce.com. Salesforce built this functionality into the system already with Cases/Solutions.&lt;br /&gt;&lt;br /&gt;Campaigns are another early extension to the sales related functions. Marketing is often closely associated with sales and tracking the effectiveness of marketing campaigns is a natural progression from tracking the progress of a sale.&lt;br /&gt;&lt;br /&gt;You'll see another built-in part of salesforce.com that many companies start using soon is "Contracts" - don't confuse that with "Contacts!" Once a sale is complete, a contract is typically signed. Why not track the contract right in salesforce?&lt;br /&gt;&lt;br /&gt;I think the next logical function that many companies move to next is some kind of tracking of the production/fulfillment of the product. When a sale is complete, somebody in the company gets working on delivering to the customer whatever product or service just got sold. How nice would it be to manage this process in salesforce as well? After all, all the information about the customer and their needs is already in the system. An opportunity fully details exactly what they need, why not just ad a section to salesforce that contains more data about the details of the fulfillment of the deal. In this way many companies begin their foray into custom objects.&lt;br /&gt;&lt;br /&gt;Maybe HR and Finance want to get into the act. I've seen an "Employees" tab on one client's system. HR used that custom object to keep employee records up to date. For finance, there are plenty of ways to integrate. In my last post I wrote about a custom object I helped a client create called "Invoices". Others use products from the AppExchange to fully integrate salesforce.com with quickbooks.&lt;br /&gt;&lt;br /&gt;The possibilities are truly limitless. The challenge is simply "Salesforce.com Vision". If you can "see" it, there is probably a way to do it. I guess that is where I come in for my clients - I have seen so many neat ideas as I work for multiple clients, that I'm able to recommend extensions to salesforce functionality that my clients may not have thought of. It is a cool position to be in.&lt;br /&gt;&lt;br /&gt;I think salesforce.com is reaching the point (I haven't heard them say this, I just suspect it) where they might wish they had called the product something else. The name kind of has them pigeon-holed as a "sales system" when it is really so much more than that.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1048785611436799673-6346105246265789037?l=salesforcevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://salesforcevision.blogspot.com/feeds/6346105246265789037/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1048785611436799673&amp;postID=6346105246265789037' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1048785611436799673/posts/default/6346105246265789037'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1048785611436799673/posts/default/6346105246265789037'/><link rel='alternate' type='text/html' href='http://salesforcevision.blogspot.com/2007/05/sales-system-or-business-management.html' title='Sales System or Business Management System?'/><author><name>Mike Snapp</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://photos1.blogger.com/blogger/6108/2803/1600/Mike%20Snapp.0.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1048785611436799673.post-2152897103520921316</id><published>2007-05-26T07:23:00.000-07:00</published><updated>2007-05-26T08:24:38.302-07:00</updated><title type='text'>Custom Objects: Customer Lifetime Value</title><content type='html'>Today I helped a client create a mechanism for determining the lifetime value of a given client. His problem is not unique. Essentially, this client does not know how valuable a given customer will be when the sale is won. In their business, they have an initial setup fee and a monthly service fee, but the length of time that the customer will continue to use their services is unknown, sometimes it's for 3 months, sometimes much longer. So without knowing how much a client will earn for the company, the "Amount" field of the opportunity is just a guess.&lt;br /&gt;&lt;br /&gt;We discussed possibilities. One idea was to update the opportunity on a monthly basis to show the accurate total value. This is problematic since one Account might have multiple opportunities as the company upsells other services - which will confuse the total value. In addition, returning to the same opportunity month after month and updating the value is labor intensive.&lt;br /&gt;&lt;br /&gt;We also tossed around the idea of creating a total value field right on the account page that could be updated. This solved the multiple opportunities issue but not the labor issue and it isn't very clean in the sense that you have no feel for what services makes up that total value.&lt;br /&gt;&lt;br /&gt;We ended up opting for a custom object called Invoices. The custom object would contain the amount of each invoice and other fields directly from the invoice such as invoice number, description, type of service, etc. One of the fields is a lookup field to the associated Account. The Invoice object was added as an account related list and as a tab next to the opportunities tab.&lt;br /&gt;&lt;br /&gt;The custom object really harnesses the power of salesforce.com. An object is the term that salesforce.com uses to classify all records used for a given purpose. For example, "Contacts" is an object, "Accounts" is an object, "Opportunities" is an object. They will usually have their own tab, fields, and page layouts. Custom object records can link to other objects - (just like a contact links to an account) and once linked can show up on the related list of the other object. Once a custom object is deployed, users can start creating new records of that object type.&lt;br /&gt;&lt;br /&gt;So for my client with the new Invoices object - now, on each Account record, he has a list of all invoices for that client. The records can be imported en-mass using any of several tools or entered each month by someone in finance as part of their normal invoicing process.&lt;br /&gt;&lt;br /&gt;This now makes possible any number of reports that show total value of any customer, thus allowing Return-On-Investment calculations, etc to be made.This was a clean solution, easy to implement, and added a great deal of visibility value to this client.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1048785611436799673-2152897103520921316?l=salesforcevision.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://salesforcevision.blogspot.com/feeds/2152897103520921316/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1048785611436799673&amp;postID=2152897103520921316' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1048785611436799673/posts/default/2152897103520921316'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1048785611436799673/posts/default/2152897103520921316'/><link rel='alternate' type='text/html' href='http://salesforcevision.blogspot.com/2007/05/custom-objects-customer-lifetime-value.html' title='Custom Objects: Customer Lifetime Value'/><author><name>Mike Snapp</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='20' height='32' src='http://photos1.blogger.com/blogger/6108/2803/1600/Mike%20Snapp.0.jpg'/></author><thr:total>0</thr:total></entry></feed>
