About Assignments
  • 07 Jul 2023
  • 12 Minutes to read
  • Dark
    Light

About Assignments

  • Dark
    Light

Article Summary

Overview

Assignments are Tasks that allow Flows to wait in a permanently paused state until acted upon by direct user interaction or an external system. Users may create an Assignment to:

  • Assign a travel Form to a manager for approval.
  • Set a time frame for a certain task to be completed.
  • Require that a particular form is approved by multiple people before being accepted.

Due to the persistent nature of Assignments, task data is not erased and is always accessible. 

Assigned Tasks take a snapshot of the current Flows and steps; due to this, should a user attempt to move the data across environments, it will be left in an Error State.

The following document details Assignments, as well their behaviors and setup. Additionally, the document provides links to further documentation regarding the topics discussed throughout. 


Assignment Types 

There are two primary varieties of Assignments: Insession and Assigned. Each one provides its own benefits that can be applied to a variety of use cases. 

InSession Assignment Type

The InSession Assignment Type is commonly used for submissions or data entry Forms. Examples of processes that use these Forms are:

  • Purchase Request Submission
  • Time off Request Submission
  • Customer Account Creation

An InSession Form is:

  • Not saved to the database
  • Only active during the user session
  • Ended (its Process) if the user closes out the Form

Assign Assignment Type

This Assignment Type is typically used for processes that contain approvals. Examples of these process include:

  • Invoice Routing
  • Loan Approval
  • Purchase Requests
  • Support Ticket Queue

An Assigned Assignment:

  • Is saved to the database
  • Remains active until worked upon
  • Does not end if user closes the Task

Interacting With Assignments 

Assignment Setup 

By accessing the Assignment Setup menu, Designers are provided a multitude of options on how to configure their Assignments. Such functions allow Designers to do things such as (but not limited to):

  • Configure Start, Warn, or Late dates for their Assignment
  • Determine an Assignee (individual Account or Group) for their Task
  • Provide a Name and Description for the Assignment
  • Specify Assignment Roles

 The following chart details the settings provided by the Assignment Setup Properties and their primary function: 

Setting NamePurpose
Accounts and Groups
Assigned the Task to a group or individual account.
Assignment Roles
Assignment Roles can be used to process Task routing.
Exclude Accounts Groups
Excludes Accounts or Groups based on the selection.
Assignment Folder Type
To select the default location where the Task will be stored.
Assignment DescriptionProvides description text for the Assignment.
Assignment Type DescriptionProvides description text for the Assignment Type. 
Assignment Priority Designates a priority value to the Assignment. 
Show Assigned FormDetermines whether or not to display the Form by default, upon assignment. 
Assignment Dates
Configurable dates that will change the Task state.
Assignments Events
Assignment state Flows that will be triggered.
Assignment Reuse
Options that allow the Task be reused.
Completed Form
This completed view will cause Forms to appear within Process Folders of either the Case Entity or the Flow Execution Extension.
Additional Assignment Action
This setting creates new action definition for Email response handling.

Specifying Assignees 

One such benefit of utilizing Assignments from a Designer's perspective is the capability to dynamically determine who receives an Assigned Task. Assigned Forms allow the Designer to send their Tasks to individual user Accounts or a whole Group, as desired. 

Additionally, Assignments allow the option to execute approval processes in parallel with one another. Parallel Approvals provide the capability that allows users to send the same independent Tasks to two separate users. The Flow Designer then waits until both users have completed the Task before proceeding to the next step in the Flow. Users must use the Merge and Branch steps in the Flow Designer to create a process that will wait until everyone completes their own Task.

Assigning a Task to an entire Group does not replicate this effect, as it just assigns a single Task for the entire Group. If one person in that group completes the Task, then it is completed for everyone else as well.

Assignment States

Unlike other Entities in Decisions, Assignment States are reserved and cannot be set using normal methods (i.e. Set State, Set Entity State). When an Assignment moves to a new state, it can trigger specific behaviors to run by configuring the Flows with the Assignment Settings. The Warn, Late, Escalated, and Expired states are available at the developer's discretion. 

