diff --git a/Custom_Templates/customer_templates/.DS_Store b/Custom_Templates/customer_templates/.DS_Store index f53c9158..25d06334 100644 Binary files a/Custom_Templates/customer_templates/.DS_Store and b/Custom_Templates/customer_templates/.DS_Store differ diff --git a/Custom_Templates/customer_templates/Pipedrive User-Learn - Prereg/.DS_Store b/Custom_Templates/customer_templates/Pipedrive User-Learn - Prereg/.DS_Store deleted file mode 100644 index 5008ddfc..00000000 Binary files a/Custom_Templates/customer_templates/Pipedrive User-Learn - Prereg/.DS_Store and /dev/null differ diff --git a/Custom_Templates/customer_templates/Pipedrive User-Learn - Prereg/_catalog_courses.html.liquid b/Custom_Templates/customer_templates/Pipedrive User-Learn - Prereg/_catalog_courses.html.liquid index 56164f00..dd6fd6ee 100644 --- a/Custom_Templates/customer_templates/Pipedrive User-Learn - Prereg/_catalog_courses.html.liquid +++ b/Custom_Templates/customer_templates/Pipedrive User-Learn - Prereg/_catalog_courses.html.liquid @@ -18,7 +18,7 @@ {% assign category_uuid = categories_uuids | slice: y %}
-

+

{% assign category_name = categories_names | slice: y %} {% if category_name contains 'Pipedrive courses' %} @@ -38,13 +38,115 @@ Marketingkurse Cursos de Marketing Cours de Marketing - Cursos de Marketing + Cursos de Marketing + {% elsif category_name contains 'Automations' %} + Automations + Automatisierungen + Automatizaciones + Automatisations + Automações + {% elsif category_name contains 'Campaigns' %} + Campaigns + Kampagnen + Campañas + Campagnes + Campanhas + {% elsif category_name contains 'Data import' %} + Data import + Datenimport + Importación de datos + Importation de données + importação de dados + {% elsif category_name contains 'Deals and Sales Pipelines' %} + Deals and Sales Pipelines + Deals und Vertriebspipelines + Tratos y canalizaciones de ventas + Offres et pipelines de ventes + Negociações e Pipelines de Vendas + {% elsif category_name contains 'Documents and Invoicing' %} + Documents and Invoicing + Dokumente und Rechnungen + Documentos y Facturación + Documents et facturation + Documentos e Faturamento + {% elsif category_name contains 'Email and communications' %} + Email and communications + E-Mail und Kommunikation + Correo electrónico y comunicaciones + Courriel et communications + E-mail e comunicações + {% elsif category_name contains 'Insights and reporting' %} + Insights and reporting + Erkenntnisse und Berichterstattung + Resultados e informes + Résultats et rapports + Informações e relatórios + {% elsif category_name contains 'Integrations' %} + Integrations + Integrationen + La integración + L'intégration + Integrações + {% elsif category_name contains 'Lead generation' %} + Lead Generation + Lead Generierung + Generación líder + Génération de leads + Geração de leads + {% elsif category_name contains 'Pipedrive basics' %} + Pipedrive basics + Pipedrive Grundlagen + Pipedrive Gouplagène + Pipedrive gouplagène + Noções básicas do Pipedrive + {% elsif category_name contains 'Pipedrive settings' %} + Pipedrive settings + Pipedrive-Einstellungen + Configuración de Pipedrive + Paramètres Pipedrive + Configurações do Pipedrive + {% elsif category_name contains 'Privacy and security' %} + Privacy and security + Privatsphäre und Sicherheit + Privacidad y seguridad + Confidentialité et sécurité + Privacidade e segurança + {% elsif category_name contains 'Projects' %} + Projects + Projekte + Proyectos + Projets + Projetos + {% elsif category_name contains 'User management' %} + User management + Benutzerverwaltung + Gestión de usuarios + Gestion des utilisateurs + gerenciamento de usuários {% elsif category_name contains 'Spanish' %} - Spanish - Spanisch - Español - Espagnol - Espanhol + + + + + + {% elsif category_name contains 'German' %} + + + + + + {% elsif category_name contains 'French' %} + + + + + + {% elsif category_name contains 'Portuguese' %} + + + + + {% else %} {{ category_name }} {% endif %} @@ -66,7 +168,7 @@

