Developers love tools that make their lives easier and it should come as no shock that Salesforce developers have different backgrounds and preferences for their integrated development environment (IDE) of choice. The landscape has shifted since I started in the Salesforce ecosystem six years ago and the recent news about suspension of MavensMate development might have some worried about their tool of choice going forward. Let’s dive into the options that developers have available for writing Apex, Visualforce, and Lightning Components with a review of some popular IDEs.
The Developer Console is an officially supported Salesforce tool for developers that want a web-based experience for coding and debugging. Available by clicking Your Name → Developer Console, there are a whole host of features that users can leverage, such as debug logs, test execution, SOQL queries, and other tools for tuning performance.
Modifying existing classes and pages is available, as are the newer Lightning related metadata components, but the lack of features from more robust IDEs and text editors make this a bit of a secondary tool for hardcore developers. Often it is more useful to copy and paste code out of the Dev Console into a text editor and paste it back, simply because of the flexibility that other apps offer. Dev Console is a great resource for anyone getting into Salesforce development, but seasoned devs will be venturing here for specific features and quick fixes.
Web-based, but requires internet connection
No direct integration with source code repositories nor version control
No ability to deploy between environments
Offers performance profiling, has support from Salesforce engineering team
Free (included with your Salesforce license)
Bottom Line: great for beginners to learn development, helpful for debugging issues with existing code, but is closer to Chrome’s Dev Tools than an IDE.
Force.com IDE Plugin for Eclipse
The Force.com IDE Plugin is the original gangster for Salesforce developers and continues to have support from Salesforce. While it acts as a plugin for the Eclipse IDE, it’s worth noting that the features available with these two tools together is a great resource for developers that are coming from a more traditional IDE route. The Schema Explorer acts as a great resource that predated Workbench, allowing for devs to explore metadata with precision.
While other plugins offer support for Lightning today, the Force.com IDE does not. Salesforce engineering is releasing support for this in an update available within the next month, which will include code highlighting and hints. Eclipse is likely losing popularity with devs in favor of text editors, and arguably isn’t the most fashionable way to code, but it likely is the choice for enterprise devs that split their time between Salesforce and other languages (e.g. Java).
Windows, Mac OS X, and Linux
Eclipse offers ability to work with source code repositories
Able to deploy between Salesforce environments
Familiar setup for Java developers, Schema Explorer is helpful tool for exploring metadata without Workbench, has support from Salesforce engineering team
Free (included with your Salesforce license)
Bottom Line: it’s been around forever and still getting love from Salesforce, so if you had to pick a place to start as a seasoned dev, Eclipse with the IDE plugin is not a bad choice.
MavensMate provided a great alternative to using Eclipse when it was released a few years ago, and is available as a plugin for the Sublime Text and Atom text editors. These editors are widely used by developers that prefer a lighter weight experience for writing code and both have a whole suite of plugins available to assist with development or UI tweaks for the stylish coder. Over the past few years, MavensMate has gained more features to assist with coding, deployments, and testing.
Two weeks ago, there was a flurry of activity on MavensMate’s GitHub page due to Salesforce disabling TLS 1.0 for any sandbox orgs. This also coincided with a post from the main supporter, Joe Ferraro, that development has been suspended on MavensMate; congratulations are in order for Joe, who has a newborn member of his family! While development of MavensMate is on hold (and will likely resume later this year), there’s a version 7 beta available that is worth setting up to keep calm and code on.
Windows, Mac OS X, and Linux
Acts as a plugin to text editors that support plugins for handling source code repositories + version control
Able to deploy between environments
Lightweight tool allowing for users to leverage either Sublime Text or Atom with their other favorite editor plugins, retro arcade games available when waiting for test runs and deployments
Free and open source
Bottom Line: development is currently on hold and there are some nuances in the user experience, but it’s the most enjoyable if you prefer editors to IDEs.
Aside.io is like Cloud9, but only allows for Salesforce development. As a web based tool, it is impressively fast to manage existing files and create new metadata. The tool leverages four main functions to segment functionality: Code, Test, Push, Data. Each of these lets developers spend time writing code, executing tests, downloading package.xml and ZIPs to manage deployments, and running SOQL queries against their org.
This has a steeper learning curve due to choice in icons for various functions in the toolbars and could benefit from a bit of usability improvements, though offers targeted functionality for the cloud-based Salesforce developer that wants a cleaner or more “zen like” editor experience than Dev Console.
Web-based, but requires internet connection
No direct integration with source code repositories nor version control
Create a package.xml file or ZIP for deployments and drag/drop these files into your target org for deployments
Manage Apex, Visualforce, static resources, and custom objects with ease
Bottom Line: it’s clean and crisp, and feels a bit more fun to use than the Developer Console, but with most web-based tools, you need the internet for this to shine.
IntelliJ IDEA with Illuminated Cloud
Within IntelliJ IDEA, devs can leverage the Illuminated Cloud plugin for their Salesforce development needs. IntelliJ is a great alternative to Eclipse and has a community of plugins available. Illuminated Cloud is unlike all of the other tools mentioned thus far, as it requires a license to use after the 30 day trial period. Running through its features, it’s nearly at parity with the Eclipse plugin.
Windows, Mac OS X, and Linux
IntelliJ allows for managing source control repositories, and has a nice version control system without any work
Illuminated Cloud allows for deploying to different orgs
Robust functionality for code completion and validation, manage static resource bundles, offline Apex debugger
Illuminated Cloud is $65 per license with some volume discounts, and IntelliJ Community Edition is free, but will set you back $149 per year as an individual or $499 per year as a business if you want the pricier, more feature rich IntelliJ Ultimate Edition
Bottom Line: if you already use IntelliJ, you’re already using Illuminated Cloud; if you aren’t using IntelliJ, give it a shot with Illuminated Cloud and be prepared to fork over a few slices of artisanal toast.
Cloud9 has been around for a while and offers a cloud-based IDE for developing in various languages. A benefit of this is the abstraction away from hardware level constraints that may arise with using your “work” laptop versus “hobby” machine, etc. Cloud9 has launched support for Salesforce development and allows for signing into an org and starting to develop immediately.
Arguably the best feature of Cloud9 is their “Google Docs for code” approach; users are able to write code and share a workspace with colleagues or friends, and those people can jump into a file and make changes live. This is a huge step up for those looking for a mentor or doing remote pair programming.Like its native siblings, a bash shell can be used for handling commits, and like its web-based siblings, an internet connection is required to do any work with this tool. It’s best to consider this a hybrid of Sublime and Dev Console.
Web-based, but requires internet connection
Built in bash shell and has integrations with GitHub and Bitbucket repositories for your account
Automatic bidirectional sync of code from Salesforce to IDE, though no deployments to different orgs
Dubbed the “Google Docs” of coding, you can have multiple people in the same file working together
Free for 1 Salesforce workspace; premium users can create an unlimited number of Salesforce workspaces (premium pricing starts at $19 per month)
Bottom Line: social coding with your friends or mentors is a great feature, but the 1 workspace limitation will be difficult for anyone that spends a majority of their week working on code in a variety of environments.
As opposed to the last two options that sit within Java IDEs, Welkin Suite has built upon Visual Studio from the .NET side of the developer world. Welkin Suite is currently in beta and only available for the Windows platform, though their Twitter handle has promised support for macOS later this year. This IDE packs a lot of the functionality available in the other plugins, along with a bundled data loader, the ability to organize your metadata in folder structure different than what is returned from Salesforce, and integration to #askforce about a code snippet (including a screenshot!).
With that said, the features and experience is highly targeted to the MSDN developer that is familiar with patterns of Visual Studio. This is definitely worth noting for those that have not experienced this style of coding before, as it’s not directly related to Welkin Suite and their feature set.
Windows only, though support for Mac OS X coming this year
Offers support for source code repo and version control without switching to terminal or GUI app
Able to deploy between Salesforce environments
Offers developers the ability to #askforce directly from IDE to tweet their question and screenshot of their code, customizable folder structures, built in data loader
Free; currently offered as a beta, so pricing might come later
Bottom Line: nifty features for #askforce and data loading do not make up for its lack of support for macOS and the frustrating user experience if not familiar with Visual Studio.
There are certainly other tools and options available for developing on Salesforce, and some tools have their targeted use cases, while others try to be the kitchen sink. Also, with the rich set of APIs that are available, developers can spin their own tools using a combination of things like Node, Gulp, and the Force.com Migration Tool. Personally, I’ve found it’s most useful to combine MavensMate and Developer Console for any work that we do at Arkus, but that’s partly a choice based on habit.
As a bonus, the Product Manager for Platform Developer Tools (Greg Wester) shared some news with us about the future of developer tooling. The team at Salesforce is committed to investing in their existing tools (including the Force.com Command Line Interface) to help improve the developer experience, and are committed to providing the necessary APIs to allow tooling partners (new and existing) to continue creating great products.
This year’s Dreamforce will include announcements for features that developers have been long awaiting, as Salesforce continues to position developer experience as an important focus for their internal and partner engineering teams.
So, which tools are you using for Salesforce development? Do you use just one or a mix based on the use case? Let’s start up the discussion below in the comments, via Twitter @RogerMitchell, on our Facebook page, or in the Success Community!
Omni-Channel is a tool that sits inside of either the Sales or Service Console that, once enabled and configured, automatically pushes work to your users in real time. For example, one can configure routing rules to assign cases to agents through Omni-Channel or configure routing rules to assign leads to sales people. Omni-Channel currently supports leads, cases, chats, SOS video calls, social posts, orders, and custom objects with the goal to be getting the right work to the right person who has the capacity to help. In this example, let’s review how a case can be routed using Omni-Channel.
Without Omni-Channel, agents often rely on list views to find new cases to work. From the list view, the agent selects a case, reassigns ownership, and then gets going. This leaves much room for improvement as lower priority cases may be grabbed before those with higher priority, and agents can cherry pick their work, often resulting in the same agents consistently working the more complex cases while others skate on their coattails.
First, you’ll want to set up a Service Channel on the case object. I think Salesforce themselves says it best in that, “Service Channels let you turn most Salesforce objects such as a case, lead, SOS session, or even a custom object into a work item. Omni-Channel then plucks these work items from their Queues—like flowers from the garden of agent productivity—and routes them to your agents in real time.”
Once a Service Channel has been configured, you’ll move on to setting up a Routing Configurations. Routing Configurations determine how items are routed to your users. It’s here where you can prioritize the importance and size of the case. Finally, assign the Routing Configuration to a Salesforce queue and the items in that queue are pushed to your agents based on that Routing Configuration.
To use Omni-Channel a footer component must be added to the console. Once the footer component is added and Omni-Channel is fully configured, when a new case comes in the request pops into a chat-like window based on which agent available and has the capacity to take on additional work. Presence statuses must be configured as a part of the Omni-Channel setup and similar to Slack or G-Chat allow users determine if they are available, unavailable or offline. You can configure as many presences statuses as are needed and assign them via a permission set.
From here agents can also either accept or decline the work and include a reason as to why work is being declined.
For managers, Omni-Channel opens agent productivity reporting in a way that was never possible before. By leveraging reports on the User Presences object, you can easily see how much time an agent is spending in a particular presence status. Curious to know how many cases your agents are declining? Curious to know how long agents are looking at a particular case? Run a report or create a dashboard on the Agent Work Object. For administrators, Salesforce has a great setup guide that is easy to follow making Omni-Channel well within your reach.
Salesforce continues to improve the Omni-Channel functionality with each release. Most recently with the Summer ‘16 release, we gained the ability to track the time people spend on work items, provide a decline reason, and enable and disable sound notifications.
Skuid (Scalable Kit for User Interface Development) provides an impressive set of tools to quickly create Salesforce pages with a custom user interface and greater functionality. In order to decide when it might make sense to consider Skuid as a possible solution, it helps to have an overview of how it works. These are the basic elements of Skuid.
This is where Skuid pages are built. They can be built from scratch or from one of several templates provided. Skuid components are dragged and dropped onto a page with no code required. Skuid pages can be stand alone pages, replacements for Salesforce standard pages or several pages could be utilized to overhaul the look and function of the entire org. At its core, it provides a GUI page builder to create Visualforce pages declaratively, vastly reducing the upfront time and cost of the developing similar pages with code.
In order to display Salesforce data within a component on a page it must be linked to a model. Models are setup for each page to query the data necessary for that page. Each model is directly linked to an object in Salesforce or an external data source may be used as well via Skuid model services. Any number of fields can be brought into the model for display in components on the page. Conditions are setup to filter the models to only bring in data relevant to the page being created. Model conditions can be dynamic, static, or updated via actions.
Skuid does more than just enhance the look and feel of a page. The Skuid action framework allows the orchestration of several actions to be carried out in sequence at the push of a button, or as a result of saving changes or updating a field. Actions can include creating new records, setting a new value for a model condition, updating fields and much more. Automation that would normally require Workflow rules, Processes, Flows or some combination of the three can be baked directly into the design of the page.
No Code No Kidding ...unless you want to
Skuid offers a powerful flexible product that can provide significant improvements in user experience and efficiency, but it comes at a price. It’s an ongoing monthly cost per user to enjoy custom skuid pages in your org. Contact Skuid for current pricing. If only a couple custom Visualforce pages are needed to fulfill a requirement, it would likely not be worth the recurring cost of Skuid licences. If on the other hand, an org requires many custom pages with complex functionality and the ability to adapt those pages quickly to accommodate changing needs, Skuid could be a great way to develop those pages quickly with a relatively low upfront cost.
As Salesforce users with every release comes exciting new treats that we look forward to three times a year. Nonprofit Starter Pack users are even more special as there are bi-weekly product specific releases.
Thanks to some amazing volunteers, the Nonprofit Starter Pack now provides out of the box Spanish translations. This setting applies to standard objects, fields, and the Setup menu. Before implementing Spanish Translations for your organization make sure you are aware of limitations and best practices, outlined in the title link above. Overall this is a great step toward making this product more widely available. This is also a great initiative to help diversify the Salesforce ecosystem.
In-Kind Donation Management is now preconfigured on the latest version of the NPSP. Users have access to In-Kind specific Opportunity Stages, Sales Process and Record Type, Custom Fields, Page Layout. There is also some automation available to rollup the Fair Market Value amount Field up to the Contact or Account record. A little goes a long way and this functionality will make reporting and tracking much easier for In-Kind Gifts. If you have an earlier version of the NPSP, you will have to enable these features, but there is great documentation to walk you step by step on how to do so.
When working for a nonprofit organization you have to be extremely resourceful, be able to figure things out, and to deliver solutions all within a tight budget and under tight deadlines. Apart from the amazing Salesforce community and all the documentation available, Trailhead also continues to evolve and keep its content up to date. One of the new Trailhead modules that caught my attention, and could be helpful for nonprofits, is the Expand Your Reach with Communities.
Walkthrough is great because it walks you through a task or feature directly in your org. As a visual learner this is a great tool especially for those solo admins out in the Salesforce world. That being said, users should be aware and take precautionary measures by testing this feature out in the Sandbox first to avoid any issues, or jeopardize any production data.
What are some features you find will be helpful to your organization? Please feel free to share them on the Salesforce Success Community, on our Facebook page, or directly at me on Twitter @msespinal90.
Once again Salesforce has delivered on ideas! Some of these are a “nice to have” and some are long overdue. Let’s dive in and take a look at the ides delivered with this latest release:
Create and Edit Lightning Experience Record Pages (Generally Available) - Now administrators are able to create a record page either from scratch or copy an existing page from the setup menu. There are two ways you can create a record page; select edit page on a record page in Lightning Experience from the setup menu or click new from the Lightning App Builder in either Salesforce Classic or Lightning Experience. Ideas delivered on this were:
- Switch Tab Position for Feed-based Page Layouts (2810 pts)
- Add text box for instructions / reminders to the page layout (1260 pts)
Home: Customize Home for Different User Profiles (Generally Available) - Do you have different types of users that need access and see different things on the home page? Using the Lightning App Builder you can now create custom home pages for different profiles. You can always set a default home page for those who don’t have a customized homepage assigned to them. The idea, Allow customization of the Lightning home page (990 pts), was delivered for this feature.
Export Reports as Files from Lightning Experience - Just as in Salesforce Classic, you can now export reports in the Lightning Experience via a list view or from viewing a report to a .xls or .csv file. Just as it reads, the idea Ability to export report in Lightening Experience (6800 pts) was delivered for this feature.
Both Lightning Experience and Salesforce Classic
Contacts: Associate a Contact with Multiple Accounts (Generally Available) - This is a big one, that’s way overdue! I think a lot of Salesforce users from all industries are going to be very happy with this feature. As the title clearly states, this feature allows one contact to now have a relationship with multiple accounts. Most people have handled this in the past with custom objects or installed packages like Affiliations (from the Non Profit Starter Pack). Those will continue to work fine, but for anyone building out a new Salesforce instance it’s there ready to go...very cool. I’m sure there were a lot of ideas merged in this one that gets the credit, Link a Single Contact to Multiple Accounts, however, it has a whopping 64,560 pts...um...can someone say (again)...way overdue?
Use SOQL to Identify Reports Used by Dashboard Components - I think this is a nice to have capability. If someone leaves the company, as an Administrator you want to do a little house cleaning which may include removing reports saved in their private folder. Where this is now possible running a SOQL query, what you may run into is the inability to delete because it’s being used in a dashboard component. Now this is solvable using a SOQL query which will return a list of dashboard components that uses the report as a source. The idea Show what dashboard component is utilizing a report was delivered (3450 pts).
Processes Can Execute Actions on More Than One Criteria - This is a nice new feature of Process Builder. Before this, when a record met your defined criteria, the action was executed on and the process stopped. Now you can select whether to stop or evaluate the next criteria. This makes it nice to build multiple scenarios in one process and move onto the next regardless if the previous criteria was evaluated as true. I built a process recently in a sandbox so that I could have a field update depending on the stages of an opportunity and it was nice to be able to build all criteria in one process. There were a few delivered ideas for this:
- Process Builder: Allow choice to let criteria execute simultaneously (430 pts)
- Process Builder to handle multiple decisions evaluating to true in one process (270 pts)
- Process Builder - next decision box for true (1070 pts)
Change a Record’s Owner - On the go a lot and need to delegate ownership to others? If you have the “change record ownership” permission the new ‘Change Owner’ action will now appear in the action bar on Salesforce1. This works on most standard objects plus custom objects but it’s worth noting the new owner needs to have at least ‘Read’ permission on that object. The idea called Change record owner in Salesforce1 was delivered (8240 pts).
There’s a lot of good suggestions continuing to come out of the IdeaExchange and it’s great Salesforce continues to take them seriously. Do you have other favorite ideas delivered in this latest release I didn’t mention? Please feel free to comment below, on our Facebook page, or directly at me on Twitter @LeiferAshley or in the Success Community.
The release cycle for Salesforce’s flagship marketing tools, Marketing Cloud and Pardot, are not tied to Salesforce’s general thrice yearly release cycle, and with the Summer ‘16 release they have almost entirely disappeared from the release notes. There’s not a single mention of Pardot, and Marketing Cloud gets a nice little blurb about what it is without even a link to its own, separate release page. So does this mean we shouldn’t be talking about the evolution of these systems in the same breath as the overall platform release? Not at all. In fact, the Salesforce release cycle provides us with a structured opportunity to review all of the things we use in conjunction with Salesforce, and marketing applications are high on that list for many customers.
Marketing Cloud has a release schedule that is established on a year to year basis and published in detail in advance. You can also sign up for notifications on these releases, which is a no-brainer if you are dealing intimately with the tool. For the purposes of this article I am going to focus on the May 2016 release.
Marketing Cloud’s May 2016 release was a hefty one, introducing the Marketing Cloud mobile app and an open beta for the new Email Studio and Content Builder features. It also included some major bug extermination, including fixing some issues with deduplication. And of course, what would any Salesforce product release be these days without a mention of Lightning? This is very interesting when it comes to the path for Marketing Cloud, because it indicates moving toward an experience of the product that is more consistent with the rest of Salesforce’s flagship Clouds. Marketing Cloud Connect becoming (“evolving into,” as the release notes put it) Marketing Cloud Lightning means the product we interact with looks and feels more like Salesforce and indicates to me a priority on making the integration more fluid. I’m excited to watch this evolve.
Pardot breaks from the release cycle model entirely, offering rolling improvements published on their New Features page, regularly emailed to customers in a nice narrative message with links to blog entries and help articles, and often displayed prominently upon logging into the system whether you ask for it or not. In the past month Pardot customers received two substantial goodies--Multiple Scoring Categories and a serious beefing up of the Competitor Monitoring feature.
In response to Multiple Scoring Categories: THANK YOU! This enables marketers to set up additional scoring schemes on top of the regular score, adding capacity to track prospects interest in something like different products a business sells or other non-mutually exclusive types of prospect nurturing. I know many nonprofit organizations use Pardot as well as businesses, and this could have a great use case in scoring against things like donations, volunteering and/or specific programs. With this feature Pardot is taking a big step forward in meeting the needs of organizations that fuel multiple business streams with one marketing engine (and one Salesforce org.)
Competitor Monitoring is basically a way to see how well your website is battling it out in the search term arena. While this isn’t a feature that gets a lot of hype against all the other bells and whistles of the platform, that might be changing. Pardot just doubled the set of metrics covered by the report, giving marketers real ammunition for making content and SEO decisions without crunching lots of numbers.
Summer ‘16 Marketing Implications
If you use any other marketing application in conjunction with Salesforce, make sure you are keeping up on releases and improvements to those products as well as the overall Salesforce release notes. This way you can avoid any surprises when new Salesforce features have implications for your marketing integration and you don’t miss out on any opportunities to take advantages of release features that could add power to your marketing activities.
Many marketing applications (including Pardot) leverage Visualforce pages embedded in Salesforce detail pages for Leads, Contacts, Campaigns, and other objects to give non-marketing users insight into the good work you are doing delivering leads and nurturing customers. For some this has been a barrier to entry for Lightning Experience. In the Summer ‘16 release notes Salesforce tells us this may be less of a problem, in some cases. So spin up one of your extra sandboxes and see what this means for you.
Also, the ability to automatically get geocodes for addresses in Salesforce might mean you can leverage this information in your marketing application (depending on the tool you use, how it syncs data, and your use case.) I’m excited to see what all the creative marketers out there find to do with this wealth of information.
It is also a good idea to review the evolving security and identity features to make sure they don’t affect how your marketing applications or marketing users access Salesforce. While I’m not seeing any specific red flags in this release, this is always an important area to assess.
Do you see any other features in Summer ‘16 that are of special importance to marketers, or have comments on the latest goodies from Marketing Cloud and Pardot? Please feel free to comment below, on the Salesforce Success Community, on our Facebook page, or directly at me on Twitter @ifitfloats.
Grab a cold drink because it’s time for hot fun in the summertime with these Summer ‘16 enhancements focused on service. Hopefully you have been following along in our series of posts (Rapid Reaction, Sales, Developers, Financial Services) related to this milestone 50th release and take note, there’s more to come. Here are some highlights selected from over 30 pages of service-related release notes.
Salesforce Console For Service
- Set up Service Cloud Features in a Flash with Launch Pad Templates what? This is a major timesaver and what hopefully indicates an increased focus on templates for other areas of the platform. System admins will be able to rapidly deploy and validate Service Cloud features with a few clicks. This release provides three templates that provide the most popular Service Cloud features, including console configurations with reports and dashboards necessary for a productive service organization.
- Responsive list hovers yes, please. Spring ‘16 introduced tab hovers and now users can display the details of a row in a hover, without having to open the record. Hovers deliver the goods without clicks.
Work Orders, Milestones and Knowledge
- Attach Articles to Work Orders indeed. Work orders and work order line items were introduced in Spring ‘16 and you will now be able to attach Knowledge articles to them to enable users to quickly locate information. “Knowledge has a beginning but no end.” ~Geeta S. Iyengar
- Milestones are now available on work orders as well, allowing you to tie entitlement to work orders and track these important steps within your processes. Entitlement management was previously available just for cases, now you can specify whether an entitlement process can enforce milestones on cases or on work orders through the use of a new Entitlement Process Type field.
- Improve Article Suggestions on Cases will allow you to choose five case fields that will be used to suggest articles when closing cases. The concept here is that a search will suggest articles based on their content and any links between similar cases. The suggested articles are available in the Salesforce Console for Service and your portals when viewing existing cases and creating new ones.
- Management of work order hierarchies was enhanced with a couple of fields that make it easier for you to view and build out hierarchies of work orders and work order line items. The new read-only field Root Work Order lists the top-level work order in a hierarchy of work orders and can be added to work order page layouts to provide users a complete view of work order hierarchies. Similarly, the new Root Work Order Line Item field lists the top-level line item in the work order line item hierarchy allowing user to navigate the hierarchy.
This list is not exhaustive of all the service features in this monumental release and I suggest you peruse the release notes to view them all. Do you have some favorites that we didn’t mention? Please feel free to comment below, on the Salesforce Success Community, on our Facebook page, or directly at me on Twitter @sfdcclicks.