By - Ravindra RathoreOptimizely CMS lets developers add job parameters—such as textboxes and checkboxes—directly to the scheduled job admin UI using PlugInProperty. With this approach, both developers and admins can manage configuration instantly in the UI—no code deployments, content lookups, or custom content types.
To add editable fields to a scheduled job, simply decorate public properties with PlugInProperty. The admin UI will automatically display those properties as input controls. Supported controls include:
Here are examples using different UI controls:
// TextBox for email input
[PlugInProperty(AdminControl = typeof(TextBox), AdminControlValue = "Text", Description = "Emails (comma-separated)")]
public string ReportEmailAddresses { get; set; }
// CheckBox for boolean flags
[PlugInProperty(AdminControl = typeof(CheckBox), AdminControlValue = "Checked", Description = "Enable notification emails")]
public bool EmailReportEnabled { get; set; }
All PlugInProperty fields are exposed as regular public properties in your scheduled job class. When the job runs, access them directly—no need for content queries or settings lookups:
public override string Execute()
{
var emails = ReportEmailAddresses; // Textbox input (string)
var enableNotifications = EmailReportEnabled; // Checkbox (bool)
// ... main job code ...
return "Job completed successfully";
}
This pattern keeps your code simple, avoids reliance on start page/settings page models, and improves maintainability.
PlugInProperty is highly flexible. Use it to:
[PlugInProperty].[ScheduledPlugIn].All configuration fields presented above will appear as editable, admin-accessible inputs. Any change made in the UI is available immediately on the next scheduled job execution.
PlugInProperty supercharges scheduled jobs in Optimizely CMS—making them flexible, developer-friendly, and highly maintainable. With instant configuration, direct code access to properties, and diverse control types, you can deliver powerful job configuration to CMS admins and keep your own code clean and future-proof.
Integrate PlugInProperty to streamline daily maintenance and minimize project complexity.
Thanks for reading and happy coding!
Ravindra S. Rathore