Temporal

Temporal is an open-source durable execution platform that lets teams write workflows as code that survive crashes, retries, and outages. A Temporal cluster tracks every workflow execution's state and event history, so long-running business processes — order fulfillment, payment pipelines, infrastructure provisioning, human-in-the-loop approvals — run reliably for minutes or months at a time.

With the Temporal integration in Sim, your agents can drive those durable workflows directly. Connect to any Temporal cluster that exposes the server's HTTP API (enabled by default on the frontend's HTTP port, 7243, in modern Temporal servers) and:

  • Run workflows: start executions with JSON input, use signal-with-start for exactly-once delivery, and set ID reuse policies, cron schedules, timeouts, memo fields, and search attributes.
  • Communicate with running workflows: send signals, invoke update handlers and wait for their results, and run queries against live workflow state.
  • Observe executions: describe a single execution (status, timing, pending activities), list and count executions with Temporal's visibility query language, and fetch full event histories — including just the close event to read a workflow's outcome.
  • Operate the fleet: cancel or terminate runaway executions, reset a workflow to a previous point in its history, and manage schedules — list, describe, pause, unpause, trigger, and delete them.

Workflow inputs and results are encoded with Temporal's standard json/plain payload converter, so the integration interoperates with workers written in any Temporal SDK. If your server has authentication enabled, provide an API key and Sim sends it as a Bearer token on every request.

Usage Instructions

Connect to a Temporal cluster over the server's HTTP API to start workflow executions, send signals, run queries against workflow state, describe and list executions, fetch event histories, and cancel or terminate running workflows. API key only required for servers with authentication enabled.

Actions

temporal_start_workflow

Start a new workflow execution on a Temporal cluster.

Input

ParameterTypeRequiredDescription
serverUrlstringYesBase URL of the Temporal server's HTTP API (e.g., http://localhost:7243\)
namespacestringYesTemporal namespace (e.g., default)
apiKeystringNoAPI key sent as a Bearer token (leave blank for servers without auth)
workflowIdstringYesUnique workflow ID for the new execution (e.g., order-1234)
workflowTypestringYesRegistered workflow type name to run (e.g., OrderWorkflow)
taskQueuestringYesTask queue the workflow worker polls (e.g., orders)
inputstringNoWorkflow input as JSON. A top-level array is passed as the argument list (one argument per element); any other value is passed as a single argument
workflowIdReusePolicystringNoPolicy for reusing a closed workflow ID: WORKFLOW_ID_REUSE_POLICY_ALLOW_DUPLICATE, WORKFLOW_ID_REUSE_POLICY_ALLOW_DUPLICATE_FAILED_ONLY, WORKFLOW_ID_REUSE_POLICY_REJECT_DUPLICATE, or WORKFLOW_ID_REUSE_POLICY_TERMINATE_IF_RUNNING
workflowIdConflictPolicystringNoPolicy when a workflow with the same ID is already running: WORKFLOW_ID_CONFLICT_POLICY_FAIL, WORKFLOW_ID_CONFLICT_POLICY_USE_EXISTING, or WORKFLOW_ID_CONFLICT_POLICY_TERMINATE_EXISTING
cronSchedulestringNoCron schedule for recurring executions (e.g., "0 12 * * *")
executionTimeoutSecondsnumberNoTotal workflow execution timeout in seconds, including retries and continue-as-new
runTimeoutSecondsnumberNoTimeout for a single workflow run in seconds
memostringNoJSON object of memo fields to attach to the execution
searchAttributesstringNoJSON object of search attribute values to index the execution with

Output

ParameterTypeDescription
workflowIdstringWorkflow ID of the execution
runIdstringRun ID of the started workflow execution
startedbooleanWhether a new execution was started (false when an existing execution was reused)

temporal_signal_workflow

Send a signal to a running Temporal workflow execution.

Input

