Search icon
Arrow left icon
All Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletters
Free Learning
Arrow right icon
Learning Salesforce Visual Workflow
Learning Salesforce Visual Workflow

Learning Salesforce Visual Workflow: Click your way to automating your various business processes using Salesforce Visual Workflow

By Rakesh Gupta
Mex$902.99 Mex$631.99
Book Apr 2015 264 pages 1st Edition
eBook
Mex$902.99 Mex$631.99
Print
Mex$1,128.99
Subscription
Free Trial
eBook
Mex$902.99 Mex$631.99
Print
Mex$1,128.99
Subscription
Free Trial

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Buy Now

Product Details


Publication date : Apr 29, 2015
Length 264 pages
Edition : 1st Edition
Language : English
ISBN-13 : 9781785289835
Vendor :
Salesforce
Category :
Concepts :
Table of content icon View table of contents Preview book icon Preview Book

Learning Salesforce Visual Workflow

Chapter 1. Getting Started with Visual Workflow

This chapter starts with an overview of Visual Workflow (also called Flow) and its benefits, which take the discussion forward to the various business requirements where we can use Flow. We will discuss various business problems and how we can develop an application without using code to solve them. By the end of this chapter, you will have learned various ways to invoke a Flow and the fundamentals of Visual Workflow.

In the next few chapters, you will be briefed about various concepts related to Visual Workflow and learn numerous ways to create point-and-click tools without using code. We will also see different ways to streamline our sales process and automate our business process using a Flow. In the last few chapters, we will go through how to automatically launch a Flow using Process Builder. The following topics will be covered in this chapter:

  • Business problems

  • The benefits of Visual Workflow

  • System requirements for using Visual Workflow

  • An overview of the Visual Workflow lifecycle

  • An overview of the Cloud Flow Designer

  • An overview of Visual Workflow building blocks

  • The various ways to invoke a Flow

Visual Workflow is a drag and drop interface that allows you to automate business processes by creating applications using click not code. Using Visual Workflow we can create, update, edit, delete, send an e-mail, submit records for approval, post to chatter, and take user input in Salesforce and then make those Flows available to the business users or systems. Visual Workflow can execute business processes, interact with the database, invoke Apex classes (an Apex class implements the Process.Plugin interface), and create a series of screens to take user input in order to collect and update data in Salesforce and Flows can also be built with no user interface to allow them to be run from automated processes.

Business problems


As a Salesforce administrator or developer you may get multiple business requirements from businesses to streamline the processes. Many of them are achievable by using out of the box (OOB) concepts, and for others, we have to use Apex or Visualforce pages. Visual Workflow gives us another method that will let us implement many business processes without needing custom coding. A few examples are discussed in the following sections.

Business use case 1

Sara Bareilles is working as a Vice President, Sales, in a company named Appiuss. She wants to auto close all the open opportunities with the Closed Lost stage, when an account out of business field (that is, custom field) is checked.

There are several ways to solve the given business requirement; these are mentioned in the following sections.

Solution 1 – using an Apex trigger

Because this requirement means that many child records (opportunities) need to be updated when a parent record (Account) is edited, we can't achieve the preceding business requirement using the Workflow rule. The next possibility is to use an Apex trigger. Generally, a developer writes an Apex trigger on the Account object to update all the open opportunities when an account's custom field, out of business, gets updated to True. The following is the sample code:

trigger UpdateRelatedOpportunites on Account (after update) {
  for (Account AccountToUpdate : trigger.new)
    {
        If (AccountToUpdate.Out_Of_Business__c==True)
        {
        // Your logic;
        }
    }
}

In addition, you'll need a test class, and then use a change set to deploy the trigger and test classes to production. This also means that any change to the business logic will require more development work.

Solution 2 – a combination of Visual Workflow and Process Builder

