What I’ve Done With Salesforce

I work with Salesforce often. Salesforce is a popular CRM (customer-relationship management) software. In my day job at IHS, we use it to track our fundraising efforts. We also use it to track our programs and opportunities in higher education.

For a period, I focused my role at IHS on standard Salesforce administrative tasks. This includes user access, database structure, and workflow automation.

This work is important. A database is doomed to failure without a wise admin. I strive to go beyond the basics to deliver the best possible outcome. Here are a few examples of how I have do that:

List matching. At IHS, we send staff members to academic conferences to meet potential academic partners. When we have conference registration lists in advance, I run a query of our Salesforce database to see who we already know. This allows our team to reach out in advance, leading to maximizing the value of their time spent attending the conference.

Automated metrics. When I joined IHS, we were paying a vendor to track our social media performance metrics. This vendor logged into our accounts and entered this information into a form which stored the data in Salesforce. I built a tool that does this automatically by connecting to the relevant APIs (Google Analytics, Youtube, Facebook, Twitter, etc.) This saved the organization money on the vendor and ensured the data was in Salesforce in real-time.

Connected Salesforce to WordPress and Workplace. This meant that when a client clicked a button that fit their existing Salesforce workflow, accounts were automatically created on their WordPress website and Workplace by Facebook platform. This automation reduces manhours spent on creating and deleting these accounts.

Pushed Pardot email metrics to Salesforce. Pardot is a marketing automation tool sold by Salesforce inc for integration with the Salesforce database. I’m not sure why, but there is no out-of-the-box way to see Pardot email performance metrics within Salesforce. I built an integration automation that accomplishes this by creating Salesforce records with performance metrics for each Pardot email.

Built Pardot lists using custom Salesforce fields. Pardot’s main selling point is Salesforce integration, but we found at IHS that we could not create lists based on a custom field for the Campaign Member object. I figured out how to do this with a Python script, which I wrote about here. This saved our staff time they were spending manually exporting lists from Salesforce and uploading into Pardot.

Built a Youtube integration. Last but not least, I have built a direction integration between Salesforce and Youtube for performance metrics. This allows you to connect your Salesforce database to a Youtube channel, create records for each of your videos, and sync performance metrics. I’m working towards selling this as a Salesforce AppExchange app.

Projects

Here are some projects I’m currently working on and/or thinking about kickstarting:
A computer version of the Parker Brothers World Flag Game About The United Nations. This is a classic game for the Needham family, especially at our cottage. I’m working on this game as a chance to practice the Angular framework and possibly the full MEAN stack. I wanted to use a board game that, as far as I know, has not been digitized before.

An NBA game log tool. I watch a lot of the NBA and I try to go beyond watching solely the best teams. Two seasons ago I used a Google Sheet to track what games I watched to ensure I was getting a decent spread of all 30 teams. I want to make a tool to easily log which games I watch, how much of a game I watch, and my notes on what I observe. Additional features would include tagging and looking up notes based on individual players as well as a login system for multiple users. My instinct is to make this with the Flask Python framework.

An NBA lineup quick view tool. The official NBA website has a great tool for analyzing different lineups. I want to make a handy reference where people can quickly see the best and worst lineups in the league and for each team on the basis of offensive success, defensive success, and net success. You could in theory do this with the NBA.com site, but it requires a number of steps. I want to create a website that has this data already prepared for you. This would likely be a Flask project as well.

Reach out to Scott Sumner and discuss building a cryptocurrency linked to NGDP as he proposed here. The step I need to take between here and now is building a just-for-fun cryptocurrency as proof of competency.

Calculate which NBA player had the highest game score against each NBA team last season. I did this for the 2016-2017 season.
Track how accurate Pythagorean win projections were throughout the previous NBA season. This was my original goal in starting a weekly NBA blog. I have the data ready to analyze, I just haven’t followed through on it yet!

If you read this post and are interested in collaborating on any of these projects, email me

Launching PyPardot4

I’m an open source programmer!

As part of my responsibilities at IHS, I am the administrator of  our marketing automation platform Pardot. Pardot is a Salesforce product and it integrates well with IHS’ Salesforce database. However, there are elements of the the database that we want to use in Pardot but Pardot could not access.

There is a Pardot API, which means one can theoretically create computer code to perform actions with Pardot beyond the official features. I found PyPardot, a Python package for accessing the Pardot API. However, it was written for an outdated version of the API and the author is no longer maintaining the package. Luckily, the author released the package as an open source project on GitHub.

Over the past few days, I have updated the package for compatibility with the latest version (4) of the Pardot API! It is now available on PyPI and the code & reference wiki are available on GitHub.

I have already used my new package PyPardot4 to accomplish some of our needs at IHS and I am excited to put it to further use. However, I have already learned so much including:

  • How to call an API from Python
  • What a fully object-oriented programming project looks like from top to bottom
  • How to contribute to and create open source programming projects on GitHub
  • How to upload a Python package to PyPi (the Python Package Index)