Automating Data Entry Into Legacy Core Systems With Power Automate for Desktop — Replacing Manual Entry From Excel and Paper With UI Automation

· · Power Automate, RPA, Desktop Flow, UI Automation, Excel, Core System, Business Automation, Technical Consulting

“Every day, staff retype orders that arrive through a web form or by email into our in-house sales management system by hand.” “Transcribing a month’s worth of attendance and request data from Excel into the core system at month-end takes two full days.” We hear complaints like these all the time. What they have in common is that the destination system is an old business application that has been in use for ten or twenty years — a WinForms or VB6-era screen, a dedicated client — with no API and no CSV import feature.

Modifying the system would fix the problem at its root, but it is not unusual for manual entry to persist because the original vendor is gone, the source code no longer exists, or the cost of modification just does not pencil out. A practical tool for filling that gap is UI automation with Power Automate for desktop (PAD). Because it simply reproduces the keyboard input and mouse operations a person would perform, you can automate the work without touching the destination system at all. On Windows 11 there is also the convenience of being able to try it with no additional installation.

That said, UI automation is also a tool where “getting it running the first time is easy, but keeping it running reliably is hard.” This article focuses specifically on data-entry work, covering everything from whether you should even choose UI automation in the first place, through the boundary between what is free and what needs a license, to designs for stable operation and recovery from failures. We covered the general question of when to use which part of Power Automate, and error handling in general, in Automating Business Processes with Power Automate — Cloud Flows, Desktop Flows, and Robust Error Handling; this article is the specific case study for data-entry work.

1. The Bottom Line First

  • UI automation is the last resort. Before reaching for it, look for whether the destination system offers a CSV import, direct database insertion, an API, or file-based integration. If even one of those exists, it will be more reliably stable than UI automation.
  • PAD comes built into Windows 11, and can also be installed for free on Windows 10. With the recorder and over 400 actions, you can build a no-code flow that reads Excel and types the data into a screen.12
  • Building a flow and running it yourself (attended execution) costs nothing extra. This holds whether you sign in with a work/school account or a Microsoft account. Automatically launching from a cloud flow, scheduled runs, and sharing flows, on the other hand, all require a Power Automate Premium license.34
  • Unattended execution — the kind you would use for an overnight batch job — additionally requires machine registration and a Power Automate Process license. There are also technical prerequisites specific to it, such as requiring that every user be signed out.56
  • The keys to stable operation are three things: how you build selectors, waiting for elements, and per-record error handling. A flow built out of nothing but fixed Wait actions is guaranteed to break eventually.789
  • So that you can tell how far the entry got if it fails, build in, from the very start, a design where the source Excel file has a status column and a registration-number column that get written back after each record. That way, re-running the flow never causes duplicate entries.
  • Because the fate of eventually breaking when the screen changes never goes away, work with a high volume, work that cannot tolerate downtime, or work against an app that updates frequently belongs to the domain of data-integration development or core-system modification. We lay out where to draw that line in Chapter 8.

2. What’s Actually Wrong With Data-Entry Work

Transcribing data from Excel or paper into a core system carries problems that go well beyond “simple work eating up time.” Three issues come up again and again in the consultations we get.

  • Time gets concentrated around the closing date. Daily order entry is at least spread out, but month-end invoice processing and attendance tallying end up concentrated into the one or two days right after the closing date. During that window, staff can barely do anything else. Most companies are almost certainly absorbing this with overtime or extra help.
  • Entry mistakes flow downstream. A mistyped digit, a row that shifted, a mixed-up product code. Transcription errors do not surface until they have turned into a wrong invoice or a wrong inventory count, so the effort of investigating the cause and correcting it ends up many times the effort of the original mistake. Adding a double-check reduces mistakes, but it also adds time.
  • The work becomes something only that one person can do. Know-how like “this screen throws an error unless you enter things in this order” or “this one customer needs a special way of entering data” accumulates in that person’s head, and the work grinds to a halt if they are out.

