top of page

Set up a Slack-first request process backed by Google Sheets for Workflow Builder in minutes

Say goodbye to manual spreadsheet updates and the hassle of switching between applications as Google Sheets for Workflow Builder helps integrate Slack and Google Sheets to automate the process.

Let's review an example request process where a Google Sheet can be used to create and track requests, approve and forward, and even provide ability to delete all from Slack.

  1. Create Request: Users can submit a request using a Slack form, triggering a workflow that adds the request details to a Google Sheet. The request details include information such as the request, team, priority, requested by and requested date. Conversation about approval can take place in the thread of the original request in Slack.

  2. Forward Request: The request data from the Google Sheet can be searched for and selected to be used in Slack. In this case, to be used to forward request information to someone to approve it.

  3. Approve Request: An approver reviews the request in Slack and can mark it as approved, which updates the Google Sheet. Approval details are tracked in the sheet for approved by and approved date.

  4. Delete Request: If a request is found to be invalid, a user can delete it from the Google Sheet right from Slack.

By using Google Sheets in conjunction with Slack workflows, this process can be automated, reducing manual effort, and ensuring that all requests are tracked and managed in a consistent and efficient manner all from Slack. Workflows can be customized to meet your specific requirements, and the request process described here (and built below) is merely a demonstration of each step and not the only way it can be done. It is more important to comprehend the different types of steps available in the example, so you can apply them to your particular use cases and workflows.


To maintain a cohesive user experience, all four workflows have been set up with the same name and icon, making all interactions appear to be from a single "bot." And better, the .slackworkflow files for all four workflows are available in the summary section for your use - give them a shot! Note, you will have to update the workflows and steps to connect to your Google Sheet but the skeleton is there.


🎶 Side note: If for some reason you don't wish to use the Google Sheets for Workflow Builder to link to a sheet, you can easily download all responses from any workflow that has an "Open a form" step through the readily available "Download form responses" option.


Use Case Requirements

  • Users can create new requests in a channel that populate into a Google Sheet.

  • Users can approve request from Slack which updates the sheet.

  • Users can forward an existing request from the sheet to someone in Slack.

  • Users can delete a request in the sheet from Slack.

Pre-Requisites

  1. Install the Google Sheets for Workflow Builder Slack App in Slack.

  2. Create a #test-requests channel in Slack.

  3. Create a Google Sheet and add columns:

    1. Requested By

    2. Requested Date

    3. Team

    4. Priority

    5. Status

    6. Request

    7. Request Key

    8. Approved By

    9. Approved Date


Create Request

Add a spreadsheet row

Create Request
  1. Create a new Shortcut triggered workflow called "Request Bot" with short name of "New Request".

  2. Add an "Open a form" step that sends four questions:

    1. Team

    2. Request

    3. Priority

    4. Random Word

  3. Add an "Add a spreadsheet row" step.

    1. If this is your first time using a step, you will have to authenticate Google.

    2. Once authenticated, select the spreadsheet and sheet.

    3. Map all answers from form steps into the corresponding columns.

      1. Make sure you use the right step variables.

      2. Create a Request Key from two fields -- For this example, I used "<response to: team question>-<response to: random word question>". We'll use this key for other workflow steps.

      3. Use text "New" as value for Status column (i.e. hardcoded).

  4. Add a "Send a message" step that sends a message to the thread to remind team to discuss the request in the thread for traceability.

Forward Request

Select a spreadsheet row

  1. Create a new Emoji reaction triggered workflow called "Request Bot" that triggers based on ⏩.

  2. Add an "Open a form" step that sends two questions:

    1. Forward to

    2. Request Key

  3. Add a "Select a spreadsheet row" step.

    1. Use response of Request Key to "Find a row".

  4. Add a "Send a message" step that sends a message to the selected user with all details from the found request in the sheet.

  5. Add a "Send a message" step that sends a message to the thread stating the request was forwarded to someone and who forwarded it.



Approve Request

Update a spreadsheet row

  1. Create a new Emoji reaction triggered workflow called "Request Bot" that triggers based on ✅.

  2. Add an "Open a form" step that sends one question:

    1. Request Key

  3. Add an "Update a spreadsheet row" step.

    1. Use response of Request Key to "Find a row".

    2. In "Update these columns", update Status column to "Approved" (hardcoded).

  4. Add a "Send a message" step that sends a message to the thread with updated approved status.

Delete Request

Delete a spreadsheet row

  1. Create a new Emoji reaction triggered workflow called "Request Bot" that triggers based on ❌.

  2. Add an "Open a form" step that sends one question: Request Key

  3. Add a "Delete a spreadsheet row" step.

    1. Use response of Request Key to "Find a row".

  4. Add a "Send a message" step that sends a message to the thread with updated status.


Video Demo

A short demo of all of the steps in action from the end-user point of view. Take a look!


Annnnd Your Turn!

Go give it a try! All four workflow files are in the zip below to test out yourself. If you have any questions, issues, concerns or want help - email or Slack Connect me any time at daniel@21b.app. Enjoy!

Request-Bot-Slack-Workflows
.zip
Download ZIP • 8KB


452 views
bottom of page