Top 5 Dreamforce 17′ Announcements

By | Dreamforce 2017 Highlights, news, salesforce | No Comments

Dreamforce 2017 is over and we’re as excited as ever!  Here’s our list of the top five features to look forward to, all aiming to create a more tailored Salesforce experience for users and customers:

  1. mySalesforce
    Companies can increase Salesforce adoption and usage with their own custom-branded mobile apps. With a low-code setup wizard and point-and-click functionality, businesses can extend their brand’s look and feel to mobile apps built on the Salesforce Lightning App, and publish them on Apple’s App Store or the Google Play Store.
  1. myLightning
    If your organization has not already migrated to the Lightning platform, now is the time! myLightning is the future of Salesforce, allowing companies to custom-brand their apps with logos and desired colour schemes.  Dynamic Pages will provide a tailored experience for each user, depending on their data.  Lightning Flow, a new automation tool, will help streamline processes by performing the needed actions on an app. Stratus360 is lightning accredited meaning we are a team of Lightning experts so connect with us to learn more
  1. myEinstein
    Point, click, predict! myEinstein empowers users of all skill levels to build custom AI-powered apps.  With simple clicks, the declarative setup guide walks users through building, training and deploying AI models using structured and unstructured Salesforce data.  myEinstein services include: Einstein Prediction Builder and Einstein Bots.  Einstein Prediction Builder allows users to create custom AI models to predict business outcomes. Einstein Bots enable users to build, train and deploy service chatbots to communicate with customers, freeing up customer service personnel to focus on more complex inquiries.
  1. myIoT
    myIoT allows businesses to manage all aspects of the customer journey (sales, service, marketing, etc.), with customers at the centre of attention.  With IoT, companies can understand their customers by collecting, analyzing and sending real-time IoT data about product usage and customer behaviour straight to Salesforce.  With myIoT, users can be proactive in building exceptional customer experiences by creating rules-based automation for the connected devices in their organization.  myIoT relies on low-code orchestration and point-and-click functionality.  By improving knowledge of the customized customer journey, sales professionals can more proactively engage customers at the proper point in the sales cycle.
  1. myTrailhead
    myTrailhead is a super-training tool that can now provide company and industry-specific training, in addition to helping users build their Salesforce skills.  Companies are now able to customize the Trailhead learning platform, by adding content and branding specific to their organization with the Trail Maker setup guide.  Customizable user profiles and leaderboards gamifies and makes learning fun leading to skyrocketing adoption levels.

If that wasn’t enough to excite you, Salesforce announced that it would be using Google Cloud Platform to expand its infrastructure. As such, eligible Salesforce customers will receive one year of G Suite licenses for free. This partnership marks the integration of Salesforce with Google Analytics, which is expected to provide paramount insights from a customer data analysis point-of-view.


If your organization has not already migrated to Lightning, now is the time!
Call our Lightning accredited team for your free consultation.

What is Process Builder?

By | salesforce | No Comments

When I was looking at Process Builder, immediate thought that struck me was that “this tool will replace Workflow Rules and Visual Workflow”, but with a deep dive into it, I knew that I was taken by surprise, “it’s not meant to be a replacement, it’s a complementary feature to the existing tools”. Below table clearly summarizes that it was not going to replace other similar tools mentioned before, rather it will deem an Administrator ‘more capable’ of doing things that were previously dependent on Developers alike.

Let’s look at the comparison table (source: click here):

Image - 1As it turns out, Process Builder is (another) automation tool that helps you easily define your business processes by providing a powerful and user-friendly graphical representation of your processes as you build them. The Process Builder’s simple and powerful design allows you to:

  • Create your processes using a convenient layout with point-and-click efficiency
  • Create your whole process in one place rather than using multiple workflow rules
  • Create processes by collaborating with different teams in your business
  • Stop using Apex code to automate simple tasks

However, the most interesting aspect of Process Builder is the ability to call Apex class; with this capability, there are many (more) competencies that can be introduced easily; without relying on and complicating the existing Apex Triggers that are already giving enough problems (if not designed/coded right).

Mock Scenario (and how I set it up on Process Builder)

