Plugins 〉Business Forms


Developer

Volkov Labs

Sign up to receive occasional product news and updates:



Panel
community

Business Forms

  • Overview
  • Installation
  • Change log
  • Related content

Business Forms for Grafana

Forms

Grafana YouTube CI E2E Codecov CodeQL

🚀 Introduction

The Business Forms panel is a groundbreaking plugin for Grafana, designed to empower users by allowing direct interaction with application data and configurations within dashboards. Whether you're managing data or customizing settings, this plugin streamlines workflows with an intuitive interface.

Use REST API, Data Source, and Queries to Manipulate Your Data

📋 Requirements

Ensure your Grafana version meets the following requirements for compatibility with Business Forms:

  • Business Forms 6.X: Grafana 11 or 12
  • Business Forms 4.X, 5.X: Grafana 10.3 or 11
  • Data Manipulation 3.X: Grafana 9 or 10
  • Data Manipulation 2.X: Grafana 8.5 or 9
  • Data Manipulation 1.X: Grafana 8

🛠️ Getting Started

Install the Business Forms panel easily via the Grafana Plugins Catalog or using the Grafana CLI.

Install via Grafana CLI

grafana cli plugins install volkovlabs-form-panel

Install Business Suite Plugins in Cloud, OSS, Enterprise

✨ Key Features

  • Customizable Forms: Create tailored forms to suit your specific needs.
  • Custom Code Support: Write custom code for initial and update requests.
  • API Integration: Supports GET, DELETE, PATCH, POST, and PUT requests for data manipulation.
  • Request Headers: Add custom headers to initial and update requests.
  • Flexible UI: Customize Submit/Reset buttons and form layouts.
  • Sectional Layouts: Organize form elements into distinct sections.
  • User Confirmation: Prompt users for confirmation before executing updates.
  • Payload Control: Send all data or only updated elements in requests.
  • Notifications: Display success/error messages via custom code.
  • Code Suggestions: Get parameter suggestions in the built-in code editor.

📚 Documentation

Explore detailed guides and resources to maximize the potential of Business Forms:

SectionDescription
Data FlowUnderstand data flow and its specifics.
Form ElementsLearn about form element configurations.
REST APIDive into REST API architecture and NGINX usage.
Custom CodeAccess plugin options, API responses, and Grafana services.
FeaturesExplore all plugin capabilities.
ServersView examples of API server implementations.
TutorialsFollow step-by-step guides.
Release NotesStay updated with the latest features and fixes.

🌟 Business Suite for Grafana

Business Forms is part of the Business Suite, a collection of open-source plugins by Volkov Labs. These plugins solve common business challenges with user-friendly interfaces, comprehensive documentation, and video tutorials.

Business Suite for Grafana

📜 License

This project is licensed under the Apache License Version 2.0. See the LICENSE file for details.

Installing Business Forms on Grafana Cloud:

For more information, visit the docs on plugin installation.

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[6.2.0] - 2025-09-02