Another way to achieve the same business requirement is to use a combination of Visual Workflow and autolaunch Flow/Process Builder. Here is the description of the next screenshot:

  • A sample Flow update all the open Opportunity stage to the Closed-Lost related to an account which is marked as out of business

  • A process on the Account object, it will fire when the out of business checkbox is checked

The following screenshot represents solutions for a similar business scenario by using Visual Workflow and Process Builder:

Process Builder is one of the ways to automate complex business processes using click not code similar to the Workflow rule and Visual Workflow. We will discuss more about this in Chapter 5, Developing Applications with Process Builder.

Business use case 2

Robby Williams is working as a Customer Success Manager in Appiuss. He wants to send a reminder e-mail on a weekly basis to all the users who don't have a profile picture on Chatter.

Again, there are plenty of ways to solve this requirement. Some of the ways are as follows.

Solution 1 – using Apex

We can't achieve this goal by the Workflow rule. For this, we have to write an Apex class that implements the Schedulable interface for the class and then use Schedule Apex to run it on a regular basis. The following is the code for this Apex class:

global class SendChatterEmail implements Schedulable
{
    global SendChatterEmail (){
      // Batch Constructor
    }

    // Start Method
    global Database.QueryLocator start(){
      /* Use SOQL query to get the records you want to operate upon
      select Id, fullPhotoUrl from User where isactive = true AND FullPhotoUrl    like '%photo/005%'*/
    }

    // Execute Logic
    global void execute(){
      // perform the operation

    }

    global void finish(){
      // Logic which we want to execute at finish
    }
}

Solution 2 – a combination of Visual Workflow and Process Builder

An alternative way to accomplish the same business requirement is to use a combination of Visual Workflow and Process Builder. Here is the description of the next screenshot:

  • This represents a Flow to send e-mail alerts to all users, who do not have profile pictures on Chatter

  • This represents the Flows action from Process Builder on a custom object (reminder notification) to trigger our Flow

The following screenshot represents the solution for business scenario 2 using Visual Workflow and Process Builder:

The benefits of Visual Workflow


There are certain benefits of using Visual Workflow. They are as follows:

  • It allows you to create an automated business process using click not code.

  • Visual Workflow does not require coding, and even if you do not know Apex code you can still develop business processes.

  • Using screens, fields, and choices, you can implement complex business processes to make sure that your users are entering data in the right format.

  • Through Visual Workflow, you can manipulate data for certain objects that are not available for the Workflow rule. For example, when a "contact role" is created or updated as primary for an opportunity then create a new task.

  • It allows you to auto submit records for approval.

  • You can post messages on Chatter. For example, if opportunity status gets Closed Won, post a message on Chatter group.

  • It allows you to embed the Flow into the Visualforce page and using the Force.com Site you can expose it for unauthenticated access.

  • Once you embed your Flow into the Visualforce page, it allows you to use HTML, CSS, JavaScript, and other Visualforce components.

  • It can be easily maintained by non-developers.

  • Since it is not code, you don't need to write test classes.

  • You can make changes directly to your production organization, just like other configuration changes.

  • Every time unhandled processes fail or an error occurs in the Flow, the author will get an e-mail from Salesforce with the error details.

  • Using the debug log you can debug your Flow. Visual Workflow also has a built-in debugging tool. To open the debug window, press Ctrl + Shift + M (on PC) or command + shift + M (on Mac).

  • It allows you to invoke the Apex class that implements the Process.Plugin interface.

System requirements for using Visual Workflow


Visual Workflow are available for Enterprise, Performance, Unlimited, and Developer Editions. You can access Flow on any platform. The requirements are as follows:

  • Windows Internet Explorer versions 8 through 11 (6 and 7 are not supported), Google Chrome, or Mozilla Firefox.

  • Adobe Flash Player Version 10.1 and later. The minimum version required to run the Cloud Flow Designer is 10.0.

  • A minimum browser resolution of 1024 x 768.

An overview of the Visual Workflow lifecycle