ParameterTypeRequiredDescription
serverUrlstringYesBase URL of the Temporal server's HTTP API (e.g., http://localhost:7243\)
namespacestringYesTemporal namespace (e.g., default)
apiKeystringNoAPI key sent as a Bearer token (leave blank for servers without auth)
workflowIdstringYesWorkflow ID of the execution to signal
runIdstringNoRun ID of a specific run to signal (defaults to the latest run)
signalNamestringYesName of the signal handler to invoke (e.g., approve-order)
signalInputstringNoSignal input as JSON. A top-level array is passed as the argument list (one argument per element); any other value is passed as a single argument

Output

ParameterTypeDescription
workflowIdstringWorkflow ID of the signaled execution
signalNamestringName of the signal that was sent

temporal_signal_with_start

Atomically signal a Temporal workflow, starting it first if it is not already running, so the signal is never lost.

Input

ParameterTypeRequiredDescription
serverUrlstringYesBase URL of the Temporal server's HTTP API (e.g., http://localhost:7243\)
namespacestringYesTemporal namespace (e.g., default)
apiKeystringNoAPI key sent as a Bearer token (leave blank for servers without auth)
workflowIdstringYesWorkflow ID to signal, or to start and signal (e.g., order-1234)
workflowTypestringYesRegistered workflow type name to start if the workflow is not running
taskQueuestringYesTask queue the workflow worker polls (e.g., orders)
signalNamestringYesName of the signal handler to invoke (e.g., approve-order)
inputstringNoWorkflow start input as JSON, used only when a new execution is started. A top-level array is passed as the argument list; any other value is passed as a single argument
signalInputstringNoSignal input as JSON. A top-level array is passed as the argument list (one argument per element); any other value is passed as a single argument
workflowIdReusePolicystringNoPolicy for reusing a closed workflow ID: WORKFLOW_ID_REUSE_POLICY_ALLOW_DUPLICATE, WORKFLOW_ID_REUSE_POLICY_ALLOW_DUPLICATE_FAILED_ONLY, WORKFLOW_ID_REUSE_POLICY_REJECT_DUPLICATE, or WORKFLOW_ID_REUSE_POLICY_TERMINATE_IF_RUNNING
workflowIdConflictPolicystringNoPolicy when a workflow with the same ID is already running (defaults to using the existing run): WORKFLOW_ID_CONFLICT_POLICY_FAIL, WORKFLOW_ID_CONFLICT_POLICY_USE_EXISTING, or WORKFLOW_ID_CONFLICT_POLICY_TERMINATE_EXISTING
cronSchedulestringNoCron schedule for recurring executions (e.g., "0 12 * * *")
executionTimeoutSecondsnumberNoTotal workflow execution timeout in seconds, including retries and continue-as-new
runTimeoutSecondsnumberNoTimeout for a single workflow run in seconds
memostringNoJSON object of memo fields to attach to the execution
searchAttributesstringNoJSON object of search attribute values to index the execution with

Output

ParameterTypeDescription
workflowIdstringWorkflow ID of the signaled execution
runIdstringRun ID of the signaled (or newly started) execution
startedbooleanWhether this call started a new execution (false when only signaled)

temporal_query_workflow

Run a synchronous query against the state of a Temporal workflow execution and return the result.

Input

ParameterTypeRequiredDescription
serverUrlstringYesBase URL of the Temporal server's HTTP API (e.g., http://localhost:7243\)
namespacestringYesTemporal namespace (e.g., default)
apiKeystringNoAPI key sent as a Bearer token (leave blank for servers without auth)
workflowIdstringYesWorkflow ID of the execution to query
runIdstringNoRun ID of a specific run to query (defaults to the latest run)
queryTypestringYesName of the query handler to invoke (e.g., getStatus)
queryArgsstringNoQuery arguments as JSON. A top-level array is passed as the argument list (one argument per element); any other value is passed as a single argument

Output

ParameterTypeDescription
workflowIdstringWorkflow ID of the queried execution
queryTypestringName of the query that was run
resultjsonDecoded query result. A single payload is returned as its JSON value; multiple payloads are returned as an array

temporal_update_workflow

Invoke an update handler on a running Temporal workflow and wait for its result. Unlike a signal, an update is validated by the workflow and returns a response.

Input

