hackforla / website

Hack for LA's website
https://www.hackforla.org
GNU General Public License v2.0
323 stars 768 forks source link

Investigate Feasibility of Using UI Path to Automate Slack Invites #4555

Open christinaor opened 1 year ago

christinaor commented 1 year ago

Dependency

When the Dev Ops team finishes Terraform project, get this on their calendar.

Overview

Slack currently allows Hack for LA to create an invite link without an expiration, but which still expires after 400 invites, requiring a new linked to be generated for every other onboarding. We want to investigate whether we can use UI Path to create a desktop automation of this process so that it does not need to be reset manually every month.

To Adopt this issue

Ask the Org Rep or your Dev lead for access to the Slack Invites 1Password vault

Action Items

Resources/Instructions

jdingeman commented 1 year ago

Hey @christinaor - nice job. I edited one thing about the Slack permissions as I don't have any extra Slack permissions. It is maintained by Bonnie, so if it is necessary for the dev to have those permissions, they will need to reach out to her.

github-actions[bot] commented 1 year ago

Hi @LOSjr4, thank you for taking up this issue! Hfla appreciates you :)

Do let fellow developers know about your:- i. Availability: (When are you available to work on the issue/answer questions other programmers might have about your issue?) ii. ETA: (When do you expect this issue to be completed?)

You're awesome!

P.S. - You may not take up another issue until this issue gets merged (or closed). Thanks again :)

LOSjr4 commented 1 year ago

Availability: Weekday morning, but most definitely M,T,TH 9AM-1PM ETA: 5/9/23

LOSjr4 commented 1 year ago

@bonniewolfe, I've read through select documentation on Slack and UiPath, and watched some tutorials on how to use UiPath and it's capabilities. I'm ready for you to give me Slack permissions to generate invite links.

-Luis

github-actions[bot] commented 1 year ago

@LOSjr4

Please add update using the below template (even if you have a pull request). Afterwards, remove the 'To Update !' label and add the 'Status: Updated' label.

  1. Progress: "What is the current status of your project? What have you completed and what is left to do?"
  2. Blockers: "Difficulties or errors encountered."
  3. Availability: "How much time will you have this week to work on this issue?"
  4. ETA: "When do you expect this issue to be completed?"
  5. Pictures (optional): "Add any pictures of the visual changes made to the site so far."

If you need help, be sure to either: 1) place your issue in the developer meeting discussion column and ask for help at your next meeting, 2) put a "Status: Help Wanted" label on your issue and pull request, or 3) put up a request for assistance on the #hfla-site channel. Please note that including your questions in the issue comments- along with screenshots, if applicable- will help us to help you. Here and here are examples of well-formed questions.

You are receiving this comment because your last comment was before Tuesday, May 9, 2023 at 12:15 AM PST.

LOSjr4 commented 1 year ago

I'm waiting for Bonnie's response. I will reach out to her at Sunday's meeting. New ETA: 5/16/23 1PM Update: After discussion with DEV team leaders, the Slack permission tasks were crossed off the list and I will view the task list more as a general guideline while researching, testing, and reporting back what I discover.

LOSjr4 commented 1 year ago

Progress: After playing with UiPath for many hours yesterday, I still have hope it might be usable. As mentioned in the task list, the free version of Slack offers, I believe, 10 connections to other apps, and those connections are already fully occupied. Some steps would have been easier with a direct UiPath-Slack connection, but so far I believe it is still possible to work around that.

Blockers: The last things that were slowing me down (not blocking yet) were two-factor authorization and UiPath not recognizing a text box in a test run I was setting up. 2FA just takes more effort to program because UiPath opens Slack, attempts to sign into Slack, Slack asks for 2FA, UiPath then has to open an e-mail host, sign in, open the email with 2FA code, copy code, put it into Slack, then we can start programming the issue above.

Availability: Weekdays 9AM-1PM

ETA: 5/24

ExperimentsInHonesty commented 1 year ago

Add 2fa to account using https://docs.google.com/document/d/1qFs_ceyA4PtnLBIZQPONvmgKovWXOi2hkbDBJybgn7A/edit

LOSjr4 commented 1 year ago

Progress: I have a new "slackinvite project" email account, set up new Slack and UiPath accounts with that email, and set up 2FA with 1Password according to given guide. Blockers: Need to clarify the steps regarding resetting the slack invite. Conversing with issue creator Christina Or. Otherwise I'll ask during this Sunday meeting. Availability: weekdays 9AM-1PM ETA: hopefully early next week

