Build an Optima Secure+ Quote Matrix

Build an attended flow that captures portal quotes in an audited Excel matrix.

Introduction

30 Second Summary

Preparing a family insurance comparison can mean repeating the same details across dozens of quote combinations. One missed value can leave the customer looking at an incomplete result.

In this project, you will build an attended Optima Secure+ quote runner with Power Automate for desktop. It will turn one approved family case into a 35-cell Microsoft Excel comparison using discounts and exact payable premiums captured from the authorized 1UP portal.

What You'll Build

You will run one local flow and watch an approved family case become a customer-ready matrix with 35 green cells showing the exact premiums returned by the portal.

By the end of this project, you'll have:

  • An approved family-floater case you can use for fresh or port-in quoting across seven sum-insured choices and five tenures.
  • An attended quote run that submits each authorized combination through Microsoft Edge. It records the portal-displayed base premium plus every displayed discount.
  • A customer comparison matrix where every exact premium payable lands in a green cell. Every combination also carries an audit status that distinguishes completed, unavailable, and failed quotes.
  • Secret Mission: Add a per-combination approval gate that records unapproved rows as skipped before any browser interaction.

Are there any prerequisites?

You need a Windows device with access to Power Automate for desktop, Microsoft Edge, Microsoft Excel, and the authorized 1UP quote journey. Only organization-approved fictional or authorized scenarios belong in this workflow.

Before We Start

Before any hands-on work, this step anchors your project to the approved attended 1UP Optima Secure+ quote journey. The authorized portal remains the source for premiums and discount eligibility.

Build the Family Case Workbook

A dependable quote matrix needs one source of truth for the family-floater case. It also needs a separate customer view that keeps the final payable premiums easy to identify.

In this step, you will build that structure in Microsoft Excel. You will also create a visible Power Automate for desktop flow that opens the local workbook.

In this step, get ready to:
  • Create the local workbook with its family and case fields.
  • Build the 35-row quote queue and customer comparison.
  • Create a desktop flow that opens the workbook in Excel.
Create the workbook and family case

The workbook separates input data from automation results. This keeps case details stable while later flow runs update the quote queue.

  • Press the Windows key to open the search bar.
  • Type Microsoft Excel into the search bar.
  • Press Enter to open Excel.
  • Select Blank workbook.
  • Select File.
  • Select Save As.
  • Select Browse.
  • Navigate to C:\Users\Public\Documents.

You are now choosing a local location that sits outside OneDrive and SharePoint synchronization.

  • Create a folder named 1UP-Quote-Matrix using the new-folder control in the Save As dialog.
  • Open the 1UP-Quote-Matrix folder.
  • Enter 1UP_OptimaSecurePlus_Matrix.xlsx in the File name field.
  • Select Save.

Why keep this workbook local?

Power Automate for desktop uses Excel integration that can behave incorrectly with files in OneDrive- or SharePoint-synchronized folders. A local workbook gives the attended flow a stable file to open.

  • Select the add-worksheet control beside the worksheet tabs twice.
  • Double-click the leftmost worksheet tab.
  • Enter CaseSetup as its name.
  • Double-click the middle worksheet tab.
  • Enter QuoteRequests as its name.
  • Double-click the rightmost worksheet tab.
  • Enter CustomerComparison as its name.

You should now see the three worksheet tabs at the bottom of the Excel window.

CaseSetup layout

  • Use A1:E1 for MemberNo, Relationship, Age, NRIorOCI, and SelectedAddOns.
  • Use A2:A5 for member numbers 1 through 4.
  • Use B2:B5 for Husband, Wife, Child, and Child.
  • Use C2:E5 for the approved ages, NRI or OCI answers, and selected add-ons.
  • Use G1:H1 for CaseField and Value.
  • Use G2:G7 for Company, Product, PINCode, PolicyBasis, ClaimLastPolicyYear, and ClaimPolicyYearBeforeThat.
  • Switch to the CaseSetup worksheet.
  • Fill A1:E5 using the family-member layout above.
  • Fill G1:H7 using the case-field layout above.
  • Enter HDFC ERGO General Insurance Company Limited beside Company.
  • Enter Optima Secure+ beside Product.
  • Enter the approved case PIN code beside PINCode.
  • Enter Fresh or PortIn beside PolicyBasis.
  • Enter the approved claim-history answers only when the quote journey asks for them.

The CaseSetup worksheet now holds one family case without mixing its details into the result matrix.

Keep customer data authorized

Use an organization-approved fictional scenario or an authorized case. Keep credentials, one-time codes, consent, and CAPTCHA outside the workbook and flow.

Build the quote queue and customer comparison

