This section provides a high level understanding of the structure and thinking behind data storage on HubSpot. It distinguishes between how to configure and populate this data structure for first-time country instances versus repeat instances. Finally, it introduces the practical step of imports.
HubSpot Data Architecture & Field Configuration
New Country Pre-Challenge Data
Repeat Instance Pre-Challenge Data
Importing to HubSpot
Synopsis
As you will know by now if you're reading this, HubSpot is so much more than just a data repository. It is the venue in which that data lives, evolves, and is interacted with on an ongoing basis. Between the Contact and Company records, and across different Wavumbuzi iterations in tandem with Jasiri usage, there are some 800 properties on the AGGP HubSpot account. In order to prevent this list of properties growing unnecessarily, many Wavumbuzi properties are designed to serve across an indefinite number of iterations and countries.
For example, the "registered_central" contact property is a "multiple checkbox" field with a unique checkbox option for each Wavumbuzi iteration. This means that a single user can have any number of the available checkboxes selected at once, without any selection compromising any others. A user can therefore be indicated to have been registered for, as an example, both Kenya 2020 and Kenya 2021. We will call these Iteration-Agnostic Properties, and they will require configuration at the outset of each new iteration.
In addition to the "registered_central" contact property used above, there are several other contact and company properties which need to have an iteration-specific checkbox added to their options at the start of each iteration. Another example is the "programme_affiliation" contact property, which is used to denote a record's affiliation to a given iteration of Wavumbuzi - an important segmenting tool. Take the scenario to be that we are configuring HubSpot prior to Wavumbuzi Rwanda 2030: We will need to add a checkbox to the "programme_affiliation" options so that it can be checked for the relevant records. To do so, we edit the property and select "Add an option". We then create an option as per the [Wavumbuzi_COUNTRYXyearX] format; in this case Wavumbuzi_RW30. This property is now ready to have the "Wavumbuzi_RW30" value pushed to it via the API.
An exhaustive list of Iteration-Agnostic Properties is available in Confluence for both Student Registration and Teacher Registration.
Exercise: Configure all Iteration-Agnostic Properties from both the Student Registration and Teacher Registration to accommodate values for the iteration you are preparing for.
Properties have been created and configured thoughtfully to minimise redundant fields and noise on records, however, periodic property audits will likely become necessary to manage the increasing complexity of multiple iterations and countries.
Additionally, a careful review of the structure of the database will be required to transition to accommodating a Wavumbuzi DB that accounts for multi-iteration data. As things stand, HubSpot has it's own quasi-version of multi-iteration data, using contact email addresses as unique identifiers.
The data available for schools and their stakeholders is the foundation for Wavumbuzi recruitment. Fundamentally, the exercise here is to lay that foundation in order for the broader Team to have people to contact; to give the Team a good base to build on with expanded information and relationship building.
A new instance of Wavumbuzi in a new country represents a complete blank slate from a data perspective. Equally an opportunity and a challenge. Historically, information on stakeholders has come from two sources:
Network Partner Lists
One of the many good reasons to build strong relationships with local stakeholders is to gain rapid access to existing databases of schools and their teachers. Wherever possible this ought to be the point of departure as it represents a vastly more economical route to a starting database.
Data Research
In the absence of partner-supplied data, or to supplement lackluster partner-supplied data, manual data research may need to be conducted. Where this is the case, a dedicated effort will need to be made to curate sources of school information and scrape their data into a spreadsheet for subsequent cleaning and import.
Once data is consolidated into a spreadsheet it can be cleaned and prepared for import. Consult section 4 below for further instructions on this process.
When returning to a country for a repeat instance, data from the previous iteration will already be in place. This largely removes the need to acquire new data, but introduces the need to ensure existing data is ready to accommodate another layer of Wavumbuzi information.
The first data step for any new instance of Wavumbuzi is to "turn on" the API by importing a list of schools to the Wavumbuzi Superadmin portal. Doing so triggers the first push of all schools into HubSpot due to the fact that all records in the Wavumbuzi DB that are updated locally, trigger that update to be pushed to HubSpot. Consult with the Development Team for support with this import, as there are specifications on the columns and formatting of the .csv import file required.
Until the Wavumbuzi DB is updated to accommodate multi-iteration data, a key challenge with this new instance protocol is that it creates an entirely new set of school records within HubSpot. Consolidating data for schools and their associated records between iterations is a challenge yet to be resolved. At the point of multi-iteration data being achieved, HubSpot data will likely require a comprehensive export and consolidation exercise to lay the foundation for future multi-iteration data storage.
Imports are the key mechanism for taking data from outside HubSpot and introducing it into HubSpot in bulk. For an overview of how to conduct an import to HubSpot, begin with this Knowledge Base resource. Beyond getting the technicalities right, you will do yourself and everyone a favour by thoroughly cleaning and formatting all import files.
Beyond the ordinary, there are a few important Wavumbuzi-specific considerations to make when importing; namely, ensuring the must-have properties for contacts and companies are respectively included in any import process.
programme_affiliation: All records in HubSpot ought to have a programme affiliation, as this is the highest level segmenting variable for all our data. This is the variable to use to split one iteration's data from another. Ensure your import file has a dedicated column for this property and that the column is fully populated.
contact_type: Differentiating between students, teachers, and other types of stakeholders is vital for almost all email communications and workflow enrollments. Ensure that one of the available dropdown options for contact_type is indicated in a dedicated column for all contact imports
Contact ID and/or Email [for existing contacts]: If you are importing new information on contacts that already exist in HubSpot it is vital that the new information is properly matched to the existing records via either their Contact ID or email address. Ensure you have consulted this Knowledge Base resource to get this right.
Special mention: district_county_contact: Note that this is an Iteration-Agnostic Property and thus houses the names of the geographic sub-regions for each country option; counties and districts for Kenya and Rwanda respectively.
programme_affiliation: The same goes for company programme affiliations as does for contacts
Consolidate past iteration data residing in the System and Hubspot with newly supplied sources (e.g. Network Partner lists) and execute a cleaning of this consolidated source. Oversee the import of this to the system ahead of registration launch to ensure data synchronicity
Determine data-handling strategies to deal with multi-iteration data, whereby a single record (of either a school or an individual) is involved in more than one iteration. Oversee execution of these strategies
Itemise iteration-specific data fields in use across Hubspot and Game System. Ensure required updates are made to these fields in preparation for each iteration. E.g. adding new iteration reference ("Wavumbuzi_KE21")to the "programme_affiliation" field on Hubspot.