State NamesDescriptions
Pending DateAssignment has a start date that is in the future.
CurrentAssignment start date has passed, and the assignment has not been completed.
WarnAssignment has passed the warn date. If Assignment Event for Warn was set up it will trigger.
LateAssignment has passed the late date. If Assignment Event for Late was set up it will trigger.
EscalatedAssignment has passed the escalated date. If Assignment Events for Escalated was set up it will trigger.
Expired
The Expired State provides an outcome path that exits the Assigned step within the Flow. The assignment will no longer be available.
CompletedAssignment has been finished.

Assignment Settings and Notifications 

In addition to the Assignment Setup menu, additional Assignment Properties may be adjusted via the Assignment Settings (located in the Decisions studio under System > Settings). 

These settings provide sliders specific to configuring the Assignment's Initial Lease and Action Lease Times; these controls exist to prevent two users from working the exact same Assigned Task.

Whenever a Task gets assigned to a user, that Assignee will get a Notification in the form of a Pop-up or Email.

These notifications can also be adapted globally in the Notification Types Folder found in System > Administration > Notification > Notification Types. Designers can disable or design their own custom Notification Flow to send to a user upon Task creation.

Task Notifications don't have to be changed at a global level, they can also be changed on a per Assignment basis.


To change the Notification Settings on individual Tasks, users may utilize the EMAIL functions under In the Assigned step's Properties tab. This category contains the Email Notifications settings that can be customized via Email Templates or Merge Text Editor

Email Templates can also be applied globally to assist in making all Task Email Notifications reflect company branding.

For more information refer to 

Extending Assignments

Assignments also provide extension capabilities by utilizing a stateful Data Structures (Flow Execution Extension or Case Entity). As both of these Data Structures are Process tracked, users can Report on the Data Structure and filter by State to find the Assignment. Additionally both Structures have a Process View Page which shows the current State of their affiliate Folder and the active Task within the State.  

Combining a Process Folder with a Task allows users to configure personal Work Queues; an employee logs into the Portal to see all their Tasks that are Assigned to them, and a manager can see their own Queue. Both Process Folders and Tasks used in tandem can separate different Tasks so that only the user who has been Assigned those Folders can have access to it.


Completing Assignments

An Assignment is completed when a user fills out and submits an Assigned Form, thus sending it down its outcome path. Assignments can be worked via:

  • Portal
  • Email
  • API
  • Auto Expiration or Completion 

If the Tasks are worked within the Portal, the End User will need to navigate to their Inbox and select the Assignment to open the Form. The user then fills out the required fields and submits the Form. This will remove the Assignment from the user's Inbox. 

If a user works a Task through Email, they can select the Assignment to navigate to the Assignment or record their response to complete the Form. Alternatively, users can work Assignments via Email is by sending an Email reply. Based on that reply, Decisions will record the user's response and set the Assignment to complete. This allows the ability for the End User to complete the Assignment without having to log into a Decisions environment.

Completing a Task through the Assignment API is also possible. To configure this, users should navigate to the Assignment Service located in the System > Administration > Features > All Services to use the Task's API endpoint for a response. 

The fourth way is via Auto Completion. Auto Completion utilizes a Flow called the Auto Complete Flow. The Auto Complete Flow is user configurable and executes any logic configured in that Flow at the expiration of a user's specified time frame.


Reporting on Assignments

As a means of tracking their progress, Assignments can be reported on via a Report/Dashboard. Decisions enables this by empowering Designers with multiple default Assignment Data Sources that may be used in constructing a Report in the Report Designer.

Default Assignment Reporting 
Note that the Inbox in the Decisions Portal/Studio is a Report Viewer that utilizes the Assignment Data Source

This Data Source contains many Filters that can be used to manipulate limit the Report Viewer to display only certain Assigned Tasks. These capabilities include the option to filter Assignments that are Active, ones that are Assigned to a particular user, or ones that are Assigned to a particular Group. Reporting on Tasks is the feature that ultimately gives Designers the power to replace the default Inbox.


Assignment Database Tables