A normalized quote queue gives every sum-insured and tenure combination its own row. The mapping columns tell the later flow where each portal result belongs in the customer comparison.

QuoteRequests column map

  • Use A1:D1 for SumInsured, TenureYears, BlockStartRow, and OutputColumn.
  • Use E1:J1 for DisplayedBasePremium, DisplayedFavourableClaimDiscount, DisplayedMultiYearDiscount, DisplayedNRIDiscount, DisplayedLifetimeDiscount, and ExactPremiumPayable.
  • Use K1:M1 for Status, ErrorMessage, and ForceFailure.

QuoteRequests row map

  • Use rows 2:6 for ₹10 lakh with block start row 13.
  • Use rows 7:11 for ₹15 lakh with block start row 22.
  • Use rows 12:16 for ₹20 lakh with block start row 31.
  • Use rows 17:21 for ₹25 lakh with block start row 40.
  • Use rows 22:26 for ₹50 lakh with block start row 49.
  • Use rows 27:31 for ₹1 crore with block start row 58.
  • Use rows 32:36 for ₹2 crore with block start row 67.
  • Repeat tenure values 1 through 5 in each five-row block.
  • Repeat output columns 2 through 6 in each five-row block.
  • Switch to the QuoteRequests worksheet.
  • Enter the 13 headers across A1:M1 using the column map above.
  • Enter the first five requests across rows 2:6 using the row map above.
  • Copy the first five-row request block into each remaining five-row range through row 36.
  • Replace the SumInsured values in each copied block using the row map above.
  • Replace the BlockStartRow values in each copied block using the row map above.
  • Set every cell in M2:M36 to No.
  • Leave every result and audit cell in E2:L36 blank.

You should see 35 request rows ending at row 36. Every sum-insured block contains tenures 1 through 5.

CustomerComparison layout

  • Use A1 for the title Optima Secure+ Family Quote Comparison.
  • Use A3:A10 for Company, Product, Policy Basis, Family Composition, PIN Code, NRI or OCI Status, Claim History Summary, and Add-ons.
  • Use B3:B10 for the corresponding approved case values.
  • Start the seven sum-insured blocks on rows 13, 22, 31, 40, 49, 58, and 67.
  • Use the second row of each block for Premium / Discount and tenure headers 1 Year through 5 Years.
  • Use the next six rows for Base Premium, Favourable Claims Experience Discount, Multi-Year Discount, NRI Discount, Lifetime Discount, and Exact Premium Payable.
  • Switch to the CustomerComparison worksheet.
  • Enter the title in A1 using the layout above.
  • Enter the case-summary labels in A3:A10.
  • Copy the corresponding approved values from CaseSetup into B3:B10.
  • Build the first comparison block across A13:F20 for ₹10 lakh.

The first comparison block now shows five tenure columns and six portal-evidence rows. Its premium cells remain blank until the attended flow captures a result.

  • Copy the first block into ranges A22:F29, A31:F38, A40:F47, A49:F56, A58:F65, and A67:F74.
  • Replace each copied block label with its matching sum insured from the row map.
  • Select ranges B20:F20, B29:F29, B38:F38, B47:F47, B56:F56, B65:F65, and B74:F74.
  • Select Home in the Excel ribbon.
  • Open the Fill Color menu.
  • Choose a green color for the selected exact-payable cells.
  • Press Ctrl+S to save the workbook.

That is a meaningful milestone. Your customer view now gives every exact payable premium a dedicated green destination without pre-filling any price.

Create the starter desktop flow

The starter flow proves that Power Automate for desktop can reach the local workbook. Keeping Excel visible also preserves human supervision during every later quote run.

  • Close the Excel window after confirming the workbook is saved.
  • Press the Windows key to open the search bar.
  • Type Power Automate into the search bar.
  • Press Enter to open Power Automate for desktop.
  • Select New flow in the console.
  • Enter 1UP Optima Secure+ Matrix Runner as the flow name.
  • Select Create.

The flow designer should now be open with an empty workspace for the new local flow.

  • Expand Excel in the Actions pane.
  • Double-click Launch Excel.
  • Choose and open the following document for the launch option.
  • Select the document picker beside Document path.
  • Choose 1UP_OptimaSecurePlus_Matrix.xlsx from C:\Users\Public\Documents\1UP-Quote-Matrix.
  • Keep Make instance visible set to True.
  • Select Save to add the action.
  • Select Save in the flow designer.

What does Launch Excel do?

The Launch Excel action opens an existing workbook and creates an Excel instance for later actions. A visible instance lets you watch each attended update when the quote automation grows.

Before you run the flow, which workbook and worksheet tabs do you expect Excel to show?

  • Select Run in the flow designer.