ParameterTypeRequiredDescription
serverUrlstringYesBase URL of the Temporal server's HTTP API (e.g., http://localhost:7243\)
namespacestringYesTemporal namespace (e.g., default)
apiKeystringNoAPI key sent as a Bearer token (leave blank for servers without auth)
workflowIdstringYesWorkflow ID of the execution to update
runIdstringNoRun ID of a specific run to update (defaults to the latest run)
updateNamestringYesName of the update handler to invoke (e.g., addItem)
updateArgsstringNoUpdate arguments as JSON. A top-level array is passed as the argument list (one argument per element); any other value is passed as a single argument

Output

ParameterTypeDescription
workflowIdstringWorkflow ID of the updated execution
updateNamestringName of the update that was invoked
resultjsonDecoded update result. A single payload is returned as its JSON value; multiple payloads are returned as an array

temporal_describe_workflow

Get the current state of a Temporal workflow execution, including status, timing, memo, search attributes, and pending activities.

Input

ParameterTypeRequiredDescription
serverUrlstringYesBase URL of the Temporal server's HTTP API (e.g., http://localhost:7243\)
namespacestringYesTemporal namespace (e.g., default)
apiKeystringNoAPI key sent as a Bearer token (leave blank for servers without auth)
workflowIdstringYesWorkflow ID of the execution to describe
runIdstringNoRun ID of a specific run to describe (defaults to the latest run)

Output

ParameterTypeDescription
workflowIdstringWorkflow ID of the execution
runIdstringRun ID of the execution
workflowTypestringWorkflow type name
statusstringExecution status (RUNNING, COMPLETED, FAILED, CANCELED, TERMINATED, CONTINUED_AS_NEW, or TIMED_OUT)
startTimestringStart time of the execution (RFC 3339)
closeTimestringClose time of the execution (RFC 3339), null while running
executionTimestringEffective execution start time (RFC 3339), e.g. the first cron run time
historyLengthnumberNumber of events in the workflow history
taskQueuestringTask queue of the execution
memojsonDecoded memo fields attached to the execution
searchAttributesjsonDecoded search attribute values
pendingActivitiesarrayActivities currently pending on the execution
activityIdstringActivity ID
activityTypestringActivity type name
statestringPending state (SCHEDULED, STARTED, CANCEL_REQUESTED, PAUSED, or PAUSE_REQUESTED)
attemptnumberCurrent attempt number
lastFailureMessagestringMessage of the most recent failure, if the activity is retrying

temporal_list_workflows

List workflow executions in a Temporal namespace, optionally filtered with a visibility query.

Input

ParameterTypeRequiredDescription
serverUrlstringYesBase URL of the Temporal server's HTTP API (e.g., http://localhost:7243\)
namespacestringYesTemporal namespace (e.g., default)
apiKeystringNoAPI key sent as a Bearer token (leave blank for servers without auth)
querystringNoVisibility list filter, e.g. WorkflowType = "OrderWorkflow" AND ExecutionStatus = "Running" (empty lists all executions)
pageSizenumberNoMaximum number of executions to return per page
nextPageTokenstringNoPage token from a previous response, for pagination

Output

ParameterTypeDescription
executionsarrayWorkflow executions matching the query
workflowIdstringWorkflow ID of the execution
runIdstringRun ID of the execution
workflowTypestringWorkflow type name
statusstringExecution status (RUNNING, COMPLETED, FAILED, CANCELED, TERMINATED, CONTINUED_AS_NEW, or TIMED_OUT)
startTimestringStart time of the execution (RFC 3339)
closeTimestringClose time of the execution (RFC 3339), null while running
executionTimestringEffective execution start time (RFC 3339)
historyLengthnumberNumber of events in the workflow history
taskQueuestringTask queue of the execution
nextPageTokenstringToken for the next page of results, null when no more pages exist

temporal_count_workflows

Count workflow executions in a Temporal namespace matching a visibility query, with optional GROUP BY aggregation.

Input

