G2 Script Completed

This commit is contained in:
Norm Rasmussen
2022-11-21 16:08:13 -05:00
parent 53cb80e773
commit d54f1e926a
7 changed files with 2114 additions and 59 deletions

View File

@ -153,3 +153,15 @@ They feel like this has been talked about for a longtime. Just waiting for a GO
* Goal for today: finish all the quizzes for the Profile Performance and Lead Management.
* Something that's difficult: Each section has limited information so you can only create so many questions per section, goal of 3 questions per section.
* She likes how easy it is to change the questions.
## 11/21/2022
### Analytics, Salesforce, Other Items
Katlin compared numbers with Erin and the number of unique logins and accounts created were off.
Not sure where Katlin pulled her numbers. Erin pulled School Acitivity report.
Re-add the MCA to the G2 Google Sheets.
CEO is _very_ excited for the numbers of G2U and wants the cert done ASAP.
* Erin asked about a group of courses and issuing a cert.
* Clickup has a great university that she likes
* Adding a cert to someone's linkedin is a huge component about this. They want this to be marketing focused
* She now wants to think about Learning Paths. Buyer Intent Expert, Review Expert,
* No timeline for how fast this should be done. But CEO is very excited and expecting this soon.

View File

@ -86,3 +86,23 @@
* Yes, video reosurces are not playing nicely with iOS.
* After the video is over, it takes over the entire screen and is hard to exit.
## 11/21/2022
###
* Screens of telling the story of "how to get there"
* Open app, click resource center, pick random resource --> walk through the resource itself
* This will be embedded into a PPT deck
* On deck, this needs to be done right now! Next few hours.
* Charlie is working on next steps for design and flow of content
* This is for drivers given the ability to go into any resource of their choice.
* After random activity, once at end of course, they won't see "incomplete" activity screen, but go back to course overview page.
* If you _do_ finish all activities, it will bring you to resource center home page
* Video Resources: auto launches into video (iOS), and autoorients to full screen.
* Can Wistia do chapters? Yes. Wistia can add chapters, but how to do it programmatically?
TODO: * We can add the chapters, but we will need to find a way to do it easily.
Back story to Krystal's requests:
* They just had some research done about user experience with the resource center
* There was other feedback with the content that they want to discuss
* Mostly, it will be a big text-based resource lift
* You should be able to read and scan very quickly
* The key is, the search feature _*really*_ needs to be improved. Thorough, neat, well laid out, etc.
* Over the next week, they are making a wishlist for the next year.

View File

@ -1,13 +1,13 @@
import requests
import urllib.parse
baseUrl = "https://api.northpass.com/v2/people/"
baseUrlname = "https://api.northpass.com/v2/people?filter[name][eq]="
baseUrlemail = "https://api.northpass.com/v2/people?filter[email][eq]="
apiKey = "JRDpCGQ7vSRiva6t5OkWDr5eJ" #G2
#apiKey = "6hUfJdAartHTHhHc0WIRZYPWe" #Walmart
def getfromName(baseUrlname, apiKey):
name = "Norm Test Testing Norm"
name = "Someone else"
url = baseUrlname + f"{name}"
headers = {
"accept": "*/*",
@ -15,15 +15,19 @@ def getfromName(baseUrlname, apiKey):
"content-type": "application/json",
}
response = requests.get(url, headers=headers)
if response.status_code == 200:
print("200 Response!")
else:
print("Another error! " + response.status_code)
response = response.json()
print(response)
uuid = response["data"][0]["id"]
print("Learner ID:" )
print(uuid)
#print(response)
#uuid = response["data"][0]["id"]
#print("Learner ID:" )
#print(uuid)
def getfromEmail(baseUrlemail, apiKey):
email = "norm%2Bg2test@northpass.com" # The %2B encodes the + sign in the URL. Using the + sign won't work.
#email = "aaron.rodgers@corpay.com"
#email = "norm2test@northpass.com" # The %2B encodes the + sign in the URL. Using the + sign won't work.
email = " "
url = baseUrlemail + f"{email}"
print(url)
headers = {
@ -32,12 +36,30 @@ def getfromEmail(baseUrlemail, apiKey):
"content-type": "application/json",
}
response = requests.get(url, headers=headers)
response = response.json()
print(response)
if response.status_code == 200:
print("200 Error!")
else:
print("Another Error!")
response = response.json()
#print(response)
uuid = response["data"]
print("Learner ID:" )
print(uuid)
#print("Learner ID:" )
#print(uuid)
def getfromUuid(baseUrl, apiKey):
uuid = "57b2b5eb-aa56-4cee-bb32-8c678a2de1b7"
url = baseUrl + uuid
headers = {
"accept": "*/*",
"x-api-key": apiKey,
"content-type": "application/json",
}
response = requests.get(url, headers=headers)
print(response.status_code)
print(response.text)
if __name__ == "__main__":
getfromEmail(baseUrlemail, apiKey)
getfromUuid(baseUrl, apiKey)
#getfromEmail(baseUrlemail, apiKey)
#getfromName(baseUrlname, apiKey)

View File