The value of automation is not limited to saving time. A flow only ever enters data exactly the way it was told to, so transcription mistakes disappear, and because the procedure is preserved in a tangible form as a flow, it also eases the “only one person can do this” problem. Being able to flatten out the spike around the closing date matters a lot too.

One note: if the source is paper or a fax, there is a “reading” step that has to happen before any of this — OCR for faxed order forms, for instance, is its own topic. This article proceeds on the assumption that the source has already become data, such as an Excel file.

3. Choices for Automation — UI Automation Is the Last Resort

The first thing I want to stress is that automating screen operations (UI automation) is the last option on the list. UI automation depends on “display-layer concerns” — screen layout, resolution, response speed — so no matter how carefully you build it, it is unavoidably more fragile than a method that hands data over directly. Check first whether the destination core system offers any of the following.

Integration method What to check Stability Notes
CSV / fixed-width file import Whether “external data import” or “bulk registration” is buried somewhere in the menus. Check the vendor’s manual or support High Even old business systems surprisingly often have this. Generating the import file itself can be automated with PAD or PowerShell
Direct database insertion Whether you know the DB type and connection details, and whether direct writes are permitted under the vendor’s maintenance contract High Carries the risk of bypassing business logic (numbering, integrity checks), so read directly but be cautious about writing directly. Needs verification
API / integration middleware Whether a newer package version has an integration option High Weigh against the option’s cost
File-based integration (watched folder) Whether there is a mechanism that ingests files dropped into a designated folder High A common shape for reporting systems and warehouse systems
UI automation (PAD) When none of the above exist Medium The only method that does not require touching the screen. The subject of this article

The other option is to head in the direction of “eliminating” the transcription altogether — that is, modifying or rebuilding the core system itself. We cover decisions like adding an import feature to a VB6 app, or going all the way to a web-based rebuild of the order-entry front end, in How Long Will VB6 Apps Keep Running? — Runtime Support Status and a Practical Path to .NET Migration and When Not to Move a Windows App to the Web: A Decision Table and the Practical Answer of Splitting. Since modification costs development budget, it is also realistic to automate with PAD first to buy time, then invest in the modification once the volume of work grows and you can see the limits of automation.

4. The Basics of Power Automate for Desktop

Getting Started Has a Low Barrier

PAD comes built into Windows 11. Search “Power Automate” in the Start menu, and you will find the app; on first launch it downloads automatically and you are ready to go.2 Windows 10 and Windows Server 2016 also carry usage rights, and you can install it for free from the Download Center.2 There are two installation methods — a Microsoft Store version and an MSI installer version — and if you are planning ahead to the cloud integration (machine registration) discussed later, choose the MSI version, since it lets you install the machine runtime app alongside it.10

Building the Skeleton With the Recorder

PAD has a recorder that records your operations and converts them into a sequence of actions. It records mouse and keyboard operations in relation to UI elements, which makes it perfectly practical for building the skeleton of a data-entry flow. What matters for data-entry work specifically is that you can choose between two recording methods, UIA (UI Automation) and MSAA (Microsoft Active Accessibility). UIA is the recommended method for relatively newer apps such as WPF or WinForms, while MSAA is the method for old apps — like VB6 or classic Win32 — whose elements UIA cannot pick up. If elements in an old core-system screen will not grab properly, switching the recorder’s recording mode to MSAA can sometimes fix it.11

That said, the recorder is only for the skeleton. It cannot record conditional branches or loops, so the assumption is that you will finish the flow by editing it in the designer afterward.11

UI Elements and Selectors

PAD remembers buttons and text boxes on the screen as “UI elements.” What that actually is, underneath, is a selector that identifies the element through a combination of the window hierarchy and its attributes. The lifespan of a data-entry flow is decided almost entirely by how well those selectors are built. If a selector contains a sequential index or a dynamically changing ID, it can suddenly stop grabbing the element one day even though the screen looks identical. Change attributes whose values change from Equals to Contains or a regular expression, set up backup selectors with fallback for important operations, and use the Repair Selector feature to generate repair candidates when one breaks. This is the same basic approach we covered in the general guide.7

