Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents


Workflow PatternBest ForExample
  • multi-page forms
  • multiple steps performed by single user
An Employee On Boarding workflow in which the new employee fills out multiple forms such as Employee Info, IRS W-4, State Withholding, and Health Insurance Enrollment.
Multi Form Approval
  • multi-page or separate forms that require individual approval
  • allows user to fill out forms in a screenflow, and then approver to complete them also in a screenflow
A Professional Development Request Workflow that includes both Professional Development opportunity approval and a Check Request form, each of which need to be approved individually.
  • actions/approvals that can be done by any member of a role
A Patient Referral that can be processed by any nurse and and reviewed by any doctor.
  • action/approval that must be done by a specific user
An Expense Report that is always sent to the user Jerry for approval.
Dynamic Role/User
  • role or user will be determined at run-time
A Time Off Request that should route to the user's manager, and then the department chair, for approval.
Task Collaboration
  • Utilize the Save to User and/or Save to Role feature
  • Pass the workflow between users determined at run-time
See the next three examples below for task collaboration (previously known as 'ad hoc') patterns.
Save to Role (User Loop)
  • when collaboration or input is needed from multiple users in a role
A Support Request that may require input from different support team members to complete.
Save to User
  • when collaboration or input is needed from multiple arbitrary users that must be determined at run time
A Proposal Review where each reviewer can select the next reviewer from a dropdown.
Save to User or Role
  • A user in a role wants to save the task to their own task list
  • A user wants to save the task, reassign the task, or return the task to the entire role.
A Contact Request that gives the user a choice at run time to save the task to return to later, reassign it to another specific user, or save the task back to the entire role.
Anonymous Participant
  • A step assigned to a user outside of your org who is not a frevvo user
A Purchase Order that must be sent to the client for approval; the client accesses their step through an emailed link.
Anonymous Screenflow
  • A series of steps is performed by a user outside of your org who is not a frevvo user
A Job Application that has steps for Personal Info, Education, and Work History.
Anonymous User Starts Workflow
  • The first step is performed by a user outside of your org who is not a frevvo user
A Scholarship Application that is public, so anyone can start it using a form embedded on your website. The user verifies their email, then begins the workflow.
Automated Step
  • uses HTTP Wait-Notify step type to allow a web service to perform the step
A Membership Application where the user completes Step 1, and Step 2 is an HTTP Wait-Notify step performed by a payment processing system. Completion by the service triggers Step 3, which is assigned to a user to complete the workflow.
Kick Off Form
  • use a form/workflow to "kick off" another workflow
  • also know as Task for First Step
A finance department uses a kick-off form to assign Budget Proposal Workflows for each department chair.
  • uses Reject to and Reject from features to route a workflow backward or cancel it
A Student Add-Drop Request that the advisor may need to send back to the student for more information, or may be submitted as disapproved, skipping remaining steps, if not approved.
Parallel Workflow
  • a workflow that branches to simultaneous tasks
A Purchase Order that requires multiple invoice approvals for completion.



All unassigned steps performed by a single user in a screenflow are considered one 'task.' In the example above, there are five steps that combine to a single task. This workflow task design consideration is helpful to know when designing approve/reject steps, applying business rules and viewing audit trails.

Multi-Form Approval Workflow



Workflow steps that are assigned to a user, role, anonymous or dynamically are each considered their own 'task.' In the example above for Using Dynamic Workflows, there are two steps which are also two tasks. This workflow task design consideration is helpful to know when designing approve/reject steps, applying business rules and viewing audit trails.

Task Collaboration Workflow Patterns


Leave the Assign to Role(s) field blank and use a dynamic User as described above.

  1. Click on the Reviews workflow step. Click the Settings tab. Check Save to the task list and Save to User.
  2. Navigate to the Assignment tab. Add the {Reviewer} template to the Assign to User field.
  3. Click on the Guided Designer: Settings editing mode  and check Save/Load. This enables Save/Load for the workflow as a whole.


