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 Zebra Print 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.
BarTender setup
BarTender is a Windows-based label design tool best served for label printing at scale or for printing with a variety of printer models. You can design and print labels for items in your tenant through Benchling’s BarTender integration.
BarTender runs on your local network. All communication with BarTender happens between your browser and the local BarTender server. This means your information and your printers aren’t accessible to Benchling’s servers.
Requirements
- BarTender Enterprise Edition (2021+)
- Windows machine
- Network or USB-connected printer
- User has ADMIN access to the Benchling Registry
- SSL certificate requirements are met
SSL certificate requirements
Before installing and configuring the IIS CORS module, ensure your BarTender server uses a valid Secure Sockets Layer (SSL) certificate. The BarTender server has to be accessible via https, and https servers require a certificate. This security protocol authenticates communication between the server and the browser and allows it to be encrypted. Benchling is secured with SSL, so if your server doesn't use a URL with a valid SSL certificate, your browser will block the label printing requests.
For the SSL certificate to be valid, it must be accepted by your browser. The certificate must also match the server’s hostname.
Certificates issued by internal certificate authority’s (CA) are acceptable, however in most cases, a certificate is issued by a commercial CA that's automatically accepted by most browsers (i.e. DigiCert, Entrust, or Verisign). This typically means you own the domain assigned to the server, but the hostname doesn't need to be publicly accessible. This will most likely depend on your hosting or network security setup. Reach out to your IT team for further questions on this.
Note: We don’t currently support BarTender Cloud. Please reach out to support@benchling.com if you are interested in Benchling building out this feature.
Server recommendations
Benchling’s integration with BarTender takes advantage of BarTender’s centralized server capabilities. The BarTender server(s) must be able to access your printers and must be accessible to any computer that will print labels.
Many customers choose to install BarTender in the cloud and connect it to their network via a Virtual Private Cloud (VPC). This route works with Benchling. Note that using this method you will probably have to connect each printer to the BarTender server using Windows printer sharing. You can also install BarTender on in the cloud and connect via a VPC.
Any computer that will be printing labels needs to connect to the BarTender server via Windows printer sharing or they must have the correct drivers installed locally. Drivers only need to be installed on the BarTender server. Printers that connect via USB and can not physically be connected to the BarTender server will need to connect via Windows printer sharing.
We recommend one BarTender server in most cases, but the integration works if you have multiple servers. Printers and label templates are local to each server, so BarTender servers are a way to group printers and labels by building or region. If you have sub-networks for each building, localizing BarTender servers in the building sub-networks is a way to ensure users don’t print labels to printers in different buildings.
Note: Benchling does not communicate directly with the Bartender server but through javascript on the client.
Install BarTender
Benchling integrates with BarTender Print Portal which runs on Windows IIS. If Windows IIS is not already installed, the BarTender installer will include it in the installation process. If you have questions about BarTender installation that aren’t covered in this article, please reach out to BarTender support.
Note: If your Windows device is in S mode, you must switch out of S mode to install BarTender.
- Install BarTender Enterprise on a Windows PC
- After initiating installation:
- On the opening screen of the BarTender Setup Wizard, check Specify advanced installation options
- On the Advanced Installation Options screen, select BarTender with Print Portal, and leave Add Microsoft SQL Server Express checked
- Ensure the location in Install to is correct
- Follow the prompts to complete installation
- In Benchling:
- Go to Feature Settings and select Inventory settings from the menu
- In the Inventory settings menu, select Label Printing
- Under Print Method, click the Edit icon
- Select BarTender, then ✓ to confirm
Install printer drivers for BarTender
Any computer that will be printing labels needs the correct drivers installed based on which printer(s) are used in the lab, or they must be made available to the BarTender server via Windows printer sharing. Printers that connect via USB and can’t physically be connected to the BarTender server will need to connect via Windows printer sharing.
To download the BarTender printer drivers, visit seagullscientific.com/support/downloads/drivers. You can also visit this BarTender help article for Installing Drivers by Seagull.
Configure BarTender for Benchling
To ensure communication between Benchling and the BarTender server is not blocked by users’ web browsers, you must configure Cross-Origin Resource Sharing (CORS) settings. The BarTender server(s) must also be assigned URLs with SSL certificates.
Install and configure the IIS CORS module
To install the Microsoft IIS CORS module:
- Go to https://www.iis.net/downloads/microsoft/iis-cors-module
- At the bottom of the install page under Download IIS CORS 1.0, click x64 installer (AMD) or x86 installer (Intel). Don’t click the install extension at the top of the page
- Complete the installation process
To configure the IIS CORS module:
- Open the Windows Internet Information Services (IIS) Manager Windows
- Under the Connections, go to the BarTender server,
- Click on the Configuration Editor
- Set system.webServer/cors enabled to True
- Right-click (Collection)Element and select Edit Items
- Click Add on the right hand side under Actions and Collection
- In the Properties section
- Open the allowHeaders property and set allowAllRequestedHeaders to True.
- Set origin to your full Benchling tenant URL: https://{Your_Tenant}.benchling.com
- Make sure the URL doesn't include an extra / at the end.
- Click the allowMethods row, then under Collection on the right-side, click Add in Actions menu
- Set two allowMethods with OPTIONS and POST values
- Enter OPTIONS as the value of the method property, then click Add
- Enter POST as the value of the method property, then click Add
- Click X in the top-right corner to close this window
- Click Apply
With a self-signed SSL you may experience an inability to print from your browsers. This is expected behavior as, technically, the site isn’t secure since the certificate is not generated by a trusted third party.
If you are experiencing a network error on different browsers, you may need to take an intermediate step once per device:
- Navigate to the bartender page (namely https://localhost/bartender/)
- Allow access when the browser shows a warning
- Print. Bartender server must have a self-signed SSL. The “Not Secure” warning may persist but should not impact the ability to print
The use of a self-signed SSL certificate is a great intermediate step when first setting up BarTender and getting it working quickly, but it is not meant to be a long-term solution because it triggers a warning message on each site that accesses the server.
Test your BarTender configuration
BarTender should be running at http://localhost/Bartender/ by default. An easy way to test this configuration is to go to your browser and type in https://localhost/bartender which should bring up a page that looks like this:
There are two things you need to do to make it available to other people on the network:
- Assign that computer a URL in your DNS so that it can, for example, be addressed at http://bartender.<tenantname>.com/Bartender
- Generate an SSL certificate so that it can be addressed at http://bartender.<tenantname>.com/Bartender
The specifics of how to do both of these depend on how your IT infrastructure is set up. If you're not sure how to do both of these please consult your IT team and reach out to Benchling support if more help is needed.
Add the BarTender server to Benchling
To set your print method to BarTender, follow the steps outlined earlier in the article. To make your BarTender servers available on the network to anyone needing to print labels, you must point Benchling to the servers by adding their URLs on the Label Printing settings page.
To add the servers in Benchling:
- Click your user icon in the bottom-left corner
- Under Feature Settings, select Inventory Settings, then select Label Printing
- Click + next to BarTender server
- Enter the server URL and display name
- Adding a Display name is optional but it will help users find the right server if there are multiple BarTender servers
-
Click Save
Printer Statuses
Navigating to the Label Printing settings page triggers Benchling to check the configured servers. The status it displays reflects the connection between your browser and the BarTender’s server. When a check is successful, Benchling displays the number of printers and label templates managed by each server.
If the server status displays an error, ensure your browser can access the BarTender server by reviewing the configuration section above.
Design labels in BarTender
To print a label from Benchling that contains properties of the Benchling object, like a barcode, entity name, ID, date created, etc., you can use BarTender’s visual template designer. Add general template elements by dragging and dropping them into place on your template, then rearrange and resize as needed. For each element, you can replace the default value with an example value to help visualize element spacing.
Configure the label’s data entry form
- Click Form 1 in the bottom-left corner of the template creation screen
- In the left-side panel of Data Sources, click and drag the element(s) you want to populate with Benchling data into the Data Entry Form area
- In the modal that displays, select Text Input Box, then click Create
- You can also click from Create at the top of the software, then Data Entry Control and Text Input Box
Add the Benchling-recognized keywords
- Double-click on the new Text Input Box that was created to open another modal
- Set the Object name as the Benchling keyword
- For example, benchling.entity.registry_id
- Click Close
Repeat steps 1-3 for each element to be populated with Benchling data.
Using the same Benchling keyword multiple times in one template
You may need to display the same Benchling keyword multiple times in the same template. For example, you might need a container barcode as both a QR code and as text on the same label.
When adding the same Benchling keyword to a label you’ve already added it to, an error will display when entering the Object name. To nullify the error, change the Data Sources settings for the additional label element.
To change the Data Sources settings:
- On the right side of the Data Sources panel, click the third button Change Data Source Type
- Select Object Value, then click Next
- On the next screen, select the object that used the keyword first
- Click Finish, then click Close
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.
Q: Can I convert ZPL templates to BarTender?
A: If you already have a library of label templates in Benchling they are stored as .zpl files. These files cannot be imported into BarTender. To use these templates they must be recreated manually in BarTender.
Q: I receive an error "Network request failed" when trying to set up my printer. How do I troubleshoot this?
A: Initial troubleshooting steps we recommend:
- Check that you are on the same internal network as the BarTender server. You can only connect to the printer if you are on the same network.
- Check that the IIS CORS module has been configured as described in this article, especially that the origin is configured with the exact URL of the tenant you're connecting from (without a trailing /).
- Check that the URL you assigned to the BarTender server matches exactly the URL you added to Benchling, including the /Bartender ending if you chose to add this.