There is one caution specific to data-entry work. UI automation actions operate on the assumption that the target window is in the foreground, and if it is not, they bring it to the foreground automatically.12 In other words, the PC running the flow is, in effect, “reserved exclusively for the flow.” Avoid running the flow on a PC where staff are simultaneously doing other work, since that is a recipe for stray clicks and stray input.

The Basic Shape of Data Entry: Read From Excel, Write to the Screen

The basic shape of a data-entry flow is “read with an Excel action → loop and write one record at a time with UI operations.” Open the file with Launch Excel, and read a range with Read from Excel worksheet, which becomes a data table variable. Turning on the “first row as column names” option lets you reference values by column name later in the loop, like CurrentItem['CustomerCode'], which makes the flow more resilient to column reordering.13 Use Write to Excel worksheet to write results back. If you want to append to the end of the rows, you can locate an empty row with Get first free row on column.13

5. What’s Free and Where the License Boundary Sits

The question that always comes up when deciding whether to adopt PAD is “how far is free, and where does it start costing money?” The boundary sits between “building it and running it by hand” and “running it automatically and managing it as an organization.”

What you can do Microsoft account Work/school account (no extra license) Power Automate Premium
Building flows, the recorder, 400+ actions, error handling Yes Yes Yes
Where flows are saved OneDrive (personal) Dataverse in the default environment Dataverse across multiple environments
Manual execution from the PAD console (attended) Yes Yes Yes
Launching from a cloud flow (scheduled/event-triggered) No No Yes
Sharing flows, centralized run-log management No No Yes

Building flows and running them manually costs nothing extra with any account type.34 With a Microsoft account, flows are saved to OneDrive; with a work/school account, they are saved to Dataverse in the default environment. If you are using this at a company, starting with a work account is the standard choice, with an eye toward managing it later.4

You cross the boundary the moment you want the flow to run without a person pressing a button. Launching a desktop flow at a fixed time or on an event requires configuring it to be called from a cloud flow, and that takes the following preparation.14

  1. Machine registration: register the PC that will run the flow with the Power Automate cloud. Signing in with the machine runtime app included in the MSI version registers it. Note that the Home editions of Windows 10/11 do not support this direct connection.10
  2. Desktop flow connection: create a connection (Windows account credentials) that lets the cloud flow sign in to that machine.14
  3. License: the user who creates the connection must hold a license appropriate to the execution mode.14 Running it on a PC where a person is signed in — attended execution — requires Power Automate Premium (a user license that includes attended RPA rights).106
  4. Unattended execution additionally requires assigning a Power Automate Process license to the machine. A Process license attaches to the machine (or the flow), not to a user, and gets you one unattended execution slot (an unattended bot) per machine. One thing to watch out for: the machine you assign a Process license to must already have been registered by a user who holds a Premium license. In other words, buying only a Process license will not let you configure anything if there is no Premium user.56

To sum up: an operation where “the person in charge presses the button in the morning and watches the data entry run in front of them” completes entirely within the free tier. An operation where “it is just finished on its own by the middle of the night” requires Premium plus Process (plus a registered machine). If the data-entry work takes around 30 minutes a day, it is plenty to start with free attended execution and consider going unattended only once the volume grows. The full picture of Power Automate licensing — including where the line falls between standard and premium connectors — is a topic worth covering separately.

6. Designing for Stable Operation

Wait for the Element, Not a Fixed Delay

Old core systems have search and registration response times that swing wildly depending on load. A flow tuned with a fixed Wait like “wait 3 seconds” is guaranteed to break on a day the system is slow. The basic approach is to use the Wait for window content action to “wait until a specific UI element or text appears (or disappears).”8 Getting a window (Get window) also lets you set a timeout, letting you choose between “fail after N seconds if not found” or “wait until it appears.”8 Waiting until the registration-complete message appears before moving on to the next row is especially important in a data-entry flow. If you start the next entry without waiting, the screen switches over before the previous row’s registration has finished, and the data gets mixed up.

Build Error Handling Per Record

