<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Robidium: Automated Synthesis of Robotic Process Automation Scripts from UI Logs</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          ,
          <addr-line>Stanislav Deviatykh</addr-line>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Free University of Bozen-Bolzano</institution>
          ,
          <country country="IT">Italy</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>The University of Melbourne</institution>
          ,
          <country country="AU">Australia</country>
        </aff>
        <aff id="aff3">
          <label>3</label>
          <institution>University of Tartu</institution>
          ,
          <country country="EE">Estonia</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>This paper presents Robidium: a tool that discovers automatable routine tasks from User Interactions (UI) logs and generates Robotic Process Automation (RPA) scripts to automate such routines. Unlike record-and-replay features provided by commercial RPA tools, Robidium may take as input an UI log that is not speci cally recorded to capture a pre-identi ed task. Instead, the log may contain mixtures of automatable and non-automatable routines, interspersed with events that are not part of any routine as well as redundant or irrelevant events.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
    </sec>
    <sec id="sec-2">
      <title>Architecture</title>
      <p>
        Robidium is a Software as a Service (SaaS) tool that implements the Robotic
Process Mining pipeline proposed in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. It identi es and automates routine tasks
present in UI logs. Unlike simple macro-recording tools that allow to record and
replay an already well-scoped routine, Robidium discovers routines from
longrunning recordings of user interactions, for example a recording of a full working
day. Given a UI log, Robidium proceeds by identifying recorded task instances
and ltering out redundant behavior. Next, it discovers frequently repeated
sequences of events (with gaps), which are then tagged as candidates for
automation. Each candidate pattern is assessed for its amenability to automation. To
this end, the tool discovers dependencies between data elements within each
candidate and uses this information to synthesize automatable speci cations. Such
speci cations are then compiled into executable RPA scripts.
      </p>
      <p>UI log</p>
      <p>Preprocessor</p>
      <p>Simplified
Segmenter tasks traces
Simplifier</p>
      <p>Routines
Extractor
Candidate
routines
Evaluator</p>
      <p>Automatable</p>
      <p>routines
Automatable Routines Discoverer</p>
      <p>Compiler</p>
      <p>Automatable
Routine Specification</p>
      <p>Synthesizer</p>
      <p>RPA
script</p>
      <p>
        Robidium's architecture consists of six components (Fig. 1) as detailed below.
Segmenter. Robidium takes as input a UI log in which each row includes a
timestamp, one or more attributes that (combined) denote an action (e.g. \Edit"
+ Cell ID in Excel), and other attributes capturing the action's payload (e.g.
value of the Excel cell after the action). UI logs that ful ll these requirements
can be produced using the Action Logger tool [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], which supports Excel and the
Chrome browser. Other loggers can be used provided that they are converted
to the Action Logger's format. By default, Robidium takes as input a UI log
consisting of a single sequence of actions recorded during a working session.
This session may contain multiple executions of one or more tasks (e.g. creating
a new student record, adding a new credential to an existing student record).
The Segmenter assumes that the user only performs one instance of one task at a
time (no overlapping task instances), that the instances of multiple tasks do not
share any identical actions, and that instances of multiple tasks do not always
appear contiguously, but are rather separated by some events that are not part
of a task instance. Under these assumptions, the Segmenter breaks down the
single-sequence UI log into a set of sequences.
      </p>
      <p>Simpli er. A UI log may contain redundant behavior that does not a ect the
outcome of the recorded task. For example, the user could ll in the eld with
the wrong value by mistake and then correct it. This can lead to incorrect
identication of routines. The Simpli er component eliminates such redundant
subsequences of actions. It consists of three sub-modules responsible for di erent types
of redundancies related to read, write, and navigation actions. Each sub-module
is implemented via a set of regular expression nd-and-replace rules.
Routines extractor. Simpli er returns a list of task traces without redundant
actions. These task traces are then provided as input to Routines extractor,
which identi es routine candidates for automation. Each user interaction in the
log is converted into its symbolic representation by combining type and context
attributes that capture where the action was performed (e.g., application, URL,
eld name, and button label). The user selects the context attributes. In order
to nd repeats, user interactions across the traces must have identical symbolic
representations. Therefore, we do not use the attributes that contain the data
used during the execution of an action (e.g., the value of a eld, copied content,
etc.). The tool applies sequential pattern mining to identify frequently
repetitive execution patterns, given sequences comprised of symbolic representations
of user interactions. Such patterns are then considered to be candidates for
automation. The routine candidates can be selected accordingly to di erent criteria
such as length, frequency, coverage, or cohesion.</p>
      <p>
        Evaluator. Each candidate rutine then must be assessed for its amenability to
automation by Evaluator. For each candidate, Evaluator extracts its instances
from the log and veri es whether all the actions are automatable. In particular,
an action can be automated if its value can be computed from the outcomes of
the previous actions using a constant or deterministic function. In this regard,
Evaluator discovers data transformations between the actions in the instances of
the routine candidate. It discovers the syntactic transformations as described in
[
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], and semantical transformations by searching for the functional dependencies
between the actions. By default, all non-edit actions (e.g., copy cell, click button)
are considered to be automatable. For each routine, it then calculates a routine
automatability index (RAI) as a ratio of its automatable actions.
Synthesizer. Given a set of candidate routines annotated with RAI, the user
can select which routine should be implemented. Synthesizer then prepares the
automatable speci cation for the selected routine. It annotates the actions of
routine with the corresponding data transformations and extracts the
information required to map the actions to the application elements involved during
routine execution (e.g., button or text eld in the web form).
      </p>
      <p>Compiler. This automatable routine speci cation is then given as an input to
