Skip to main content
The primary workflow. A single, data-driven workflow that serves every brand rather than one workflow per brand — behavior comes from the brand’s AutomationConfig, not from code.

Phases

A cancel signal is checked at each phase, so a workflow can be aborted partway without leaving the ticket in an inconsistent state.
This workflow handles one ticket end to end. For work that spans many tickets over hours — a backlog to clear, a cohort to chase — the supervisor is ActiveHorizonAgentWorkflow, which runs workflows like this one as its individual turns.

Signals and queries

A workflow sitting at the review gate waits indefinitely for review_decision. That is correct — it must not time out into either sending or dropping a customer reply — but it means an unattended review queue accumulates workflows rather than failing visibly. Alert on the count of workflows in the gate, not just on failures.

Function-calling loop

The LLM can call tools defined in the brand’s config. The workflow executes each tool call as a Temporal activity and feeds the result back:
The loop ends when the LLM returns content instead of tool calls. A maximum of 10 rounds is enforced, so a model that keeps calling tools cannot spin indefinitely.

Available tools

create_fulfillment, cancel_subscription, and skip_charge take real action on customer accounts. Which tools a brand exposes is part of its AutomationConfig — scope tool_definitions to what that brand’s agent should actually be able to do, and use the review gate for the rest.

Review gate

The gate compares the classification confidence against min_confidence. Below the threshold, the workflow waits for a review_decision signal rather than dispatching. escalation_always_review forces the gate on escalation paths regardless of confidence.

Runtime API

Every endpoint below, and the other ten workflow families, have generated reference pages with a live playground under the Temporal Engine API tab.
POST /v1/workflows/response/start, /v1/workflows/{id}/signal/review, and /v1/workflows/{id}/status are the deprecated v1 surface. New integrations should use the response-automation-v2 paths above.
Last modified on August 31, 2026