I have come up with a use case of creating 4 mandatory Tasks whenever an Account that has >250K in assets is being created (or updated to have minimum 250K in assets – see below screenshot: label #2).  Out of this 4 Tasks, the last (4th) Task is basically a redundant “reminder Task” to check the first 3 Tasks.

Here is what I expect to do with Process Builder (with calling Apex Class):

  • Use the Process Builder declarative functions to create all 4 Tasks, then mark the field Mandatory Tasks Created as true (see below screenshot: label #1)
  • Call Apex Class to delete all 4 Tasks for Account that was updated to have less than 250K (note: Delete action is not supported on Process Builder)
  • Call Apex Class to delete only the 4th Task if a checkbox (First 3 Tasks completed) is set to true (see below screenshot: label #3)

Image - 2 Image - 3Setup Process Builder

Process Builder can be reached through: Create >> Workflow & Approvals >> Process Builder

Process builder - Setup

As soon as you click the link, you will be presented with the UI where you can find the “New” button on the right, click the “New” and name your Process:

Image - 5

I called my process:

X01_AccountCU_Create_Follow_Up_Tasks_for_Client_with_250K_in_Assets; “quiet long eh!” however it describes what the use case intends; create your own convention or possibly follow your current existing convention (for naming Classes, Triggers, Flows, etc.)

Here is how it looks like on mine:

Image - 6

As you perform each action such as Create Record, Update Field; a specific setup screen will be presented to you to fill in the required information/details.

Here is the screen when creating a record (Task #1):

Image - 7

Here is the screen when updating a field (Mandatory Tasks Created as true):

Image - 8

Here is the screen when calling Apex Class (to delete All Mandatory Tasks):

Image - 9

** Please note that all the fields are greyed out because the screenshot was taken on read-only mode.

Calling Apex Class

 More specifics on calling Apex Classes: Salesforce has introduced 2 annotations to support the call. It’s @InvocableMethod and @InvocableVariable; you will find more information here link.

Please note that I’m using a list of user-defined type for this example.

Here is what the Class looks like (you can relate back to the screenshot above – calling Apex Class):

 public class DeleteTasks { 
       public class DeleteTasksRequest { 
        @InvocableVariable(label='Only Task04' required=true) 
        public boolean task04Only; 
        @InvocableVariable(label='Account Id' required=true) 
        public Id accountId; 
 @InvocableMethod (label='Delete Tasks' description='Delete Tasks based on provided Account Id List') 
    public static void DeleteTasksUsingAccountIdList(List<DeleteTasksRequest> dtrList) { 
        List<Id> accountIdTask04List = new List<Id>(); 
        List<Id> accountIdAllTaskList = new List<Id>(); 
        List<Task> tasksToDelete = new List<Task>(); 
        for (DeleteTasksRequest dtr: dtrList) { 
            if (dtr.task04Only){ 
            else { 
        // Only Task 04 
        if (accountIdTask04List.size() > 0 ) { 
            for (Task task : [select id from Task where whatId in :accountIdTask04List and Subject LIKE 'Task 04%']) { 
       // All Tasks for the Account Id 
        if (accountIdAllTaskList.size() > 0 ) { 
            for (Task task : [select id from Task where whatId in :accountIdAllTaskList and Subject LIKE 'Task 0%']) { 
        // Only delete if there are contents to Delete 
        if (tasksToDelete.size() > 0)  { 
            delete tasksToDelete; 


Breakdown of important aspect on the class:

Image - 10

  • #A: This is the Class name, the same information that you will select on the Process Builder
  • #B: This is inner class for the user-defined type
  • #C: This is @InvocableVariable annotation; the label (Only Task04) is what shown on Process Builder
  • #D: same as #C; for Account Id
  • #E: The method marked with @InvocableMethod annotation; note that there’s only one method that you can mark with this annotation in a Class.

Closing Notes

 Process Builder is another tool; a very useful tool depending on how/where it is being used. One of the obvious possibilities is to replace the logic currently coded in triggers. These logics can possibly be replaced with Process Builder (with calls to Apex Classes), giving the capability/flexibility to change rigid process logic back in to the hand of Administrators.

By Tahimin Tjhia

Analytics Cloud – The 1st Canadian Wave Analytics Implementation!

By | analytics cloud, business intelligence, salesforce, wave analytics | No Comments

Mastering Mobile Header

It took awhile for Analytics Cloud to find a customer in Canada but Stratus360 is immensely proud to have been the partner for the first implementation.  I’ll be covering what we were able to accomplish in a later post but for now I want to briefly highlight what Analytics Cloud is, and why I think it’s a great tool for your organization.
Read More