Marian University synced prospective students between Dynamics Recruit and HubSpot
The Customer
Marian University is a university whose admissions team keeps prospective-student records in Microsoft Dynamics 365 Recruit, and its marketing team works in HubSpot. Before this project, the two systems were not connected.
The Challenge
Marian wanted marketing to nurture prospective students in HubSpot while admissions kept Dynamics Recruit as the system of record. Qualified students needed to flow back to admissions, with their deals, once marketing had done its work.
Two rules mattered. Only prospective students should sync, and nothing marketing did in the CRM should overwrite admissions data with blanks.
Merges were the harder problem. Students use more than one email address, and Marian’s admissions team merges duplicate records in Recruit as part of managing its database. A sync that didn’t understand those merges would leave the losing record behind in the CRM.
The engagement began as a proof of concept, then expanded to a historical sync and a production connection.
The Solution
We built a bidirectional integration between Dynamics Recruit and HubSpot with explicit rules for which records cross and when.
Discovery covered three calls, user stories and test scenarios, and a sync logic and field mapping document that Marian approved before development. We helped install the Dynamics solution, created the fields and deal stages in HubSpot, and customized map templates for Marian’s data.
The contact sync runs in both directions on different triggers. From Recruit to HubSpot, a contact syncs when its relationship type is “prospective student”, excluding records with no email address or a placeholder address. From HubSpot back to Recruit, a contact syncs only when a “Sync to Dynamics” checkbox is true. Marian’s team sets that box when a contact becomes a sales qualified lead, so the checkbox is the handoff point between marketing and admissions. Empty values in the CRM never overwrite a value in Recruit. The high school lookup in Recruit maps to a plain text field in HubSpot.
The deal sync follows the contacts. Deals in the CRM sync to Recruit as opportunities when they belong to a contact that’s flagged to sync. Opportunities in Recruit sync to the CRM when they belong to a qualified contact and their term is later than Summer 2022, so old cycles stay out of the way.
For merges, we built on a pattern from an earlier higher-education project. When Marian merges two students in Recruit, the losing record is deactivated and the winning record keeps the active data. The integration finds both records in HubSpot and merges the deactivated one into the master through the HubSpot Merge Contacts API. A guard stops any sync back from the CRM until the master record has resynced from Recruit, so the merge can’t be undone by stale data.
We ran internal testing, then sandbox testing with test records Marian provided, then connected production. The historical sync ran on parameters Marian approved, with monitoring. We delivered technical documentation, and the integration went live in January 2023.
What They Got
Marian’s marketing team now works prospective students in HubSpot with the same records admissions sees in Recruit. When marketing qualifies a student, one checkbox hands that student and their deal back to admissions. Duplicates merged in Recruit merge in the CRM too, so a student has one record in each system.
Admissions keeps Recruit as the system of record. Nothing marketing does can blank out a field admissions filled in.
Wrapping Up
Our standard on a two-way sync is to write down the rule for every direction before building it, to make the handoff between teams a single field they control, and to test merges the way the client actually performs them. Lynton now builds AI-native websites on open infrastructure; see our current work at /case-studies.