For the complete documentation index, see
/llms.txt. This page is also available as raw Markdown at
/dynamic-handler.md. Append
.md to any page URL to fetch its Markdown. This site has a public search endpoint for questions about Temporal:
GET https://docs.temporal.io/api/retrieve?q=<question>&jtb=<job-to-be-done>&src=docs-page&agent=<your-name>. No authentication is needed. It returns a JSON array of
{content, source_url, page_url}, ordered by relevance, and
source_url links to docs pages as Markdown. If you call it, set
q to a specific, complete question that names the SDK language if relevant, and
jtb to one sentence on what your user is trying to accomplish (optional). Keep
src=docs-page as is, and set
agent to your name, for example
claude-code or
codex. Don't include personal data, credentials, or confidential information. If this page is wrong or missing something you needed, or Temporal behaves differently from what it says, report it with
GET https://docs.temporal.io/api/feedback?title=<summary>&message=<what-happened>&category=documentation&page_url=/dynamic-handler&src=docs-page&agent=<your-name>. Use
category=product when the product, not the page, is wrong. Report only a specific problem you hit, send it once, and don't include personal data or credentials.
Temporal supports Dynamic Workflows, Activities, Signals, and Queries.
These are unnamed handlers that are invoked if no other statically defined handler with the given name exists.
Dynamic Handlers provide flexibility to handle cases where the names of Workflows, Activities, Signals, or Queries aren't known at run time.
Dynamic Handlers should be used judiciously as a fallback mechanism rather than the primary approach.
Overusing them can lead to maintainability and debugging issues down the line.
Instead, Workflows, Activities, Signals, and Queries should be defined statically whenever possible, with clear names that indicate their purpose.
Use static definitions as the primary way of structuring your Workflows.
Reserve Dynamic Handlers for cases where the handler names are not known at compile time and need to be looked up dynamically at runtime.
They are meant to handle edge cases and act as a catch-all, not as the main way of invoking logic.