Higher Gov Contract/Bid Workflow

This explains how to export search results from Higher Gov to Airtable with the correct header and data formatting.

First

  1. Sign into Higher Gov using your bitwarden password
  2. Select the Saved Search of Interest
  3. Export search results as CSV or Excel, then open in Excel.

Next there will be two different approaches for Local and State Contracts vs Federal Contracts. First, we will discuss how to handle Local and State Contracts.

State and Local Contract Integration:

  1. In Excel, Select all cells, remove Word Wrap
  2. Select all cells in the table, hit "Control + t" to make it into table formatting
  3. Drag the columns with the header "Title" to be the first column on the left of the table. To drag this column, you need to first select the header cell, then move your mouse to the border of the header cell and the first row's cell, wait for it to turn into a black arrows cross, then drag it to the far left.
  4. Next we need to put all the NAICS codes into one cell. Go to the NAICS Codes. Insert a column to the left of the codes called NAICS, then enter this function:
    =[@[NAICS 1]] & "," & [@[NAICS 2]] & "," &[@[NAICS 3]]
    1. If this function doesn't work, just replace the [@[NAICS #]] entries by clicking on the intended NAICS code cell for all the NAICS columns.
  5. Copy all the table's cells from "Title" to "NAICS" (see below for example of what this should look like).
  6. Select a new cell at the bottom of the SLED 1 view in the Airtable Table called Opportunities. Paste the copied cells so that Title goes into the name column.
  7. Go back to excel. Copy the last two columns: Source URL, and HigherGov Page. Paste them into SLED 1 view also,
This is what the excel table should approximately look like

For Federal Contracts, we are going to be importing this csv through airtable's csv importing tool so that we can avoid any duplicate entries.

Federal Contract Integration:

  1. Select the airtable table you wish to import the csv to (opportunities in this case).
  2. Select extensions, then import csv.
  3. Make sure to select to merge on Notice ID. This is a unique key and will prevent any duplicates from entering the airtable (it also is what the original contract offers use as unique identifiers).
  4. You will then have to match EVERY single csv column to its corresponding column in the Airtable. A brief dictionary of these connections is below:
    1. Solicitation Title : Name
    2. Notice ID : Notice ID
    3. Solicitation ID : Solicitation ID
    4. Description Text : Challenge (desired accomplishment) or Intro
    5. Response Timestamp : _Bid Date
    6. Response Timezone : Client State/TZ
    7. Opportunity Type : Solicitation Type
    8. Set Aside Code : Set Aside
    9. NAICS : NAICS Codes
    10. Primary Contact Title : Client Title
    11. Primary Contact Name : Client Name
    12. Primary Contact Email : Client Email
    13. Primary Contact Phone : Client Phone
    14. Place of Performance Street Address : Place of Performance Address
    15. Place of Performance City : Place of Performance City
    16. Place of Performance State : Place of Performance State
    17. HigherGov Page : Finder Link
    18. Source Website : Opportunity Link
  5. Tip: It can be easy to lose track of which columns you have imported. Make sure to cross off each column you have completed.
  6. Pro tip: You can also just rename all the column names in a python file, then import it with the csv importer. This will allow airtable to auto-detect and match some of the correct names, but it will also make finding the correct names much easier.
  7. Pro Pro Pro tip: You can also just use the airtable API to completely sidestep all of this - with one major exception: it won't prevent duplicates. To avoid this we would have to use the api to call the extension or download the base table then delete the duplicate rows, then upload the remaining unique rows into the df via batch upload.

Great! We have now successfully imported in the data from Higher Gov to Airtable. In the next post, we will explore how we can enrich our data to enhance the decision making process.