You should see Excel open 1UP_OptimaSecurePlus_Matrix.xlsx with CaseSetup, QuoteRequests, and CustomerComparison visible as worksheet tabs.

Your local quote workspace is working. Power Automate for desktop can now launch the structured workbook that supports the attended matrix.

Workbook does not open?

Check that the Document path points to the local 1UP_OptimaSecurePlus_Matrix.xlsx file. Confirm that the workbook was closed before the flow started.

Move the workbook out of any synchronized folder if Excel still fails to launch it.

Help me diagnose why Launch Excel cannot open my local workbook.

✔️ The workbook opens correctly

Your flow opens the local workbook in a visible Excel window. The three worksheets and all 35 request rows are ready for portal capture.

ⓧ Something does not match

Compare your finished setup with this checkpoint before moving on.

  • Confirm the local workbook is named 1UP_OptimaSecurePlus_Matrix.xlsx.
  • Confirm the workbook contains CaseSetup, QuoteRequests, and CustomerComparison.
  • Confirm CaseSetup contains the five family-member columns and six case fields.
  • Confirm QuoteRequests contains 35 mapped rows across seven sum-insured choices and five tenures.
  • Confirm every ForceFailure value is No.
  • Confirm every exact-payable cell on CustomerComparison is blank with green fill.
  • Confirm the flow is named 1UP Optima Secure+ Matrix Runner.
  • Confirm the flow contains one visible Launch Excel action for the local workbook.

Your family case and comparison matrix are ready. Next, you will capture one portal-displayed exact premium and place it in the first green cell.

Capture a First Portal Quote

Your Microsoft Excel workbook now holds the approved family-floater case. Its first queue row already maps to the green cell for ₹10 lakh with a 1 Year tenure.

Now your attended Power Automate for desktop flow needs to prove that the approved 1UP quote portal matches the workbook mapping. The flow attaches to your authenticated Microsoft Edge tab while you remain in control of sign-in.

A single portal-derived result gives you a small test surface before the full matrix runs. You will capture one request without calculating any premium or discount in Excel.

In this step, get ready to:
  • Attach the desktop flow to the authenticated portal through the browser extension.
  • Capture the live portal controls as role-named web UI elements.
  • Submit the first request before mapping its displayed result into Excel.
Attach to the authenticated portal

An attended browser flow joins a session that you opened yourself. This keeps authentication under your supervision.

Your login stays in your hands. Credentials, one-time codes, consent, and CAPTCHA remain outside the flow.

  • Press the Windows key to open Windows search.
  • Type Microsoft Edge into Windows search.
  • Select Microsoft Edge from the search results.
  • Navigate manually to the approved quote-start page using your authorized link.
  • Complete the portal's security checks yourself.
  • Leave the approved quote-start tab selected in Microsoft Edge.

Keep authentication outside the flow

The flow begins after authentication has finished. This boundary prevents the automation from storing credentials or attempting to bypass a human security check.

  • Return to the 1UP Optima Secure+ Matrix Runner flow from earlier.
  • Add the Launch new Microsoft Edge action below the existing Launch Excel action.
  • Set Launch mode to Attach to running instance.
  • Enable Use foreground window.
  • Set Browser interaction method to Browser extension.
  • Save the desktop flow.

Why use the browser extension?

The browser extension can attach to the Microsoft Edge session you opened manually. WebDriver can attach only to a browser instance launched by the flow.

The extension preserves the attended login boundary while giving the flow access to captured web controls.

A captured web UI element gives the flow a reusable reference to a live control. Role-based names make each reference understandable when the portal wording changes.

  • Open the UI elements pane in the desktop-flow designer.
  • Select Add UI element.
  • Return to the approved portal page in Microsoft Edge.
  • Highlight the first live control you want to capture.
  • Press Ctrl + Left click to capture the highlighted control.
  • Select Done after the capture succeeds.

Why name elements by role?

A role name describes what the control does in the quote journey. Names such as family composition or exact premium payable make later actions easier to audit.

  • Repeat the capture process for family composition, member ages, and PIN code.
  • Repeat the capture process for family-floater selection and Optima Secure+.
  • Repeat the capture process for fresh or port-in status, NRI or OCI selection, and claim-history questions.
  • Repeat the capture process for add-ons, sum insured, and tenure.
  • Repeat the capture process for the calculate action and result container.
  • Repeat the capture process for the discount area and exact premium payable.
  • Rename every captured element in the UI elements pane according to its role.

Unable to capture a portal control?

Confirm that the Power Automate extension is enabled in Microsoft Edge. Confirm that Microsoft Edge runs under the same Windows account as Power Automate for desktop.

Capture the control from the webpage as a web UI element. A desktop UI element is incompatible with browser automation actions.

