ELN and LIMS integration: fix one lab handoff before adding another system.
Two good systems and a person retyping between them. Map one complete handoff, give every field an owner and stop losing requests between the ELN and LIMS.
On this page
The short version
- Start with one repeated lab handoff and watch how staff resolve its exceptions.
- Give every field and status one authoritative owner before connecting two systems.
- Use native workflows and supported interfaces before adding another application.
- Make retries safe, then reconcile whatever events miss.
Two good systems and a person retyping between them
A scientist requests a purity measurement in the ELN. An analyst retypes the sample reference into the LIMS. Days later someone pastes the result link back into the experiment. When the scientist cancels, the lab hears by email, sometimes after the run has started.
Both systems work as designed. The handoff between them belongs to nobody, so it runs on copy and paste. Fixing it may not need another platform. It needs one owned handoff.
This guide follows one illustrative request: ELN request RQ-318 asks for purity on aliquot ALQ-705, tracked as LIMS task LT-882, with the accepted result returned to experiment E-204.
- Sample IDs retyped into the LIMS
- Cancellations sent by email
- Result links pasted back by hand
- Conflicting statuses in each system
- A request that never arrived goes unnoticed
- IDs carried from the registry, never retyped
- Cancellation tracked until the lab confirms it
- Accepted result reference returned to the experiment
- One authoritative system for each field
- Reconciliation flags unfinished work
Watch one request before designing anything
Sit with the people who handled a recent request. Record what they copied, what they checked and what they chased when information was missing. Follow a correction too. A process diagram rarely shows who notices that a changed sample never reached the other system.
Give every field one owner
Agree where each value can change and where it is only displayed. In the example, the ELN registry owns the aliquot identity, the request owns the intended analysis and experiment reference, and the LIMS owns its task ID, receipt decision and completion state.
- Carry ALQ-705 as an explicit identifier. A sample name alone fails when names repeat or staff rename material.
- Keep a cancellation request separate from a confirmed cancellation. Asking to stop work is not the lab stopping it.
- Return a versioned result reference once the lab accepts the result. Interpretation stays with the scientist.
- Record requested and received quantities separately, so a receiving correction never rewrites the request.
Define required fields and allowed values with the lab. The HuBMAP metadata methods paper shows the value of explicit specifications, controlled vocabularies and validation around familiar spreadsheet entry: improve the rules before replacing the interface people already use.
Check the installed platforms first
Ask each platform owner to walk RQ-318 through native requests, templates and connectors. A configuration change may carry the missing field. Whether the receiving system is LabWare, LabVantage, STARLIMS or an in-house LIMS, list the interfaces your installation actually supports before anyone designs a connector.
Benchling describes APIs and apps for synchronizing with other systems, and separates current-data access from warehouse use. Check the objects, version and entitlements you have, and test with an account restricted to the intended projects rather than an administrator.
- Request
Capture the approved purpose and sample reference.
- Check
Validate identity and required receiving fields.
- Accept
Link the receiving task and its decision.
- Return
Show the accepted result reference to the scientist.
Make a retry safe before making it automatic
Give each attempt to create a task from a request revision its own operation identity, and store the link between RQ-318 and LT-882. If the LIMS creates the task but its response times out, look the operation up before trying again. Otherwise one request becomes two tasks.
Benchling’s webhook guidance advises verifying delivery and fetching the latest resource state before synchronizing another system. Treat an event as a prompt to read the authoritative record, never as permission to overwrite a newer value.
- Record
Keep the request revision and attempted operation.
- Inspect
Read current source and destination state.
- Decide
Retry, resolve a conflict or request review.
- Confirm
Record the resulting link and status.
If the scientist cancels RQ-318 while LT-882 is running, show the cancellation as pending until the lab responds. A transport retry must never make that decision for the receiving team.
Reconcile what events miss
Keep a reconciliation view of requests and linked tasks: the fields each system owns, the last confirmed update, missing links and conflicting states. A scheduled check complements events and gives operators one place to find unfinished work. W3C PROV-O offers a simple model for recording what changed, which activity changed it and who was responsible.
- Repeat a task-creation request after a timeout. It links to one receiving task.
- Deliver an old update after a corrected request. The correction stays authoritative.
- Withhold an event. Reconciliation finds the unfinished update within the agreed window.
- Cancel after the lab has accepted the request. The pending decision stays visible until the lab resolves it.
- Revoke project access and submit an unknown aliquot. Neither exposes records or creates an unauthorized task.
Scope one workflow with clear ownership
- Name one request type and its scientific and operating owners.
- Check native workflows, connectors and actual interface access.
- Assign authoritative fields, identifiers and allowed state changes.
- Define duplicate prevention, conflicts and cancellation decisions.
- Reconcile missing links and record the last confirmed update.
- Test interruptions, corrections and restricted access.
- Measure manual work and rehearse the operating handover.
Request a call from this article and describe one request that gets retyped or lost. The first conversation needs no data. See how we work with biotech teams. If the source is a partner delivery rather than an internal request, read the CRO data integration guide.
Questions we hear
Must every field synchronize in both directions?
No. Give each value one authoritative owner and copy only what the receiving workflow needs. Independent edits to the same field need an explicit conflict rule.
Do webhooks remove the need for reconciliation?
No. Use events to trigger timely checks, then reconcile unfinished work against current records. Confirm the delivery and retry behavior of your platform and API version.
When should we add a custom interface?
When an observed task still lacks necessary behavior after native configuration and supported integrations have been checked. Name its users, operating owner and acceptance criteria before adding another application.
Sources
- Developer Platform overviewBenchling Documentation
- Getting started with webhooksBenchling Documentation
- Ensuring Adherence to Standards in Experiment-Related Metadata Entered Via SpreadsheetsScientific Data via PubMed Central
- PROV-O: The PROV OntologyW3C