Workday.com & Smartsheet Connection for moving data

Any thoughts on what the best path forward be to build a connection between workday.com and smartsheet? Currently stuck evaluating between using Bridge or Smartsheet API/Workday API. We would like to be able to select specific line detail to be sent to workday for the req to check process and bring the requisition number, PO number, and receipt info back into Smartsheet. Or how easy this process would be to build out - Any advice would be greatly appreciated!

Answers

  • kskarz
    kskarz ✭✭✭✭

    @Kelsey_Ward_NCH

    For the API I would suggest:

    • add a column to the sheet which will be a type checkbox. This column should have a webhook set so if ticked the request will be sent to the server
    • When the server receives the request it can grab the data from that row
    • Based on the data the API to workday.com should be initiated
    • the required data should be pulled out from workday.com
    • send the data back to the row

    I have done many similar connections in the past and all of them worked without any issues.

    Let me know If you need any more info or if you have a question.

  • Brian_Richardson
    Brian_Richardson Overachievers
    edited 02/12/24

    I do something similar with ServiceNow in Smartsheet Bridge. It works well and you don't need to code anything, but you do need to have some familiarity with Bridge and with the Workday API to get it to work.

    Using Bridge you can have one workflow waiting for you to check a box or approve a row, then it will send that information up to Workday to create a requisition. A second Bridge parent-child workflow will check Workday on a timer to see if there's updates to the requisitions, and if so will post those updates back to your tracking sheet on the same row.

    1) Have your sheet with your request information on it. I'm assuming you have some sort of approval process, or at least have a checkbox that will check when the request info is ready to be sent to Workday

    2) Setup the Call API in Bridge for Workday. Because Workday doesn't have a prebuilt Bridge integration, you'll be calling the Workday API directly using HTTP. You'll need to work with the Workday admins to setup a login/password or a token that you can use to have Bridge authenticate with. Bridge cannot do Oauth. When setting up the Call API, you'll telling Bridge how to call Workday and what those authentication headers are going to be. For example, my Workday URL looks like this: https://wd5-services1.myworkday.com/ccx/service/customreport2 and has an "Authorization" secret header with an encoded username/password in it. If you're using Basic Authentication (username/password) for your Workday API login, then you can convert that to a string of characters using Postman. Get a Postman free account and create a new call, put username/pw in the Basic Authentication window, then switch to the Headers window and you'll see "Authorization-Basic" there. The string of characters after that header is the string you can put into the Bridge Call API setup for your Authorization header.

    3) Setup a workflow in Bridge to be triggered. We'll setup the trigger as a next step, there first needs to be a workflow in place to get triggered. The workflow will be the following steps (at minimum, this is simple version)

    Step 1: Get Row: this will pull all the data from the row that was "checked" for submission

    Step 2: Call API: use the Workday API reference that you setup in step 2 above, and add the endpoint that you're using and the appropriate body of the request. Here's the Workday API documentation for Post Requisitions: https://community.workday.com/sites/default/files/file-hosting/restapi/index.html#procurement/v4/post-/requisitions

    Step 3: Update Row: the Call API step will almost certainly return to you a request ID or something similar. Use Update Row to then post that request ID back into the tracking sheet where this all started.

    4) Setup a trigger in Bridge to watch the checkbox column on your sheet for changes and trigger when you check a box. Point that trigger at the workflow you just setup.

    5) Setup a workflow in Bridge that's scheduled maybe hourly(?) to watch Workday for updates to PO numbers, approvals, whatever you're looking for. That workflow will be a parent-child workflow (so two workflows)

    WORKFLOW 1: PARENT

    Step 1: Search Sheet: search for all rows where there is a requisition ID posted from the earlier workflow. You may also want to include "status is blank" or something similar in the Row Filters so you don't constantly check POs that are already set. Be sure to check the "Get Sheet Data" option in this step.

    Step 2: Child Workflow. In the "Number of Runs" option put the reference to the rows array from Step 1. This will run the child workflow once for each row that has an ID.

    WORKFLOW 2: CHILD

    Step 1: Call API: use something like the /requisitions/id endpoint from the Workday API documentation that I linked above. For the id part of the endpoint address you can substitute a reference to the ID value in the column from your tracker sheet. That Call API Endpoint option would then look something like /requisitions/{{runtime.data.reqid}}

    Step 2: Update Row: using whatever results you want to save from Step 1, post those results into the tracking sheet by updating the row ID from the trigger and adding the Call API results into specific cells in your sheet.

    BRIAN RICHARDSON | PMO TOOLS AND RESOURCES | HE|HIM

    SEATTLE WA, USA

    IRON MOUNTAIN