For the complete documentation index, see
/llms.txt. This page is also available as raw Markdown at
/develop/go/activities/dynamic-activity.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=/develop/go/activities/dynamic-activity&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.
A Dynamic Activity in Temporal is an Activity that is invoked dynamically at runtime if no other Activity with the same name is registered.
An Activity can be registered as dynamic by using worker.RegisterDynamicActivity().
You must register the Activity with the Worker before it can be invoked.
Only one Dynamic Activity can be present on a Worker.
func DynamicActivity(ctx context.Context, args converter.EncodedValues) (string, error) {
var arg1, arg2 string
err := args.Get(&arg1, &arg2)
if err != nil {
return "", fmt.Errorf("failed to decode arguments: %w", err)
}
info := activity.GetInfo(ctx)
result := fmt.Sprintf("%s - %s - %s", info.WorkflowType.Name, arg1, arg2)
return result, nil
}