Ask for help with the capture process: help me capture web elements from my authenticated Microsoft Edge page.

Submit the first quote request

The workbook remains the source of the approved case inputs. The flow reads those values before it touches any portal control.

  • Add a Read from Excel worksheet action after the browser attachment action.
  • Configure the action to read the approved member rows and case fields from CaseSetup.
  • Add another Read from Excel worksheet action for QuoteRequests.
  • Configure the second action to read only the first data row beneath the column headings.
  • Confirm that the first row contains ₹10 lakh under SumInsured.
  • Confirm that the first row contains 1 under TenureYears.

Match each action to the control

  • Use Populate text field on web page for captured text inputs.
  • Use Set drop-down list value on web page for captured drop-down controls.
  • Use Set check box state on web page for captured checkboxes.
  • Use Press button on web page for the captured calculate control.
  • Add the matching browser actions for the family composition stored on CaseSetup.
  • Add the matching browser action for every stored member age.
  • Populate the PIN code from PINCode.
  • Set the captured family-floater control from the approved case.
  • Set the captured product control to Optima Secure+.
  • Add an If action for PolicyBasis.
  • Configure the Fresh branch to select the portal's fresh-policy path.
  • Configure the PortIn branch to select the portal's port-in path.

Let the portal decide discounts

The workbook supplies the approved disclosure answers. The portal determines which discount lines apply to the case.

Keep every percentage calculation out of Excel. A displayed portal result remains the audit source for the quote.

  • Add the matching claim-history action for ClaimLastPolicyYear inside the PortIn branch.
  • Add the matching claim-history action for ClaimPolicyYearBeforeThat inside the PortIn branch.
  • Keep the claim-history actions outside the Fresh branch.
  • Configure the NRI or OCI selection from NRIorOCI only when every insured member is marked as NRI or OCI.
  • Set the captured add-on controls from SelectedAddOns.
  • Set the captured sum-insured control from the first row's SumInsured value.
  • Set the captured tenure control from the first row's TenureYears value.
  • Add Press button on web page for the captured calculate action.
Capture and map the portal result

Portal results can take different amounts of time to load. An explicit content wait starts extraction only after the captured result container is available.

  • Add Wait for web page content immediately after the calculate action.
  • Set the wait condition to Contain element.
  • Choose the captured result container as the element to wait for.
  • Add Get details of element on web page for the displayed base premium.
  • Repeat the extraction action for every discount line displayed by the portal.
  • Add the extraction action for the displayed exact premium payable.
  • Set Attribute name to Own Text for every extraction action.

Why wait for page content?

A fixed delay assumes that every quote loads at the same speed. Wait for web page content follows the result container itself.

The extraction starts when the page has produced the evidence you need.

  • Add Write to Excel worksheet for the first QuoteRequests row.
  • Write each displayed premium or discount value into its matching result column.
  • Leave a discount field blank when the portal does not display that line.
  • Write the displayed exact amount into ExactPremiumPayable.
  • Use BlockStartRow with OutputColumn to write each captured value into its labeled CustomerComparison row.
  • Write Completed into Status for the first request.
  • Clear the first request's ErrorMessage cell.
  • Add Save Excel as the final flow action.

Before you run the flow, which workbook cells do you think should change if the portal mapping is correct?

  • Save the 1UP Optima Secure+ Matrix Runner flow.
  • Keep the approved quote-start tab selected in Microsoft Edge.
  • Click Run in the desktop-flow designer.
  • Return to the Excel workbook from earlier after the flow finishes.
  • Select the QuoteRequests worksheet tab.

The ₹10 lakh and 1 year row should now contain the portal-displayed base premium. Any displayed discount lines should appear in their matching columns.

Its ExactPremiumPayable cell should contain the portal's exact amount. Its Status should show Completed while ErrorMessage remains blank.

  • Select the CustomerComparison worksheet tab.

You should see the first request's evidence in the ₹10 lakh block under 1 Year. The exact premium payable should appear in the pre-formatted green cell.

  • Scan the remaining exact-premium cells in CustomerComparison.

That is the first end-to-end quote path working: the portal's exact amount now lands in the mapped green cell.

The other 34 green cells remain blank. Those empty cells expose the current single-request limit.

First quote not reaching Excel?

Confirm that the flow attached to the approved Microsoft Edge tab. Confirm that the result wait targets the captured result container.

Check that every extraction uses Own Text. Check that the first queue row supplies the expected BlockStartRow and OutputColumn values.

Ask for help tracing the mapping: help me trace my first portal quote into the mapped Excel cells.

Your first captured quote proves the attended route from the portal to Excel. Next, you will extend this proven path across the full 35-row matrix.