The standard practice for error handling in a data-entry flow is to wrap one record’s worth of work inside the loop in an On Block Error block, rather than wrapping the whole flow. When an error occurs, record what failed for that row, return the screen to its initial state (close the entry screen and go back to the menu, etc.), and move on to the next row. That way, even if 1 out of 100 records has a wrong product code, the other 99 finish entry, and only the one that failed is left for a person to handle. You can also combine this with per-action retry settings for transient errors, such as slow responses.9 For the finer points of error handling — retrieving the error with Get last error, designing the cleanup step, and so on — see the general guide and Error Handling and Retry Design in Power Automate.

Make It Possible to Tell “How Far It Got” Even If It Fails

UI automation has no transactions the way a web system does. If a flow dies partway through and you cannot tell “which rows are already registered in the core system,” you are left with two options: re-running and causing duplicate entries, or manually cross-checking every single record. There are two designs that prevent this.

  1. Give the source Excel file a status column. Prepare a status column with values like “not processed,” “in progress,” “complete,” and “error,” plus a column for the registration number issued by the core system. Set a row to “in progress” before you start entering it, confirm registration completion on screen and read the registration number, and then write back “complete” plus the registration number. Since the flow only ever targets rows still marked “not processed,” it never touches already-entered rows no matter how many times you re-run it (re-run safe).
  2. Only rows left stuck at “in progress” need a human to check them. If a flow is going to die, it dies mid-entry, so the only rows under suspicion are the ones marked “in progress.” You only need to check the core system for that one row before re-running, which shrinks the cross-check scope from 100 records down to one.

This status column also doubles as a run record. Whether “yesterday’s transcription all finished” can be answered by opening Excel, without even looking at the flow’s run history — a form that is easy to explain on the ground.

Pitfalls of the Unattended Environment

We get a genuinely large number of consultations about flows that worked fine under attended execution but stopped working the moment they went unattended. The cause is almost always a difference in the environment.

  • Session prerequisites: for unattended execution, Power Automate creates a new remote desktop (RDP) session on the target machine and signs out after execution finishes. While it is running, the screen on the target machine stays locked. As a prerequisite, every user on the machine must already be signed out — on Windows 10/11, if anyone’s session remains (even locked), execution fails. On Windows Server, an error occurs if a locked session for the same user as the connection remains. If your habit after maintenance work is to step away by “locking” or “disconnecting” rather than signing out, the nightly flow will stop. Always sign out is the watchword.5
  • Permissions: the user used for the connection must be able to create an RDP session on that machine (usually by belonging to the Remote Desktop Users group). Also, unattended execution does not support operations that involve elevating to administrator privileges.5
  • Screen resolution: the default resolution of an RDP session can differ from the screen the flow was built on. If the resolution is lower, UI elements that were visible while building the flow end up hidden off-screen, causing “element not found” failures, or a coordinate-based operation ends up clicking somewhere else.5 As a countermeasure, you can pin the “screen resolution for unattended runs” in the flow’s properties to the same value used when it was built.15 Differences in DPI scaling cause the same kind of failure, so it is safest to keep it at 100% both when building and when running.16

Once you have verified all of this, set up the scheduled trigger (e.g., running every weekday morning at 6 AM) on the cloud-flow side. We cover scheduling design that includes business-day checks and month-end processing in Designing Scheduled Flows and Business-Day Logic in Power Automate.

7. An Example Design for a Data-Entry Flow

Combining the pieces covered so far, here is what a typical data-entry flow looks like when designed as “order-list Excel file → the core system’s order-entry screen → write the result back to Excel.”

NoYesAn error occurs on one recordAll records processedStart: manual or triggered from a cloud flowRead from Excel worksheetRead the order list, first row as column namesAre there any rows with status not processed?Tally results and log/notifyEndLaunch the core system and log inConfirm the menu screen appears by waiting for the elementLoop through unprocessed rows one at a timeWrap the loop body in On Block ErrorUpdate status column to in progressOpen the order-entry screen and enter the fieldsWait for window content on each screen transitionRegistration button → wait for completion messageRead the issued registration number from the screenSet status column to complete and write back the registration numberRecord the error details on that rowFailures before registration become error / failures after registration stay in progressReturn the screen to the menu and move to the next rowLog out of the core system and close it

