Independent and not affiliated with the FDA, MHRA, ISPE, PDA, or any agency. Get the appgoutham@madhadi.com
madhadi.comData Integrity & GxP Quality
Browse all topics -> Articles Templates & Procedures Learning paths GlossaryScenariosToolsRegulatory ReferencesLearning PathsTopics About Start here
Form Plug-and-play starting point AI & Automation

Form: RPA Bot Change and Version Log

A plug-and-play change-control form that captures every version change to a GxP RPA bot or the systems it drives: what changed, why, the impact assessment, the retest evidence, and the approval, with field definitions and a filled specimen.

Document type: Form

Read and copy the template below into your own quality system. It is a generic starting point for your own internal use, provided as is, with no warranty; see the Terms and License. Adopting it does not by itself create compliance.

This is a ready-to-use change and version log for a single GxP RPA bot. Open a new row every time the bot’s own logic changes, the platform is patched or upgraded, or a system the bot drives changes in a way that could affect the bot. Replace every <<FILL: ...>> placeholder with your own specifics. A filled specimen follows. This content is educational reference, not legal or regulatory advice.

Form control

FieldEntry
Form titleRPA Bot Change and Version Log
Form number<<FILL: FORM-ID, e.g. FORM-RPA-004>>
Bot ID / name<<FILL: from the bot register>>
Parent validation plan / report<<FILL: VAL-RPA-.. reference>>
Owner<<FILL: role, e.g. RPA governance lead>>

Why this form exists

RPA breaks the “validate once, leave alone” assumption harder than most system classes, because the applications underneath a bot change independently of the bot. A version log that tracks only changes to the bot’s own logic misses the more common failure: a LIMS, ERP, browser, or operating system upgrade that moves a field or changes a response time and silently breaks a bot nobody touched. This form captures both kinds of change in one place, so an auditor, or a developer returning to the bot months later, can see exactly what it has lived through. It also closes a gap between two other controls that often get filed separately: the bot inventory register that lists which systems a bot depends on, and the periodic review that watches the bot’s exception rate for drift. Without a single change history tying those together, a reviewer who notices a rising exception rate has no quick way to check whether a system change explains it, and ends up re-investigating from scratch something this form would already have answered.

Change log (one row per change)

Change IDDateTrigger typeWhat changed (before)What changed (after)Systems affectedImpact assessment outcomeRetest required?Retest evidence refApproved by / date
<<FILL: CHG-001>><<FILL>><<FILL: bot logic / platform upgrade / target-system change / credential rotation>><<FILL>><<FILL>><<FILL>><<FILL: no impact / impact, retest / impact, retire>><<FILL: Y/N>><<FILL: protocol ID or test record>><<FILL>>
<<FILL: CHG-002>><<FILL>><<FILL>><<FILL>><<FILL>><<FILL>><<FILL>><<FILL>><<FILL>><<FILL>>

Field definitions and instructions

FieldInstruction
Trigger typeClassify every change, including ones nobody at the company asked for: a vendor patch to the LIMS is logged exactly like a developer editing the bot’s selectors.
What changed (before/after)Describe the actual difference: a field moved, a selector was rewritten, a library version changed, a credential was rotated. An entry that just says “updated bot” does not meet the bar.
Systems affectedName every system touched by the change, cross-referenced against the “systems driven” column of the bot inventory register.
Impact assessment outcomeState the conclusion and who reached it. A conclusion of “no impact” needs the same rigor behind it as “impact, retest”; it is never a default.
Retest required?If yes, link the retest evidence before the row is closed. A change is not closed until any required retest is recorded.
Approved by / dateThe approver is independent of whoever made the change.

Retain this log as a controlled record for not less than <<FILL: retention period>>, alongside the bot’s validation package.

Acceptance criteria

  • Every change to the bot’s own logic appears here, with no unexplained gap between consecutive versions.
  • Every change to a system the bot drives that could plausibly affect the bot also appears, not only changes to the bot itself.
  • A “no impact” conclusion states the basis, not just the word.
  • No row shows “retest required: yes” without a linked retest record.
  • This log stays current with the bot register’s “systems driven” column, so a system not listed there cannot generate a surprise entry here.

Filled specimen

Change IDDateTrigger typeBeforeAfterSystems affectedImpact assessmentRetest?Retest refApproved
CHG-0142026-09-02Target-system changeLIMS v7.2, result field at screen position 4LIMS v7.3, result field moved to screen position 6 after a vendor UI updateLIMSImpact: the bot’s selector was coordinate-based and would read the wrong field. Retest and selector rework required before go-live of LIMS v7.3.YVAL-RPA-012-T2R. Gomez, QA, 2026-09-04
CHG-0152026-09-10Bot logicRead-back comparison used exact string match onlyRead-back comparison also normalizes trailing whitespace before comparingRPA-STAB-01 bot onlyNo impact on other bots; the change narrows this bot’s own false-positive exception rateYVAL-RPA-012-T3R. Gomez, QA, 2026-09-11

CHG-014 is the case this form exists for: nobody changed the bot, the LIMS vendor did, and a coordinate-based selector would have silently read the wrong field after the upgrade. Catching it as a scheduled impact assessment, before the LIMS upgrade went live, is what the bot register and this log are built to do together.

Common inspection findings this form prevents

  • A LIMS, ERP, or platform upgrade with no record that anyone checked whether a dependent bot was affected.
  • A “no impact” conclusion with no documented basis.
  • A retest claimed with no evidence record behind it.
  • Gaps in a bot’s own version history with no explanation.
  • The change log and the bot register disagreeing about which systems a bot depends on.

How to adapt this form

  1. Set the form number and link it to the bot’s validation plan and its bot-register entry.
  2. Make “systems affected” a controlled list drawn from the register rather than free text, so it stays consistent across bots.
  3. Wire your system-change-ticket process to open a row here automatically whenever a system named in the register changes.
  4. Require retest evidence to be linked before a row can be marked closed.
  5. Review open rows at the same cadence as periodic review, so nothing sits half-assessed.
Use madhadi.com as an app Full screen, works offline, one tap from your home screen.