Scheduler extensibility points

Prev Next

Overview

The Turbo360 scheduler includes extensibility points that let you call your own code during a schedule run, without writing code directly in the scheduler. These extensibility points are called Actions.

Actions are available at two levels:

  • Schedule level: the action fires before or after the entire schedule run.

  • Resource level: the action fires before or after an individual resource operation within the schedule.

Business value

Extensibility points let you coordinate the scheduler with external systems (monitoring tools, runbooks, and custom scripts) without modifying the schedule configuration itself. This keeps automation workflows consistent and reduces manual intervention during planned resource operations.

Prerequisites

  • A Turbo360 schedule must already be configured before adding extensibility points.

  • You must have an HTTP endpoint ready to receive calls from the scheduler (a Logic App, Azure Function, or equivalent).

Required permissions

Any user who needs to configure extensibility point actions requires the Optimization feature permission set to Manage on their role. Users with Read access can view schedule configurations but cannot add or modify actions.

How it works

The Turbo360 scheduler integrates with extensibility points by calling an HTTP endpoint that you provide. Connect the scheduler to a Logic App, an Azure Function, or any HTTP-accessible service; your custom code stays under your control while the scheduler handles the trigger.

For example, Turbo360 can call a Logic App, which in turn triggers an Azure Automation Runbook, enabling multi-step automation chains without custom code in the scheduler.

Each action is configured independently at either the schedule or resource level. You specify a before action, an after action, or both. Before actions run prior to the schedule or resource operation; after actions run once it completes.

Steps

You can configure actions at the schedule level or the resource level; navigate to your schedule in Cost Analyzer to get started.

Add an action at the schedule level

  • Adding an action at the schedule level lets you trigger an external endpoint before or after the entire schedule run, which can be useful for pausing monitoring groups or triggering post-run notifications.

  • Select the Configure Actions button on the schedule.

Add an action at the resource level

  • Adding an action at the resource level lets you trigger an external endpoint before or after an individual resource operation, which can be useful for running a PowerShell script to safely shut down services before a VM is stopped, or logging an event after it starts.

  • Open the resource list within the schedule and click the Configure link next to the target resource.

Configure the action

Configuring an action sets the HTTP endpoint the scheduler calls and controls when the call fires relative to the schedule or resource operation.

On the configuration form, enable the before action, the after action, or both using the radio button, then enter the connection details for your HTTP endpoint.

  • You can add a description to the action — for example, to identify which Logic App the scheduler is calling.

  • You can include additional HTTP headers or a message body to pass context to the endpoint.

Field

Description

Required

Before action

Toggle to enable an action that fires before the schedule or resource operation runs.

No

After action

Toggle to enable an action that fires after the schedule or resource operation completes.

NO

Http endpoint URL

The URL of the Logic App, Azure Function, or HTTP-accessible service the scheduler calls.

Yes

Description

Optional label to identify the action — for example, the name of the Logic App being called.

No

Additional HTTP headers

Key-value pairs added to the HTTP request sent to the endpoint.

No

Message body

Payload sent with the HTTP request, used to pass context to the endpoint.

No

Example scenario

The following scenario illustrates how schedule-level and resource-level actions work together in a single scheduled VM shutdown and restart operation:

 1. Before the schedule runs: a schedule-level before action calls a Logic App that disables a monitoring group, preventing false alerts while VMs are shut down.

 2. Before each VM is stopped: a resource-level before action runs a PowerShell command to safely stop services on the VM before the scheduler issues the shutdown command.

 3. After each VM starts: a resource-level after action runs a PowerShell command to log a startup event to the Windows event log.

 4. After the schedule completes: a schedule-level after action re-enables the monitoring group.

Troubleshooting

 1. Action does not appear to fire during a schedule run
Cause: The action may not be enabled; the radio button must be toggled on before saving the configuration.
Fix: Open the action configuration form and confirm the before or after toggle is active. Save the configuration and re-run the schedule.

 2. HTTP endpoint returns an error and the schedule run is affected
Cause: The endpoint URL is unreachable, or the Logic App or Azure Function returned a non-2xx response.
Fix: Verify the endpoint URL is correct and publicly accessible from Turbo360. Check the Logic App or Azure Function run history for error details.

 3. Configure link is not visible at the resource level
Cause: The resource may not yet be added to the schedule, or the resource list has not fully loaded.
Fix: Confirm the resource appears in the schedule's resource list. Refresh the page and retry.

 4. Action fires but the HTTP endpoint receives no message body or headers
Cause: The message body and additional HTTP headers fields were left blank in the action configuration.
Fix: Open the action configuration form and populate the message body and header fields as required by your endpoint.

FAQs

1. Can an action failure block or stop a schedule run?
Yes. If a before action returns a non-2xx response or is unreachable, the scheduler treats the call as failed. Check your endpoint's availability and review its run history if a schedule does not proceed as expected after an action is configured.

2. What authentication methods does the HTTP endpoint support?
The scheduler calls the endpoint as a standard HTTP request. Authentication is handled at the endpoint itself — for example, a Logic App HTTP trigger can be secured with its built-in SAS key, and an Azure Function can require a function key. Pass any required credentials via the Additional HTTP headers field in the action configuration.

3. Can schedule-level and resource-level actions be configured on the same schedule?
Yes. Both levels are independent and can be configured simultaneously. A schedule can have a schedule-level before action, a schedule-level after action, resource-level before and after actions on individual resources, or any combination. Each fires at its own point in the execution sequence.

The following starter kit Logic App templates are available to help you set up common extensibility scenarios. Copy the JSON template from the relevant article and deploy it to your Azure Logic App, then connect the endpoint to the Turbo360 scheduler.

1. Schedule level examples

2.  Resource level examples