Skip to content

Identifiers ​

Every node in an Instant Process diagram must be uniquely identifiable. An identifier is the handle that NEXT (and any other reference) uses to point to a node. There are two ways to produce one: implicit identifiers, derived from the node's description, and explicit identifiers, supplied as a separate token.

This page explains how the two styles interact, when to prefer each, and how to keep identifiers unique.

Implicit identifiers ​

When you write a node with just a keyword and a description, the description itself acts as the identifier:

pml
ACTIVITY 'Review application'

Here the implicit identifier is Review application. Another node can reference it like so:

pml
ACTIVITY 'Submit' NEXT 'Review application'

Implicit identifiers are convenient because you only write the label once, and everything else refers to it by that same label.

Explicit identifiers ​

An explicit identifier is a separate token placed between the keyword and the description:

pml
ACTIVITY Review 'Review application'

The identifier is now Review, and references must use that token:

pml
ACTIVITY 'Submit' NEXT Review

Explicit identifiers have two important properties:

  • They replace the implicit identifier. Once an explicit identifier is set, the description is no longer referenceable — only the explicit token is.
  • They cannot contain spaces. Explicit identifiers are single tokens: Review, Review_1, ReviewApplication — but not Review Application.

Why use explicit identifiers? ​

Prefer implicit identifiers. A description already acts as the identifier, so reach for an explicit identifier only when you genuinely need one.

Use an explicit identifier when:

  • You have two nodes with the same description and need to tell them apart. With implicit identifiers, duplicate descriptions collide; explicit identifiers let each node keep its natural label while remaining unique.
  • You have multiple START nodes and want each to be unambiguously referenceable.
  • You are hand-authoring and want to rename a description without updating the references that point to it: the explicit identifier stays stable while the label changes.

Mixing implicit and explicit identifiers ​

You can mix both styles in the same process, even in the same line. References just use whichever identifier the target node has:

pml
ACTIVITY Task_A 'Task' NEXT OtherNode AND 'Node 2'

Here Task_A is explicit, OtherNode is an explicit reference to another node, and 'Node 2' is an implicit reference by description.

Keeping identifiers unique ​

Instant Process requires that every identifier in a process be unique. Implicit and explicit identifiers share the same namespace — if two nodes resolve to the same identifier, the process is ambiguous.

When this happens, resolve it by:

  1. Assigning an explicit identifier to one or both of the conflicting nodes, or
  2. Adjusting the description so they no longer collide.

A common example is multiple START nodes: without explicit identifiers, they all resolve to the same implicit name and cannot be referenced distinctly.

pml
START Customer 'Start' NEXT ...
START Supplier 'Start' NEXT ...

A closely related concept is the named link, which labels a connection (an edge) rather than a node. Named links are only available when NEXT is explicit:

pml
ACTIVITY 'Task' NEXT 'Node 1' 'Description'

See Links and lanes for the full NEXT syntax.