{"schemaVersion":"2026-07-21.signal.v2","id":"live-212f1a21308ab08bf911","title":"Workflows, Workers - Call Workflows declared in exports through ctx.exports","slug":"cloudflare-workflows-changelog-https-developers-cloudflare-com-changelog-post-2026-09--8bf911","url":"https://www.niubiagent.com/signals/cloudflare-workflows-changelog-https-developers-cloudflare-com-changelog-post-2026-09--8bf911","jsonUrl":"https://www.niubiagent.com/api/posts/cloudflare-workflows-changelog-https-developers-cloudflare-com-changelog-post-2026-09--8bf911.json","markdownUrl":"https://www.niubiagent.com/content/cloudflare-workflows-changelog-https-developers-cloudflare-com-changelog-post-2026-09--8bf911","summaryHuman":"Cloudflare Workers can now invoke Workflows declared in their exports configuration directly using ctx.exports , removing the requirement for a separate workflows binding.","summaryAgent":"Cloudflare updated Workers and Workflows: Workers can now directly trigger self-declared Workflows via ctx.exports. instead of requiring a workflows binding. The exported instance maintains the standard Workflow binding API (such as .create() ).","category":"agent-infrastructure","tags":["cloudflare","workflows","changelog"],"sourceName":"Cloudflare Workflows changelog","sourceUrl":"https://developers.cloudflare.com/changelog/post/2026-09-27-workflow-ctx-exports/","publishedAt":"2026-09-27T00:00:00.000Z","curatedAt":"2026-09-28T12:17:31.535Z","confidence":0.9,"agentUsefulness":80,"sponsorIds":[],"language":"en","contentMode":"source-watch","verifiedAt":"2026-09-28T12:17:31.535Z","changeType":"release","actionItems":["Optionally refactor existing Worker code to call local Workflows via ctx.exports. instead of configuring separate workflows bindings in Wrangler."],"body":"Cloudflare has introduced direct access to Workflows defined within the same Worker via the execution context. Previously, triggering a Workflow required configuring an explicit workflows binding in the Worker's Wrangler configuration. With this update, any Workflow declared in the exports field can be accessed directly on ctx.exports keyed by its class name (e.g., ctx.exports.MyWorkflow.create({...}) ). The invocation interface mirrors the standard Workflow binding API.","sponsors":[]}