Skip to content

Cookie preferences

We use cookies for our own analytics, to see how our campaigns perform and, if you allow it, to load content from other services such as the Google site search. We never sell your data. Necessary cookies keep the site working and cannot be switched off. See our Cookie Policy for details and our Privacy Policy for how we handle personal data.

Security, load balancing and remembering your cookie choice.

Show us which pages people read and how they find the site, so we can improve it (Google Analytics).

Show us which of our ad campaigns bring visitors to the site and remember the campaign or partner link you arrived from (Google Ads, partner program). We do not use these cookies to build advertising profiles.

Load the site search from Google when you use it. Google sets its own cookies and shows ads in the search results.

© 2026 The ThingsBoard Authors
Try for free

ThingsBoard Cloud

Choose your data region

Your data stays in the region you choose, for residency and compliance. No credit card required.

Rather run it yourself? Install on your own servers

Update Multiple Attributes

  • Widget
  • v1.0.0
  • Sep 1, 2026
  • MIT license
  • v4.2+ | Built-in

Allows to create an input form and set multiple values of the entity. Each input value may be stored as an attribute or time series data. Each input field is highly customizable via input types, value conversion functions, etc.

Widget Type
  • Latest
Category
  • Input Forms

Who it’s for

Anyone who needs a dashboard to capture input rather than only display it — commissioning engineers entering per-device calibration constants, operators recording a manual reading, technicians setting thresholds the rest of the platform depends on. The alternative is editing attributes one at a time in the entity details, which does not scale past a handful of devices.

What it does

The Update Multiple Attributes widget builds an input form from the data keys you configure and writes every field back to the entity on save. Each key becomes a field, with its own input type and optional conversion function, and the values are stored as attributes or as time series depending on how each key is set up.

  • A form, not a control — several values entered together and committed in one action, which matches how commissioning data is actually collected.
  • Each field carries its own input type, so text, numbers, booleans and dates each get an appropriate control.
  • Conversion functions shape what is stored, so what the operator types and what the device expects need not be the same.
  • Fields for several entities can be grouped under titles, which lets one form cover a device and its parent asset.
  • Layout is configurable — rows or columns, a set number of fields per row, and explicit gaps — so a long form stays readable.
  • Save and undo buttons are optional and relabellable, and the form can be set to write every field rather than only the changed ones.
  • The Update Multiple Attributes widget writes what is in its fields: it sends no RPC and commands nothing, so a device that must act immediately needs a control widget as well.

How to set up

Data keys

The Update Multiple Attributes widget takes one form field per data key.

KeyRoleTypeDescription
Any keyOne input fieldAttributeTime series keys work too and are written as telemetry. Each key’s own settings decide its input type, its label, whether it is required, and any conversion applied before saving.

Add one key per field, set each one’s input type, and check the write scope. A key added as a server attribute is written where the platform can read it and the device cannot, and a form intended to configure firmware needs shared scope instead.

Form

SettingDefaultEffect
Show action buttonsOnShows the save and undo buttons
Update all values, not only modifiedOffWrites every field on save rather than only the changed ones
‘SAVE’ / ‘UNDO’ button labelPlatform defaultThe button text
Show title for group of fieldsOffCaptions each entity’s group of fields
Fields alignmentRowLays fields out in rows or in a column
Number of fields in the rowPlatform defaultHow many fields share a row
Show result messageOnConfirms the save on screen

How to customize

  • To lay out a long form — set Fields alignment and the Number of fields in the row, then adjust the row and column gaps.
  • To label the action in the operator’s terms — set the ‘SAVE’ button label to something like Apply calibration.
  • To write everything every time — turn on Update all values, not only modified, which suits a form whose values must be re-asserted together.
  • To separate entities visually — turn on the group title and set its text, so a device’s fields do not run into its asset’s.
  • To make a form read-only-ish — turn off Show action buttons where the form is submitted by a dashboard action instead.
  • To shape what is stored — set a conversion function on the individual data key.

Tips

  • Mark the fields that must be filled as required on the key rather than trusting the operator. Commissioning forms get completed under time pressure, and a missing calibration constant is discovered weeks later as a sensor that reads plausibly and wrongly.
  • Keep one form to one purpose. A form mixing calibration constants with an occasional manual reading gets saved in full every time, and the setting nobody meant to touch is re-asserted along with everything else.

Share Your Widget with the Community

Built a custom widget? Export it as a JSON from ThingsBoard and publish it to the IoT Hub through a simple 4-step wizard (Upload, Listing, Readme, Review & Submit). Share it with thousands of ThingsBoard developers worldwide and get featured in the catalog.