Run the Full Quote Matrix

The first attended quote already proves that Power Automate for desktop can carry an authorized family case through the portal. Its exact payable amount now sits in Microsoft Excel.

A customer comparison needs all 35 sum-insured and tenure combinations. This step replaces the fixed first request with a reusable loop that fills the remaining 34 combinations.

In this step, get ready to:
  • Read all 35 quote requests into a structured queue.
  • Run the existing portal actions once for each quote request.
  • Map every available result into its queue row and green comparison cell.
Read the quote queue as structured data

A DataTable keeps the complete quote queue in memory. Each DataRow gives the loop one request with its inputs and comparison mapping.

  • Switch back to the designer for 1UP Optima Secure+ Matrix Runner.
  • Keep the existing CaseSetup read actions before the quote-queue read.
  • Select the existing Read from Excel worksheet action that currently reads only the first QuoteRequests row.
  • Set its retrieval mode to All available values from worksheet.
  • Use the designer's step-by-step run control to execute through this action.

You should see the read output span all 35 request rows. This confirms the flow can reach the complete queue.

  • Enable First line of range contains column names in the read action.
  • Select Typed values for the values returned from Excel.
  • Execute through the read action again with the designer's step-by-step run control.

You should see named columns such as SumInsured and TenureYears in the result. The 35 requests now have the structure that the loop needs.

  • Rename the produced variable to QuoteData.
  • Add a For each action directly below the queue read with %QuoteData% as the value to iterate.
  • Step into the first iteration with the designer's step-by-step run control.

The current item should contain the first request's ₹10 lakh sum insured and 1-year tenure. That visible row proves the loop is reading the queue in workbook order.

  • Rename the current DataRow variable to CurrentQuote.

Why use named columns?

Named columns keep each request readable inside the loop. Expressions such as %CurrentQuote['SumInsured']% continue to point to the intended value even when the worksheet contains many result columns.

The mapping fields travel with the same request. This keeps each portal result tied to the correct customer-facing cell.

Run each sum-insured and tenure combination

The loop becomes useful when the existing single-request actions run inside it. Every iteration starts from the known quote page before applying the values in CurrentQuote.

  • Move the existing single-request action group inside the For each block.
  • Place the existing Go to web page action at the top of the loop.
  • Execute the first two loop actions with the designer's step-by-step run control.

You should see Microsoft Edge return to the known quote-start page. The flow should continue only after the captured form element is available.

  • Keep the existing Wait for web page content action immediately after navigation.
  • Keep the existing case-control group after the form wait.

What stays case-driven?

  • Family composition and member ages continue to come from CaseSetup.
  • The PIN code and family-floater selection continue to use the approved case values.
  • The Fresh or PortIn branch continues to follow PolicyBasis.
  • The two claim-history answers remain limited to the port-in path that requests them.
  • The NRI or OCI selection continues to follow the approved all-member case value.
  • The selected add-ons continue to come from the workbook without local interpretation.
  • Replace the fixed sum-insured input with %CurrentQuote['SumInsured']% in the existing portal action.
  • Replace the fixed tenure input with %CurrentQuote['TenureYears']% in the existing portal action.

Before you step through the first iteration, which sum-insured and tenure combination do you expect the portal to receive?

  • Execute the first iteration through the calculate action and result wait with the designer's step-by-step run control.

You should see the portal process the ₹10 lakh and 1-year request from the first row. This confirms both inputs now come from CurrentQuote.

Does every iteration use the first request?

Check that the sum-insured action uses %CurrentQuote['SumInsured']%. Check the tenure action separately for %CurrentQuote['TenureYears']%.

Confirm both actions sit inside the For each block. An action outside the loop runs only once.

help me find why my Power Automate for desktop loop keeps submitting the first quote request

Fill the evidence rows and green premium cells

Each result must preserve what the portal displays for that combination. The workbook leaves an undisplayed discount blank because no local calculation fills the gap.

  • Keep the result-container Wait for web page content action inside the loop after the calculate action.
  • Keep the existing Get details of element on web page actions set to Own Text for the displayed evidence.
  • Change the queue-write target so the existing result-column mappings use the current loop row.
  • Execute the first iteration through the QuoteRequests write actions.

The current queue row should contain the portal-displayed base premium and exact payable value. Any discount field that the portal does not display should remain blank.

  • Set the comparison block row from the current request's BlockStartRow value.
  • Set the comparison tenure column from the current request's OutputColumn value.
  • Advance through another available iteration with the designer's step-by-step run control.

You should see the next request's evidence land in its own sum-insured block. Its exact payable amount should appear in the pre-formatted green tenure cell.

  • Configure the available-result path to write Completed only after the portal returns an exact payable value.
  • Configure an If branch for any result that the portal explicitly declares unavailable.