Due to the complex nature of Assignments, Decisions stores and maintains all of a user's Assignment Data within a series of four Database Tables:

  • entity_assignment
  • flow_state_storage
  • assignment_handler_data
  • flow_data_delta_storage

Each table works in conjunction with one another to provide Decisions the necessary data to properly execute and track Assignments. The following document provides insight to how these tables interact with one another, as well as charts providing information on the columns within each database table. 


Database Diagram Relationship 

The following diagram provides a relational data model that demonstrates how each of the four tables connect and interact with one another. 


entity_assignment

The entity_assignment table holds most of the user configured data, such as the Assignment Name or Escalation configurations. When a user makes a change in the Assignment Setup Properties in the Flow Designer, it gets recorded in this table. 

When a Flow needs to start after an Assignment has been completed, the information in this table is used to continue the Flow from the point where it left off.

entity_assignment
assignment_idThis is the primary key field of the database table
warn_dateA user configured date that will run the user configured warn date flow send a notification to the Assignee when this date is reached
late_dateA user configured date that will run the user configured late date Flow
escalate_dateA user configured date that will send the Assignment to a different assignee when this date is reached
start_dateA user configured date when the Assignment set to the current State
priorityA user configured String field that is configured through the Assignment Setup Properties in the Flow Designer
handler_dataSerialized Data about the Handler such as the Form Assignment Handler or Custom Handler
escalation_handler_wrap_dataSerialized data about how Escalations should be handled
notesNotes
valid_only_in_folder_stateFor conditional actions where they can be assigned when the Folder is in the correct State
completedA Boolean value that is set to true once the Assignee works the Task
is_assignedA Boolean value that is set to true if the Assignment has an Assignee
is_currentA Boolean value set to true if the Assignment is active but not completed
hiddenThe Property that controls whether the Assignment can be visible or invisible
administrator_view_onlyA Boolean value set to true if the Assignment is Admin view only
entity_folder_idThe Id of the Folder where the Assignment is stored
entity_nameIs the name of the Assignment that will be displayed in a user's Inbox
entity_descriptionA String field for writing a description about the Assignment
created_on_dateThe date the Assignment was created
modified_dateThe date that the Assignment was modified
stateThis field indicates the condition the Assignment is in
archivedA Boolean used to indicate if the Assignment has been Archived
archived_dateThe date the Assignment will be Archived and permanently deleted
all_assignmentsStores details of all the Users/Groups that have been assigned this Assignment
deletedA Boolean value set to true if the Assignment is deleted
assignment_handler_idId of the Assignment Handler
assignment_handler_id_typeStores an Id of the Handler type
state_changed_dateThe date the Assignment State was changed
next_check_timeThe time when the Scheduled Job will check the assignment for any changes
next_check_typeWhat type of check is done i.e. Current, Warn, Late, Expired, or Escalated
next_check_idId of the Check
show_at_loginA Boolean value that if true will show the Assignment at the user's login
assignment_typeStores the Form Assignment Type value
has_state_changedA Boolean value that indicates if an Assignment State has changed
assignment_start_flow_idThe id of the Assignment Start Flow that a user can configure in the Assignment Setup Properties in the Flow Designer
assignment_warn_flow_idThe id of the Assignment Warn Flow that a user can configure in the Assignment Setup Properties in the Flow Designer
assignment_late_flow_idThe id of the Assignment Late Flow that a user can configure in the Assignment Setup Properties in the Flow Designer
assignment_escalte_flow_idThe id of the Escalate Late Flow that a user can configure in the Assignment Setup Properties in the Flow Designer
flow_tracking_idForeign Key from the flow_state_storage_data
step_tracking_idId of the step that created the Assignment
primary_flow_idThe Id of the Primary Flow
primary_flow_nameName of the default base Flow
flow_idThe Id of the current Flow
flow_nameName of the parent Flow 
step_idForeign Key from the flow_data_delta_storage
step_nameName of the step that created the Assignment
assignment_interaction_startedTime stamp of the interaction time
assignment_startedA Boolean value indicating if the Assignment is current
completed_date_timeThe date the Assignment was completed
completed_resultIs the Assignment Forms outcome path
completed_byRecords the user who completed the Assignment
completed_notesA String field used for storing notes about a completed Assignment
url_tokensURL token for the Assignment URL
notification_subjectThe Assignment Notification String subject that will display when the Assignment gets created
notification_messageThe Assignment Notification String message that will display when the Assignment gets created
do_not_send_default_notificationBoolean value that if set to true would cause default Notification to not trigger
assignment_time_in_secondsThe amount of time the Assignment has been active
assignment_interaction_time_in_secondsThe user interaction time with the Assignment
reference_idThe user provided Id that stored when an Assignment is configured
history_folder_idA common field created for Decisions Entities that stores Version History
all_tags_dataStores all tags that have been attached to the Assignment
deleted_byRecords the user who deleted the Assignment
deleted_onRecords the date the Assignment was deleted
extension_idThe Id of the extension object that is tied to the Assignment
extension_id_typeStores the Extension Type
folder_stateThe State the Folder is currently in