A few notes on the design.

  • Validate input values before any UI operation. Product code digit counts, whether a numeric field has text mixed in, missing required fields — validate these on the flow side right after reading Excel, and mark any row that looks wrong as “error” before it ever touches the core system. Rejecting bad data upfront is many times more stable than trying to handle the core system’s error dialogs through UI operations.
  • Only a failure that happens before the registration button is pressed is allowed to be marked “error.” If your error handling uniformly rewrites the status column to “error,” you will also mark as “error” a row that failed after the registration button operation already succeeded (say, while waiting for the completion message or while writing back), which sets up an accident where staff re-run that row and it gets registered twice in the core system. For failures that happen after the registration operation, leave the status column at “in progress”; never target rows left at “in progress” for re-run, and instead have a person cross-check with the core system whether it was actually registered before manually setting it back to “complete” or “not processed.” The point of this design is not to eliminate ambiguity — it is to route the ambiguous cases to a human for confirmation, deliberately, rather than guessing.
  • Anticipate on-screen error dialogs. Entry-time errors (insufficient stock, a customer credit-check error, etc.) still happen even so. Catch any dialog you can anticipate with a “does the window exist” conditional branch, record it as that row’s error detail, and leave anything unanticipated to On Block Error.9
  • Keep a rough sense of volume and time. It is not unusual for UI automation to take tens of seconds per record. If 100 records take an hour, that fits comfortably within an overnight unattended run, but if there are several thousand records every day, that is a sign to reconsider UI automation as a method at all (next chapter).
  • Finish normalizing the source data upstream. Pitfalls that come from CSV/Excel — character-encoding variance, inconsistent date formats, a mix of full-width and half-width characters — are covered in CSV Is Not “Just Text”: A Practical Guide to CSV Handling in C# Business Apps (Encoding, Excel Compatibility, Injection Defense).

8. How Far Should You Go With PAD?

UI automation breaks eventually, whenever the screen changes. That is not something design can fix — it is the fate of the method itself. That is exactly why you need to have a clear line between “data entry it is fine to automate with PAD” and “data entry that should move on to development or modification.”

Situation Judgment
Tens to hundreds of records per day, re-running the next business day is fine even if it fails PAD is enough. Start with attended execution
The target app’s screen has not changed in years (a “frozen” legacy app) Well-suited to PAD. Ironically, a “screen that never changes” pairs well with UI automation
The target app is updated frequently (a SaaS web screen, etc.) Decide on the assumption of ongoing selector maintenance. If it breaks with every update, UI automation is a poor fit
Several thousand or more records every day, run time eats into business hours UI automation’s processing speed hits a ceiling. The domain of adding a CSV import feature or developing data integration (contract development)
Core operations where stopping halts that day’s shipping/billing If “fall back to manual entry until it’s fixed” is not acceptable, UI automation is unsuitable. Consider core-system modification or inter-system integration development
Wanting the flow to also make complex business decisions while entering data (stock allocation, pricing) Burying business logic inside a flow is not maintainable. This is territory where the logic belongs on the system side

As a rule of thumb for the judgment, I use: “if this flow stayed broken for a week, would the business still function by falling back to manual entry?” If it would, PAD automation has plenty of value. If it would not, that transcription work is no longer an “automation” requirement — it is a “system integration” requirement, and it is time to consider adding an import feature, database integration, or even digitizing order processing itself (see What Is EDI? How It Streamlines Business-to-Business Ordering — From Fax, Email, and Manual Entry to Data Integration or Moving FAX Orders to the Web — Designing the Dual-Operation Period and a Phased Migration).

One more thing: PAD flows themselves also tend to become “assets only the person who built them can touch.” Who takes over the flow’s contents, its connections, and the machine it runs on is a governance question worth designing deliberately from the start, rather than as an afterthought.

9. Summary