LOSjr4 commented 1 year ago

Location of link that is to be reset by automation, slide 11. https://docs.google.com/presentation/d/1bueC40PkklLSJVPttiFeYJvcB69PgJx8pxZK5G7gzzo/edit?usp=share_link

github-actions[bot] commented 1 year ago

@LOSjr4

Please add update using the below template (even if you have a pull request). Afterwards, remove the 'To Update !' label and add the 'Status: Updated' label.

  1. Progress: "What is the current status of your project? What have you completed and what is left to do?"
  2. Blockers: "Difficulties or errors encountered."
  3. Availability: "How much time will you have this week to work on this issue?"
  4. ETA: "When do you expect this issue to be completed?"
  5. Pictures (optional): "Add any pictures of the visual changes made to the site so far."

If you need help, be sure to either: 1) place your issue in the developer meeting discussion column and ask for help at your next meeting, 2) put a "Status: Help Wanted" label on your issue and pull request, or 3) put up a request for assistance on the #hfla-site channel. Please note that including your questions in the issue comments- along with screenshots, if applicable- will help us to help you. Here and here are examples of well-formed questions.

You are receiving this comment because your last comment was before Tuesday, June 6, 2023 at 12:16 AM PST.

LOSjr4 commented 1 year ago

Progress: I was using the browser version of UiPath which was slightly different than most online forums and tutorials. While trying to program UiPath to click "Cancel" on a popup window, the browser version of UiPath could not access that popup window, so the automation could not continue. Last week I downloaded the desktop version of UiPath and it was able to access that troubled popup window and its buttons, but when I ran the automation it failed that part of the instruction. I've seen various forum instructions on ways to make UiPath access popups. I'd like to take a little more time to try troubleshooting the desktop version of UiPath since it appears to have more options than the browser version did. Blockers: programing the automation to get past a popup window. Availability: weekdays 8AM-10AM ETA: I hope to finalize a conclusion before Friday

ExperimentsInHonesty commented 1 year ago

@LOSjr4, if you would like I could get a UI path person to do some pair programming or trouble shooting. Add this to the questions column with a note if that would help.

LOSjr4 commented 1 year ago

Overview of progress image image image image image image image image image image

LOSjr4 commented 1 year ago

I progress through trial and error. I edit/add instructions and test run the automation. Next issues I need to figure out...

  1. The current format stopped when I asked it to open a new browser window. It previously worked so I think I messed up that part in an attempt to simplify the instructions.

  2. I realized UiPath uses copy paste for sign in credentials, so if I ask it to copy the Slack invite link some steps prior, when UiPath signs into google slides it will overwrite that previous copy instruction. So I'll need to change the order of instruction and ideally instruct UiPath to work between two browser windows.

  3. This issue asks, "Be careful not to hit Slack's invite generation limits." I've been so careful I have not clicked it even once. Regarding the trial and error, I've been test running UiPath automation A LOT, so I commented out "clicking Slack invite link" and I pivoted to test something similar until everything else works.

  4. I eventually need to figure out and test UiPath doing the timed automation. I'm concerned if this part will require a cost or not.

LOSjr4 commented 1 year ago

Note regarding Bonnie's offer for a UiPath person for pair programming: I would be open to pair program if it's not too much trouble for you to find someone.

LOSjr4 commented 1 year ago

I attempted to talk to @bonniewolfe about UiPath pair programming on 9/9 and 9/10 meetings, but we ran out of time.

I will be away from 7/13-7/20, but I am open to schedule a pair programming anytime after 7/20.

Newly learned notes on UiPath:

-UiPath will need a server or computer that is able to run the automation at the given times. I previously thought it was all done online.

-The free community edition gives us 1 unattended robot (which this issue would use) and 2 attended robots (that a user could run with a click).

-UiPath may delete data of free community edition users if they detect the platform sits idle/unused for 3 months. I assume the scheduled automation counts as the platform being used even if we never touch the platform again.

LOSjr4 commented 1 year ago

Notes for anyone continuing this issue:

As mentioned previously, UiPath has a browser version and a UiPath Studio desktop version. You need to install the desktop version because it has more tools and most online tutorials refer to the desktop version. Also the browser version works much differently and has limitations.

It wouldn't take too long to input the screenshots of my unfinished automation to a new file, but I have two credentials shared to hackforla-team's 1password account.

Shared to 1password:

Things to be determine:

ExperimentsInHonesty commented 1 year ago

@LOSjr4 Thank you so much for the detailed documentation.