diff --git a/netbox/templates/extras/script.html b/netbox/templates/extras/script.html
index 6fbcde322..a6094a862 100644
--- a/netbox/templates/extras/script.html
+++ b/netbox/templates/extras/script.html
@@ -47,16 +47,44 @@
{% csrf_token %}
{% if form.requires_input %}
-
-
Script Data
-
+ {% if script.Meta.fieldsets %}
+ {# Render grouped fields according to declared fieldsets #}
+ {% for group, fields in script.Meta.fieldsets %}
+
+
+
+ {% if group %}
+ {{ group }}
+ {% else %}
+ {{ model|meta:"verbose_name"|bettertitle }}
+ {% endif %}
+
+
+ {% for name in fields %}
+ {% with field=form|getfield:name %}
+ {% if field.name in form.nullable_fields %}
+ {% render_field field bulk_nullable=True %}
+ {% else %}
+ {% render_field field %}
+ {% endif %}
+ {% endwith %}
+ {% endfor %}
+
+ {% endfor %}
+ {% else %}
+ {# Render all fields as a single group #}
+
+
Script Data
+
+ {% render_form form %}
+ {% endif %}
{% else %}
This script does not require any input to run.
+ {% render_form form %}
{% endif %}
- {% render_form form %}