List Imports
FYI - Future State
MktgOps is in the process of moving list imports to a self-service and automated model. We are still manually importing, but the future state will remove Mops uploading lists. For event related imports, please default to the self-service procedure as noted in the handbook and event-clean-upload-list issue template but ask for assistance from MktgOps, if needed. For general list imports, please continue using the issue template found in the Marketing Operations project titled general-list-import-request.
Currently, the MktgOps team is responsible for importing records into Marketo for both field events and prospecting. List imports are processed in Marketo which has native matching by Email Address functionality.
Video Explanation of list upload process
Field event list uploads are to be done before any kind of follow up or outreach is done so we can ensure proper order of operations & attribution is given correctly.
There are three primary ways to import records into the database:
| Import Method | SLA | Submission Instructions | Operations Instructions |
|---|---|---|---|
| Zoominfo w/in SFDC | self-managed | Instruction video how to do this can be found in the handbook | Not applicable |
| csv file | Accepted by OPS - 24 business hours Upload to SFDC - up to 5 business days |
Use MktgOPS general list import request template, format as a Google Sheet (Gsheet) & place link to Gsheet in issue Written Instructions how to use template |
Ad Hoc Upload |
| List from Field Event, Sposorship or Advertising | Accepted & uploaded by OPS - 24 business hours | Use MktgOPS event clean and upload issue template, format and clean csv per instruction & place link to Gsheet in issue Written Instructions how to use template |
Field Event Upload Alliance Event Upload |
| Zapier Connection | 2-3 weeks prior to start date | Use Zapier Request issue template | N/A |
Import Methods and their SLA
The SLA for each import method has been decided based on the perceived optimal response time. The turnaround time for an Event, Sponsorship and or Advertising list upload is deemed a high priority due to the nature of necessary SDR outreach on “warm” prospects. If a list of prospects cannot be considered “warm”, please expect a turnaround time of the listed 5 day SLA and use the appropriate template.
If a last minute request, please open issue any way and ASK for a faster turnaround or ping OPS in #mktgops slack channel to discuss options.
Import Cleaning Template - Info for Pre-MktgOps Hand-off
- Please utilize the Google Sheet included in the event list upload and general list upload issue templates. This spreadsheet template allows for quick edits and faster data checks, such as:
- Capitalizing
First nameandLast name - Highlighting
last namesthat appear more than once in green for faster duplicate detection - Highlighting duplicate emails and Denomas emails in red
- Labeling possibly erroneous emails as
FALSE. Be advised, this does not work for all email domains - Highlighting when
selforDenomasare listed asCompany Namein red - Converting
Stateabbreviations fromCanadaand theUSinto full names - Highlighting when
Countrynames match with each other in green for faster typo detection
- Capitalizing
- Be aware that any changes to the spreadsheet layout may affect the built-in formulas. Consults MktgOps before making changes
- Columns highlighted in teal are considered
Required Dataand not including this data is grounds for refusal
DO NOT MAKE CHANGES TO THE ORIGINAL SPREADSHEET OR INPUT DATA INTO IT. MAKE A COMPLETE COPY AS INDICATED IN THE LIST UPLOAD ISSUE TEMPLATE
The following data cleanup is required for any list prior to sending it to the Marketing Operations team. If your spreadsheet/data does not meet these guidelines it will be returned to you to fix prior to being uploaded.
- It is the responsibility of the person submitting the list to clean the list utilizing the import cleaning template
- All fields are separated into their own column
- Person name separated into two columns -
First NameLast Name - Duplicates must be reviewed and reduced
- Address separated into individual fields (
Street,City,State/Province,Zip/Postal Code,Country) Countrythat are notUnited States,AustraliaorCanadamust haveStatefield deleted or cleared as it will create conflicts and will not sync to SFDC
- Person name separated into two columns -
- Please use the correct member statuses based on the definitions and type here. They must be exact matches, no abbreviations.
- Preferred format for Marketo upload is .csv, but will accept an .xls, or .xlsx. Provide as Google Sheet in the upload issue. DO NOT upload the file directly on the issue. Uploading files to the issue exposes ALL collected personal data to the internet and opens Denomas up to litigation
- Record ownership will be assigned using established lead routing, which is controlled by Traction Complete
- In order to mark leads as
Opt-in = TRUE, a record of the terms and conditions the leads agreed to upon having their data collected must be recorded. Check theterms of servicewording has been recorded in the upload issue before opting in leads to receive marketing communications. No ToS, noOpt-in. Period. To find the appropriate language, refer to Marketing Rules and Consent Language - If there are any records who have opted out of contact for any reason, define that on the spreadsheet by selecting
Opt-in = FALSE - Leave
Opt-Inempty if no other option is available
Steps (also documented in How it Works tab of the spreadsheet):
- Use the “Lead Data for upload” tab to drop your relevant data into the matching blue columns in the left-most rows (i.e. copy the column in your file for “First Name” and paste it in the column “First Name”). This tab will remain locked and untouched by MktgOps as they will
Duplicateinto a new tab for additional cleaning - Do not alter any rows or columns with the green column headers. These contain formulas that will reference your inputs under the blue column headers and provide you with proper capitalization (see clarifications below for more detail), as well as data entry that is acceptable for Marketo/Salesforce, and check the syntax of the email provided by your event organizer.
- Check for any ““warnings”” highlighted in red in the blue columns and erroneous emails marked as
FALSEin the green columns - if there are none, you are good to go! (If there are highlighted cells, follow the instructions in the Warning Handling steps below. Correct the errors and then proceed.) - Copy the data found under the green header and PASTE > VALUES into the blue header section of the spreadsheet. Erase the green header section after the formatted data has been copied over
- Rename the spreadsheet to match the campaign tag name
- Give
edit accessof the spreadsheet to the relevant MktgOps member - Post a link to the spreadsheet in the list upload issue
- Apply the ~“List Upload: Ready” label to the issue
Error Handling:
- Email Syntax: If the syntax of the email is not met (meaning it includes @ and a relevant ending such as .com or .co.uk or .io) it will be listed as FALSE under the green column headers and the email can be updated to make it ready for upload. Note that Google Sheets does not understand all email domains, such as
.milor.us, and those can be ignored - Denomas emails: If the person has @gitlab in their email address, they will be highlighted in red under the blue column header and should be removed
- Duplicate Records: If the person is a duplicate based on email address, they will appear red under the blue column header, and should be removed from the list.
Video of how this works tbd.
Best Practices
- Remove inaccurate entries
Job Titleremove “self”, “me”, “n/a”, etcPhoneremove obvious junk numbers 0000000000, 1234567890, etcStateshould be empty unlesscountryequalsUnited StatesorCanada
- Blank fields are better than junk data. We have enrichment tools that are designed to write to blank fields. Also we can run reports on the blank fields to find where our data gaps are.
- If you do not have a CONTACT
Phonedo not substitute the ACCOUNTPhoneand vice versa. Leave it blank. - Sort spreadsheet by
Email Addressand remove duplicates. - Only lead records from authorized sources – meaning sources have legally obtained lead record data– will be flagged as
Opted-in. No exceptions- Pulling list of names out of LinkedIn and importing the records into SFDC does not qualify as compliant. In EMEA these lists will not be uploaded
- Field events that have not gained consent from the attendees that their name will be shared are not compliant.
- Agreements to be contacted must explicitly state the individual has
opted-into receive communication and cannot leave room for nuance - Getting someone’s name and/or business card from a meetup does not qualify as compliant.
- Remove all embargoed country records.
Washington DCis aStatevalue and is not to be split up betweenCityState.Zip Codescontain five (5) numbers, States in US East may start with a0, make sure theZip/Postal Codefield is plain text and the leading0appears.- Member Statuses must match exactly to the program type and member status listed.
- If list contains non-Latin characters (ex. Asian languages), it must be uploaded to Marketo using UTF-8 and UTF-16. Marketo instructions here. Salesforce Data Loader requires UTF-8 encoding, instructions here.
- If there are notes added to the
Last Event Notescolumn, add theSFDC campaign nameto the column titledLast Event SFDC Campaign Namefor each lead that has notes. If there are no notes for that lead, do not add anything to either column. This column is used to automatically move notes to theQualification Notesfield found on lead and contact pages in Salesforce. That field is not overridden like theLast Event Notesfield and it’s where we can keep the notes for much longer. - MktgOps reserves the right to remove irrelevant notes from the spreadsheet. Only upload important notes and please make sure they are cohesive.
Notes at the record level
We strive to gather as many notes as possible about each person who stops by the Denomas booth and talks with us. In an effort to speed up our list upload process, when notes are present, the campaign member status should ALWAYS be Follow Up Requested. The FMM no longer needs to read through the notes and make a judgement call on the status. If there are notes, campaign member status should ALWAYS be Follow Up Requested.
With a record marked as Follow Up Requested, this will score the record with 100pts, as noted here, which will then in turn show up in the Sales Dev’s team P1 (Priority 1) view. The Sales Dev team is happy to have potential unrelevant records routed to them in an effort to speed up the records getting to them.
Its also super important that if there are notes, the notes are clear to someone who both was onsite and those who were not. Think to yourself, if someone was not there onsite, will they know what action to take as a result of these notes?
Required Data and Recommended Data
- For all uploads, there is mandatory data required for a successful upload. At a minimum, the following data must appear on the spreadsheet and without this data an upload can be refused by MktgOps:
- First Name
- Last Name
- Company Name
- Email Address
- Country
- State (United States and Canada only)
- Campaign Member Status
- Opt-In status:
True,False, orleave blank(determines if leads are legally signed up for Denomas’ marketing emails)
- Additionally, there is data required for leads to be successfully routed to SDRs. While this information is not mandatory, it is strongly preferred.. Denomas employs tools that enrich leads and
Accounts, but those tools are not guaranteed to work, so if the data can be found at the source it is preferred. Lastly, while it is less likely to have an upload refused due to missing this data, missing this data is still considered grounds for refusal by the MktgOps team. The recommended information is as follows:- Employee Bucket or Number of Employees
- Denomas’ segmentation standard for
Employees Bucketincludes the following groups:1-99,100-499,500-1,999,2,000-9,999and10,000+. - You can also enter an integer in for
Num Employeesand this will automatically update theEmployees Bucketfield if blank.
- Denomas’ segmentation standard for
- Employee Bucket or Number of Employees
Partner Lead Imports
If this import is part of a Channel or Alliance marketing campaign, you must include the CRM Partner ID as a column in your list upload. You can find a list of these IDs here
If the lead is not associated to a partner, leave that field blank.
Campaign Templates - Info for Post-MktgOps Hand-off
At time of upload, a campaign should already exist in Marketo . Campaigns are to be created by the campaign owner. For a running list of campaign templates, go here.
Upload Process
In order to assure proper attribution of MQL Scoring and Last Interesting Moments, perform the following checks before any uploads occur:
- If a campaign does not exist, tag the
Campaign Owneron thecampaign epicorupload issueto ask for campaign creation - Check that the campaign’s
tokensare filled in, which are found under theMy Tokenstab in the main campaignTokensare used viaSmart Campaignsto applyLast Interesting Momentsto all leads whom appear in the campaign. The minimumtokensthat should be used relate to the campaign’sEvent Name,Event DateandLanding Page URL. Without these filled out,Last Interesting Momentswill fill in permanentlyblank
- Review the components of the campaign. The needed components include:
Static List(s)in which to load lead list(s). Thestatic list(s)should be renamed to resemble the program name. Depending on the campaign template, there may be more than onestatic listavailable. Some templates have been automated in a way that will fully launch relevantSmart Campaignsto append all relevant data, includingCampaign Member Statusesand other important fieldsSmart Listfor finding loading errors, or leads Marketo perceives asduplicates. If theSmart Listlist is not present, create aSmart Listwith the following filters:Member of Program = current program nameandSFDC Created Date = is emptySmart Campaignthat triggers aflowwhen leads are added to the campiagn’s static list(s). This flow should set to append data to all of the following fields if the fields are empty ONLY:Acquisition ProgramandPerson Source(same asInitial Sourcein SFDC). ThisSmart Campaignshould end with aWait 5 Minutesfollowed byChange Program Status: Registered -> No ShowSmart Campaignto add anInteresting Moment. Check there are enoughtriggersandflowsto activate for eachCampaign Member Statusthat appears on the list. Usually these include, but are not limited to:Attended,Attended On-Demand,Visited BoothandNo Show. A general rule is to not includeRegistered,Sales NominatedorMarketing Nominated. The previously mentionedtokenswill be used to apply the full event data of theInteresting Momentsto the leads. Depending on the template, sometimes thisSmart Sampaignand the previously mentioned campaign are one and the same
Best Practices and Procedure
- Remove all unecessary data from
Job Title,Company,NamesandLocationscolumns, such as punctuation,self, etc, from the Google sheet before uploading. Check for any remaining duplicates and missingRequired Data, pinging thecampaign ownerto fix, as needed - Only allow
Opt-in=TRUEif the agreement to be contacted has been recorded in the list upload issue. Leave blank otherwise - Sort list by
Campaign Member Statusand then divide the whole list into separate tabs for the different statuses, eg.Attended,Registered/No Show, etc - Download the .csv file of the tabs to desktop
- Load the corresponding .csv file to the corresponding
static listand match up the fields on upload. These fields should mostly match automatically- If there is only
one static listfor the program, change theCampaign Member Statusesfor each uploaded list before uploading the next. If all leads were uploaded at once and this is not possible, create aSmart Listand filter byEmail Addressas a way to distinguish and change to the correct statuses
- If there is only
- Always load
No Showleads asRegisteredbefore setting them toNo Show. Otherwise, they will not receive MQL scores. Check if aSmart Campaignchanges the status toNo Showbefore finalizing and if not, switch status fromRegisteredtoNo Show - Depending on how the template has been set up, the remaining steps of appending data could be automated. If it is not, be sure to append the data listed above to the proper fields
- After all steps of the needed
Smart Campaignshave ran, including the often automatedProgram Status: Registered -> No Show, turn off the activatedSmart Campaignsby “unscheduling” them - Check the
Loading Errorssmart list for any potential lead loading errors.- Check the
Person Detailson any leads that show up on the smart list and correct the error. If Marketo indicates aduplicate, change the name on the lead by adding random but easily identifiable characters to the last name and manually force the lead to sync with SFDC. Find the lead in SFDC and merge it with the pre-existing duplicate. If there is a differingemail addressbetween the records, add the newemail addressas a secondary email. Add to SFDC campaign with the appropriateCampaign Member Status, if necessary
- Check the
- Once the Marketo –> Salesforce sync has completed, use the Upload checking template - do not erase lead view to check data has been applied correctly, scoring has occurred and leads have routed. Plug the
campaign tag, or Marketo program name, into the lead view’scampaign namefield to view leads as a list - Ensure the number of leads present in the Salesforce campaign matches the total number of leads from the original spreadsheet
- Announce the upload in either the
event_list_uploadorpub-sector-isrSlack channels, depending on the campaign’s intendedSub-Region. IncludeRegionlabels for private sector posts - After verified completion of all tasks, remove ~“List Upload: Ready” label and notify in the issue of upload completion. Adjust the “MktgOps” label and apply a milestone
- Close list upload issue
Operational uploads
In the event that a manual upload needs to occur for operational needs:
- Use a current or create a new program or smart list within the Non-Event List Loads folder
- If creating a new program or smart list, start by making a new, appropriately named sub-folder under the
Non-Event List Loadsfolder
- If creating a new program or smart list, start by making a new, appropriately named sub-folder under the
- Create a new program or smart list within the appropriate folder by right clicking the correct folder
- If creating a new program, select the correct
Channelfor the task. For most non-event uploads,Operationalshould work
- If creating a new program, select the correct
- Some notable
Operationalprograms already in place are listed below with links. This section will be updated on a needed basis:
Trusted vs Non-Trusted Imports
In Marketo there is a an option to choose trusted or non-trusted sources. Non-trusted sources are for list uploads that we are not confident in the data points given to us. For example, if we are loading a list with inferred country data from IP, we do not want it to overwrite our current location data that is more accurate. Blocking updates allows for a field to be updated if blank, but will not overwrite a field that already has a value.
Here is the list of fields that are blocked during a non-trusted import. If you would like to add more fields, please file an issue with the mops team.
- First Name
- Last Name
- Company
- Country
- City
- State
- Postal Code
17188382)