ParameterTypeRequiredDescription
serverUrlstringYesBase URL of the Temporal server's HTTP API (e.g., http://localhost:7243\)
namespacestringYesTemporal namespace (e.g., default)
apiKeystringNoAPI key sent as a Bearer token (leave blank for servers without auth)
querystringNoVisibility count filter, e.g. ExecutionStatus = "Running" or ... GROUP BY ExecutionStatus (empty counts all executions)

Output

ParameterTypeDescription
countnumberNumber of workflow executions matching the query
groupsarrayPer-group counts when the query uses GROUP BY (empty otherwise)
valuesjsonDecoded values of the GROUP BY fields
countnumberNumber of executions in the group

temporal_get_workflow_history

Fetch the event history of a Temporal workflow execution, optionally filtered to just the close event.

Input

ParameterTypeRequiredDescription
serverUrlstringYesBase URL of the Temporal server's HTTP API (e.g., http://localhost:7243\)
namespacestringYesTemporal namespace (e.g., default)
apiKeystringNoAPI key sent as a Bearer token (leave blank for servers without auth)
workflowIdstringYesWorkflow ID of the execution
runIdstringNoRun ID of a specific run (defaults to the latest run)
maximumPageSizenumberNoMaximum number of history events to return per page
nextPageTokenstringNoPage token from a previous response, for pagination
historyEventFilterTypestringNoEvent filter: HISTORY_EVENT_FILTER_TYPE_ALL_EVENT (default) or HISTORY_EVENT_FILTER_TYPE_CLOSE_EVENT to return only the final close event

Output

ParameterTypeDescription
eventsarrayHistory events of the workflow execution, in order
eventIdnumberSequential ID of the event
eventTimestringTime the event was recorded (RFC 3339)
eventTypestringEvent type (e.g., WORKFLOW_EXECUTION_STARTED, ACTIVITY_TASK_COMPLETED)
attributesjsonThe event's type-specific attributes (payload data is base64-encoded)
nextPageTokenstringToken for the next page of events, null when no more pages exist

temporal_cancel_workflow

Request cooperative cancellation of a running Temporal workflow execution. The workflow decides how to respond to the request.

Input

ParameterTypeRequiredDescription
serverUrlstringYesBase URL of the Temporal server's HTTP API (e.g., http://localhost:7243\)
namespacestringYesTemporal namespace (e.g., default)
apiKeystringNoAPI key sent as a Bearer token (leave blank for servers without auth)
workflowIdstringYesWorkflow ID of the execution to cancel
runIdstringNoRun ID of a specific run to cancel (defaults to the latest run)
reasonstringNoReason for the cancellation, recorded in the workflow history

Output

ParameterTypeDescription
workflowIdstringWorkflow ID of the execution whose cancellation was requested

temporal_terminate_workflow

Forcefully terminate a Temporal workflow execution immediately, without giving the workflow a chance to react.

Input

ParameterTypeRequiredDescription
serverUrlstringYesBase URL of the Temporal server's HTTP API (e.g., http://localhost:7243\)
namespacestringYesTemporal namespace (e.g., default)
apiKeystringNoAPI key sent as a Bearer token (leave blank for servers without auth)
workflowIdstringYesWorkflow ID of the execution to terminate
runIdstringNoRun ID of a specific run to terminate (defaults to the latest run)
reasonstringNoReason for the termination, recorded in the workflow history

Output

ParameterTypeDescription
workflowIdstringWorkflow ID of the terminated execution

temporal_reset_workflow

Reset a Temporal workflow execution to a past workflow task, terminating the current run and replaying from the reset point in a new run.

Input

ParameterTypeRequiredDescription
serverUrlstringYesBase URL of the Temporal server's HTTP API (e.g., http://localhost:7243\)
namespacestringYesTemporal namespace (e.g., default)
apiKeystringNoAPI key sent as a Bearer token (leave blank for servers without auth)
workflowIdstringYesWorkflow ID of the execution to reset
runIdstringNoRun ID of a specific run to reset (defaults to the latest run)
workflowTaskFinishEventIdnumberYesEvent ID of the workflow task finish event to reset to — a WORKFLOW_TASK_COMPLETED, WORKFLOW_TASK_TIMED_OUT, WORKFLOW_TASK_FAILED, or WORKFLOW_TASK_STARTED event (find it with Get Workflow History)
reasonstringNoReason for the reset, recorded in the workflow history

