Portal Community

What is the Actor?

Every workflow execution has an actor — the identity that triggered it. The actor is set at execution start and immutable for the lifetime of the execution. It is always available in the $context object.

$context Identity Fields

FieldTypeDescription
$context.actorIdstringUUID of the user or managed identity that triggered the execution
$context.actorEmailstringActor's primary email address
$context.actorNamestringActor's display name
$context.actorTypeuser | managed-identityWhether the actor is a human user or a service account
$context.tenantIdstringTenant the execution is running under
$context.executionIdstringUnique execution ID

How Actor is Set

Trigger TypeActor Source
Manual trigger (UI button)Authenticated user who clicked the trigger
Webhook triggerWebhook caller identity or a configured default managed identity
Scheduled triggerConfigured managed identity for the schedule
Sub-workflow (sync)Inherited from parent execution actor
Sub-workflow (async)Managed identity of the parent workflow's managed identity, or inherited

Common Expression Uses

// Set approval actor to the person who submitted the form:
"actorId": "$context.actorId"

// Personalize notification:
"text": "Hi $context.actorName, your request has been submitted."

// Audit trail in entity creation:
"submittedBy": "$context.actorId",
"submittedByEmail": "$context.actorEmail"

// Conditional path based on who triggered:
"$context.actorId === $output.fetchInvoice.ownerId"  // actor is the invoice owner

// Self-approval guard (block if actor is also the approver):
"$context.actorId !== $output.fetchApprover.userId"
No node needed: For simple actor identity use cases (actorId, actorEmail, actorName), use $context directly — no UserLookupNode is required. Only use UserLookupNode when you need additional profile data like department, managerId, or role membership.