Changed

  • Update race condition for initial request (#619).

[6.1.0] - 2025-08-31

Changed

  • Updated ESLint configuration for improved code quality (#611).
  • Updated Development Provisioning (#616).

[6.0.0] - 2025-07-21

Breaking Changes

  • Now requires Grafana 11 and Grafana 12.

Added

  • Added TimeZone option for Date element (#604).

Changed

  • Updated to Grafana 12.0 and related dependencies (#607).

[5.1.0] - 2025-02-26

Added

  • Introduced isEscaping option for TextArea and CodeEditor elements (#581).
  • Added support for streaming state for data (#577).

Changed

  • Refactored form elements for better maintainability (#576).
  • Updated to Grafana 11.5 and dependencies (#582).
  • Enhanced release workflow to include attestation (#582).

[5.0.0] - 2024-12-23

Breaking Changes

  • Dashboard variables in Show If, Disabled, and Options are now replaced automatically. The replaceVariables function is no longer required and has been removed.

Added

  • Introduced Form element of type Color (#561).
  • Added support for variables in data sources (#564).

Changed

  • Updated change value behavior for custom options (#562).
  • Improved handling of new lines in Text Area and Code Editor (#563).
  • Updated packages for Code Editor (#569).
  • Enhanced element helpers (#570).
  • Updated to Grafana 11.4.0 and dependencies (#571).

[4.9.0] - 2024-11-16

Added

  • Added HTML and Markdown to supported Code Editor languages (#543).
  • Introduced functionality for updating sections dynamically (#542).

Changed

  • Removed DatasourceResponseError, moved to external Components (#535).
  • Updated options to use datasource ID instead of name (#539).
  • Improved E2E tests (#538).
  • Updated refresh function in the Update Request (#547).
  • Removed default payload from Update Request (#550).

[4.8.0] - 2024-10-25

Added

  • Introduced Date Form element (#520).
  • Added handling for Data Source Request Errors (#530).

Changed

  • Updated refresh mechanism for dashboard scene (#522).
  • Enhanced Text Area and Code Editor elements to escape multi-lines (#520).
  • Updated refresh for dashboard scene using useDashboardRefresh hook (#528).
  • Updated to Grafana 11.3.0 and dependencies (#531).

[4.7.0] - 2024-10-08

Added

  • Added custom input for Select and Multi-Select elements (#507).
  • Introduced support for frames in initial fields (#508).

Changed

  • Updated Autosize Code Editor toolbar (#506).
  • Improved behavior for disabled Text Area element (#514).

[4.6.0] - 2024-09-28

Added

  • Added Wrap button in the Code Editor (#491).
  • Introduced Label Background and Label Color for Button element (#502).

Changed

  • Updated initial values for elements from data source (#490).
  • Improved loading bar for Initial Request (#492).

[4.5.0] - 2024-09-06

Added

  • Added support for dashboard variables in button titles (#479).
  • Introduced variable support in sections and labels (#485).

Changed

  • Updated date and time input timezone handling (#452).
  • Improved suggestions position in Code elements (#483).

[4.4.0] - 2024-08-29

Added

  • Introduced Expandable Editors (#472).

Changed

  • Updated Pre-Selection for multi-selection elements (#474).
  • Improved data source query display error handling (#477).

[4.3.1] - 2024-08-16

Fixed

  • Fixed migration helper for undefined nested object properties (#468).

[4.3.0] - 2024-08-12

Added

  • Added helpers for form elements (#460).
  • Introduced element custom button (#463).

Changed

  • Updated payload options migration (#464).

[4.2.0] - 2024-07-18

Changed

  • Updated Docker Compose and E2E pipeline (#446, #447).
  • Improved unit tests (#447).
  • Updated Business Forms tutorial (#451).
  • Enhanced logic for comparing values with initial values (#454).
  • Updated position of Query fields for initial values (#455).

[4.1.0] - 2024-07-09

Changed

  • Updated context parameters migration (#433).
  • Enhanced provisioning files (#433).
  • Updated Checkbox list with custom options (#435).
  • Improved code defaults to use context properties (#438).
  • Updated E2E workflow using Docker (#441).

[4.0.0] - 2024-07-01

Breaking Changes

  • Now requires Grafana 10 and Grafana 11.
  • Data Source requests updated to use Query Editor.
  • Removed non-context code parameters. Please update parameters to use context.

Migration Guide

  • datacontext.panel.data
  • elementscontext.panel.elements
  • initialcontext.panel.initial
  • initialRequestcontext.panel.initialRequest
  • locationServicecontext.grafana.locationService
  • notifyErrorcontext.grafana.notifyError
  • notifySuccesscontext.grafana.notifySuccess
  • notifyWarningcontext.grafana.notifyWarning
  • onChangecontext.panel.onChange
  • onOptionsChangecontext.panel.onOptionsChange
  • optionscontext.panel.options
  • replaceVariablescontext.grafana.replaceVariables
  • responsecontext.panel.response
  • setInitialcontext.panel.setInitial
  • templateServicecontext.grafana.templateService
  • toDataQueryResponsecontext.utils.toDataQueryResponse

Added

  • Added support for frontend data sources (#361).
  • Introduced custom color/background color for elements (#386).
  • Added collapsible sections (#409).

Changed

  • Renamed to Business Forms Panel (#361).
  • Updated selected type for new options (#402).
  • Prepared for Grafana 11 compatibility (#399).
  • Updated Reset button handler (#422).
  • Enhanced Confirmation Window (#420).
  • Improved error handling in code editors for showIf, disableIf, and getOptions (#410).
  • Updated description for Get Options Code (#404).
  • Updated to Grafana 11.1 and dependencies (#426).
  • Enhanced Date Time query field (#429).

[3.8.0] - 2024-05-30

Added

  • Introduced Checkbox List element (#382).
  • Added syntax support in Code Editor (#383).
  • Implemented plugin E2E tests, removed Cypress (#390).
  • Added server-based form elements example (#392).
  • Introduced input type time (#385).
  • Added form validation provisioning dashboard (#411).

Changed

  • Improved hiding/showing multi-select element (#389).
  • Updated allowed files for file type (#388).

[3.7.0] - 2024-03-10

Breaking Changes

  • Now requires Grafana 9.2 and Grafana 10.

Added

  • Added update enabled option and variables examples (#356).
  • Introduced files upload examples (#357).
  • Added code parameters with builder and initial request to element value changed code (#358).
  • Introduced ability to disable columns in confirmation modal (#360).
  • Added multiple files option (#375).

Changed

  • Updated dependencies and Actions (#368).
  • Added skipping elements hidden using Show If from update payload (#369).

[3.6.0] - 2023-01-10

Added

  • Introduced backend service to custom code (#331).
  • Added support for file base64 encoding in payload (#331).
  • Introduced context parameter to Payload (#331).

Fixed

  • Fixed element custom options source (#334).

[3.5.0] - 2023-01-04

Added

  • Introduced disableIf code (#321).
  • Added code options source for select element (#323).
  • Introduced value changed code (#324).
  • Added suggestions for code editors (#327).
  • Introduced reset button confirmation (#328).

Changed

  • Updated reset request visibility if reset button is hidden (#322).
  • Updated to Node 20 (#326).

[3.4.0] - 2023-12-14

Added

  • Added ability to disable panel syncing (#298).
  • Introduced EventBus and AppEvents to Context (#307).
  • Added options migration (#315).

Changed

  • Updated ESLint configuration and refactored code (#299).
  • Updated Collapse from @volkovlabs/components (#299).
  • Added replacing variables in Payload functions (#309).
  • Updated to Grafana 10.2.2 and Volkov Labs packages (#313).

Fixed

  • Fixed draggable control to support upcoming Grafana changes (#314).

[3.3.0] - 2023-11-21

Added

  • Introduced Disabled Text Area element type (#243).
  • Added Confirmation Window options (#242).
  • Introduced Context object to custom code (#255).
  • Added Select Options From Query (#254).
  • Introduced NumberInput component allowing decimals (#291).
  • Added Autosize Code Editor (#295).
  • Introduced Data Source option for Reset button (#296).
  • Added Link Element (#297).

Changed

  • Updated to Plugin Tools 2.1.1 (#292).
  • Used Grafana Access Policy to sign plugin (#292).
  • Updated to Grafana 10.2.1 (#292).
  • Updated ESLint configuration (#294).

Fixed

  • Fixed ability to enter zero value in number field (#288).

[3.2.1] - 2023-09-07

Added

  • Added backward compatibility for option ID (#244).

[3.2.0] - 2023-09-06

Added

  • Introduced min and max date for DateTime element (#225).
  • Added mapping Data Source values to elements (#224).
  • Introduced clearing errors before initial and update requests (#232).
  • Added URL encode to variables (#231).
  • Introduced Query Field Picker for Initial Request (#227).
  • Added File element type for File Upload (#229).
  • Introduced loading states for Initial, Update, and Reset button actions (#234).
  • Added support for asynchronous custom code (#234).
  • Introduced icons for radio and select options (#238).

Changed

  • Updated element Show If to support variables (#230).
  • Allowed empty section name (#228).
  • Added converting option value to string and number based on type (#233).
  • Updated Query and Data Source initial request (#237).

[3.1.0] - 2023-08-13

Added

  • Introduced onChange to update elements in local state within custom code (#214).
  • Added Multi-Select element (#217).
  • Introduced conditional element visibility (#219).
  • Added custom payload code editor (#220).
  • Introduced custom reset code editor (#221).
  • Added Data Source request (#222).

Changed

  • Updated Jest selectors to use npm package (#209).
  • Updated ESLint configuration (#215).

[3.0.0] - 2023-07-15

Breaking Changes

  • Now requires Grafana 9 and Grafana 10.
  • Form Elements are kept in local state and not saved in the dashboard by default.
  • Local states and elements refactoring may introduce breaking changes. Please test before using in Production.

Added

  • Introduced hidden option to String element (#171).
  • Added E2E Cypress testing (#180).
  • Introduced notifyWarning() function (#201).
  • Added drag and drop for elements editor (#202).
  • Introduced vertical layout orientation (#206).

Changed

  • Updated Documentation for API Servers (#149).
  • Updated to Grafana 10.0.0 (#165, #172, #184, #200).
  • Increased Test Coverage and updated Test library (#181, #183, #185).
  • Updated Form Elements to delay save changes with auto-save (#186).
  • Migrated to Plugin Tools 1.5.2 (#187, #192).
  • Updated to Node 18 (#188).
  • Updated constants and E2E tests (#190).
  • Updated Form elements to use local state (#191).
  • Removed Grafana 8.5 support (#203).
  • Added running initial request on initial updates (#205).

[2.8.0] - 2023-03-16

Added

  • Introduced String, Number Type for Select and Radio options (#120).
  • Added lookup options for Disabled element (#121).
  • Introduced Server API with MySQL for Feedback Dashboard (#125).
  • Added option for DELETE request (#130).
  • Introduced "Buttons only" Layout to do GET/POST/DELETE requests (#131).
  • Added NoPadding to remove extra padding around and make it configurable (#146).

Changed

  • Updated to Grafana 9.3.1 (#129).
  • Updated to Grafana 9.4.3 (#146).
  • Updated README and moved Documentation to docs.volkovlabs.io (#132).
  • Updated README and Documentation (#134, #147).
  • Refactored API Servers (#128).
  • Updated CI and Release workflows (#145).

Fixed

  • Fixed Password and Boolean elements confirmation (#120).

[2.7.0] - 2022-11-10

Added

  • Introduced status notification after form submission (#98).
  • Added Monaco Code Editor suggestions for available parameters (#88).
  • Introduced initial values parameter to Update Request parameters (#117).

Changed

  • Updated to Grafana 9.2.2 (#113).
  • Updated CI to upload signed artifacts (#116).
  • Allowed sending all or updated-only values in Payload (#116).

[2.6.0] - 2022-10-23

Added

  • Introduced Compatibility Check Workflow (#92).
  • Added custom code to update variable after update request (#106).
  • Introduced Number Input and Slider min, max validation (#95).
  • Added initialization of element value from a Data Source query (#105).

Changed

  • Updated to Grafana 9.1.6 (#92).
  • Updated CI to Node 16 and synchronized with Release workflow (#109).

Fixed

  • Fixed initial GET request date time formatting (#99).

[2.5.0] - 2022-09-10

Added

  • Introduced Request Header check (#85).
  • Added exposed initialRequest() in Custom Code to reload panel (#89).

Changed

  • Set json as response data from Initial Request (#90).
  • Updated to Grafana 9.1.4 (#91).

[2.4.0] - 2022-08-31

Added

  • Introduced variables in URL to call from form elements (#78).
  • Added Deno Deploy Playground server and dashboard (#80).
  • Introduced "How to Manipulate Data using Grafana dashboard" video in README (#80).

Changed

  • Updated to Grafana 9.1.1 (#72).
  • Explained how to use Dashboard Variables in README (#73).
  • Added onOptionsChange in examples to update the panel (#75).
  • Added Custom Update Request to README (#79).
  • Showed Title instead of Id in the Confirmation Panel (#81).
  • Avoided showing confirmation for disabled elements (#77).
  • Improved Test Coverage (#21).

[2.3.0] - 2022-08-11

Breaking Changes

  • Signed as Community Plugin.

Changed

  • Updated Sample code in README (#67).
  • Updated to be included in the Grafana Marketplace (#68).

[2.2.0] - 2022-08-09

Added

  • Introduced ability to get Elements Initial Value and Configuration from Data Source (#22).

Changed

  • Updated to Grafana 9.0.6 (#63).
  • Updated Alert when no elements defined (#66).

Fixed

  • Fixed Number Slider not updated properly (#18).

[2.1.0] - 2022-07-17

Added

  • Introduced Automatic Code Editor Formatting (#59).

Changed

  • Rebuilt based on 9.0.3 (#58).
  • Explained Custom code in README (#60).
  • Updated YouTube link with tutorial in README (#61).

[2.0.0] - 2022-06-17

Breaking Changes

  • Now requires Grafana 8.3+ and 9.0+.

Changed

  • Rebuilt based on 9.0.0 (#53).

[1.4.0] - 2022-05-30

Added

  • Introduced highlight for changed values (#51).
  • Added confirmation before Submit (#52).

Changed

  • Allowed updating Element Width (#50).

[1.3.0] - 2022-05-22

Added

  • Introduced layout to have sections for Form Fields (#47).
  • Added None Request for Initial and Update requests (#48).
  • Introduced Code Editor Element for Configuration Forms (#23).

Changed

  • Updated Architecture Diagram (#44).
  • Updated layout to have sections for Form Fields (#47).

Fixed

  • Fixed changing colors on Submit not working properly (#43).

[1.2.0] - 2022-05-19

Added

  • Introduced Label Width and Tooltip (#39).
  • Added Server API with Postgres for Feedback Dashboard (#36).
  • Introduced Input Parameters to Form Elements (#41).

[1.1.0] - 2022-05-12

Added

  • Introduced Disabled Element (#24).
  • Added ability to move elements up and down (#19).
  • Introduced Split Disabled layout for Input/Output (#27).
  • Added Interpolate Variables (#28).
  • Introduced Min and Max for Numbers (#29).
  • Added Unit Label (#31).
  • Introduced Header Parameters (#32).
  • Added Password Input (#33).
  • Introduced Subscription to Refresh Events (#30).

[1.0.0] - 2022-05-11

Added

  • Initial release based on the Volkov Labs Panel template 1.5.0.