Call scripts from a manual Power Automate flow

This tutorial teaches you how to run an Office Script for Excel on the web through Power Automate. You'll make a script that updates the values of two cells with the current time. You'll then connect that script to a manually triggered Power Automate flow, so that the script is run whenever a button in Power Automate is selected. Once you understand the basic pattern, you can expand the flow to include other applications and automate more of your daily workflow.

Tip

If you are new to Office Scripts, we recommend starting with the Record, edit, and create Office Scripts in Excel on the web tutorial. Office Scripts use TypeScript and this tutorial is intended for people with beginner to intermediate-level knowledge of JavaScript or TypeScript. If you're new to JavaScript, we recommend starting with the Mozilla JavaScript tutorial.

Prerequisites

Before starting this tutorial, you'll need access to the following:

Prepare the workbook

Power Automate shouldn't use relative references like Workbook.getActiveWorksheet to access workbook components. So, we need a workbook and worksheet with consistent names that Power Automate can reference.

  1. Create a new workbook named MyWorkbook.

  2. In the MyWorkbook workbook, create a worksheet called TutorialWorksheet.

Create an Office Script

  1. Go to the Automate tab and select All Scripts.

  2. Select New Script.

  3. Replace the default script with the following script. This script adds the current date and time to the first two cells of the TutorialWorksheet worksheet.

    function main(workbook: ExcelScript.Workbook) {
      // Get the "TutorialWorksheet" worksheet from the workbook.
      let worksheet = workbook.getWorksheet("TutorialWorksheet");
    
      // Get the cells at A1 and B1.
      let dateRange = worksheet.getRange("A1");
      let timeRange = worksheet.getRange("B1");
    
      // Get the current date and time using the JavaScript Date object.
      let date = new Date(Date.now());
    
      // Add the date string to A1.
      dateRange.setValue(date.toLocaleDateString());
    
      // Add the time string to B1.
      timeRange.setValue(date.toLocaleTimeString());
    }
    
  4. Rename the script to Set date and time. Select the script name to change it.

  5. Save the script by selecting Save Script.

Create an automated workflow with Power Automate

  1. Sign in to the Power Automate site.

  2. In the menu that's displayed on the left side of the screen, select Create. This brings you to list of ways to create new workflows.

    The Power Automate 'Create' button.

  3. In the Start from blank section, select Instant flow. This creates a manually activated workflow.

    The Power Automate Instant flow option for creating a new workflow.

  4. In the dialog window that appears, enter a name for your flow in the Flow name text box, select Manually trigger a flow from the list of options under Choose how to trigger the flow, and then select Create.

    The Power Automate 'Manually trigger a flow' option.

    Note that a manually triggered flow is just one of many types of flows. In the next tutorial, you'll make a flow that automatically runs when you receive an email.

  5. Select New step.

  6. Select the Standard tab, then select Excel Online (Business).

    Excel Online (Business) option in Power Automate.

  7. Under Actions, select Run script.

    Run script action option in Power Automate.

  8. Next, you'll select the workbook and script to use in the flow step. For the tutorial, you'll use the workbook you created in your OneDrive, but you could use any workbook in a OneDrive or SharePoint site. Specify the following settings for the Run script connector:

    • Location: OneDrive for Business
    • Document Library: OneDrive
    • File: MyWorkbook.xlsx (Chosen through the file browser)
    • Script: Set date and time

    The Power Automate connector settings for running a script.

  9. Select Save.

Your flow is now ready to be run through Power Automate. You can test it using the Test button in the flow editor or follow the remaining tutorial steps to run the flow from your flow collection.

Run the script through Power Automate

  1. From the main Power Automate page, select My flows.

    The My flows button in Power Automate.

  2. Select My tutorial flow from the list of flows displayed in the My flows tab. This shows the details of the flow we previously created.

  3. Select Run.

    The Run button in Power Automate.

  4. A task pane will appear for running the flow. If you are asked to Sign in to Excel Online, do so by selecting Continue.

  5. Select Run flow. This runs the flow, which runs the related Office Script.

  6. Select Done. You should see the Runs section update accordingly.

  7. Refresh the page to see the results of the Power Automate. If it failed, verify the flow's settings and run it a second time.

    Power Automate output showing a successful flow run.

  8. Open the workbook to see the updated cells. You should see the current date in cell A1 and the current time in cell B1. Power Automate uses Coordinated Universal Time (UTC), so the time will likely be offset from your current time zone.

    The workbook showing date and time values in cells A1 and B1.

Next steps

Complete the Pass data to scripts in an automatically-run Power Automate flow tutorial. It teaches you how to pass data from a workflow service to your Office Script and run the Power Automate flow when certain events occur.