Tracking a student's progression through the funnel stages is found on Element451's Milestones. For more information on comparing Milestones to Funnel Stages, check out our Funnel Stages article.
Milestones get automatically generated as records complete applications, fill out forms, and sign up for events, but you can also import in milestones. While there are a lot of milestone types that you can import into, this article will focus on importing milestones as it related to funnel stages:
Inquiry
Application Start
Application Submit
Admit
Deposit
Enroll
Milestones are more than just dates, records may go through the funnel multiple times, so to capture the full picture of their funnel stage, milestones associate a term, major, and student type with the date the event happened. This is something to keep in mind as you create your files and import milestone data.
Creating Milestone Files
Creating Milestone Files
As a reminder, the files need to be either .csv or .txt, contain a unique identifier (or a few!), and only have one row per contact. There are a few methods we recommend making files of milestone data.
Generate Separate Files for Each Term + Milestone Type. Depending on how much historic data you bring into Element451, your files would look something like: a file for Spring 2025 Inquiry Dates, a file for Spring 2025 Application Start Dates, a file for Spring 2025 Application Submit Dates, a file for Spring 2025..., a file for Fall 2025 Inquiry Dates, a file for Fall 2025 Application Start Dates, a file for Fall 2025 Application Submit Dates, a file for Fall 2025..., etc.
Generate Separate Files for Each Term. In this method, you would have a Spring 2025 file that contains Inquiry Dates, Application Start Dates, Application Submit Dates, Admit Dates, Deposit Dates, Enroll Dates. Then you would have a Fall 2025 file with their respective dates, and so forth.
Generate File where Milestones Types are in Column Sets.
If going with this option, it would be preferable for the column sets be associated with specific terms. For example, columns 4-8 are for Fall 2025 Inquiry Dates. If a student has an inquiry date for Fall 2025 they have data in these columns, if not, the cells are blank. Next, columns 9-13 are for Fall 2025 Application Start Dates and so on.
The last option, which will require the most work to prevent milestone overwriting, is the column sets not being associated to specific terms. For example, columns 4-8 are Inquiry Dates for various terms, columns 9-13 are Application Start Dates for various terms and so on
Fields to Include in the File
Fields to Include in the File
Listed are fields you can include on your milestone files. The bolded fields are strongly recommended.
Contact Identifiers (Student ID, Historic ID, and/or Email)
Date of Milestone
Term associated to Milestone
Major associated to Milestone
Student Type associated to Milestone
Degree associated to Milestone
Importing Milestones using Method 1
Importing Milestones using Method 1
With separate files for each milestone type + term combination, you will be creating import tasks for each file that are identical in column layout, but different scoping set up inside the milestone fields. There is a Historic Milestone Import template in your instance, but you are not required to follow that exact layout if you need additional unique identifiers or need to put the fields in a different order, the template is a starting point if you need direction.
Mapping
Mapping
The following fields should be mapped when importing milestones:
Contact Identifiers: This can be a historic ID from a previous CRM, student ID, email, or other identifier. Not all are necessary, but the more the better!
user-identities-historicid
user-identities-schoolid
user-email-address
Milestone Fields: Try to map as many of the milestone fields listed below as possible, with emphasis on date and term. Think about how you will segment these records, for example, if you are going to want to search for freshman inquiries from Fall 2024, know that you will want to populate data in the in student type and term fields.
user-milestones-date-*
user-milestones-term-*
user-milestones-major-*
user-milestones-student-type-*
user-milestones-degree-*
Scoping
Scoping
Notice that the milestone fields we recommend you use have asterisks. We call these Star Mappings and it is a great tool to use to ensure that data does not get overwritten and also target data that may need to be cleaned up. Any field that is a star mapping, will require scoping settings. The settings vary but can be position, term, application type, milestone type, and a few more.
When selecting the settings, you are telling the system that you are importing a milestone with these qualities, if one does not exist already on the record, create a new one, if one does exist that meet the qualities, update it. Without the star mappings, the system updates whatever milestone is on the record's profile, potentially wiping a historic application.
For importing milestones using Method 1, for each field on your import, you will set the scoping settings to whatever milestone type you want them to feed into and you will select a term. Since Method 1 instructs you to have separate files for each milestone type + term combination, each import will have the same column headers but the scoping settings will reflect the file you are importing. For your Fall 2025 Inquiry file, all the scoping settings should be "Fall 2025" and milestone type "Date of Inquiry" on each milestone field, as an example.
Position is NOT required, and that is what makes star fields so flexible! We don't know if a record has an milestone, and if we did, we don't know how many they have and what position the Fall 2025 Date of Inquiry is in. The scoping set up in the screenshot is the search criteria for determining if the milestone gets created or updated on the record's milestone card.
Importing Milestones using Method 2
Importing Milestones using Method 2
With separate files for terms, you will be creating import tasks for each file that are identical in column layout, but different scoping set up inside the all of the milestone fields.
Mapping
Mapping
The following fields should be mapped when importing milestones:
Contact Identifiers: This can be a historic ID from a previous CRM, student ID, email, or other identifier. Not all are necessary, but the more the better!
user-identities-historicid
user-identities-schoolid
user-email-address
Milestone Fields: Try to map as many of the milestone fields listed below as possible. Think about how you will segment these records, for example, if you are going to want to search for freshman inquiries from Fall 2024, know that you will want to populate data in the in student type and term fields. For each column set, you will want to map the same user-milestone-...-* fields, so you may end up with several columns mapped to user-milestones-date-*, user-milestones-major-*, etc..
user-milestones-date-*
user-milestones-term-*
user-milestones-major-*
user-milestones-student-type-*
user-milestones-degree-*
We suggest renaming the headers in the file to include the milestone type that the column refers to. For example, columns 4-8 are for Date of Inquiry, columns 9-13 are for Application Start Date, and so on. This step is mainly to keep your head straight when setting up the scoping settings and ensuring you are selecting the right milestone type for the chunk of columns.
Scoping
Scoping
Notice that the milestone fields we recommend you use have asterisks. We call these Star Mappings and it is a great tool to use to ensure that data does not get overwritten and also target data that may need to be cleaned up. Any field that is a star mapping, will require scoping settings. The settings vary but can be position, term, application type, milestone type, and a few more.
When selecting the settings, you are telling the system that you are importing a milestone with these qualities, if one does not exist already on the record, create a new one, if one does exist that meet the qualities, update it. Without the star mappings, the system updates whatever milestone is on the record's profile, potentially wiping a historic application.
For importing milestones using Method 2, for each field on your import, you will set the scoping settings to whatever milestone type you want them to feed into and you will select the term. Since Method 2 instructs you to have separate files for each term, each import will have the same column headers but the scoping settings will reflect the file you are importing. For your Fall 2025 file, all the scoping settings should be "Fall 2025" and depending on the column set, you would select the milestone type. In the example for Method 2, columns 4-8 would be "Date of Inquiry" type, columns 9-13 would be "Application Start Date" type, etc..
Position is NOT required, and that is what makes star fields so flexible! We don't know if a record has an milestone, and if we did, we don't know how many they have and what position the Fall 2025 Application Start is in. The scoping set up in the screenshot is the search criteria for determining if the milestone gets created or updated on the record's milestone card.
Importing Milestones using Method 3a
Importing Milestones using Method 3a
If your file follows Method 3a, where you have one file with column sets that are associated with specific terms and milestone types, follow the instructions for mapping below.
Mapping
Mapping
The following fields should be mapped when importing milestones:
Contact Identifiers: This can be a historic ID from a previous CRM, student ID, email, or other identifier. Not all are necessary, but the more the better!
user-identities-historicid
user-identities-schoolid
user-email-address
Milestone Fields: Try to map as many of the milestone fields listed below as possible. Think about how you will segment these records, for example, if you are going to want to search for freshman inquiries from Fall 2024, know that you will want to populate data in the in student type and term fields. For each column set, you will want to map the same user-milestone-...-* fields, so you may end up with several columns mapped to user-milestones-date-*, user-milestones-major-*, etc..
user-milestones-date-*
user-milestones-term-*
user-milestones-major-*
user-milestones-student-type-*
user-milestones-degree-*
We suggest renaming the headers in the file to include the milestone type that the column refers to. For example, columns 4-8 are for Date of Inquiry for Fall 2025, columns 9-13 are for Application Start Date for Spring 2026, and so on. This step is mainly to keep your head straight when setting up the scoping settings and ensuring you are selecting the right milestone type for the chunk of columns.
Scoping
Scoping
Notice that the milestone fields we recommend you use have asterisks. We call these Star Mappings and it is a great tool to use to ensure that data does not get overwritten and also target data that may need to be cleaned up. Any field that is a star mapping, will require scoping settings. The settings vary but can be position, term, application type, milestone type, and a few more.
When selecting the settings, you are telling the system that you are importing a milestone with these qualities, if one does not exist already on the record, create a new one, if one does exist that meet the qualities, update it. Without the star mappings, the system updates whatever milestone is on the record's profile, potentially wiping a historic application.
For importing milestones using Method 3a, for each field on your import, you will set the scoping settings to the milestone type and term that is intended. Since Method 3a will have a chunk of columns dedicated to one term and milestone type, another chunk dedicated to a different term and milestone type, and so forth, for scoping, you will select the term and milestone type that the chunk of columns represent.
Position is NOT required, and that is what makes star fields so flexible! We don't know if a record has an application, and if we did, we don't know how many they have and what position the Fall 2025 application is in. The scoping set up in the screenshot is the search criteria for determining if the application get's created or updated on the record's application card.
Importing Milestones using Method 3b
Importing Milestones using Method 3b
If your file follows Method 3b, where you have one file with column sets that are associated with a students Date of Inquiry for any term, Application Start for any term, Application Submit for any term, etc.., follow the instructions for mapping below. For this method, you must be familiar with our formula builder. Our list of functions can be found here.
We suggest renaming the headers in the file to include the milestone type and position that the column set refers to. In our continuous example for Method 3b, columns 4-8 may be named Date of Inquiry, Date of Inquiry Term, Date of Inquiry Major, etc.. Columns 9-13 may be named App Start Date, App Start Term, App Start Major, etc.. This step is mainly to keep your head straight when setting up the scoping settings and ensuring you are selecting the right term for the chunk of columns.
Mapping
Mapping
The following fields should be mapped when importing milestones:
Standard Mapping:
Standard Mapping:
Contact Identifiers: This can be a historic ID from a previous CRM, student ID, email, or other identifier. Not all are necessary, but the more the better!
user-identities-historicid
user-identities-schoolid
user-email-address
Calculated Field Mapping:
Calculated Field Mapping:
The following application fields will be Calculated Fields. This means you will scroll to the bottom of you import and select "Add a Mapping" > select "Calculated" > then search for the fields below. Depending on how many unique terms are mentioned in your file will determine how many of each calculated field you have to add. Does your file contain milestones for Fall 2025, Spring 2026, and Summer 2026? That means you will be creating 3*# of milestone types of calculated fields user-milestones-date-*, 3*# of milestone types calculated fields for user-milestones-term-*, etc.. So if you are bringing in App Start and App Submit milestones for Fall 2025, Spring 2026, and Summer 2026, you would be building six user-milestones-date-* calculated fields, six user-milestones-term-* calculated fields, etc.
Milestone Fields: Try to map as many of the milestone fields listed below as possible. Think about how you will segment these records, for example, if you are going to want to search for freshman inquiries from Fall 2024, know that you will want to populate data in the in student type and term fields.
user-milestones-date-*
user-milestones-term-*
user-milestones-major-*
user-milestones-student-type-*
user-milestones-degree-*
Scoping and Formulas for Calculated Fields
Scoping and Formulas for Calculated Fields
When adding Calculated Fields, you will be prompted to immediately select your scoping settings and add a formula. You will select an milestone type and a term. Using our example above, you would select either Application Start or Application Submit for type and Fall 2025, Spring 2026, or Summer 2026 for term. The order you build these doesn't matter as long as by the end you have six user-milestones-date-* calculated fields that are scoped to one of the three terms in the file, six user-milestones-term-* calculated fields that are scoped to one of the three terms in the file, and so forth.
Now for the formulas! With the file having various terms in each column, we'll be using IF statements to determine what columns are associated to what term for any given student. To set the scene of our example, columns 4-8 represents the students Application Start milestone, could be for any term, and columns 9-13 would be their Application Submit milestone for any term. Column 4 and 9 are dates, 5 and 10 are terms, 6 and 11 are majors, 7 and 12 are student types, and 8 and 13 are degrees.
Milestone Date Formulas
Milestone Date Formulas
Listed below will be examples of the formulas for the user-milestones-date-* fields. We are using the example from above.
For user-milestones-date-* scoped to Application Start Date and Fall 2025:
IF([C5]="Fall 2025",DATE_READ([C4],"m-d-Y"),"")
The formula checks to see if the App Start Term column equals Fall 2025, if so, it pulls the date associated to it. If the term is not Fall 2025, it inserts nothing.
Repeating these steps, the next formula for user-milestones-date-* that is scoped to Application Start Date and Spring 2026 would look like:
IF([C5]="Spring 2026",DATE_READ([C4],"m-d-Y"),"")
The formula checks to see if the App Start Term column equals Spring 2026, if so, it pulls the date associated to it. If the term is not Spring 2026, it inserts nothing.
For the Application Submit milestone, the formula for user-milestones-date-* will be very similar but with a different scope. The scope would be switched to Application Submit Date, and when the term is set to Fall 2025, the formula would look like:
IF([C10]="Fall 2025",DATE_READ([C9],"m-d-Y"),"")
Though the formulas are very similar, make sure your scopes align with the milestone and term you are wanting to build. Inside the formula, make sure the [C#] are pulling the correct columns.
Milestone Term Formulas
Milestone Term Formulas
Listed below will be examples of the formulas for the user-milestones-term-* fields. We are using the example from above.
For user-milestones-term-* scoped to Application Start and Fall 2025:
IF([C5]="Fall 2025",DB_MAP("term",[C5],"name","guid",""),"")
The formula checks to see if the App Start Term column equals Fall 2025, if so, it pulls the term. If the term is not Fall 2025, it inserts nothing.
Repeating these steps, the next formula for user-milestones-term-* that is scoped to Application Start and Spring 2026 would look like:
IF([C5]="Spring 2026",DB_MAP("term",[C5],"name","guid",""),"")
The formula checks to see if the App Start Term column equals Spring 2026, if so, it pulls the term. If the term is not Spring 2026, it inserts nothing.
For the Application Submit milestone, the formula for user-milestones-term-* will be very similar but with a different scope. The scope would be switched to Application Submit, and when the term is set to Fall 2025, the formula would look like:
IF([C10]="Fall 2025",DB_MAP("term",[C10],"name","guid",""),"")
Though the formulas are very similar, make sure your scopes align with the milestone and term you are wanting to build. Inside the formula, make sure the [C#] are pulling the correct columns.
Milestone Major Formulas
Milestone Major Formulas
Listed below will be examples of the formulas for the user-milestones-major-* fields. We are using the example from above.
For user-milestones-major-* scoped to Application Start and Fall 2025:
IF([C5]="Fall 2025",DB_MAP("major",[C6],"name","guid",""),"")
The formula checks to see if the App Start Term column equals Fall 2025, if so, it pulls the major. If the term is not Fall 2025, it inserts nothing.
Repeating these steps, the next formula for user-milestones-major-* that is scoped to Application Start and Spring 2026 would look like:
IF([C5]="Spring 2026",DB_MAP("major",[C6],"name","guid",""),"")
The formula checks to see if the App Start Term column equals Spring 2026, if so, it pulls the major. If the term is not Spring 2026, it inserts nothing.
For the Application Submit milestone, the formula for user-milestones-major-* will be very similar but with a different scope. The scope would be switched to Application Submit, and when the term is set to Fall 2025, the formula would look like:
IF([C10]="Fall 2025",DB_MAP("major",[C11],"name","guid",""),"")
Though the formulas are very similar, make sure your scopes align with the milestone and term you are wanting to build. Inside the formula, make sure the [C#] are pulling the correct columns.
Milestone Student Type Formulas
Milestone Student Type Formulas
Listed below will be examples of the formulas for the user-milestones-student-type-* fields. We are using the example from above.
For user-milestones-student-type-* scoped to Application Start and Fall 2025:
IF([C5]="Fall 2025",
DS_MAP([C7],"example.data_source.1234","column_1","column_2",""),"")
The formula checks to see if the App Start Term column equals Fall 2025, if so, it pulls the student type. If the term is not Fall 2025, it inserts nothing.
Repeating these steps, the next formula for user-milestones-student-type-* that is scoped to Application Start and Spring 2026 would look like:
IF([C5]="Spring 2026",
DS_MAP([C7],"example.data_source.1234","column_1","column_2",""),"")
The formula checks to see if the App Start Term column equals Spring 2026, if so, it pulls the student type. If the term is not Spring 2026, it inserts nothing.
For the Application Submit milestone, the formula for user-milestones-student-type-* will be very similar but with a different scope. The scope would be switched to Application Submit, and when the term is set to Fall 2025, the formula would look like:
IF([C10]="Fall 2025",
DS_MAP([C12],"example.data_source.1234","column_1","column_2",""),"")
Though the formulas are very similar, make sure your scopes align with the milestone and term you are wanting to build. Inside the formula, make sure the [C#] are pulling the correct columns.
Milestone Degree Formulas
Milestone Degree Formulas
Listed below will be examples of the formulas for the user-milestones-degree-* fields. We are using the example from above.
For user-milestones-degree-* scoped to Application Start and Fall 2025:
IF([C5]="Fall 2025",
DS_MAP([C8],"data_source.degrees_ref","name","code",""),"")
The formula checks to see if the App Start Term column equals Fall 2025, if so, it pulls the degree. If the term is not Fall 2025, it inserts nothing.
Repeating these steps, the next formula for user-milestones-degree-* that is scoped to Application Start and Spring 2026 would look like:
IF([C5]="Spring 2026",
DS_MAP([C8],"data_source.degrees_ref","name","code",""),"")
The formula checks to see if the App Start Term column equals Spring 2026, if so, it pulls the degree. If the term is not Spring 2026, it inserts nothing.
For the Application Submit milestone, the formula for user-milestones-degree-* will be very similar but with a different scope. The scope would be switched to Application Submit, and when the term is set to Fall 2025, the formula would look like:
IF([C10]="Fall 2025",
DS_MAP([C13],"data_source.degrees_ref","name","code",""),"")
Though the formulas are very similar, make sure your scopes align with the milestone and term you are wanting to build. Inside the formula, make sure the [C#] are pulling the correct columns.
Next Steps
Next Steps
After you complete mapping the import, you are almost ready to run it. Follow the rest of our Creating Imports help article for setting up Configuration Settings, Previewing, and Running your import.
Importing a large file? Copy the first couple rows of your file into a separate file and import that subset in. That will give you a chance to see what the results look like, without causing too much trouble if something was mapped incorrectly.