The Cloud Flow Designer is a tool to create Flows, configure screens, and define business logic for your Flows without writing a single line of code. Visual Workflow has three different parts, these are as follows:

  • Design: This allows you to create the Flows using the Flow Designer, which has a drag and drop user interface that allows you to draw the Flow structure and configure how it runs, without writing a single line of code.

  • Administration: Once you have created a Flow, you can manage it, edit its properties, activate, deactivate, delete, save as a new version or new Flow, or run it as well.

  • Runtime: A Flow user can run the active Flow from a custom button, link, Visualforce page or directly from the Flow URL. If it is autolaunch Flow, then systems can run active Flows through Process Builder or an Apex class.

An overview of the Cloud Flow Designer


The Cloud Flow Designer is a tool that allows you to implement business requirements by constructing Flows (without any code); this is a way to collect, update, edit, and create data in Salesforce. The Cloud Flow Designer user interface has different functional parts.

These functional parts are as follows:

  1. The button bar: You can use Save, Save As, Run, Run with Latest, Close, undo, and redo changes to run or view properties of your Flow buttons available in the button bar. The status indicator marked in the red rectangle on the right-hand side of the bar shows the status (Active or Inactive) of your Flow.

    • Save: Use this option to save/quick save your Flow.

    • Save As: If you want to clone the Flow you are working on or save as a new version, then use this option.

    • Run: This runs the most recent version of the Flow you are working in. If the Flow comprises subflow elements, then each subflow refers to the active version of its referenced Flow. If the referenced Flow has no active version, then the subflow element runs the latest version of its referenced Flow.

    • Run with Latest: This button will only appear if you are working in a Flow that contains a subflow element.

    • Close: If you are working on a Flow and want to close it, then use this button. If Flow is not saved and you clicked on the Close button, then it will return you to the Flow list page or else you will be redirected to the Flow detail page.

    • Undo or Redo: Use these to undo or redo recent activities on the canvas.

    • Flow Properties: Click on the screwdriver icon to see information related to your Flow, such as Name, Unique Name, Description, its type (Autolaunched Flow or Flow), Interview Label, Version, and created and modified dates. Salesforce allows you to change Name, Description, and Interview Label of your Flow at any time.

    Note

    The Interview label helps us to differentiate between the interviews of the same Flow when an interview is paused.

  2. The Flow canvas: You can use this area to design your Flow. To edit any element in the main canvas, double-click on it.

  3. The zoom control: This is a slider that helps you to zoom in and out of the canvas so that you can focus on particular areas. This feature is also combined with the search options on the Explorer tab, so it will highlight results on the canvas tab.

  4. Palette: This is the area where you can find all the element types available for your Flow. You have to drag and drop elements from the palette onto the canvas to use it. To see the element description/properties in the Description panel (7), click on an element in the palette. Once you have created new elements, they will appear in the Explorer tab. The Palette tab also has a search field to quickly find what you need.

  5. Resources: The Resources tab allows you to create new resources for your Flow, for example, variables, formulas, and templates. Once you have created new resources, they will appear in the Explorer tab. To create new resources, double-click on it.

  6. Explorer: The Explorer tab contains all the elements and resources added to the Flow. Double-click on the items from the list to edit them and click to view their details and usage in the Description panel (7).

  7. Description: The Description panel shows the item's description when you view an item in the Palette or Resources tab. It has two subtabs, as follows:

    • Properties: This shows the information, such as Unique Name, Description, Data Type, Input/Output Type, and Default Value for the element or resource you have selected

    • Usage: This lists the elements where the selected item is used

From Chapter 2, Creating Flow through Point and Click, we will start using the elements, variables, and concepts that we learned here.

An overview of the building blocks of Visual Workflow


Flow has three major building blocks known as Element, Connector, and Resource. With the help of these blocks, you can easily develop Flows.

Element represents an action that Flow can use to display or collect information from the Flow user, create or update records, delete records, or loop logic. Element is, basically, used to manipulate the data. Connector is used to establish the path between the elements. Resource is used to hold the data that you can reference in your Flow.