flow_state_storage_data

This database table is responsible for storing the Flow's Header Data. When a Flow comes to a Task step, Decisions takes a snapshot of that Flow and stores a record in the flow_state_storage_data table. 

This table allows Decisions to pause the Flow until an action has occurred. Once the expected action is received, the Flow continues to the next step in the process. 

flow_state_storage_data
flow_tracking_id The Primary Key field of the table
archivedA Boolean indicating if the Flow has been set to an Archived status
archived_byThe user who set the Archived status
deletedA Boolean indicating if the Flow has been set to a Deleted status
deleted_byThe user who set the Deleted status
ended_in_exceptionA Boolean indicating if the Flow encountered an Exception
exception_detailsThe Log Error Message details
primary_flow_nameStores the name of the Primary Flow
primary_flow_idThe Id of the Primary Flow
primary_flow_nameName of the default base Flow
current_flow_idId of the running Flow
current_step_nameName of the current step
current_step_idId of the current step
current_tracking_idStores the current Flow Tracking Id
current_step_tracking_idStores the current Step Tracking Id
percent_completedFlow completion percentage
start_dateThe date when the Flow was started
last_update_dateThe date when the Flow was last edited
last_update_byThe user who last edited the Flow
created_on_dateThe date when the Flow was created
created_byThe user who created the Flow
flow_date_storageForeign Key of the flow_data_delta_storage table
auto_restore_result_dataStores the Result Data that needs to be sent for the Auto Restart of the step
auto_restartA Boolean value that indicates if a Flow is set to Auto Restart
auto_restart_date_timeDate when the Flow was Auto Restarted
auto_restart_failedA Boolean value that indicates if a Flow failed to Auto Restart
store_generationNumber used to determine if the stored Flow Data is up-to-date
completedA Boolean indicating if the Flow completed
completed_date_timeThe date when the Flow completed
completed_byThe user who completed the Flow
last_active_serverServer on which the Flow Data was used
last_active_date_timeThe last recorded data time the Flow Data was used
archived_dateThe date when the Flow will be set to an Archived status
deleted_onThe date when the Flow was deleted
entity_folder_idId of the Designer Folder that stores the Flow
stateThe current state of the Flow
auto_expire_onA Boolean value that indicates if the Flow is set to expire

assignment_handler_data

This table that stores data of the Assignments' Escalation, Form, and Handler data for custom Form Assignments.

assignment_handler_data
IdThis is the primary key of the table
handler_dataSerialized Flow Handler data
escalation_handler_dataSerialized data about handling Escalations
form_view_dataStores the serialized data for the completed Form

flow_data_delta_storage

This table stores differential data instead of the complete Flow Data to minimize storage needs.

flow_data_delta_storage
primary_flow_tracking_idThe Main Flow tracking Id
delta_dataSerialized Delta Data from the Flow
delta_time_stampDate Time of when the Delta Data was capture
current_flow_idCurrent Flow Id
current_step_idCurrent Step Id
current_flow_nameCurrent Flow Name
current_step_nameCurrent Step Name
current_step_tracking_idTracking Id of the current step
current_flow_tracking_idTracking Id of the current Flow
is_tracking_dataBoolean used to track if the data is complete or partial 

Was this article helpful?