Docs / Integrations / Temporal

Temporal compatibility path

Use Temporal compatibility endpoint at activity boundaries. For new runtime families, use /adapters/http/* and the unified adapter contract.

Where to hook the intent check

Call Gvner before executing each side-effecting activity.
Include workflow/activity identifiers in context.
Persist returned audit_id in workflow history for evidence correlation.

Key endpoints

POST /temporal/intent — evaluate Temporal activity intent
GET /runtime/adapters/contracts — contract checks (openclaw + temporal + http_webhook)
GET /evidence/packet — export evidence for audits/incidents
GET /ops/incidents — incident correlation for denied/blocked execution

Payload mapping

{ "tenant_id": "acme", "agent_id": "temporal-activity-charge_customer", "intent": "workflow.activity.charge_customer", "requested_scopes": ["charge_card"], "tool": "temporal_activity", "context": { "workflow_id": "billing-run-2026-02", "workflow_type": "monthly_billing", "activity_type": "charge_customer" }, "requested_budget": 120.0, "work_type": "execution" }

Sample wrapper code

decision = post("/temporal/intent", payload, headers={"X-Tenant-Token": token}) if decision["decision"] != "ALLOWED": # fail closed: abort activity path return {"status": "blocked", "reason": decision["reason"], "audit_id": decision["audit_id"]} # run activity side effect only after ALLOWED result = execute_activity(activity_name, activity_input)

Fail-closed requirement

Required: unreachable governance endpoint, invalid response, or DENIED must block activity execution.

Relevant console pages

Evidence/export workflow

Every activity decision returns audit_id for immutable linkage.
Use Evidence and Exports for package generation.
Use Regulator Packet for external review submissions.