Sprint #210, Sprint #211
Replace the sync mechanism for the Global Project Standards. This sync is used to display the dropdown values of the "Global Project" Analytics Field (available in the backend for posts and pages).
Background of this request:
In the past the dev team created a connection
PLANET-6451 between Planet 4 and a Google Spreadsheet used as SSOT, but turns out this sheet has a mechanism that is not working anymore (we used to pull out data from another source called "PitchHub" which is not very reliable). We would like to change this automated process to a manual one, where Global Campaign teams can request a value to be added on the oficial list.
How the sync is happening today:
- Global Projects = Based on this part of the code the data is synced from this sheet. The exported columns are Global Project Standard and Standard Approved. The sync depends on the columns index.
- Local Projects = Each NRO has a customised sheet and they can add the SHEET ID to the Planet 4 > Analytics Settings. See previous tickets
- Mimic the Local Projects sync for the Global Projects dropdown.
- Use the same SSOT sheet to create the sync (this should be hardcoded for all P4 instances)
- Feed data from the tab "Global Projects Standards"
- Make sure the requirements from previous iterations are still valid, such as:
- Values from the "Global Project Standards" (column B) should feed in the "Global Project" analytics dropdown
- Filtering: Sync only the "Global Project Standards" values which have the "Standard Approved" value as true (column C)
- Order the values in alphabetical order
- Fetch values from the sheet every time when a new campaign page is created. Cache only for 5 minutes.
- The selected Global Project value in the dropdown should fill in the 'gCampaign' dataLayer variable, and the respective Tracking ID (column D) should fill in the 'projectID' variable
- Important: Make sure existing selection/data on Planet 4 pages/posts are kept after the list is updated. If an existing value is removed (or unapproved) from the SSOT sheet it should remain on the page (dataLayer value must not change). In this case, we should add a label [deprecated] on the dropdown value in the backend.