How should unavailable results look?

  • The available path writes the portal's displayed evidence into the current queue row.
  • The available path places ExactPremiumPayable in the mapped green cell before writing Completed.
  • The unavailable path writes Unavailable to Status.
  • The unavailable path writes the portal's message to ErrorMessage.
  • The unavailable path leaves ExactPremiumPayable and its green comparison cell empty.
  • Move the existing Save Excel action directly after the end of the For each block.

Before you run the complete matrix, do you expect every row to contain a numeric premium?

This is the longest attended pass because every row waits for the live portal. A slower row reflects portal response time, so the explicit waits keep the flow synchronized.

  • Keep the manually authenticated portal tab in the foreground before the run begins.
  • Run the entire flow from the beginning.
  • Complete any portal-required one-time code or CAPTCHA manually if the live session requests it.

Each of the 35 rows should end with Completed or Unavailable. Every completed row should contain a portal-derived exact payable premium.

The CustomerComparison worksheet should now show each completed premium in its mapped green cell. You have turned one successful quote into a full attended comparison matrix.

Are rows or green cells misaligned?

  • Check that the queue-write actions use the current loop row instead of the original first-row number.
  • Check that each comparison write reads BlockStartRow from the same CurrentQuote as the captured result.
  • Check that each comparison write reads OutputColumn from that same request.

help me trace a misaligned quote result in my Power Automate for desktop matrix

  • Compare your finished flow against the configuration checkpoint below.

✔️ My matrix is complete

Your queue has a status for every combination. Every completed exact payable premium is mapped to the correct green cell.

ⓧ Let me check the flow

  • Confirm the flow reads CaseSetup once before the loop.
  • Confirm Read from Excel worksheet loads all QuoteRequests values into QuoteData with column names and typed values.
  • Confirm For each iterates through %QuoteData% with CurrentQuote as the current DataRow.
  • Confirm each iteration returns to the known quote-start page before waiting for the captured form.
  • Confirm each iteration uses the approved Fresh or PortIn case path.
  • Confirm completed evidence uses the current request's queue row and comparison mapping.
  • Confirm unavailable combinations contain a portal message without a numeric exact payable value.
  • Confirm Save Excel sits after the loop.

Your full comparison now survives both available and portal-declared unavailable combinations. Next, you will add an audit trail that protects later requests when one row fails.

Add Audit-Safe Recovery

Your QuoteData loop now fills the comparison with evidence from the authorized 1UP quote portal. A single stalled result can still stop later requests from reaching the portal.

This step gives Power Automate for desktop a recovery boundary around each CurrentQuote. Every combination ends with an auditable status without carrying a failed value into the customer report.

In this step, get ready to:
  • Validate the exact premium before recording a completed quote.
  • Protect each quote request with row-level error handling.
  • Prove that later requests continue after a controlled failure.
Validate each portal result

Captured-element waits synchronize the flow with the live page in Microsoft Edge. The status logic then classifies the portal outcome before any value reaches the green comparison cell.

  • Locate the existing Wait for web page content action before form entry.
  • Confirm its condition uses Contain element with the captured quote form element.
  • Locate the existing Wait for web page content action after the quote request.
  • Confirm its condition uses Contain element with the captured result container.

Both waits now depend on visible portal elements. This keeps form entry and result extraction synchronized with the live journey.

  • Add an If condition immediately before the existing Completed writes.
  • Configure the condition to accept captured ExactPremiumPayable Own Text only when it contains a value.
  • Move the existing completed queue writes into the true branch.
  • Move the existing green exact-payable cell write into the true branch.

The Completed route now has a visible evidence gate. A blank payable value cannot enter that route.

Why is exact premium the gate?

A portal result can display discount information before the payable text is ready. The exact premium confirms that the quote result is complete enough to record.

The flow stores only the value displayed by the portal. It never derives a missing premium from the discount lines.

  • Keep the existing portal-declared unavailable route separate from the completed route.
  • Confirm its Status write remains Unavailable.
  • Confirm its ErrorMessage write receives the displayed portal message.
  • Confirm its ExactPremiumPayable field remains blank.
  • Confirm its mapped green exact-payable cell remains blank.
  • Save the desktop flow.

You should now see three distinct outcomes on the canvas. A quote can reach a validated completed route or the existing unavailable route. Any action error will be handled by the recovery route you add next.

Captured element no longer matching?

Recapture the live element from the authenticated page. Review its selector alternatives before using image recognition or screen coordinates.

Make sure the wait targets a web UI element from the page. A desktop UI element cannot drive a browser automation action.