Transcription into a core system with no API and no CSV import can be automated “without touching the system itself” using PAD’s UI automation. On Windows 11 you can start using it out of the box, and building it and running it yourself costs nothing extra. Just freeing staff from an hour of daily data entry, and eliminating the investigation and correction of transcription mistakes, is more than enough to pay back the effort of adopting it.

The important thing, though, is getting the order and the design right. Look for a CSV import, database, API, or file integration before reaching for UI automation. Start with free attended execution, and understand the prerequisites for going unattended: Premium plus Process licenses, and a signed-out machine. Stabilize with selectors, waiting for elements, and per-record error handling, and always preserve “how far it got” by writing back the status column. And once the volume, criticality, or the frequency of screen changes exceeds what UI automation can handle, do not force it to keep growing — switch to modifying the core system or developing data integration instead.

We take on consultations covering the whole continuum, from design reviews of PAD-based data-entry automation through to contract development of import features and inter-system integration, and legacy-app migration. Feel free to reach out even at the “can this even work with our core system?” stage.

Komura Software LLC handles everything from consulting on the design and stabilization of data-entry automation with Power Automate for desktop, through to data-integration development and legacy-app modification for core systems that go beyond what UI automation can handle.

References

  1. Microsoft Learn, Get started with Power Automate in Windows 11. On the Power Automate app preinstalled on Windows 11, and on being able to build flows without any coding experience thanks to over 400 actions and the recorder. 

  2. Microsoft Learn, Power Automate licensing FAQ. On Windows 11 users being able to use attended-RPA desktop flows in the default environment at no additional cost (sharing or building in other environments is not included), on searching Power Automate from the Windows search bar triggering an automatic download on first launch, and on Windows 10 and Windows Server 2016 also carrying usage rights and being obtainable from the Download Center.  2 3

  3. Microsoft Learn, Get started with a work or school account. On using Power Automate for desktop with a work/school account costing nothing extra, on the default environment requiring a Dataverse database, and on unlocking RPA features such as automatic execution and flow sharing requiring an upgrade to Premium.  2

  4. Microsoft Learn, Prerequisites and limitations. A feature comparison by sign-in account type (Microsoft account / work-school account / organizational premium account). On the recorder, actions, and error handling being available to all account types, while connecting to cloud flows (launching/scheduling), sharing, and centralized management/reporting are Premium-only, and on flows being saved to either OneDrive or Dataverse.  2 3

  5. Microsoft Learn, Run unattended desktop flows. On unattended execution requiring the Power Automate Process plan, on Power Automate creating an RDP session and signing out after execution, on the screen being locked during execution, on requiring all users to be signed out (with execution failing on Windows 10/11 if any session remains, including a locked one), on the connecting user needing RDP session-creation rights (the Remote Desktop Users group), on execution not supporting administrator elevation, and on the RDP session’s default resolution differing from the resolution used when building the flow, which can lead to “element not found” failures.  2 3 4 5

  6. Microsoft Learn, Types of Power Automate licenses. On attended RPA rights (machine registration, triggering attended execution, etc.) being included in the Premium user license, on unattended RPA requiring a Process license assigned to the machine (one unattended bot per machine), and on assigning a Process license to a machine requiring that the machine already be registered by a Premium user.  2 3

  7. Microsoft Learn, Build a custom selector. On building dynamic, harder-to-break selectors by changing attributes whose values change from Equals to Contains or a regular expression, on fallback through multiple selectors, and on generating repair candidates with Repair selector.  2

  8. Microsoft Learn, UI automation actions. On the Wait for window content action waiting for a specific text or UI element to appear/disappear, and on the Get window action’s timeout setting (choosing between failing if not found within a given time, or waiting indefinitely).  2 3

  9. Microsoft Learn, Handle errors in desktop flows. On per-block error handling with On Block Error, and on per-action retry settings (Retry action if an error occurs).  2 3

  10. Microsoft Learn, Manage machines. On machine registration via the machine runtime app (bundled with the MSI installer), on Windows 10 Home and Windows 11 Home not supporting a direct connection, on launching a desktop flow from a cloud flow requiring a premium user plan with attended RPA, and on unattended execution requiring assigning process capacity (an unattended bot) to the machine.  2 3

  11. Microsoft Learn, Record desktop flows. On the recorder converting mouse and keyboard operations into actions by recording their relationship to UI elements, on being able to choose UIA (recommended for newer frameworks like WPF and WinForms) or MSAA (for legacy apps such as VB6 and classic Win32 that UIA doesn’t support) as the recording method, and on conditional branches and loops not being recordable, requiring editing after recording.  2

  12. Microsoft Learn, Automate desktop applications. On UI automation actions requiring the target window to be in the foreground, and moving it to the foreground automatically if it isn’t. 

  13. Microsoft Learn, Excel actions. On creating an instance with Launch Excel, reading a single cell or a range (turning it into a data table, with an option to treat the first row as column names) with Read from Excel worksheet, writing with Write to Excel worksheet, and locating an empty row with Get first free row on column.  2

  14. Microsoft Learn, Trigger desktop flows from cloud flows. On the prerequisites for launching a desktop flow from a cloud flow (a registered machine or machine group, a work/school account, a desktop flow connection, and the connection’s creator holding a license appropriate to the execution mode), and on passing data between the cloud and desktop sides through input/output variables.  2 3

  15. Microsoft Learn, Set screen resolution on unattended mode. On being able to fix the resolution for unattended runs — via the flow’s properties (Display resolution for unattended runs) or the registry — when the unattended resolution is lower than the one used when building the flow and elements end up hidden, causing failures. 

  16. Microsoft Learn, Troubleshoot unattended desktop flow execution failures. On differences in resolution or DPI scaling between attended and unattended sessions causing failures, and on countermeasures such as keeping DPI at 100% both when designing and when running. 

