Label Printing in Benchling allows you to take sample data from your Benchling instance, design a label with critical attributes, print your label, and paste it on containers/locations in your physical lab space. Benchling supports printing labels for any box, plate, container, or registered entity you track. Benchling’s label printing capabilities help you achieve complete sample and process traceability. Improve adoption and efficiency of your scientists' work by quickly associating your physical laboratory samples with samples within Benchling. Add different characteristics to your label such as tube barcode, sample name, and date created and you can know how the physical sample traces back to the registered entity within Benchling.
Generally, the end-to-end process for printing labels involves the following steps:
- Configure and connect your printer
- Design your label template
- Upload your template to Benchling or ensure integrated tools are connected to Benchling
- Preview your label in Benchling
- Print your labels
Before getting started with label printing, it is important to understand the following:
- Item: The object you're labeling (e.g., container, box, or plate)
- Label template: Created in Zebra Designer or BarTender, includes layout criteria, Benchling-recognized fields and, optionally, any basic logos or visuals
- Printer: Where the label is physically printed. Must support Zebra Programming Language (ZPL) or be able to integrate with BarTender
You can print labels individually or in bulk from:
- Inventory
- Registry
- Structured tables within Notebook entries
- Global Search
Printer options
For compatibility with Benchling's label printing capabilities, printers must:
- Have ZPL compatibility
-
Have Ethernet (Recommended) or USB connection
- USB is supported but not recommended
Recommended printer
We recommend the ZD400 series. This printer series can support many connectivity options in the long term, but any printer that supports Zebra's Link-OS and/or BarTender is acceptable. Ultimately, choose the printer that best suits your lab and workflow for printing your thermal transfer labels.
To view all of the Zebra-brand printer options, please view Zebra's printer selector tool.
Connection options
Connect your label printer to Benchling via Zebra Browser Print, a BarTender integration, or a remote print application. Below is a direct comparison of Zebra Browser Print and BarTender integration:
| Zebra Browser Print | BarTender |
|
|
For more information about configuring label printing for BarTender see the linked article.
Network based remote print (not recommended)
This printing option is the highest burden for the client's IT team, but printers are not exposed to the Internet, no unencrypted traffic is allowed across the firewall. It requires a server setup to accept print jobs and forward them to the appropriate printer which has to be done entirely by the client.
Each printer needs an IP and port number. Printers are considered unique by the IP and port. This printer configuration is then entered into Benchling.
- Set up a server to receive traffic from Benchling
- This could be a DMZ Server or some other application already setup to receive external traffic
- Set up a mechanism to authenticate if a request is coming from Benchling
- Options are username/password or signed certificate
- Route print requests to printer
- Take an inbound print request from Benchling, format it, and send it directly to Zebra Printer
Supported fields
The table below lists the fields that can be used to populate information on your labels. Keywords are all formatted as benchling.<item type>.<property>. For example, benchling.container.barcode. The creator is the user's handle.
| Property | Entity | Container | Box | Plate | Location |
| name | ✓ | ✓ | ✓ | ✓ | ✓ |
| registry_id | ✓ | ||||
| barcode | ✓¹ | ✓ | ✓ | ✓ | ✓ |
| created_at | ✓ | ✓ | ✓ | ✓ | ✓ |
| current_datetime | ✓ | ✓ | ✓ | ✓ | ✓ |
| schema | ✓ | ||||
| creator | ✓ | ✓ | ✓ | ✓ | ✓ |
| creator_initials | ✓ | ✓ | ✓ | ✓ | ✓ |
| quantity | ✓ | ||||
| concentration | ✓ | ||||
| location ² | ✓ | ✓ | ✓ | ✓ | |
| location_path³ | ✓ | ✓ | ✓ | ✓ | |
| location_with_coordinates⁴ | ✓ | ✓ | ✓ | ✓ | |
position5 |
✓ | ||||
coordinates6 |
✓ | ||||
| restriction_status | ✓ | ||||
| restricted_sample_users | ✓ | ||||
| sample_owners | ✓ | ||||
<schema field>7
|
✓ | ✓ | ✓ | ✓ | |
<schema field>>>registry_id 8
|
✓ | ✓ | ✓ | ✓ | ✓ |
Key:
1. The barcode for a registered entity is its registry ID.
2. The location property prints the name of the direct parent location of the inventory item.
3. The location_path property prints the full location path of the inventory item.
4. The location_with_coordinates property prints the immediate parent location name, but when the container is in a box or matrix plate it prints coordinates instead of a numeric position. For example, Box A:B2 instead of Box A:12.
5. The position property prints only the position of a container in a box or plate without the parent location name. This property uses a numeric position for a container in a box and coordinates for a container in a plate.
6. The coordinates property prints only the coordinates of a container in a box or plate without the parent location name. This property is similar to location_with_coordinates but only the coordinates are included.
7. To print the schema field value, use the display name of the schema field. Depending on whether you are using ZPL or BarTender templates, you will need to format them differently. In ZPL, copy the display name exactly, including all spaces, punctuation, and capitalization. For example, benchling.entity.Cell Count. For BarTender, use the display name with all spaces and punctuation, but convert all text to lowercase. If this field isn't found on the entity, the value stays blank.
8. To print the registry ID of a linked entity, append benchling.entity.Parent sample>>registry_id. Replace "Parent sample" with the name of your linked entity schema field. Note that you use >> rather than . to access the registry ID property.
Note on entities in containers: You can use benchling.entity.<property> when printing container labels to print information about the entity stored within the container you selected to print a label for. If a container contains multiple entities, only the data on the first entity will be used.
Zebra Browser Print setup
Zebra Browser Print (ZBP) bridges your browser with Zebra printers via ZPL. It’s ideal for users who want a lightweight, browser-integrated print flow. Benchling is currently compatible with printers that use Zebra Programming Language (ZPL). The platform can support any Zebra printer that uses "ZPL" or "ZPL and EPL", but there are printers made by other manufacturers that also support ZPL.
To create labels for printing using ZPL, you need to design your label and then upload it to Benchling. You can design labels using any label design program that produces the label in ZPL format.
Note: We recommend Zebra Designer Pro (V3) as it’s free and provided by Zebra.
Requirements
- Zebra Browser Print installed on each computer that labels will be printed from
- Zebra printer that supports ZPL is online
- User has ADMIN access to the Benchling Registry
Configure Zebra Browser Print
- Download Zebra Browser Print from Zebra's website
- Open the app and accept the certificate
- Click the Zebra icon and select Settings
- Enable Broadcast Search and Driver Search
- Click Change, select your printer, and click Set
Set Zebra Browser Print in Benchling
- Go to Feature Settings and select Inventory Settings from the menu
- Then click Label Printing and confirm Zebra Browser Print is set
- If not, proceed with steps 3 and 4
- Click the edit icon under Print Method
- Select Zebra Browser Print, then click ✓
Enable label template preview
This optional feature uses a 3rd party software, Labelary.com, to generate the preview of the label. To generate the preview, your raw ZPL label template code as you see it in Benchling will be shared with Labelary.com. This includes the hardcoded text and benchling object names (like benchling.container.barcode) in the ZPL code, but not the actual data with which these Benchling object names are replaced when you print the barcode for a specific container or entity.
Note: This feature should not be used if you have any sensitive information hardcoded in the ZPL label template.
To enable template preview:
- Go to Feature Settings and select Inventory Settings from the menu
- Navigate to Label Printing and confirm Enable label template preview is set to ON.
- If not, proceed with steps 3
- Click ON next to Enable label template preview under Print Method
Design label in Zebra Designer
- Create a new label in Zebra Designer Essentials
- Choose your printer and size/orientation
- Add elements like barcodes and text
- Use Benchling keywords such as:
-
benchling.container.barcode
-
benchling.entity.name
-
benchling.container.barcode
Note: Confirm that font is set to Zebra. This is required for Benchling to be able to read the label correctly. All other fonts will be unrecognizable.
- After creating your label, click File and select Print, make sure that Print to file is checked and then select Print to export the label as ZPL. The .prn file contains the text that you will transfer into Benchling
Below is an example of what the downloaded .prn file will look like. Make sure to select this text and copy it before proceeding on to Upload to Benchling steps.
When designing label templates, there’s a few tips that will help you design the best labels:
- Don’t overload labels with text. This will lead to overlapping and/or unreadable fields or barcodes
- Make sure to reprint labels after metadata updates, when needed
- Check that dynamic fields (i.e. benchling.container.barcode) are accurate. Any miscapitalizations will lead to the field not populating with Benchling information
- Make sure printer services (ZBP, BarTender) are online and running so that printers are visible from Benchling label printing modals
Permissions and access
The ability to print labels, upload or modify templates, and configure printers may require some changes to the permissions that you have set up on your tenant. The table below summarizes the permissions needed to take specific actions.
| Action | READ | WRITE | ADMIN |
| Print labels | ✓ | ✓ | ✓ |
| Preview label templates | ✓ | ✓ | ✓ |
| Upload/modify templates | ✗ | ✗ | ✓ |
| Configure printers | ✗ | ✗ | ✓ |
How do barcode scanners work with Benchling?
Barcode scanners function like a keyboard input device — when you scan a barcode, it enters the encoded information into Benchling as plain text, just like typing it manually.
You can use barcode scanners to:
- Populate search bars
- Fill in table cells in a Notebook entry
- Add items to worklists
Benchling does not require any special configuration to accept barcode input. However, scanners must be configured with a “carriage return” (Enter key) after each scan to support workflows like bulk worklist population.
Benchling supports all common barcode types:
- 1D barcodes (linear barcodes)
- 2D barcodes (e.g., QR codes)
- RFID scanners (may require additional drivers/software)
We’ve seen success with brands like Honeywell and Zebra Technologies, but any scanner that sends text to your computer will work. Choose hardware based on your lab's barcode format and scanning needs.
Frequently Asked Questions (FAQ)
Q: Can I bulk print labels?
A: Yes — from global search results or Notebook tables.
Q: What if my labels aren’t printing?
A: Check that the printer, template, and service (ZBP or BarTender) are active and selected in Benchling.
Q: Can I use any printer?
A: Only ZPL-compatible printers or those supported by BarTender.
Q: Can I change the name of my label printer in Benchling?
A: Update the printer's name in your Mac or PC's Printer Settings and refresh your browser. The updated printer name should now appear in Benchling.