Help me repair a captured web element that stopped matching the authorized quote page.

Isolate failures by row

Row-level recovery gives every quote request its own error boundary. A failed iteration can record its evidence before the loop advances to the next CurrentQuote.

  • Add Set variable as the first action inside the existing For each loop.
  • Set RowFailed to False.
  • Add a second Set variable action below it.
  • Set ErrorText to a blank value.

The top of every iteration now resets its recovery state. An error from an earlier row cannot become the current row's audit result.

  • Add On block error immediately after the two variable initializers.
  • Move the existing quote-processing actions into the protected block.
  • Configure the block to continue the flow after an action error.

The canvas should now show one protected block inside the loop. The next iteration remains reachable when an action inside that block fails.

What belongs in the protected block?

  • Navigation to the known quote-start page stays inside the block.
  • Captured-element waits stay inside the block.
  • Family fields plus policy controls stay inside the block.
  • Quote calculation plus portal extraction stay inside the block.
  • Queue writes plus comparison writes stay inside the block.
  • Add Get last error immediately after the protected block.
  • Configure the action to clear the stored error after capture.

Each iteration now has access to its own latest error. Clearing the stored error prevents that failure from being reused by a later row.

  • Add an If branch for an error produced by the current protected block.
  • Set RowFailed to True inside that branch.

The failure route now has an explicit row flag. Successful or unavailable portal outcomes remain outside that route.

  • Set ErrorText to %LastError.Message% inside the failure route.
  • Write Failed to the current row's Status field.
  • Write ErrorText to the current row's ErrorMessage field.
  • Clear the current row's portal result fields.
  • Clear the failed row's mapped values from CustomerComparison.
  • Preserve the existing green formatting on the blank exact-payable cell.

Which failed result fields stay blank?

  • The DisplayedBasePremium field stays blank.
  • The DisplayedFavourableClaimDiscount field stays blank.
  • The DisplayedMultiYearDiscount field stays blank.
  • The DisplayedNRIDiscount field stays blank.
  • The DisplayedLifetimeDiscount field stays blank.
  • The ExactPremiumPayable field stays blank.
  • Save the desktop flow.

Your loop now has a complete failure route after the protected block. It captures the error message without leaving partial portal values in either worksheet.

Entire matrix stopping after an error?

Confirm the quote-processing actions are inside On block error. Confirm the block is configured to continue the flow after an error.

Check that Get last error sits after the protected block. The failure route needs %LastError.Message% from that action.

Help me find why my protected Power Automate loop still stops after one quote fails.

Prove recovery with a controlled failure

A controlled error tests the failure path without relying on the live portal to break. The test starts before browser interaction inside the protected block.

  • Add an If action at the top of the protected block.
  • Configure it to check whether %CurrentQuote['ForceFailure']% equals Yes.

The test condition now runs before navigation or form entry. A flagged request can exercise the recovery route without touching the portal.

  • Add Throw custom error inside the test branch.
  • Set the custom error name to ForcedTestFailure.

The branch now contains a deliberate error action. Its message will become the row-level audit evidence.

  • Set the custom error message to Controlled test failure.
  • Save the desktop flow.

The existing Microsoft Excel workbook supplies the test switch. Only the selected queue row needs to change.

  • Switch back to the open QuoteRequests worksheet.
  • Set ForceFailure to Yes for the ₹10 lakh 1-year request.
  • Confirm every later request still has No in ForceFailure.
  • Save 1UP_OptimaSecurePlus_Matrix.xlsx.

This full test repeats the attended matrix journey, so keep the authenticated browser available until the flow finishes.

Before you run it, which request do you expect the loop to process after the forced row reaches the recovery path?

  • Start the existing desktop flow from the designer.

The ₹10 lakh 1-year row records Failed in Status. Its ErrorMessage contains Controlled test failure.

Later rows continue to their portal-derived outcomes. Their statuses show Completed or the existing Unavailable result.

  • Switch back to the open QuoteRequests worksheet.

The forced row has blank premium fields. At least one later row has a portal-derived status from the same run.

  • Switch to the open CustomerComparison worksheet.

The forced row's mapped exact-payable cell keeps its green formatting with no value inside it. Later completed values remain in their correct mapped cells.

Controlled row did not recover correctly?

Confirm the test If checks %CurrentQuote['ForceFailure']% for the exact value Yes.

Confirm Throw custom error sits inside On block error before the first portal action.

Help me debug why my forced quote failure did not record Failed and continue to later rows.

  • Return to the open QuoteRequests worksheet.
  • Set the tested ForceFailure cell back to No.
  • Check every other ForceFailure cell for No.
  • Save 1UP_OptimaSecurePlus_Matrix.xlsx.

