Configure legacy Requests

Alex
Alex
  • Updated

Legacy Requests in Benchling provide a structured system for managing assay or task requests between teams. They streamline the request fulfillment process and integrate seamlessly with Benchling's Notebook and Registry.

This guide offers detailed instructions on configuring Legacy Requests, which are no longer enabled for new customers. This guide applies only to a small subset of customers who are still using this legacy system. If you are looking for information on configuring the Requests portal in Workflows, see the linked article.

 

Configure a new legacy Request schema

Legacy Request schemas define the four components found on a Legacy Request: fields, the ID prefix, Tasks, and samples. The ID prefix is the only required component; fields, Tasks, and samples are optional. Tasks and samples must both be configured separately before being added to a Legacy Request schema. Both Legacy Requests and Tasks are created using JSON in Benchling’s Feature Settings page. Only organization or tenant admins may create and update Legacy Request schemas.

Configure a legacy Request schema

  1. Navigate to Feature Settings and select Legacy Request Schemas from the menu
  2. Click Create to start a new schema.
  3. Define the JSON configuration, including the following components:
    1. fields: An array of field definitions
      1. Each field must be enclosed in curly brackets and have the properties “displayName”, “type”, “isMulti”, “isRequired”
      2. The “id” property will be automatically created after the JSON config is saved
    2. idPrefix: A unique prefix added to all Legacy Requests created from this schema. This prefix behaves much like a Registry ID
    3. taskSchemas: An optional array of task schema IDs, whichmay be used to describe or list tasks for the assignee to complete
      1. Each Task schema has an optional array of field definitions that may be filled out similar to the field section above
      2. A Task may be configured with no fields at all and used for its name only.
      3. Add a Task to the Legacy Request’s taskSchemas array via its API ID, taken from the URL of its schema configuration page
      4. If the Task schema’s URL is https://tenant.benchling.com/user/request-schemas/tasks/reqtsksch_aIguAZBj3r, the task’s API ID is reqtsksch_aIguAZBj3r
      5. Adding a Task requires that Samples also be added
    4. samplesSchema: An optional array of sample entities, which may be used to list relevant samples to the Legacy Request’s contents
      1. Each sample must be enclosed in curly brackets and have the properties “type”, “isMulti”, “isRequired” and “name”
      2. The “id” property will be automatically created after the JSON config is savedYou may add another property called “schemaId” to limit the sample field to a specific schema, using the sample schema’s API ID
      3. Samples may be added even if a Task is not added
  4. Click Update to save your changes

Example JSON and resulting legacy Request

{
    "fields": [
        {
            "displayName": "Integer",
            "type": "integer",
            "id": "tsf_j1raiwGJ3s",
            "isMulti": false,
            "isRequired": false,
            "name": "int"
        }
    ],
    "idPrefix": "REQ-demo",
    "taskSchemas": [
        "reqtsksch_aIguAZBj3r"
    ],
    "samplesSchema": [
        {
            "type": "entity_link",
            "id": "tsf_O71PNNUGUp",
            "isMulti": false,
            "isRequired": false,
            "name": "Sample"
        }
    ]
}

 

Templatize a legacy Request and Tasks

Request templates allow you to predefine the default values and behavior of a request. This step is optional but highly recommended to standardize request submission. Legacy Request Templates allow you to automatically include tasks, set default field values, and automatically assign the Request to a default user or team.

Create a legacy Request template

  1. Navigate to Feature Settings > Legacy Request Schemas and select the Legacy Request you want to templatize
  2. Click Create Legacy Request Template at the bottom of the screen
  3. Open the newly created Template Settings tab
  4. Edit the JSON to add default values to the following fields: “assignees”, “defaultProject”, and “fields”
    • Remove the null value and insert the default value in quotes
    • Ensure the default value fits the field type (e.g. integers can only be filled with integers)
    • When assigning teams, enter the exact name of the team in quotes
    • When assigning users, enter the user’s handle in quotes (found in the Members tab of the Organization settings page)
    • Set the default project with the project’s API ID (found by right clicking the project under the Projects tab and selecting copy API ID)
  5. If your Legacy Request includes a Task, edit the “taskTemplate” JSON component to add default values to the default Task fields “autoAdd” and “fields”
    • Setting “autoAdd” to “true” will automatically insert the Task any time you create a new Legacy Request
    • As above, ensure the default value fits the field type
  6. Click Update to save your changes

Example JSON and resulting legacy Request template

{
    "assignees": [
        "ford.avery"
    ],
    "defaultProject": "src_hacbj3Ry",
    "fields": {
        "int": "456"
    },
    "taskTemplates": [
        {
            "autoAdd": true,
            "fields": {
                "field1": "Test"
            },
            "taskSchema": "reqtsksch_aIguAZBj3r"
        }
    ]
}

 

Archive or Unarchive a legacy Request schema

As your list of legacy Request schemas grows, you may want to remove outdated or unused schemas from active use without deleting historical data. Archiving hides these schemas from requestors while preserving existing records. You can also unarchive a schema later if it becomes relevant again.

To archive

  1. Navigate to Feature Settings and select Legacy Request Schemas from the menu
  2. Hover over the schema to archive
  3. Click the Archive icon that appears on the right
  4. Select the reason for archival and finalize by clicking Archive

To unarchive

  1. In Feature Settings select Legacy Request Schemas from the menu, adjust the filter to show archived schemas
  2. Hover over the archived schema
  3. Click the Unarchive icon

Note: Only organization admins can archive or unarchive schemas.

 

Configure permissions for legacy Requests

Permissions control who can access, create, or execute Legacy Requests in Benchling. Configuring permissions ensures that requestors and fulfillers only see what they should, and that data are protected from unauthorized changes. Legacy Request permissions are project-based, meaning they’re set by access policies applied  to a specific project. The permissions granted by that policy apply to all requests within the project.

Legacy Request permissions in access policies

  • View: User can see Legacy Requests within the project
  • Create: User can create new Legacy Requests within the project
  • Edit: User can edit existing Legacy Requests within the project
  • Execute: User can fulfill (execute) Legacy Requests within the project

Apply legacy Request permissions to a project

  1. Navigate to the desired project
  2. Click Project Settings and select Manage Access
  3. Assign the appropriate access policy to users or teams
  4. Click Done then Save to apply changes

 

Frequently Asked Questions (FAQ)

Q: Can I delete a request schema?

A: No, request schemas cannot be deleted but can be archived to remove them from active use

Q: Can I edit a request schema after it's been used?

A: Request and Task fields cannot be deleted or edited once data has been created using the Legacy Request schema. You may add new fields to the schema, but changes won't affect existing Legacy Requests created before the edits

Q: What kind of field types can I add to a Legacy Request or Task?

A: Integer, float, text, dropdown, and entity_link

Q: How do I find the task schema ID for configuration?

A: Navigate to the task schema's configuration page; the ID is the last part of the URL (e.g., reqtsksch_ABC123)

Q: Can I assign requests to both individuals and teams?

A: Yes, you can assign requests to individual users or entire teams by specifying their exact names in the template configuration

Was this article helpful?

Have more questions? Submit a request