What a routine contains
A routine has one trigger and one action.
The one-trigger, one-action model keeps routines focused on a single question: when should this agent run? It doesn’t replace orchestration. When you need multiple actions, multiple agents, or conditional logic, create a workflow instead. The agent that a routine invokes can implement its own internal workflow by using frameworks such as Microsoft Agent Framework or LangGraph.
Trigger types
Routines support three trigger types: timer, recurring, and event. The API represents a recurring trigger with theschedule type.
How routines run
When you enable a routine, Foundry manages the trigger and dispatch path for you.- The trigger fires from a timer, a recurring schedule, or an external event.
- Foundry creates a routine run record in the project.
- Foundry invokes the configured agent endpoint with the routine input.
- The agent processes the request by using its configured model, instructions, tools, and dispatch identity.
- Foundry stores the routine run status and links the run to the agent response and trace details.
Connections, identity, and governance
Routines are scoped to a Foundry project. You manage routines with the same project governance model you use for agents, tools, and connections. For more information, see Azure role-based access control in Foundry. Event triggers use project connections to authenticate to the external system. For example, thegithub_issue trigger relies on a GitHub connector connection. The custom trigger with the teams provider relies on a Microsoft Teams connector connection. Foundry provisions these connections in your account’s connector namespace. For more information, see Add managed MCP servers powered by connector namespaces.
Every routine invokes its agent by using agent identity by default, regardless of the trigger type. If the agent has tools that require delegated user access, explicitly select creator identity when you create the routine. Creator identity means only the principal that creates the routine. It isn’t the agent creator, agent publisher, connection creator, a later routine editor, or another end user. You can’t supply an arbitrary end-user identity at dispatch time.
The dispatch identity is fixed at creation. To switch an existing routine between agent and creator identity, delete and recreate it. Connector authentication is separate from dispatch identity, so selecting creator identity doesn’t change the identity stored in a GitHub or Teams connection. For configuration details and a REST example, see Choose a dispatch identity.
This project-scoped design provides the following benefits:
- No separate scheduler resource to manage: Create and operate routines from Foundry instead of provisioning separate automation infrastructure.
- Shared governance: Apply project-level access control to routine management and agent invocation.
- Observable runs: Review routine runs alongside the agent responses and traces that they create.
Monitor and operate routines
After you create a routine, use the run history to understand what happened each time the trigger fired. Run history helps you answer operational questions such as:- Did the trigger fire?
- What input was sent to the agent?
- Did the agent invocation complete or fail?
- What response did the agent produce?
- Which trace contains the detailed model, tool, and latency information for that invocation?
Agent-scheduled reminders
Routines start an agent from an external trigger. A hosted agent can also schedule itself to run again later by calling a built-in reminder tool that you expose through a toolbox. The agent decides during a run that it needs to follow up, chooses the delay, and the service re-invokes the agent on the same conversation when the delay elapses. Use this pattern for agent-driven follow-ups, such as checking back on a long-running task. For steps, see Automate agents with routines.Routines and workflows
Routines and workflows both help automate agent scenarios, but they solve different problems.
Use a routine first when the automation is simply “run this agent when something happens.” Move to workflows when the automation needs coordination logic beyond a single agent invocation.
Limitations
Routines have the following limitations:- A routine has exactly one trigger and one action.
- Routines support prompt agents and hosted agents. They don’t support workflow agents.
- Routines can be one-shot timers, recurring schedules, or event-based. Supported event triggers are GitHub issue events and Microsoft Teams channel messages.
- The only action is invoking one agent through the Responses API or Invocations API. The agent protocol must match the action.
- Every routine uses agent identity by default. Creator identity is an explicit create-time opt-in and always means the principal that creates the routine.
- Routines support projects secured by a virtual network. They don’t support customer-managed key (CMK) encryption.
- Routines aren’t available in UK West, Switzerland West, Japan West, UAE North, or Norway East.
- Recurring schedules have a minimum interval of five minutes.
- A downstream agent request has a 30-second timeout per attempt and three total delivery attempts by default.