- +
{% for course in courses.in_catalog %} {% assign course_categories = course.categories | map: 'id' %} @@ -81,7 +183,7 @@ {% endfor %}
- + {% if number_of_videos <= 3 %} \ No newline at end of file + diff --git a/CustomerNotes/Skuid/Skuid.md b/CustomerNotes/Skuid/Skuid.md index 9bd1eea2..609f9fd1 100644 --- a/CustomerNotes/Skuid/Skuid.md +++ b/CustomerNotes/Skuid/Skuid.md @@ -334,3 +334,14 @@ No risk in the renewal from Anna. or see a single user's data across all data sources. - They are using a data lake, but its limited due to what Salesforce is willing to expose. Heap is only a few years old and some older versions that don't even had Heap installed. + +## 10/05/2023 + +### Academy Numbers and updates + +* Just ran quarterly reports +* 200% increase in badges awarded (courses completed) over this time last year. --> Mostly new users. +* Increased "focus" from exisiting users and course completions, likely to gear up for Certificate purchases +* 2 People certified last month +* Total certified people: 15 [8 certification committee, 1 test writer, 6 are paid] +* 4 Level 1 completions last month (30 courses), previous 5-months had a total 3 level 1 completions. 400% increase. diff --git a/CustomerNotes/Walmart_Luminate/Walmart_Luminate.md b/CustomerNotes/Walmart_Luminate/Walmart_Luminate.md index a197312f..da71a82b 100644 --- a/CustomerNotes/Walmart_Luminate/Walmart_Luminate.md +++ b/CustomerNotes/Walmart_Luminate/Walmart_Luminate.md @@ -168,3 +168,16 @@ DONE: Talk to Kaitlyn about the modal. See list below: * Check timestamp every time the function runs * If timestamp == 2 weeks, show new modal * Set secondary modal boolean to True/False. + +## 10/05/2023 + +### Sync with Stephanie + +Off-the-record Chat: + +* Scott said: "can we throw money at getting some features off their backlog?" +* Stephanie unclear as to what new features are +* Scott needs to be clear +* Schedule a call for a roadmap visibility with Allyson and Joris. +* Scott likely already has things in place. +* SCORM files and loading very very slowly. Especially courses with a lot SCORM files. diff --git a/CustomerNotes/WilliamSonoma/WilliamSonoma.md b/CustomerNotes/WilliamSonoma/WilliamSonoma.md index 7333eeec..49b33c5b 100644 --- a/CustomerNotes/WilliamSonoma/WilliamSonoma.md +++ b/CustomerNotes/WilliamSonoma/WilliamSonoma.md @@ -31,3 +31,24 @@ - They will be tied into their SSO network - PING. - They don't want to give them their full login until they have passed their WFH systems check. <-- this is mostly IT stuff. Not courses. It mostly falls on recruiting. + +## 10/05/2023 + +### Realignment with Aubrey + +- First 3 calls were the most jarring because they thought Patrycja was a designer. +- Sent a lot of things and then on a call she says "I'll look for that." +- When talking to Charles about the "build out" they thought they would just be telling us where things go. +- Perfect storm of missed expectations. +- The main reason they went to Northpass is the customization. +- They are nervous that they don't know HTML. +- They will have to flip things fast "on the fly" or quickly in the future. +- Aubrey came in externally and is the only person with an L&D background. +- Cognitive overload on the old training. +- Tyler's background is writing and some tech. He's very defensive about his work. +- Extended other LMS contract. +- Aubrey's big concern is the data. If data changes based on design, then data should dictate design. +- She doesn't want to be a bad partner. +- Patrycja has access to their old LMS. +- Norm to schedule monthly sync with Aubrey. +- Quantifiable testing, HR needs specific items, User touches, how long did they access something, etc diff --git a/Scripts/API_Tests/get_courses.py b/Scripts/API_Tests/get_courses_and_categories.py similarity index 100% rename from Scripts/API_Tests/get_courses.py rename to Scripts/API_Tests/get_courses_and_categories.py diff --git a/Scripts/API_Tests/get_courses_w_descriptions.py b/Scripts/API_Tests/get_courses_w_descriptions.py new file mode 100644 index 00000000..613394ea --- /dev/null +++ b/Scripts/API_Tests/get_courses_w_descriptions.py @@ -0,0 +1,66 @@ +""" +Small script to grab the list of courses from Northpass API +along with their status & description and write them to a CSV. +""" +import requests +import pandas as pd +import Apikeys + +APIKEY = Apikeys.walmartprod + + +def get_course(): + """ + This function paginates through API responses to get the courses information + """ + + count = 0 + courses = [] + course_dict = {} + + while True: + count += 1 + url = f"https://api2.northpass.com/v2/courses?page={count}" + print(url) + headers = {"accept": "application/json", "X-Api-Key": APIKEY} + response = requests.get(url, headers=headers) + data = response.json() + nextlink = data["links"] + + for response in data["data"]: + status = response["attributes"]["status"] + if status == "live": + uuid = response["id"] + name = response["attributes"]["name"] + full_description = response["attributes"]["full_description"] + course_dict = { + "id": uuid, + "name": name, + "status": status, + "full_description": full_description, + } + + try: + courses.append(course_dict) + except TypeError as e: + print(f"Error: {e}") + finally: + write_to_csv(courses) + else: + pass + + if "next" not in nextlink: + break + + +def write_to_csv(courses): + """ + Function to write the list of dictionaries to a CSV using pandas. + Takes on parameter, the list of courses. + """ + df = pd.DataFrame.from_dict(courses) + df.to_csv("/Users/normrasmussen/Downloads/walmart_courses_descriptions.csv") + + +if __name__ == "__main__": + get_course() diff --git a/Scripts/API_Tests/list_prop_test.py b/Scripts/API_Tests/list_prop_test.py index 6c26cfd4..bd936cc6 100644 --- a/Scripts/API_Tests/list_prop_test.py +++ b/Scripts/API_Tests/list_prop_test.py @@ -1,23 +1,30 @@ import requests +import Apikeys +APIKEY = Apikeys.walmartprod def list_prop(): - url = "http://api.northpass.com/v2/properties/people/bulk" + """ + Quick little function to output Course Properties to terminal + """ + url = "http://api2.northpass.com/v2/properties/courses/properties" headers = { - "X-Api-Key": "SlpQlju219WnWogn94dQUT6Yt", + "X-Api-Key": APIKEY, "accept": "application/json", - "content-type": "application/json", } - payload = { - "data": [ - { - "attributes": {"properties": {"sample_list": "item 3"}}, - "id": "0b31c435-c18b-4573-984e-32cda57045b4", - "type": "person_properties", - } - ] - } - response = requests.post(url, headers=headers, json=payload) + + # payload = { + # "data": [ + # { + # "attributes": {"properties": {"sample_list": "item 3"}}, + # "id": "0b31c435-c18b-4573-984e-32cda57045b4", + # "type": "person_properties", + # } + # ] + # } + + # response = requests.post(url, headers=headers, json=payload) + response = requests.get(url, headers=headers) print(response.text) print(response.status_code)