Flow elements

Flow elements represent actions that Flow can execute such as Record Update, Record Lookup, Fast Lookup, Loop, Screen, and Decision. This is used to read, write, or delete data. Using the element (Screen), you can also display data and capture input from users. Use the Palette tab to drag and drop new elements onto your canvas. Once you add elements it will be available on the canvas and Explorer tabs. There are several types of elements available under the Palette tab. They are as follows:

Flow element

Description

Step

You can use this as a placeholder while designing your Flow. Later you can convert Step elements into Screen elements.

Screen

This will display a screen to the user who is running the Flow. Screen contains input or output fields. The Screen element is mainly used to take input from users or display guided information.

Decision

This is used to evaluate conditions to determine which Flow path to take.

Assignment

This is used to set or change values of variables, collection variables, SObject Variables, and SObject Collection Variables.

Loop

This iterates through an SObject collection variable and assigns an item's value to an SObject Variable.

Wait

If you want your Flow to wait for one or more defined events to occur, then use this element.

Record Create

This is used to create one record using the field values that you specify separately. You can assign these values from Flow resources such as variables, SObject Variable, and the screen fields.

Record Update

This is used to update records using the field values that you specify separately. You can assign these values from Flow resources such as variables, SObject Variable and the screen fields.

Record Lookup

This is used to extract one record that meets the filter criteria you specify, and then assign the record's fields values to separate, individual Flow variables or individual fields on SObject Variables.

Record Delete

This is used to delete records from Salesforce that meet the filter criteria you specify in your Flow.

Fast Create

This is used to create records using the fields' value from an SObject Collection Variable or to create one record using the fields value from an SObject Variable.

Fast Update

This is used to update records using the fields value from an SObject Collection Variable or to update one record using the fields value from an SObject Variable.

Fast Lookup

This is used to extract records to assign their field values to an SObject Collection Variable, or query one record to assign its field values to an SObject Variable.

Fast Delete

This is used to delete records using the ID value from an SObject Collection Variable or to delete one record by using the ID value from an SObject Variable.

Apex Plug-in

This is used to call an Apex class that implements the Process.Plugin interface. If you used the tag property in the PluginDescribeResult class, the Apex class appears under a customized section. Otherwise, it appears under the APEX PLUG-INS section.

Subflow

This is used to invoke another Flow in the organization.

Other action

This calls an object-specific or global action such as NewTask and LogACall.

E-mail Alerts

This is used to send an e-mail using a Workflow e-mail alert to specify e-mail template and recipients.

Post to Chatter

Using this element you can post a message to the feed for a specific record, user, or Chatter group.

Send Email

This is used to send an e-mail using Flow with the specific subject, body, and recipients.

Submit for Approval

This is used to autosubmit one record for approval.

From Chapter 2, Creating Flow through Point and Click, we will start using these elements.

Flow resources

Resources are used to hold the data that you can reference in your Flow. The Explorer tab displays the resources that you added to the Flow. To create new resources double-click on this tab. Global constants and system variables are automatically provided by the system. There are several types of resources available under the Resource tab. They are as follows:

Flow resource

Description

Variable

This is used to store a value that can be updated as the Flow is executed. It can be referenced throughout the Flow and can be used as the value of a field in a record.

Collection variable

This is used to store values with a single data type. You can use a collection variable as a container in the Flow to store and reference multiple values at once.

SObject Variable

This is used to store a record for a specified object. Use an SObject Variable as a container in the Flow to store, update, and reference field values for a record.

SObject Collection Variable

This is used to store multiple records for a specified object. Use an SObject Collection Variable as a container in the Flow to store, update, and reference field values for multiple records.

Constant

This is used to store a fixed value.

Formula

This is used to calculate a value from other resources in the Flow.

Text templates

This is used to store formatted text with merge fields that reference Flow resources.

Choice

This represents an individual value that can be used in a variety of screen fields.

Dynamic choice

