Process Models


To design process models, Appian provides you with the Process Modeler. To begin, navigate to an application in the Application Designer and use the New menu to select Process Model. Enter a name and pick a folder to save the model in, and click Create & Edit to see the newly created process model in a new browser window. (Be sure to allow pop-up windows from Appian.)

  • You can also access the Process Modeler from the Processes tab in '/designer', by clicking Launch Process Modeler from the Process Models section of the left-side navigation.

  • To create your first process model with dynamic form fields using SAIL, see also: Process Model Tutorial

The work performed by a process model is based on the activities you add to it. When the process model starts, each activity in the model is executed beginning with the Start Event. After the Start Event, subsequent activities are each run as they are activated by the process flow, which follows the flow connectors you design. You can use gateways to route your process flow. The process completes when all flows reach an End Event or if any flow reaches an End Event that is configured to terminate the process.

This page allows you to start a new process instance. You can update and edit a process, once it is started.

In addition to creating a process model, the Process Modeler also lets you perform additional tasks on your process model, such as validating, and printing.

Process models are stored in Appian using version control so that each published process model takes a new version number. Saved process models that are not published are stored as drafts. See also: Process Model Versioning

Process Model Properties

Process Model properties can be viewed and edited by selecting File > Properties in the Process Modeler.

Alternately, it can be accessed by clicking the Properties button in the Process Modeler toolbar. In both cases the Process Model Properties dialog displays.

See also: Options for Editing a Process Model

The sections below detail the properties you can modify on each tab of the Process Model Properties dialog box. The tabs you see depend on the view you are in for the process model (Process Designer, Process Analyst, Edit Mode, Monitor Process).

General Tab

The General Tab allows you to configure both basic and advanced options, such as the process model name and time zone context.

It also displays the process model ID and UUID properties and allows you to configure public events that enable the process model to receive messages when the Allow Anyone to Fire Triggers checkbox is selected.

See also: General Tab and Time Zone Context

Variables Tab

The Variables Tab lists the current process variables that have been defined for this Process Model. Process variables allow you to transfer data between nodes in a process model. Variables that are required at the start of the process are called process parameters.

When designing or monitoring a process, you can add new process variables by clicking Add Variable. You can also update a process variable from this tab and have the change automatically appear in many places where the variable is used.

See also: Variables Tab and Configuring Process Variables

Process Start Form

If you have data that must be provided to start a process, you can use a process start form to gather this data. The data collected by a start form must be saved into a process parameter.

Clicking on the Create Interface button, will create an interface from existing process parameters. Alternatively, existing interfaces can be imported by searching within the Type interface name here or browse… search box.

See also: Process Start Form, Process Model Tutorial and SAIL Design


Deadlines can either be set at a process or task level.

Process deadlines specify the target date and time for completion of the process. This information is displayed on all process tasks, when the assignee clicks Show task info.

The deadline configuration does not automatically trigger an escalation action. These must be configured separately within the context of each process activity.

See also: Deadlines Tab and Escalating a Task


During the execution of a process, alerts are automatically sent to process administrators or initiators when an error has been encountered - depending on the nature of the error.

The options on this tab allow you to change the list of people (process actors) that are notified when an error occurs.

See also: Alerts Tab


Process model attachments have been deprecated and will be removed in a future release of Appian.

See also: Attachments Tab and Attachment Options


Process model notes have been deprecated and will be removed in a future release of Appian.

See also: Notes Tab

Data Management

All Appian processes are retained in memory until archived or deleted.

The settings on the Data Management Tab allow you to specify a policy for archiving the process or a policy for deleting the process.

By default, the process is automatically archived after 7 days. Any changes made on this form are applied to all completed instances of the Process Model. Sub-processes do not inherit this setting.

Take care not to archive or delete a sub-process if the data is still needed in the parent process.