Recent articles sharing the same tags. Deepen your understanding with closely related topics.

These topic pages place the article in a broader service and decision context.

This article connects naturally to the following service pages.

Frequently Asked Questions

Common questions about the topic of this article.

Is Power Automate for desktop free to use?
Yes. The Power Automate app comes built into Windows 11, and it can also be installed for free from Microsoft's Download Center on Windows 10. Work/school accounts get the whole set of flow-building and manual (attended) execution features — the recorder, 400+ actions, error handling — at no extra cost. However, launching from a cloud flow automatically, sharing flows, and centralized run-log management all require a paid Power Automate Premium license.
What do I need to run a data-entry flow overnight or early in the morning with nobody around?
Unattended execution requires a setup where a cloud flow calls it, which in turn requires registering the target machine, creating a desktop flow connection, and assigning a Power Automate Process license to the machine. Registering the machine itself must also be done by a user holding a Premium license. On the technical side, unattended execution runs by creating a new remote desktop session, so every user on the target machine must already be signed out — if even one locked session remains, execution fails on Windows 10/11.
I've heard UI automation is fragile. Is it actually practical?
It's practical as long as the target core system's screens are stable. Most of what breaks comes down to how UI elements are identified (selectors) and insufficient waiting, so stability improves a great deal with designs like changing attributes that vary into Contains or regular-expression matches, setting up backup selectors, and waiting for an element to appear instead of using a fixed delay. That said, the fate of eventually breaking when the screen layout changes never fully goes away, so if the target app updates frequently, or if the volume or importance of the work means downtime is unacceptable, you should consider data-integration development or modifying the core system itself rather than UI automation.
If a data-entry flow fails partway through, won't we lose track of how far it got?
That can be prevented with the right design. The key is to give the source Excel file a status column (not processed / in progress / complete / error) and a registration-number column, and to check the core system's registration result and write the status back after each record is entered. That way, if it fails, the Excel file itself retains exactly which rows are already registered, and re-running the flow only ever targets rows still marked 'not processed,' so duplicate entries never happen. Handling errors per record — logging the failed row and moving on to the next one — also means a single input mistake doesn't halt the whole run.

Author Profile

Profile page for the article author.

Go Komura

Representative of KomuraSoft LLC

Focused on Windows software development, technical consulting, and investigations into failures that are difficult to reproduce.

Back to the Blog