@ -1,42 +1,81 @@
import requests
import os
from datetime import date
from collections import Counter
import pandas as pd
basecsv = "/Users/normrasmussen/Documents/Northpass/Scripts/G2_Unenroll/g2mca.csv"
basecsv = "/Users/normrasmussen/Documents/Northpass/Scripts/G2_Unenroll/g2mca_112122.csv"
apiKey = "JRDpCGQ7vSRiva6t5OkWDr5eJ" #G2
def mainFunc(basecsv):
def mainFunc(basecsv, apiKey):
readData = pd.read_csv(
basecsv,
index_col=False,
)
try:
readData.loc[
readData['Course Name'].isin(['G2 Profile Anatomy'])]
readData.loc[
readData['Course Name'].isin('Profile Performance & Lead Management')]
readData.loc[
readData['Course Name'].isin('Review Tracking & Brand Building')]
readData.loc[
readData['Course Name'].isin('The Review Rundown')]
extractedList = readData.loc[
readData['Attempt Start'].isnull(),
'Learner Name'].tolist()
print(extractedList)
# newList = [*set(extractedList)]
#findUuids(newList, readData)
except:
print("Not Working")
readData.loc[readData['Course Name'].isin([
'G2 Profile Anatomy', 'Profile Performance & Lead Management',
'Review Tracking & Brand Building', 'The Review Rundown'])]
extractedList = readData.loc[readData['Attempt Start'].isnull(),'Email'].tolist()
fourOccs = Counter(extractedList)
finalNames = []
for name, occurences in fourOccs.items():
if occurences == 4:
finalNames.append(name)
findUuids(finalNames, readData, apiKey)
#def findUuids(newList, readData):
# try:
# for name in newList:
# uuidList = readData.loc[
# readData['Learner Name'] == name),
# 'uuid'.tolist()]
# print(uuidList)
# except:
# print("An error occured")
def findUuids(finalNames, readData, apiKey):
emailUuid = []
uuidList = []
deactivateUuid = {}
try:
for name in finalNames:
baseUrlname = "https://api.northpass.com/v2/people?filter[email][eq]="
name = name
url = baseUrlname + f"{name}"
headers = {
"accept": "*/*",
"x-api-key": apiKey,
"content-type": "application/json",
}
response = requests.get(url, headers=headers)
response = response.json()
uuid = response["data"][0]["id"]
uuidList.append(uuid)
deactivateUuid.update({name: uuid})
emailUuid.append(deactivateUuid)
except:
print("An error occured")
finally:
print(deactivateUuid)
removeFromGroup(uuidList, apiKey)
def removeFromGroup(uuidList, apiKey):
numRemoved = 0
badUuid = []
for uuid in uuidList:
uuidList = []
url = f"https://api.northpass.com/v2/people/{uuid}/relationships/groups"
headers = {
"accept": "application/json",
"content-type": "application/json",
"X-Api-Key": apiKey
}
payload = {"data": [
{
"id": "d78af2ad-a6c8-4016-90a4-fb00bcc67891",
"type": "membership-groups"
}
]}
response = requests.delete(url, json=payload, headers=headers)
status = response.status_code
if response.status_code == 200:
print(f"UserID {uuid} okay to be deleted.")
numRemoved += 1
uuidList.append(uuid)
else:
print(f"Some other error {status} for {uuid}")
badUuid.append(uuid)
print(f"Complete! {numRemoved} people removed from group.")
print("Bad UUIDS: ")
print(badUuid)
if __name__ == "__main__":
mainFunc(basecsv)
mainFunc(basecsv, apiKey)

File diff suppressed because it is too large Load Diff

View File

