<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-M74D8PB" height="0" width="0" style="display:none;visibility:hidden">
Loading
Skip to NavigationSkip to Main Content
0D54z00008Hzo3qCABOkta Identity EngineWorkflowsAnswered2022-11-02T20:22:08.000Z2022-10-31T21:05:43.000Z2022-11-02T20:22:08.000Z

JacksonK.52224 (Customer) asked a question.

Initiating an Okta onboarding workflow via google sheet and date

Hi there

 

I'm trying to create an automated onboarding for a new account. I created a scheduled flow to run every day. What it should do is read through the column of a google sheet titled "start date" and then when it matches the day it currently is, it should pick up the row and read the information on it, and create the account from that information.

 

I am however stuck on two things:

 

  1. when I select the date function, the date's format for "now" is not as simple as month/day/time. So far it fails to pick up any rows from the google sheet column, which is in YYYY-MM-DD fromat:

 

/help/servlet/rtaImage?refid=0EM4z000005HsC1

 

  1. (or rather 2 because of formating) I don't know what to do with the output IF the flow was able to search the column in google sheets. When I create an app action, I expect it to read the row, but I can get the "list" from the output in Column to the "Number" field in Read Row. Is there a way to get the row number from the Rows output?

  • TimL.58332 (Workflows)

    @JacksonK.52224 (Customer)​ 

     

    Okay. So for the first part of this use case:

     

    Is there a reason you are not leveraging the Google Sheets "Event" card action called: New Row? This allows you to set a schedule on how often it checks and will return all new rows from the last time it ran.

     

    Search Column is EXTREMELY inefficient as Google's API really doesn't have a search functionality. We essentially made a card that reads in the entire sheet into memory and then searches it. As the sheet grows the search can take quite a long time. I really don't recommend it's usage unless there is no other option.

     

    For the second part of this same use case:

     

    Most of the time when you have a list (JSON array) and you want to perform an action against "Each" item in the list you need to pass it through a for each card to process each item in a Helper flow. The Helper flow then contains the processing logic (such as: Making API calls to Okta or a Third-Party to create a user, update some profile attributes etc.)

     

     

     I suggest doing something simple like:

     

    Create a Helper flow (make sure history is on):

     

    image 

    Then create a Parent flow (make sure history is on):

    image 

    Then if you [Test] the flow you can see how it works by reviewing the history. Play around with "mock values" to learn usability then integrate it into your actual flow structure.

     

     

     

     

    Expand Post
    Selected as Best
  • JacksonK.52224 (Customer)

    I managed to solve my first problem, using the compose function I was able to make the date a specific format:

     

    image Still trying to figure out what to do with the found rows, "read" them, and then create accounts...

    Expand Post
  • TimL.58332 (Workflows)

    @JacksonK.52224 (Customer)​ 

     

    Okay. So for the first part of this use case:

     

    Is there a reason you are not leveraging the Google Sheets "Event" card action called: New Row? This allows you to set a schedule on how often it checks and will return all new rows from the last time it ran.

     

    Search Column is EXTREMELY inefficient as Google's API really doesn't have a search functionality. We essentially made a card that reads in the entire sheet into memory and then searches it. As the sheet grows the search can take quite a long time. I really don't recommend it's usage unless there is no other option.

     

    For the second part of this same use case:

     

    Most of the time when you have a list (JSON array) and you want to perform an action against "Each" item in the list you need to pass it through a for each card to process each item in a Helper flow. The Helper flow then contains the processing logic (such as: Making API calls to Okta or a Third-Party to create a user, update some profile attributes etc.)

     

     

     I suggest doing something simple like:

     

    Create a Helper flow (make sure history is on):

     

    image 

    Then create a Parent flow (make sure history is on):

    image 

    Then if you [Test] the flow you can see how it works by reviewing the history. Play around with "mock values" to learn usability then integrate it into your actual flow structure.

     

     

     

     

    Expand Post
    Selected as Best
    • JacksonK.52224 (Customer)

      Yes, I already created a workflow for "new row," in google sheets, the thing we want to do is simply enter a new hire details and set a date and forget it. We don't want to enter a new row and have the workflow run to create the account and send an invite to Okta to a new hire starting in say a month or so. So we want to eliminate that need of "did I make sure to enter this new hire details the night before they start?"

      Expand Post
    • JacksonK.52224 (Customer)

      Ok, so looks like the flow I created worked. The flow checks the column for dates once a day at midnight, it finds all rows with that date, and with each row, it reads it and creates an account with the information. Thanks!

       

      image 

      image 

      Expand Post
This question is closed.
Loading
Initiating an Okta onboarding workflow via google sheet and date