Compiler that generates an RPA bot, by mapping each action of the routine into
the corresponding executable command of the selected RPA tool. At the moment,
Robidium creates RPA bots for the UIPath Enterprise RPA Platform.8 These
scripts can then be executed via the command line or the interface of UIPath.
Compiler also identi es the variables in the script (e.g., row in the spreadsheet)
that can be then used as the input parameters during its execution.
8 www.uipath.com</p>
    </sec>
    <sec id="sec-3">
      <title>Example</title>
      <p>A typical routine that can be automated using Robidium is transferring data
from one system to another, for example from a spreadsheet to a form of a
web-based information system. Fig. 2a shows an extract of a spreadsheet with
students' contact details. Each entry in the spreadsheet is then used to create the
corresponding student record using the web form shown in Fig. 2b. Such routine
tasks may involve data transformations for converting the input data into the
desired format (e.g., split full name into rst and last name). Robidium identi es
such transformations and generates corresponding RPA scripts that implement
the tasks. Fig. 3 shows the generated script in the UIPath RPA platform.</p>
      <p>(a) (b)
Fig. 2: An extract of a spreadsheet (a), and a new record web form.</p>
      <p>
        The RPA bot shown in Fig. 3 automatically transfer all the entries in the
spreadsheet in Fig. 2a into the system with the web form interface from Fig. 2b.
We have validated the tool in cooperation with a team responsible for
admission and scholarship allocation processes within a university. The team used the
Action Logger tool [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] to record daily tasks and produce UI logs that can be
used as input to Robidium. We tested the components of the tool on such logs
and validated the results with the workers responsible for the execution of the
recorded tasks. The tool discovered several routines, and it was con rmed that
they correspond to the real processes followed in the University. Since the
University uses di erent RPA platform than the one currently supported by our
tool, we could not test the Compiler component. To this end, we used the UI
logs from our previous research [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. The generated bots were able to replay the
captured tasks, and they also were successfully applied to unseen data.
5
      </p>
    </sec>
    <sec id="sec-4">
      <title>Conclusions and Future Work</title>
      <p>This paper presented Robidium, a tool to automatically discover and implement
routine tasks recorded in UI logs. The tool aims to reduce the amount of time
spent on the identi cation and analysis of the candidates for automation and
allows focusing on their implementation. The tool generates executable bots that
can be used as a starting point for further re nement by RPA developers.</p>
      <p>In future work, we plan to address some of the limitations Robidium. First,
the current version of Robidum can only generate scripts of fully automatable
routines. It does not support steps that require intermediate user input. Second,
the tool automates only one variant of routine at a time. If a routine has multiple
variants, multiple bots are generated. We plan to add functionality to combine
multiple variants of a routine into a single executable speci cation that can be
compiled into a single bot. Finally, we plan to improve the e ciency of the
various algorithms implemented in the tool to be able to support larger UI logs.
Acknowledgments. This research is supported by the Australian Research
Council (DP180102839) and the European Research Council (project PIX).</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>M.</given-names>
            <surname>Lacity</surname>
          </string-name>
          and
          <string-name>
            <given-names>L.</given-names>
            <surname>Willcocks</surname>
          </string-name>
          .
          <article-title>Robotic process automation at telefonica O2</article-title>
          .
          <source>MIS Quarterly Executive</source>
          ,
          <volume>15</volume>
          (
          <issue>1</issue>
          ),
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>V.</given-names>
            <surname>Leno</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Dumas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. La</given-names>
            <surname>Rosa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F. M.</given-names>
            <surname>Maggi</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Polyvyanyy</surname>
          </string-name>
          .
          <article-title>Automated discovery of data transformations for robotic process automation</article-title>
          .
          <source>In Proc. of the AAAI Workshop on Intelligent Process Automation (IPA)</source>
          ,
          <year>2020</year>
          . https://arxiv.org/ abs/
          <year>2001</year>
          .01007.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>V.</given-names>
            <surname>Leno</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Polyvyanyy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Dumas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. La</given-names>
            <surname>Rosa</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F. M.</given-names>
            <surname>Maggi</surname>
          </string-name>
          .
          <article-title>Robotic process mining: Vision and challenges</article-title>
          .
          <source>Business &amp; Information Systems Engineering</source>
          ,
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>V.</given-names>
            <surname>Leno</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Polyvyanyy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. La</given-names>
            <surname>Rosa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Dumas</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.M.</given-names>
            <surname>Maggi</surname>
          </string-name>
          .
          <article-title>Action logger: Enabling process mining for robotic process automation</article-title>
          .
          <source>In Proc. of the Business Process Management Demonstration Track. CEUR</source>
          ,
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>L.</given-names>
            <surname>Willcocks</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Lacity</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Craig</surname>
          </string-name>
          .
          <article-title>Robotic process automation at Xchanging</article-title>
          .
          <source>Technical report, London School of Economics and Political Science</source>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>