Output

ParameterTypeDescription
workflowIdstringWorkflow ID of the reset execution
runIdstringRun ID of the new run created by the reset

temporal_describe_task_queue

List the workers currently polling a Temporal task queue, to check whether a workflow or activity has live workers.

Input

ParameterTypeRequiredDescription
serverUrlstringYesBase URL of the Temporal server's HTTP API (e.g., http://localhost:7243\)
namespacestringYesTemporal namespace (e.g., default)
apiKeystringNoAPI key sent as a Bearer token (leave blank for servers without auth)
taskQueuestringYesName of the task queue to describe (e.g., orders)
taskQueueTypestringNoType of pollers to list: TASK_QUEUE_TYPE_WORKFLOW (default) or TASK_QUEUE_TYPE_ACTIVITY

Output

ParameterTypeDescription
taskQueuestringName of the described task queue
pollersarrayWorkers currently polling the task queue (empty when no workers are running)
identitystringIdentity of the polling worker
lastAccessTimestringLast time the worker polled the queue (RFC 3339)
ratePerSecondnumberPoller rate per second

temporal_create_schedule

Create a Temporal schedule that starts a workflow on a cron or interval cadence.

Input

ParameterTypeRequiredDescription
serverUrlstringYesBase URL of the Temporal server's HTTP API (e.g., http://localhost:7243\)
namespacestringYesTemporal namespace (e.g., default)
apiKeystringNoAPI key sent as a Bearer token (leave blank for servers without auth)
scheduleIdstringYesUnique ID for the new schedule (e.g., nightly-report)
workflowIdstringYesWorkflow ID for started workflows (the schedule appends the run time to keep IDs unique)
workflowTypestringYesRegistered workflow type name the schedule starts (e.g., ReportWorkflow)
taskQueuestringYesTask queue the workflow worker polls (e.g., reports)
inputstringNoWorkflow input as JSON. A top-level array is passed as the argument list (one argument per element); any other value is passed as a single argument
cronExpressionsstringNoCron expressions defining when the schedule fires, comma- or newline-separated for multiple (e.g., "0 12 * * *"). At least one of cronExpressions or intervalSeconds is required
intervalSecondsnumberNoFixed interval between actions in seconds. At least one of cronExpressions or intervalSeconds is required
timezonestringNoIANA time zone for cron evaluation (e.g., America/New_York; defaults to UTC)
overlapPolicystringNoPolicy when an action would overlap a still-running one (defaults to skip): SCHEDULE_OVERLAP_POLICY_SKIP, SCHEDULE_OVERLAP_POLICY_BUFFER_ONE, SCHEDULE_OVERLAP_POLICY_BUFFER_ALL, SCHEDULE_OVERLAP_POLICY_CANCEL_OTHER, SCHEDULE_OVERLAP_POLICY_TERMINATE_OTHER, or SCHEDULE_OVERLAP_POLICY_ALLOW_ALL
notesstringNoHuman-readable notes stored on the schedule
pausedbooleanNoCreate the schedule in a paused state (defaults to active)

Output

ParameterTypeDescription
scheduleIdstringID of the created schedule

temporal_list_schedules

List schedules in a Temporal namespace.

Input

ParameterTypeRequiredDescription
serverUrlstringYesBase URL of the Temporal server's HTTP API (e.g., http://localhost:7243\)
namespacestringYesTemporal namespace (e.g., default)
apiKeystringNoAPI key sent as a Bearer token (leave blank for servers without auth)
querystringNoVisibility filter over schedules, e.g. TemporalSchedulePaused = false (empty lists all schedules)
maximumPageSizenumberNoMaximum number of schedules to return per page
nextPageTokenstringNoPage token from a previous response, for pagination

Output

ParameterTypeDescription
schedulesarraySchedules in the namespace
scheduleIdstringSchedule ID
workflowTypestringWorkflow type the schedule starts
pausedbooleanWhether the schedule is paused
notesstringHuman-readable notes on the schedule
futureActionTimesjsonUpcoming action times (RFC 3339)
nextPageTokenstringToken for the next page of results, null when no more pages exist