This looks up data from an object's record and dynamically generates a set of choices for screen fields at runtime. When referenced as a resource, a dynamic choice value is determined by the most recent user selection of a choice within the generated set. Let's take an example, display all contacts from an account if a user entered a valid account ID.

Element

Any element that you add to the Flow is available as a resource with the visited operator in an outcome criteria. An element is considered to be visited if the element has already been executed in the Flow interview.

Global constant

This is used to store fixed system-provided values, such as EmptyString, true, and false, that can be assigned as the values of Flow resources.

Outcome

For the Decision element you have added to the Flow, its outcomes are available as Boolean resources. If an outcome path has already been executed in the Flow interview, the resource's value is true.

Picklist values

These are system-provided values that are available as resources only in Assignment and Decision elements when selecting values for or to compare against picklist fields in SObject Variables.

Screen field

This is the field that you add to the Flow is available as a resource.

System variable

These are system-provided values that can be referenced as resources, such as {!$Flow.CurrentDate}, {!$Flow.CurrentDateTime}, and {!$Flow.FaultMessage}.

Wait element

Wait element events are always available as Boolean resources. If an event's waiting conditions are met, the resource's value is true. If the event has no waiting conditions set, the resource's value is always true.

From Chapter 2, Creating Flow through Point and Click, we will start using these resources.

Flow connectors

A connector is used to establish the path between the Flow elements. A connector looks like an arrow that points from one element to another. There are several types of connectors available. They are as follows:

Label

Sample

Description

Unlabeled

This is used to identify which element to execute next.

Decision outcome name

This is used to identify which element to execute when the criteria of a decision outcome are met.

Wait event name

This is used to identify which element to execute when an event that's defined in a wait element occurs.

Fault

This is used to identify which element to execute if the previous element results in an error.

Next element

This is used to identify the first element to execute for each iteration of a loop element.

End of loop

This is used to identify which element to execute after a loop element finishes iterating through a collection.

From Chapter 2, Creating Flow through Point and Click, we will start using these connecters.

The various ways to invoke a Flow


As soon as you are done with Flow development, the next task is to configure Flow access for business users, so they can use it. There are various ways through which you can invoke/launch your Flows. They are as follows:

  • The Flow URL

  • A custom button or URL

  • A web or Visualforce tab

  • A combination of the Visualforce page and the Force.com Site or customer portal and partner portal

  • The Login Flow

  • The Visualforce page

  • Process Builder

  • The Apex start() method

  • The Invocable Action resource in the Force.com REST API

Summary


In this chapter, we have gone through various concepts related to Visual Workflow. We started with the business scenario where you can use Visual Workflow and followed with the benefits of using Flow. We also covered the requirements for Visual Workflow. Then we moved forward and discussed the lifecycle of the Flow development and had an overview of Cloud Flow Designer. Finally, we discussed various ways through which you can invoke your Flow. In the next chapter, we will go through variable, element creation concepts, and we will also cover how to design your Flow.

Left arrow icon Right arrow icon

Key benefits

What you will learn

Develop an application using point and click with help of Flow Get to grips with various ways to launch a Flow Capture the data from an external user without using the Visualforce page Change the Flow UI using CSS Save the user input into the database, and learn how to query and manipulate the data Discover various ways to debug and deploy the Flow and Process Builder Understand the concepts of Subflow and Login Flow Build applications without code

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Buy Now

Product Details


Publication date : Apr 29, 2015
Length 264 pages
Edition : 1st Edition
Language : English
ISBN-13 : 9781785289835
Vendor :
Salesforce
Category :
Concepts :

Table of Contents

