Dropbox Data Locations
Most of our sales and leads data is downloaded, collected, or sent to our SFTP on a monthly basis in support of Multi Touch Sales Attribution.
When downloaded, collected, or SFTP leads files are received, they are dropped off here:
- Leads:
Dropbox/Insyncing Data Drop/0-Leads/SPECIFIC ROOFTOP FOLDER/SPECIFIC VENDOR FOLDER - Sales:
Dropbox/Insyncing Data Drop/0-Sales/SPECIFIC ROOFTOP FOLDER
After downloaded, collected, or SFTP leads files are processed, you can find them here (in addition to the raw and standardized tables in the database):
- Leads:
Dropbox/Data Archive/Leads/SPECIFIC ROOFTOP FOLDER/SPECIFIC VENDOR FOLDER - Sales:
Dropbox/Data Archive/Sales/SPECIFIC ROOFTOP FOLDER
Property Folders
SPECIFIC ROOFTOP FOLDERS must have a Property ID # in the folder name following the Rooftop name. The Property ID must be enclosed in parentheses. Example:
McCluskey Chevrolet (48989)
MULTI FOLDERS
Sometimes clients or vendor websites provide data files that contain data for multiple rooftops. These files must have a “Dealership Name” column identifying the rooftop. Ops Specialist must map the rooftop names in this column to the property IDs - See Mapping Multi Store Files.
Multi folders should follow the same folder hierarchy structure above, but the “SPECIFIC ROOFTOP FOLDER” should end in “(multi)”. Example:
Step One Auto Group (multi)
Mapping Data
Single Store File
If the file you are loading contains data for a single store (or you must download multiple stores individually), you will load data to an individual property folder in Dropbox.
Multi Store File
If the file you are loading contains data for multiple stores, we can load the data into a (multi) folder in Dropbox but the file must contain a property alias column (typically named “Dealership Name", “Dealership”, or “Store”). This column identifies the store names and we map those aliases to the property IDs.
The values in the property alias column must contain a unique value that would identify each specific property only.
For example:
- Acceptable property aliases: McLarty Daniel Ford, McCluskey Chevrolet, Milwaukee Ford North, 12345 [a property ID]
-
Unacceptable property aliases: Ford, Toyota, Ford North, Chevrolet East, 1, 10, 25
*these are unacceptable values because they are too generic and could refer to any number of stores
- Map the Property aliases - If you do not have access to Datagrip and Postgres, notify the Ops Specialist or Ops Coordinator and request that they map the property aliases.
- Map the property aliases by adding new rows in the
claripedia.property_aliasestable for all stores in the file.
Use the + button to add a new row.- property_alias = the alias in all lowercase, no spaces, no punctuation
- property_id = the property ID to which you want the data mapped
- Remember to click the Update button ⬆︎ to commit the changes!
Combined Data for Multiple Properties
Any Leads data that cannot be mapped specifically or accurately to a specific rooftop gets loaded to the parent property.
See Loading Data to a Parent Property for details on this process.
Quality Checking Files
These are steps for Quality Checking a file that will be loaded through Dropbox.
-
Check the file format
Acceptable formats are .CSV, .XLS, .XLSX
If saving as a CSV - pick CSV UTF-8 Comma Delimited - Correct rooftop(s)?
-
Correct dates? Match with P. Month column on the Monthly Task board to make sure we are receiving all of the data we need.
- PARTIAL MONTH/MISSING DATES: If a file does not contain a complete month of data (full range of dates):
- DMS Sales - It is okay for a Sales file to be missing the 1st-10th of a month as some dealers' Accounting Departments spend the first 10 days finalizing sales from the previous month and do not start entering new sales until the 10th (may vary slightly).
- MULTIPLE MONTHS: If we are missing multiple months and a dealer does not send all of them:
- Do not mark the task status as Done or Completed (leave as "Waiting on...").
- Note in the conversation/updates which month(s) we received.
- Email the collect contact to confirm receipt of the file(s) and request the missing months. See Collect Data - File Problems section below.
- PARTIAL MONTH/MISSING DATES: If a file does not contain a complete month of data (full range of dates):
-
Multi-Sheet (Tab) Excel files: If a file contains multiple sheets:
- SPLIT BY MONTH: If all sheets are for the same property (or all are a multi for the same group) AND are the same data vendor and type, you CAN load a file with multiple sheets. Each sheet will be processed. For example, dealers may split multiple months into separate sheets.
- SPLIT BY CAMPAIGN: If each sheet contains a separate campaign:
- If a Campaign column exists (and is mapped), you can load the file
- If a Campaign column does not exist and get_campaign_from_filename=true for this lead data supplier
- Separate the sheets into separate files (leaving the campaign name in each filename).
- Load the separate files.
- Email the collect contact to politely request that they send separate files for each store moving forward. See Collect Data - File Problems section below.
- SPLIT BY STORE:
- If a (multi) file is expected (we are loading to a multi folder) and each sheet contains a Dealership Name column, you can load the file.
- If we expect individual files and each sheet contains a separate store, you must:
- Separate the sheets into separate files.
- Load the separate files.
- Email the collect contact to politely request that they send separate files for each store moving forward. See Collect Data - File Problems section below.
-
Correct # of data columns?
- Compare to previous month in Data Archive to ensure the same columns are present as in the past. If missing a required or highly suggested column that was in previous months' files, email the dealer to request a revised file. If needed, explain the importance of having the missing data.
- If the file is a new file we are receiving for the first time, make sure all required columns are present. See Clarivoy Data Input Requirements.
-
Clean Things Up
- Delete any rows ABOVE the header row or summary rows below the data.
- Delete any blank columns.
-
Batching Files - VERIFY the # of rows (leads) in the file. Our processing DAGs (server jobs) can only handle up to 100,000 leads at a time in 1 file.
If a file contains more than 100,000 leads or sales:- Split into multiple files, each of 100,000 rows or less
- Load the first file
-
Leads: Run the etl_leads_preprocessing_processing DAG in Airflow
Sales: Run the etl_sales_preprocessing_processing DAG in Airflow - Repeat steps a through c for each subsequent file (loading 1 file at a time and running both DAGs before loading another file).
Loading Data
- Quality Check the File: See Quality Checking Files
- Special Instructions: Pay special attention to any instructions in the task’s Notes column on the SA+TVA Ops Monthly Task board and follow them. Also note any special instructions on the Vendor Details & Instructions board.
-
Name the file appropriately
-
Sales: Use the naming convention
YYYY MM - Client Name - Sales
OR for multi month files useYYYY MM to MMorYYYY MM to YYYY MM -
Leads: Use the naming convention
YYYY MM - Client Name - Vendor Name
OR for multi month files useYYYY MM to MMorYYYY MM to YYYY MM
Special exceptions include:-
Campaign Names in Filenames - For most Direct Mail, if there is no Campaign column, the campaign name will be specified in the filename. You must leave that campaign name at the end of the filename (after the vendor).
For these vendors, in the lead_data_suppliers table, get_campaign_from_filename should be set to TRUE
Example filename:YYYY MM - Client Name - Vendor Name - Campaign Name -
NO DATES - For Direct Mail or other leads where we do not know the actual lead date, we assume the first of the month.
In those cases, use:YYYY MM 01 - Client Name - Vendor Name - Campaign Name
For these vendors, in the lead_data_suppliers table, get_date_from_filename should be set to TRUE -
EXACT DATE - If we know the exact send date for Direct Mail or Email Sends and there is no date column in the file, use the exact date in the filename.
For example: Bill Marsh always tells us which date their Mailchimp email newsletter was sent out each month. If their "Platinum Customers" newsletter was sent out on 12/18/2023, the filename would be:2023 12 18 - Bill Marsh - MailChimp - Platinum Customers
(where "Platinum Customers" is the name of the campaign)
-
Campaign Names in Filenames - For most Direct Mail, if there is no Campaign column, the campaign name will be specified in the filename. You must leave that campaign name at the end of the filename (after the vendor).
-
Sales: Use the naming convention
-
Create Dropbox Property Folder:
-
If one does not already exist, create a property folder in Dropbox/Insyncing Data Drop/0-Leads **ops improvement: to be automated in the future for Rocketlane Collect & Download data tasks
- If downloading for a single store (or you must download multiple stores individually), use the format: Property Name (PROPID)
- If you are able to download a multi file and it contains a column to identify the store name, use the format: Client Name (multi)
- Map the Property aliases - Notify the Ops Specialist or Ops Coordinator and request that they map the property aliases. This maps the store names to the property IDs. They will map the property aliases in the
claripedia.property_aliasestable for all stores in the file.
- Map the Property aliases - Notify the Ops Specialist or Ops Coordinator and request that they map the property aliases. This maps the store names to the property IDs. They will map the property aliases in the
-
If one does not already exist, create a property folder in Dropbox/Insyncing Data Drop/0-Leads **ops improvement: to be automated in the future for Rocketlane Collect & Download data tasks
- Leads only - Create Dropbox Vendor Folder: Create a vendor subfolder inside the property folder. Reference the Vendor Details board - Lead Data Supplier Name column.
-
Load the Data:
- Sales - Load the data file inside the property folder.
- Leads - Load the data file inside the vendor subfolder.
- Set the task status to Completed
- ✴️ PRO - Rocketlane Zapier Integration creates a new item in the SA+TVA Ops Monthly Tasks board.
- If the Monthly Task board item cannot be created by Zapier, an error message should appear in the task Chat explainign why. Typically this is because the required fields are not filled in on the task's Additional Info tab (Method, Task Vendor, Data Type).
- ✴️ PRO - Rocketlane Zapier Integration creates a new item in the SA+TVA Ops Monthly Tasks board.
ETL Processes
The following Airflow DAGs pick up the files in the Insyncing Data Drop
The automated job to pull data from the above DropBox folders and load to our database runs every couple of hours (5 to 8 times per day), via the application AirFlow. Specifically, this data is loaded to our sales.leads_raw table (for leads) or sales.sales_raw table (for sales). After the sales or leads processing job is complete and data is filtered, the data is moved to sales.leads_standardized table (for leads) or sales.sales_standardized table (for sales). These tables can be viewed via the application DataGrip.
Errors related to Sales and Leads file processing will be broadcast in the #sales-leads-processing Slack channel. You must watch this channel and fix any errors that are broadcast as files will not be processed if they error here; The file in question will stay "stuck" in Insyncing Data Drop until the error is fixed. FOR troubleshooting #sales-leads-processing errors, see Troubleshooting #sales-leads-processing Errors
After the nightly matching job completes, the attribution results are available in our dashboard in the stage environment (only visible internally to Clarivoy). After attribution results are QA’d, we push the data to our dashboard in the production environment (visible to our clients).