That is the recovery boundary proven. One controlled failure now leaves a clear audit record while later quote combinations keep moving.

✔️ Awesome, I've got everything!

Your flow now protects each quote row. Complete the checkpoint below with the controlled recovery result.

ⓧ I'd like to double check the full flow

Compare your final flow and workbook with this recovery structure.

  • The flow retains QuoteData as the queue plus CurrentQuote as the current DataRow.
  • Every iteration starts with RowFailed set to False.
  • Every iteration starts with ErrorText set to blank.
  • The On block error block contains navigation through Excel writes.
  • Captured-element waits protect form entry plus result extraction.
  • The Completed route requires portal-displayed exact premium text.
  • The Unavailable route stores the portal message with no payable value.
  • The Failed route stores %LastError.Message% with blank result fields.
  • The forced test throws ForcedTestFailure before portal interaction when ForceFailure is Yes.
  • Failed rows have no mapped value in a green exact-payable cell.
  • Unavailable rows have no mapped value in a green exact-payable cell.
  • Every ForceFailure cell is back to No.
  • The customer comparison contains only completed portal-derived values.

Secret mission

Add an Explicit Run-Approval Gate

A copied request should never reach the portal without deliberate approval. Add a per-row gate that skips unapproved combinations before any browser interaction while preserving the existing recovery path for approved requests.

Clean Up Your Resources

Clean Up Your Resources

This project created only local resources, so keeping or pausing them does not add an ongoing cloud charge. Choose whether to keep them available, pause the local apps, or delete the flow and workbook.

Resources you used:

  • Local Power Automate for desktop flow 1UP Optima Secure+ Matrix Runner with captured web UI elements, an approval gate, status tracking, and row-level recovery.
  • Local Microsoft Excel workbook 1UP_OptimaSecurePlus_Matrix.xlsx with the CaseSetup, QuoteRequests, and CustomerComparison worksheets plus the 35-row quote queue.

Keep everything running

No action is needed. Choose this option if you plan to keep using the attended quote runner for approved cases.

  • Retain the 1UP Optima Secure+ Matrix Runner flow in Power Automate for desktop.
  • Retain 1UP_OptimaSecurePlus_Matrix.xlsx in its current local folder.
  • Clear the existing case details before using the workbook for a different customer.
  • Clear the existing portal evidence before using the workbook for a different customer.
  • Verify that every ForceFailure value remains No before the next live run.
  • Review every RunApproved value before the next live run.
  • Keep the Microsoft Edge extension enabled while approved desktop flows still depend on it.

Pause - I'll come back to this later

Close the local apps to stop the attended run. Your flow and workbook remain available for the next approved session.

  • Save 1UP_OptimaSecurePlus_Matrix.xlsx in Excel.
  • Close Excel.
  • Close Microsoft Edge.
  • Close Power Automate for desktop.

The attended flow cannot continue after the local apps close. You can resume later by opening the same flow and workbook during an authorized portal session.

Delete - I don't want to use this again

Deletion permanently removes the local quote runner and its workbook from their saved locations. Use this option when you no longer need the project resources.

  • Save 1UP_OptimaSecurePlus_Matrix.xlsx in Excel.
  • Close Excel.
  • Close Microsoft Edge.
  • Return to the Power Automate for desktop console.
  • Select the 1UP Optima Secure+ Matrix Runner flow.
  • Choose Delete for the selected flow.
  • Confirm the deletion when prompted.

That clears the automation itself. You should no longer see the flow or its captured web UI elements in the console.

  • Use the Windows file browser to navigate to the local folder where you saved the workbook.
  • Select 1UP_OptimaSecurePlus_Matrix.xlsx.
  • Press Delete.

The local workbook is removed when you no longer see 1UP_OptimaSecurePlus_Matrix.xlsx in that folder.

The enabled Power Automate extension may support other approved desktop flows.

  • Keep the extension when another approved desktop flow uses it.
  • Remove the extension through your organization's approved Microsoft Edge process only when no other approved desktop flow uses it.

Nice Work!

Nice Work!

You did it! Your attended browser automation now turns an approved family case into a 35-combination Optima Secure+ customer comparison.

You've learned how to:

  • Build a structured family-floater case in Microsoft Excel. Map all 35 quote combinations to customer-facing green premium cells.
  • Use Power Automate for desktop with Microsoft Edge to capture portal-displayed premium evidence. Keep local insurance calculations out of the workbook.
  • Give every request a clear audit status. Use row-level recovery to continue approved combinations after a controlled failure.
  • Secret Mission: Add a per-combination approval gate that marks unapproved rows as Skipped before browser interaction.

Ready to quiz yourself?