14 Chapters
Learning Salesforce Visual Workflow Chevron down icon Chevron up icon
Credits Chevron down icon Chevron up icon
Foreword Chevron down icon Chevron up icon
About the Author Chevron down icon Chevron up icon
About the Reviewers Chevron down icon Chevron up icon
www.PacktPub.com Chevron down icon Chevron up icon
Preface Chevron down icon Chevron up icon
Getting Started with Visual Workflow Chevron down icon Chevron up icon
Creating Flow through Point and Click Chevron down icon Chevron up icon
Manipulating Records in Visual Workflow Chevron down icon Chevron up icon
Debugging and New Ways to Call a Flow Chevron down icon Chevron up icon
Developing Applications with Process Builder Chevron down icon Chevron up icon
Building Applications without Code Chevron down icon Chevron up icon
Index Chevron down icon Chevron up icon

Customer reviews

Filter icon Filter
Top Reviews
Rating distribution
Empty star icon Empty star icon Empty star icon Empty star icon Empty star icon 0
(0 Ratings)
5 star 0%
4 star 0%
3 star 0%
2 star 0%
1 star 0%

Filter reviews by


No reviews found
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

How do I buy and download an eBook? Chevron down icon Chevron up icon

Where there is an eBook version of a title available, you can buy it from the book details for that title. Add either the standalone eBook or the eBook and print book bundle to your shopping cart. Your eBook will show in your cart as a product on its own. After completing checkout and payment in the normal way, you will receive your receipt on the screen containing a link to a personalised PDF download file. This link will remain active for 30 days. You can download backup copies of the file by logging in to your account at any time.

If you already have Adobe reader installed, then clicking on the link will download and open the PDF file directly. If you don't, then save the PDF file on your machine and download the Reader to view it.

Please Note: Packt eBooks are non-returnable and non-refundable.

Packt eBook and Licensing When you buy an eBook from Packt Publishing, completing your purchase means you accept the terms of our licence agreement. Please read the full text of the agreement. In it we have tried to balance the need for the ebook to be usable for you the reader with our needs to protect the rights of us as Publishers and of our authors. In summary, the agreement says:

  • You may make copies of your eBook for your own use onto any machine
  • You may not pass copies of the eBook on to anyone else
How can I make a purchase on your website? Chevron down icon Chevron up icon

If you want to purchase a video course, eBook or Bundle (Print+eBook) please follow below steps:

  1. Register on our website using your email address and the password.
  2. Search for the title by name or ISBN using the search option.
  3. Select the title you want to purchase.
  4. Choose the format you wish to purchase the title in; if you order the Print Book, you get a free eBook copy of the same title. 
  5. Proceed with the checkout process (payment to be made using Credit Card, Debit Cart, or PayPal)
Where can I access support around an eBook? Chevron down icon Chevron up icon
  • If you experience a problem with using or installing Adobe Reader, the contact Adobe directly.
  • To view the errata for the book, see www.packtpub.com/support and view the pages for the title you have.
  • To view your account details or to download a new copy of the book go to www.packtpub.com/account
  • To contact us directly if a problem is not resolved, use www.packtpub.com/contact-us
What eBook formats do Packt support? Chevron down icon Chevron up icon

Our eBooks are currently available in a variety of formats such as PDF and ePubs. In the future, this may well change with trends and development in technology, but please note that our PDFs are not Adobe eBook Reader format, which has greater restrictions on security.

You will need to use Adobe Reader v9 or later in order to read Packt's PDF eBooks.

What are the benefits of eBooks? Chevron down icon Chevron up icon
  • You can get the information you need immediately
  • You can easily take them with you on a laptop
  • You can download them an unlimited number of times
  • You can print them out
  • They are copy-paste enabled
  • They are searchable
  • There is no password protection
  • They are lower price than print
  • They save resources and space
What is an eBook? Chevron down icon Chevron up icon

Packt eBooks are a complete electronic version of the print edition, available in PDF and ePub formats. Every piece of content down to the page numbering is the same. Because we save the costs of printing and shipping the book to you, we are able to offer eBooks at a lower cost than print editions.

When you have purchased an eBook, simply login to your account and click on the link in Your Download Area. We recommend you saving the file to your hard drive before opening it.

For optimal viewing of our eBooks, we recommend you download and install the free Adobe Reader version 9.