temporal_describe_schedule

Get the configuration and current state of a Temporal schedule, including its spec, recent actions, and upcoming run times.

Input

ParameterTypeRequiredDescription
serverUrlstringYesBase URL of the Temporal server's HTTP API (e.g., http://localhost:7243\)
namespacestringYesTemporal namespace (e.g., default)
apiKeystringNoAPI key sent as a Bearer token (leave blank for servers without auth)
scheduleIdstringYesID of the schedule to describe

Output

ParameterTypeDescription
scheduleIdstringSchedule ID
pausedbooleanWhether the schedule is paused
notesstringHuman-readable notes on the schedule
workflowTypestringWorkflow type the schedule starts
taskQueuestringTask queue used for started workflows
workflowIdstringWorkflow ID template for started workflows
specjsonSchedule spec (calendars, intervals, cron strings, jitter, time zone)
recentActionsarrayMost recent actions taken by the schedule
scheduleTimestringNominal scheduled time (RFC 3339)
actualTimestringActual time the action ran (RFC 3339)
workflowIdstringWorkflow ID of the started execution
runIdstringRun ID of the started execution
futureActionTimesjsonUpcoming action times (RFC 3339)

temporal_pause_schedule

Pause a Temporal schedule so it stops taking actions until unpaused.

Input

ParameterTypeRequiredDescription
serverUrlstringYesBase URL of the Temporal server's HTTP API (e.g., http://localhost:7243\)
namespacestringYesTemporal namespace (e.g., default)
apiKeystringNoAPI key sent as a Bearer token (leave blank for servers without auth)
scheduleIdstringYesID of the schedule to pause
reasonstringNoReason recorded in the schedule's notes

Output

ParameterTypeDescription
scheduleIdstringID of the paused schedule

temporal_unpause_schedule

Unpause a Temporal schedule so it resumes taking actions.

Input

ParameterTypeRequiredDescription
serverUrlstringYesBase URL of the Temporal server's HTTP API (e.g., http://localhost:7243\)
namespacestringYesTemporal namespace (e.g., default)
apiKeystringNoAPI key sent as a Bearer token (leave blank for servers without auth)
scheduleIdstringYesID of the schedule to unpause
reasonstringNoReason recorded in the schedule's notes

Output

ParameterTypeDescription
scheduleIdstringID of the unpaused schedule

temporal_trigger_schedule

Trigger an immediate action of a Temporal schedule, outside its normal spec.

Input

ParameterTypeRequiredDescription
serverUrlstringYesBase URL of the Temporal server's HTTP API (e.g., http://localhost:7243\)
namespacestringYesTemporal namespace (e.g., default)
apiKeystringNoAPI key sent as a Bearer token (leave blank for servers without auth)
scheduleIdstringYesID of the schedule to trigger
overlapPolicystringNoOverlap policy for the triggered action (defaults to the schedule's policy): SCHEDULE_OVERLAP_POLICY_SKIP, SCHEDULE_OVERLAP_POLICY_BUFFER_ONE, SCHEDULE_OVERLAP_POLICY_BUFFER_ALL, SCHEDULE_OVERLAP_POLICY_CANCEL_OTHER, SCHEDULE_OVERLAP_POLICY_TERMINATE_OTHER, or SCHEDULE_OVERLAP_POLICY_ALLOW_ALL

Output

ParameterTypeDescription
scheduleIdstringID of the triggered schedule

temporal_delete_schedule

Delete a Temporal schedule. Workflows already started by the schedule keep running.

Input

ParameterTypeRequiredDescription
serverUrlstringYesBase URL of the Temporal server's HTTP API (e.g., http://localhost:7243\)
namespacestringYesTemporal namespace (e.g., default)
apiKeystringNoAPI key sent as a Bearer token (leave blank for servers without auth)
scheduleIdstringYesID of the schedule to delete

Output

ParameterTypeDescription
scheduleIdstringID of the deleted schedule

On this page