@ -4,36 +4,36 @@
* [ ] (Talkspace) [10/27/2022] Turn on Workflows for Talkspace BBHR
* [ ] (Talkspace) [10/27/2022] Get designs for Learning Path Customization & we can talk about categories
* [ ] (Talkspace) [10/27/2022] Password protection for a course when prompted.
* [ ] (Talkspace) [10/27/2022] See if in NPP school we can remove/delete not activated people.
* [ ] (Talkspace) [10/27/2022] Pull report of all users in NPP with activated/deactived status
* [X] (Talkspace) [10/27/2022] See if in NPP school we can remove/delete not activated people.
* [X] (Talkspace) [10/27/2022] Pull report of all users in NPP with activated/deactived status
* [ ] (Wildhealth) [10/31/2022] Pass PTO information onto Brian so he knows about the support tickets from Baeleigh & WildHealth.
* [ ] (Wildhealth) [10/31/2022] Update Branding on WPG - Abby to send new logo and Norm to figure out colors/branding for styling.
* [-] (Aiim) [11/08/2022] Send DV Accredible Interface with Badging and Certs. Aiim uses accredible.
* [X] (Wildhealth) [10/31/2022] Update Branding on WPG - Abby to send new logo and Norm to figure out colors/branding for styling.
* [X] (Aiim) [11/08/2022] Send DV Accredible Interface with Badging and Certs. Aiim uses accredible.
* [ ] (Aiim) [11/08/2022] Create a QBR report for next month's meeting. Analytics, product info. Review usage, etc.
* [ ] (Amyris) [11/08/2022] Setup Quarterly Looker Pull of MCA to be sent to Nicole. Year to Date, MCA. Next one in January.
* [ ] (SwiftMedical) [11/08/2022] Create Tabs & categories on catalog page - deciding on design.
* [X] (SwiftMedical) [11/08/2022] Create Tabs & categories on catalog page - deciding on design.
* [ ] (Talkspace) [11/08/2022] If a course a is at 100% and is a 1099 course, remove from dashboard
* [ ] (Talkspace) [11/08/2022] Remove Footer Completely no Dash no LPs
* [ ] (Talkspace) [11/08/2022] Add Training@talkspace.com to footer
* [ ] (Northpass) [11/09/2022] Start GrowthPass #6
* [ ] (Northpass) [11/09/2022] Complete SOC 2 Training in Northpass University for employees.
* [ ] (PUK) [11/09/2022] Check if we need to amend and re-send the Psychiatry-UK Agreement based on the hold until end of February.
* [ ] (Northpass) [11/09/2022] Talk to prouct about updating the default admin invitation email content with support links, northpass academy, etc
* [ ] (SPSCommerce) [11/09/2022] Create some HTML design updates for under the normal cards on the training events page.
* [ ] (Skuid) [11/11/2022] Send Jessica questions about who is the super admin in Hubspot and ask her to setup a private or public app for our integrations.
* [X] (Northpass) [11/09/2022] Complete SOC 2 Training in Northpass University for employees.
* [X] (PUK) [11/09/2022] Check if we need to amend and re-send the Psychiatry-UK Agreement based on the hold until end of February.
* [X] (Northpass) [11/09/2022] Talk to prouct about updating the default admin invitation email content with support links, northpass academy, etc
* [X] (SPSCommerce) [11/09/2022] Create some HTML design updates for under the normal cards on the training events page.
* [X] (Skuid) [11/11/2022] Send Jessica questions about who is the super admin in Hubspot and ask her to setup a private or public app for our integrations.
* [ ] (Skuid) [11/11/2022] Send Alexa the WildHealth Style report for each Learning Path as a test.
* [ ] (Skuid) [11/11/2022] Ask Chris to help with Learning Paths and Skuid Reports.
* [X] (Skuid) [11/11/2022] Ask Chris to help with Learning Paths and Skuid Reports.
* [ ] (Zenjob) [11/11/2022] Ask if we can do a custom integration with Salesforce to send assignment submission pictures
* [ ] (Zenjob) [11/11/2022] Can we pass information INTO a Typeform survey so that a learner doesn't have to enter their name?
* [ ] (Zenjob) [11/11/2022] Change Back to my courses to the correct german ([see notes](Zenjob.md)) and remove `/app/dashboards` link, it should go to `/app/courses`
* [X] (Zenjob) [11/11/2022] Change Back to my courses to the correct german ([see notes](Zenjob.md)) and remove `/app/dashboards` link, it should go to `/app/courses`
* [ ] (Zenjob) [11/11/2022] Ask Sophie about Shopify integration details and what they want to accomplish with selling courses.
* [ ] (Northpass) [11/11/2022] Submit ticket for a custom page creation in Northpass Academy that ONLY shows Admin Onboarding Courses.
* [ ] (JJSV) [11/14/2022] Contact us should go to a FORM not an email - remove link all together for now make it inactive
* [ ] (JJSV) [11/14/2022] Opt out for emails - Comms Changes
* [ ] (JJSV) [11/14/2022] Upload the second video to the properties for us to test for playability.If it works, Melinda can feel confident about future videos.
* [X] (JJSV) [11/14/2022] Contact us should go to a FORM not an email - remove link all together for now make it inactive
* [X] (JJSV) [11/14/2022] Opt out for emails - Comms Changes
* [X] (JJSV) [11/14/2022] Upload the second video to the properties for us to test for playability.If it works, Melinda can feel confident about future videos.
* [ ] (JJSV) [11/14/2022] Update Registration Privacy Policy with Vision Pro Legal notice at "jnjvisionpro.com/legal-notice"
* [ ] (JJSV) [11/14/2022] MAKE SURE YOU UPLOAD THE AUDIO STUFF TODAY! Upload podcasts to AWS and upload the SCORM so she has examples of both.
* [ ] (TripleSeat) [11/15/2022] Get Brian ChurnZero information
* [ ] (TripleSeat) [11/15/2022] Screenshots of AppCues Examples
* [ ] (TripleSeat) [11/15/2022] Send Holly/Katie details of what needs to be done for embedding.
* [ ] (Talkspace) [11/15/2022] Create video showing how to setup a Webhook in Fountain for Molly and Taylor to talk to Gracie about. The goal is for a webhook to fire when someone completes a stage in Fountain that attests that they are seeing clients and that would enroll them in their appropriate group and courses.
* [X] (Talkspace) [11/15/2022] Create video showing how to setup a Webhook in Fountain for Molly and Taylor to talk to Gracie about. The goal is for a webhook to fire when someone completes a stage in Fountain that attests that they are seeing clients and that would enroll them in their appropriate group and courses.