Flow Studio
Actor Context in Execution
How $context.actorId is set, what it contains, and how to use actor identity in expressions without any identity node lookup.
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
| Field | Type | Description |
|---|---|---|
$context.actorId | string | UUID of the user or managed identity that triggered the execution |
$context.actorEmail | string | Actor's primary email address |
$context.actorName | string | Actor's display name |
$context.actorType | user | managed-identity | Whether the actor is a human user or a service account |
$context.tenantId | string | Tenant the execution is running under |
$context.executionId | string | Unique execution ID |
How Actor is Set
| Trigger Type | Actor Source |
|---|---|
| Manual trigger (UI button) | Authenticated user who clicked the trigger |
| Webhook trigger | Webhook caller identity or a configured default managed identity |
| Scheduled trigger | Configured 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.