Let's consider a scenario where you want a step initially assigned to a Role, but also want the user to be able to enter some information and then save a task to their own task list to work on later. For example, here is a Contact Request form. Any user can perform step 1. Then the workflow routes to step 2 "Account Management", which is initially assigned to the role "Manager", so all managers are notified and any one of them can perform the task. Perhaps Jerry performs the task. He wants to make a note, and save it to his own task list so he can return to it later. Image Removed

If the step is assigned to the role Manager and Save to Role is checked, when Jerry clicks Save, the task notifies everyone in the Manager role again, and is also on everyone's task list. To give Jerry the ability to save the task to his own task list, follow this pattern.


  1. Some of the simplest methods involve the creative use of Save to User or Save to Role design patterns, which can collect multiple approvals on the same step. By using dynamic assignment and business rules to add or remove approval sections, you can create a flexible workflow where the number of approvers and specific approvers are determined at run-time.
  2. Use an Activity Doc Action email to send a task to a user that occurs outside of the frevvo workflow. For example, an Employee OnBoarding Workflow needs the marketing team to create business cards. The workflow can simply send an email to this person to prompt them to perform that task, without needing to perform a step in the workflow. Using a screenflow you can send a second parallel email to HR asking them to add the employee information to the company contact list. 
  3. Start a new workflow from another form or workflow. This allows you to create separate, parallel workflows that can happen simultaneously. If branching data back to the original workflow is not necessary, this design may be enough.
  4. If you wish to join data back to the original workflow, you can integrate our Google Connector or Database Connector with #3 above. Each separate workflow will write data to a Google Sheet or database. A rule will help determine with each submission if the data is complete. When it is complete, the next step of the original workflow reads the data from the Google Sheet or Database, effectively continuing the original workflow with data from the branched workflows.


  1. Build the Employee Review Workflow first. This is the workflow that is launched by the Employee Review Launch Form. Follow these steps:
    1. Create a new workflow and name it Employee Review workflow. If you want to know more about creating workflows refer to Workflow Tutorial.
    2. Drag and drop 4 text fields from the palette. 
      1. Name them EmployeeID, ManagerID, FirstName, LastName respectively in the properties panel of each text control.
      2. You can add any additional fields you want but that is optional. 
    3. Click Workflow to return to the Workflow Diagram. Click the first step to display it's properties.
    4. In the Assignment tab enter {ManagerID} in the Assign to User field.


      If assigning the first step to an email address template, you must set encode=false to prevent the "@" symbol from being encoded in your rule. The designer should use the template {EmailAddress!encode=false}.

    5. Select Save & Exit from the menu at the top right.
    6. Copy the Share Dialog Raw Link URL for the Employee Review workflow (the workflow you want to launch for each employee) into that field. To do this:
      1. Go to the Forms and Workflows homepage.
      2. Click the Action Menu for the Employee Review Workflow and select Share.
      3. This will open a Share workflow wizard . Click on the Raw workflow link. Copy the URL in the left textarea. NOTE: any other share URL type will not work.
  1. Follow these steps to build the Employee Review Launch Form. This form will start multiple new Employee Review workflows.
    1. You cannot launch a workflow sent to the currently logged in user’s task list. You can only send it to another user’s task list. Make sure you are not logged into the other user’s frevvo account when running the Employee Review Launch form. This is being improved in a future release.
    2. Create a form named Employee Review Launch Form. To know more about creating form refer to Forms Tutorial.
    3. In the form drag and drop a text control from the palette. 
    4. In the control’s properties on the left, name the control WorkflowToLaunchURL. You can enter any label you like.
    5. Uncheck the visible checkbox in the control’s properties to make the control hidden. 
    6. Paste the copied URL in the Employee Review Launch Form WorkflowToLaunchURL field
    7. Make the following changes to the URL pasted in the field,
      1. Cloud customers must change to frevvo:// in the URL to the workflow.
      2. In-house customers must change the http:<domain>:<port> to  frevvo:// in the URL to the workflow.
    8. Save the form.
  2. Add an EmployeeID dropdown field. The HR manager will select the employees to be reviewed from this dropdown. You can either add the userId in the Options field in the properties panel of the dropdown control or fetch all the users from the tenant through business rule as below:

    Code Block
    var event = form.load;
    var Users = [];
    Users = frevvo.userIds();
    EmployeeID.options = Users;

  3. Add a ManagerID dropdown field. The HR manager selects the manager responsible for reviewing this employee. This is the task list you want the Employee Review form to be sent to. The ManagerIDs can be added through the Options property of the dropdown or fetched from the tenant through  Business rules as below:

    Code Block
    var event = form.load;
    var Managers = [];
    Managers = frevvo.userIds(“<Your Manager Role>");
    Manager.options = Managers;

  4. Add text controls named FirstName & LastName. The HR manager can enter the employee’s name or they can be fetched through Visual rule builder:

    1. Click Rules in the Guided Designer navigation bar at the top.
    2. Click on the + icon for Create New Rule

    3. Click Run Builder Button to open the wizard

    4. On the first step enter condition EmployeeID in the first dropdown and select Is filled in the second dropdown

    5. Click Next, Select FirstName in first Dropdown, ‘to’  in the second dropdown and userFirstName() function in the third.

    6. Click Add Action in the right hand top corner.

    7. In new added line Select LastName in first Dropdown, ‘to’  in the second dropdown and userLastName() function in the third.

    8. Click Next. Add 2 Actions and set the FirstName and LastName to ‘to empty’ in the second dropdown.

    9. Click Finish. This rule will automatically populate the FirstName and LastName for the selected EmployeeID.

  5. Add a trigger control named Launch to the form. When the trigger is clicked the form will launch a new Employee Review workflow and put the first step task on the selected Manager’s Task List.

  6. Add a Business Rule to call your Employee Review Workflow via the http.get method. The rule shown below runs when the user clicks a Launch trigger button. The rule appends frevvo _data URL parameters to initialize each Employee Review workflow. The rule allows you to trigger the workflow for a different user or role when you browse the workflow URL.

    Code Block
    if (Launch.clicked){
       var myurl = WorkflowToLaunchURL.value;
       http.get(myurl + "&_data=(EmployeeID:{EmployeeID},ManagerID:{ManagerUserId},FirstName:{FirstName},LastName:{LastName})");

  7. To test:

    1. Open the Employee Review Launch Form. Select a user from the Employee ID dropdown. The First and Last Name fields are populated with the selected user's information. Select a Manager from the Manager ID dropdown. Click the trigger to run the rule.
    2. Log out. Log back in with the Manager ID you selected. Verify that an Employee Review workflow task is on the Manager's Task List.

In a real case scenario, it is recommended that you:

    1. Create a separate form with all the basic information fields in it. Then add a field where the user filling in that form can add the list of users for whom he wants to start the workflow. 

    2. Create a Business Rule which uses http.get method to call your workflow URL. You will have to call this URL multiple times depending on how many users you want to create the task for. You can pass the usernames of those users and basic information data to the workflow in this URL by using _data URL parameter.


If assigning the first step to an email address template, you must set encode=false to prevent the "@" symbol from being encoded in your launch rule. The designer should use the template {EmailAddress!encode=false}.

titleExpand Rule for assigning steps to emails...

To assign the first step to an email address, follow similar steps as above. Instead of a control that collects UserIDs, have a TextArea control in your kickoff form where the user can enter multiple email addresses separated by a comma (in this example, the TextArea control is named UsersProcessed.) Write a rule like this to split the email addresses and send them as _data in the workflow kickoff URL:

Code Block
var count = 0;
var i, url;
var usersProcessed;
if (TriggerFlows.clicked) {
  usersProcessed = UsersProcessed.value.split(",");
  for (i = 0; i < usersProcessed.length; i++) {
    url = FlowTypeUrl.value + "?_method=post&embed=true&_data=(SubmitterUserId=" + usersProcessed[i] + ")";
  SuccessMessage.value = count + " tasks created";
  SuccessMessage.visible = true;

The rule to generate tasks will not work unless you are authenticated to frevvo when using that form. frevvo doesn’t allow you to create tasks for other users unless you are logged in. This is a security measure to prevent a a malicious user who has the link to that form from creating spam tasks.