NOTE: It is very important that you configure your process applications properly for memory usage. Given enough cycles, any process that is run repeatedly can consume the available memory on your host system. Archiving or deleting these processes (once they've completed) is necessary for system management.

There is a tradeoff to consider when forming your data-retention policies. Archiving a process frees system memory, but impacts your reports. The data in archived processes are no longer available for reporting purposes.

See also: Archiving Processes


Process model activities are represented by nodes on the process model and define the work that must be done in a process either by the system (unattended) or users (attended). Unattended activities are executed in a first-in-first-out order with a lower priority than attended activities and other direct interaction from users. Resources allocated to unattended activities are capped to ensure that the system is responsive to any users interacting with it.

Activities include the Script Task, User Input Task, Sub-Process, and Smart Services:

  • Script Tasks: Perform automated activities that do not require user input and can be configured by an expression. See also: Configuring the Script Task
  • User Input tasks: Assign a task to be completed by a user or group using a form. See also: User Input Task
  • Sub-processes: Launch another process. Best used for processes that are common to multiple process models, such as entering contact information. See also: Sub-Process Activity
  • Smart Services: Launch specialized business services without requiring custom development. See also: Smart Services

Prioritization and Queueing of Activities

The Appian Engines use priority queues to execute activities as follows:

Appian divides activities into foreground and background activities. Foreground activities involve direct user interactions where response time is at a premium. Background activities involve no direct user interaction.

  1. All interactive interactions involving a user are prioritized first to ensure that the user experience is always fast
  2. Other activities (called background activities) are queued and executed in a first in / first out order

Activity chaining will force background activities to a foreground activity prioritization. Use it sparingly.

Process designers can create prioritized batch queues by designing process models to run these queues at times of lower load, and to use business rules to decide when/if certain activities should be postponed to a later run.

The use of prioritization queues, while generally providing sufficient control and throughput, are not a substitute for proper sizing of a system, and background activity will interfere with foreground activity in cases where your system resources are undersized.

Programming an Activity

You can present and collect data from a user by programming an activity process node such as the User Input Task or a smart service.

See also: Configuring the User Input Task and Smart Services

The following diagram lists five of the actions that may occur when a task is executed.

  1. Form Display
    • User input tasks and smart services allow you to gather information using a task form. On the form you can display process variables and evaluated expressions for default values, labels, instructions, and displayed messages.
  2. Form Submission and Activity Initialization
    • User entries are saved to node inputs. These variables can be created on the Data Tab of the activity.
    • Any node inputs values that are not associated with form fields are also resolved.
  3. Storing Inputs
    • Node inputs and task properties can be saved directly to process variables on the Data Tab of the activity from the Inputs tab. See also: Task Properties
    • The operations listed on the Inputs tab are performed without regard to the order in which you specify them.
    • You can save different inputs into different variables. You cannot save different inputs into the same variable using the Inputs tab. Use the Outputs tab instead. See below: Saving Multiple Node Inputs into a Multiple Value Process Variable
  4. Activity Output
    • Node outputs can return results from actions performed automatically by the activity. You can also create your own custom output. See also: Creating a Custom Output
  5. Storing Output
    • Custom outputs use expressions to write new values to process variables.
    • The operations listed on the Outputs tab are performed without regard to the order in which you specify them.

For each of these actions, you can write expressions using the Expression Editor.

Expression Editor

The Expression Editor provides a simple, point-and-click interface for writing expressions.

To access the editor, click the Expression Editor icon next to an expression field or in a rich text editor (where applicable).

The Expression Editor (as shown below) displays in a new window.

To write an expression through the Expression Editor, complete the following:

  1. Browse through items in the Selection Pane and click them to add them to your expression.
    • Hover your mouse over an item to view information on it in the Description Pane.
  2. Add operators by clicking them in the Operator Menu.
  3. Type in any additional values to the Expressions Editor Canvas.
  4. Click the checkmark button to validate the expression.
    • Expressions must pass validation in order to be saved.
  5. Click Save and Close to save your expression and exit the editor.

Data Tab The Data tab lists any variables available for use in your expressions. Options depend on what you are creating the expression for (such as a form component configuration versus a report metric configuration).

For more information on using variables in expressions, see Variables.

Functions Tab The Functions tab includes all Appian Functions as well as any Custom Function Plug-ins added to a function category.

Rules & Constants Tab The Rules & Constants tab includes any expression rules, query rules, and constants you have viewer rights to.

Checking Form Values

To check the value of an input before storing its output, you can write an expression with the node inputs or process variable parameters used to save the user input.

The Expression Editor lists these variables when configuring the node. Node inputs are in the Activity Class Parameters category. To access data from another activity, the data must be saved in a process variable.

See also: Process Data

You can use the isnull() function to test a variable to see if it contains a value and the if() function to only save a value under certain conditions.

For example, when you want to save a certain value only if the user doesn't enter something in a form, you can use the following expression


See also: isnull() and if()

Saving Multiple Node Inputs into a Multiple Value Process Variable

On the Outputs Tab, you can create an expression that saves or appends different values to a multiple value process variable.

To do so, complete the following:

  1. Create a new custom output.
  2. Next to the value field, open the Expression Editor so you can select your node inputs easily.
  3. Write an expression that uses braces to combine the inputs into a list.
    • For example: ={ac!NodeInputOne,ac!NodeInputTwo,ac!NodeInputThree}
  4. Save the expression into your process variable using the is stored as or the is appended to operator.

See also: Creating a Custom Output

Performing Repeated Operations on Your Output

You may need to use more than one activity to generate the desired output.

See also: Multiple Node Instances.

Saving Task Properties

Rapidly changing task properties can be stored both before and after a task is completed using a node input, process variable, and custom output. This may be useful if you need to capture both the users who were initially assigned an activity and other users (such as managers) who may have stepped in to complete the task instead.

For example, before a task is completed, a task is assigned to a user or users listed in the system as the assignees.

To capture this list, use a node input (such as ac!InitialAssignees) with the following Value: tp!assignees

You can also capture this data by creating a process variable (such as pv!assignees) that holds multiple values using a data type that matches the information you want to save. In this case, assign the User or Group data type to your variable.

See also: User and Group

And finally, you can create a custom output using {ac!InitialAssignees,tp!owner} for the expression, is appended tofor the operator, and pv!assignees as the target.

Notice that the items you want to store in the process variable are grouped using a list defined by curly brackets {}, rather than combined using the + operator.


Your process model can include various configurable events that can move data into your process, send data from your process, evaluate logic, delay a process flow until a scheduled time, and halt the process flow.

The following events are available in the Process Modeler:

See also: Messaging Best Practices


Gateway nodes allow you to evaluate different criteria to make decisions on which path(s) your workflow should follow as well as how many instances are allowed to follow each optional path.

Gateways can also be used to route the process flow or to create a loop among activities in a process model. If there are multiple incoming paths to a gateway, and a loop involving the gateway is established in your process model, the gateway only resets itself when all incoming paths have been activated.

If one of the incoming paths to a gateway has not been activated and the process flow reaches the same gateway again through a loop, the process does not proceed past the gateway. This is because all input paths from the first instance of the gateway have not yet been activated.

If you want the flow to proceed when a single flow token loops back to the gateway (and not wait for all incoming flow tokens) place a new activity upstream of the gateway. Route the looped flow through this new activity rather than into the gateway itself.

Appian provides the following types of Gateway nodes:

  • XOR: Exclusive Decision/Merge
    • Allows one incoming path to continue, while excluding any others. It executes a single outgoing path determined by the conditions you set. See also: XOR Node
  • (OR): Inclusive Decision/Merge
    • Directs incoming flows to one of many possible output paths, based on the condition(s) you set. See also: OR Node
  • COMPLEX: Complex Decision/Merge
    • Allows you to selectively accept (or restrict) incoming paths and evaluate rules to determine outgoing paths. For example, you can restrict the node to accept only the first 3 out of 4 incoming paths, or require input from certain nodes before continuing. Outgoing paths can be configured in the same manner as other Gateway nodes. See also: Complex Gateway Node
  • AND: Parallel Fork/Join
    • Directs all incoming workflow(s) to all of the possible branches. If more than one incoming path is used, all incoming paths must reach the node before the process can continue. It can also be used to join all incoming paths into a single workflow. See also: AND Node

To access Gateway Nodes, complete the following:

  1. Open the Process Modeler.
  2. On the Palette, select the Standard Nodes folder to expand the node categories.
  3. Select the Gateways node category.

Gateway names displayed on the designer canvas can be edited inline by clicking the name. When editing a gateway name inline, it can be styled using the Font Palette.

To access the Font Palette to edit a gateway name, complete the following:

  1. Click the gateway name.
  2. Select the text you want to style.
  3. Select a style from the Font Palette, such as B for boldface text.
  4. If the Font Palette is not displayed, select Tools > Show Font Palette.

Flow Connectors

Flow connectors allow you to define the sequence and logic of your process applications. Appian also allows you to configure a flow connector to create wizards, label a flow, and protect variables from overwrites.


The Process Modeler allows you to group your process model into pools and lanes. Users and groups can be assigned to lanes to clarify responsibilities.

Add a Lane

The Process Modeler allows you to categorize activities in a process using the Business Process Modeling Notation (BPMN) concepts of pools and swimlanes.

A pool serves as a graphical container for a set of activities.

A swimlane is a sub-set of activities within a pool that extends the length of a pool on your process diagram. You can use either vertical or horizontal lanes in the Appian Process Modeler.

Appian allows you to assign lanes to users, teams, groups, departments, Actors (a user name stored and used internally by Appian, such as the user who created the process or the user who launched the process), or users defined by a process variable.

To add a lane to your process model, click on the Process Modeler toolbar - OR click the Lanes menu and select either the horizonal or vertical lane options to add.

Repeat this step to add multiple lanes to the designer canvas.

The Lanes menu also offers also includes the following options:

  • Add Horizontal Lane
    • Adds a horizontal lane below all existing horizontal lanes. If a process model consists of a vertical lane, this option is not available.
  • Add Vertical Lane
    • Adds a vertical lane to the right of all existing vertical lanes. If a process model consists of a horizontal lane, this option is not available.
  • Remove Lane
    • Removes the selected lane from the process model. Removing a lane does not remove all nodes within the lane. Furthermore, all existing nodes within the removed lane will either be moved to the lane directly below or to the right of the lane being removed. To select a lane, hover over the lane border until the "hand" marker appears and click on the border. If there are no lanes in a process model, this option will not be available for selection
  • Remove All Lanes
    • Remove all lanes from the process model. If there are no lanes in a process model, this option is not available.
  • Lane Properties

The first lane added to the designer canvas is a pool that contains all nodes within the process model. All subsequent lanes added to the process model are either added below the first lane, or to the right of the first lane, depending on whether horizontal or vertical lanes are being added to the canvas.

Add a Lane Next to an Existing Lane

To add a lane next to an existing one, hover the pointer on the title bar of an existing lane. When the pointer changes to , right-click the shaded region and select the necessary option.

Options include the following:

  • Add Lane Above
    • Adds a lane above the selection. This option will not be available if vertical lanes are present in the designer canvas.
  • Add Lane Below
    • Adds a lane below the currently selected horizontal lane. This option will not be available if vertical lanes are present in the designer canvas.
  • Add Lane to Left
    • Adds a lane to the left of a selected vertical lane. This option will not be available if horizontal lanes are present in the designer canvas.
  • Add Lane to Right
    • Add a lane to the right of a selected vertical lane. This option will not be available if horizontal lanes are present in the designer canvas.
  • Delete Lane
    • Delete a selected lane. This option will not be available for selection if lanes are not present in a process model.
  • Lane Properties
    • Configure the settings associated with a lane. For more information on configuring a lane, please refer to the corresponding topic in this manual. See below: Configure Lane Properties

Configure Lane Properties

To configure lane properties, right-click the title bar of a lane and select Lane Properties - OR - select a lane and click Lanes > Lane Properties on the process modeler toolbar.

  • The Configure Lane dialog box is displayed.

To give the lane a name, type an entry into the Name field.

To change the color of the lane, click the color displayed in the Color field and select a color for the lane shading from tje color palette.

To change the height or width of the lane, enter the number of pixels desired in the Height or Width field. This field name depends on if the lane is horizontal or vertical. The minimum width of a lane is 140 pixels (with four grid squares).

Lane names are always centered and wrap onto the next line, if the name overflows the width/height of the lane. Lane names only wrap once. Additional text only appears if the lane is resized.

Assign Tasks Using a Lane

To assign tasks using a lane, complete the following:

  1. Right-click the title bar of the lane and select Lane Properties.
  2. Select the Assignment tab.
  3. Select the Use this assignment setting as the default for all nodes in this lane option.
  4. In the Assign to the following field, select lane assignees in one of the following ways:
    • Click the Directory… button to browse and select users and groups.
    • Use the Expression Editor to assign the task using a rule or expression. The Expression Editor allows you to assign the task to a process variable with a User, Group, or People data type.
    • Use a process property such as pp!initiator.
    • Type the name of the desired users and groups in the field.
  5. Click OK.

When lane assignment is set, attended activities within the lane display an additional option to override lane assignment. This option allows you to use the task assignment configured for the activity instead of the assignment specified for the lane.

See also: Overriding Lane Assignment

Edit the Name of a Lane

To edit the name of a lane, hover the mouse pointer over the title of an existing lane. When the Select Pointer changes to a Text Insertion pointer, click the lane title and enter a new name in the field provided.

The text can be formatted using the Font Palette. If the Font Palette is not visible on the designer canvas, click Tools > Show Font Palette.

Add Nodes to a Lane

All nodes on a canvas are added to the first lane that is added to your process diagram. Subsequent lanes are empty, until you add nodes to the lane using one of the following two methods:

  • Drag an existing node from the pool into the new lane.
  • Drag a new node from the palette.

Delete a Lane

Once lanes have been added to a process model, designers can choose to remove them at any time. Deleting a lane does not delete any of the nodes within the lane. They are instead moved to the lane below, or to the right of the deleted lane. Deleting a lane may change the assignment for nodes within the lane being dropped.

To delete a lane:

  1. Hover the pointer on the title bar of an existing lane.
  2. Right-click the shaded region and select Delete Lane or right-click the colored pane of the lane and select Delete Lane.

To delete all lanes, click Lanes > Remove All Lanes from the Process Modeler toolbar.


The annotate tool allows you to add text descriptions to your process models.

To add an annotation to the process model, complete the following:

  1. In the Process Modeler, click the Annotate button on the toolbar.
  2. When the pointer becomes a plus symbol +, click the Process Modeler canvas and drag the pointer to expand the text field.
  3. Click inside the field you created.
  4. Enter the text of your note.
    • If you enter more text than can be displayed in the window, scroll bars appear on the annotation. These can be removed by resizing the text window.

Formatting an Annotation

To format an annotation, complete the following:

  1. Click the annotation.
  2. Click Tools > Show Font Palette to display the text tools.
  3. Apply the desired formatting using the text tool options.

NOTE: Styles cannot be applied by highlighting sections of text within an annotation. They can only be applied to all of the text within an annotation.


See Process Model Management

Using Expressions in Process Models

See User Contexts for Expressions

Actor Properties

The following process and task properties are calculated functions that return the appropriate user or group in whatever context the function is called.

For example, in an attended task, at design-time you can use the pp!initiator property to automatically assign the task to the user that launched the process that triggered the task activity.

Function Name Description Syntax
Process Designer Returns the user that designed the process (the user who published the latest version of the process model). pp!designer
Process Initiator Returns the user who started the process. pp!initiator
Task Owner Returns the single user who has accepted the task. For tasks that are assigned to a single user, the user automatically accepts the task when it is first viewed. tp!owner
Task Owner's Supervisor Returns the user who is the supervisor of the task owner. supervisor(tp!owner)
Task Assignees The users who have been assigned the task. tp!assignees

Ending a Process

A process model can have multiple End Events. To stop all active process flows, configure a terminate process trigger on an End Event.

If your process assigns tasks to users, we recommend you automatically end the process if a user keeps the assigned tasks active for a long period of time without completion.

To do so, add a branching flow from the Start Event through a Timer Event set to a desired process cutoff interval (for example, 30 days). From the Timer Event, configure an outgoing flow to a terminate process End Event.

See also: Event