diff --git a/CustomerNotes/HackerRank/HackerRank.md b/CustomerNotes/HackerRank/HackerRank.md index a2e0a0d4..8e1fdd1f 100644 --- a/CustomerNotes/HackerRank/HackerRank.md +++ b/CustomerNotes/HackerRank/HackerRank.md @@ -80,3 +80,22 @@ Alaina: * The id could be "wrong" - that means they aren't a full customer. * SFDC Id could be coming from the HR db. * Accounts wouldn't typically have an ID until they become a customer. Which means they wouldn't be in any other system. + +## 2/1/2024 + +### Product Academy Discussion + +Looking for an all-in-one AI feature set. Currently using Camtasia and use the AI voice over. +Also using scriptify to create the AI audio. Then they stitch it into Camtasia and create the course in Northpass. + +Looking for best practices for using Northpass. + +I told them to audit their courses and ensure they are aligned with the audience that should be using this content. In +addition, to leverage heap and ChurnZero to create trigger-based learning. So if a metric for the team is to see an increase +in product feature adoption, they should share course links to learners whose page views on that feature is below a certain +threshold. + +They also asked what differentiates Northpass from it's competitors. Why are we better, why do people choose us? + +I told them customizable nature and connectivity are the reasons prospects choose us, citing the custom ChurnZero integration +that we created exclusively for them. diff --git a/Scripts/API_Tests/antho-map-domains-from-csv.py b/Scripts/API_Tests/antho-map-domains-from-csv.py new file mode 100644 index 00000000..d198ec64 --- /dev/null +++ b/Scripts/API_Tests/antho-map-domains-from-csv.py @@ -0,0 +1,52 @@ +import pandas as pd +import requests +import Apikeys + +MASTER = "~/Downloads/Anthology-Master-CSV-FirstChanges.csv" +BASEURL = "https://api.northpass.com/v2/people" +APIKEY = Apikeys.ANTHOLOGY +HEADERS = { + "accept": "*/*", + "X-Api-Key": APIKEY, + "content-type": "application/json", +} +df = pd.read_csv(MASTER) +df.dropna(how="all", axis=0, inplace=True) +COUNT = 0 + +for row in df.itertuples(): + domain = row[1] + groups = row[2:] + # groups = list(groups) + tmplist = [] + for group in groups: + group = str(group) + if "nan" not in group: + # Grab Group UUIDs + url = f"https://api.northpass.com/v2/groups?filter[name][eq]={group}" + response = requests.get(url, headers=HEADERS) + response = response.json() + data = response["data"] + for name in data: + id = name["id"] + tmplist.append(id) + rowdict = {domain: tmplist} + + # Grab all people + personlist = [] + COUNT += 1 + url = BASEURL + f"?filter[email][cont]={domain}" + response = requests.get(url, headers=HEADERS) + response = response.json() + nextlink = response["links"] + + for data in response["data"]: + person = data["id"] + personlist.append(person) + + # if "next" not in nextlink: + # break + + # Construct Payload for Bulk API + payload = {"payload": {"person_ids": personlist, "group_ids": tmplist}} + print(payload) diff --git a/Scripts/API_Tests/antho-pandas.py b/Scripts/API_Tests/antho-pandas.py new file mode 100644 index 00000000..bff6e352 --- /dev/null +++ b/Scripts/API_Tests/antho-pandas.py @@ -0,0 +1,18 @@ +import pandas as pd +import os + +file = "~/Downloads/Anthology-EngageT1T2-MCA-CSV.csv" +df = pd.read_csv(file) +df["engage"] = df["Groups"].str.contains("(T2)") +# print(df["engage"].value_counts()) +print(df["Domain"].value_counts()) +df.sort_values("Email", inplace=True) +df.drop_duplicates(subset="Email", keep=False, inplace=True) +print(df["Domain"].value_counts()) + +# df2 = df[[ "Domain", "Groups" ]].copy() +# print(df2) + +# accounts = df["Domain"].unique().tolist() +# for x in accounts: +# df_dict = {name: df.loc[df["Domain"] == name] for name in accounts} diff --git a/Scripts/antho-map-domains-from-csv.py b/Scripts/antho-map-domains-from-csv.py new file mode 100644 index 00000000..afbe8d7f --- /dev/null +++ b/Scripts/antho-map-domains-from-csv.py @@ -0,0 +1,8 @@ +import pandas as pd +import requests + +MASTER = "~/Downloads/Anthology-Master-CSV-FirstChanges.csv" +df = pd.read_csv(MASTER) + +for row in df.iterrows(): + print(row)