Student information system integration patterns for Dynamics 365
By Emil Björk · Microsoft business apps consultant, Gothenburg
How to integrate Dynamics 365 with a student information system — what the SIS keeps, which entities flow into Dataverse and in which direction, identity matching with alternate keys, the applicant-to-student handoff, batch versus event timing, term-start load, and FERPA-shaped access.
Every college and university has a student information system — Banner, PeopleSoft Campus Solutions, Workday Student, Colleague, or a national equivalent — and it is not going anywhere. It owns enrolment, registration, grades, financial aid, and the official student record. Dynamics 365 in education lives around it: recruitment and admissions in Sales and Customer Insights, student services and advising in Customer Service, alumni and advancement afterwards. The integration between the two decides whether the CRM is trusted. This guide covers the patterns that hold up. For where Dynamics 365 fits at all, see Dynamics 365 for education.
Decide what the SIS owns, in writing
The SIS is the system of record for the student as a student: identity once matriculated, programme, enrolment status, term registrations, academic standing, holds, and financial aid status. Dynamics 365 is the system of record for the relationship: prospect and applicant data before matriculation, interactions, cases, communications, consent, and after graduation the alumni record.
Write that boundary down as a table of entities with an owner per entity. Every integration argument for the next five years comes back to it, and the projects that skip it end up with advisors editing programme codes in the CRM that the SIS overwrites overnight.
What flows, and which way
The core feed is SIS to Dataverse, read-mostly:
- Person — student identifier, names, demographic fields the institution has decided to share, contact details as held by the SIS.
- Programme and plan — what the student is studying, with the academic organisation.
- Enrolment and term status — enrolled, withdrawn, on leave, graduated, per term.
- Holds and flags relevant to service — a registration hold is exactly what a student-services agent needs to see on the contact.
- Course enrolments only if a use case needs them (advising, retention outreach by course). They are the high-volume entity; load them only when someone will act on them.
The reverse direction is narrow: consent and communication preferences maintained in the CRM may need to reach the SIS, and the admissions handoff below creates the student in the SIS. Grades, financial data, and disciplinary records should not enter Dataverse without a specific, reviewed reason.
Microsoft's education accelerator data model for Dataverse — with tables for academic periods, programmes, course sections, and registrations — is a reasonable starting schema, and using it avoids inventing a student table per department.
Identity matching
The student identifier from the SIS is the key, defined as a Dataverse alternate key on the contact so that upserts from the integration are idempotent; the alternate keys guide covers them. The hard part is before the identifier exists: a prospect in the CRM who applies through a separate application system and becomes a student in the SIS. The pattern:
- The CRM contact carries an applicant identifier from the application platform as a second alternate key.
- When the SIS creates the student, the application identifier travels with it.
- The SIS-to-Dataverse feed matches on the application identifier first, sets the student identifier, and from then on matches on that.
Matching on name and date of birth is the fallback, must be reviewed by a human, and should be measured — a match rate below what the institution expected is the signal that step two was skipped somewhere.
The applicant-to-student handoff
Institutions that run admissions in Dynamics 365 Sales and Customer Insights – Journeys — a viable pattern, though the specialist admissions CRMs dominate that market — reach a point where the admitted, deposited applicant must become a student in the SIS. That is a create-in-SIS transaction, usually through the SIS's API or an integration platform, and it is the one place the CRM writes to the SIS. Keep it to the minimum record the SIS needs and let the SIS assign the student identifier, which then flows back.
Batch or event
Most SIS integrations are nightly batch, and for programme and status changes that is fine. Two categories justify near-real-time: holds and flags that a service desk must see immediately, and events that trigger journeys — a withdrawal that should start a retention outreach within hours, not tomorrow. Modern SIS platforms expose events or webhooks; older ones are polled through a database view or an integration platform. The polling versus push guide covers the trade-off; the pragmatic design is nightly batch for everything plus a small event feed for the handful of fields that matter same-day.
Term start is the load test. Registration and status changes for the whole student body arrive within days, and an integration that comfortably handles a hundred changes a night faces fifty thousand. Use batch upserts through the Dataverse API, throttle deliberately, and run the first term start with someone watching.
Analytics goes the other way
Do not build reporting integrations from Dataverse back to the SIS or from the SIS into Dataverse for analytics. Both belong in a lake or warehouse: Azure Synapse Link or Fabric for the Dataverse side, the SIS's own export for its side, joined on the student identifier. Retention dashboards, yield analysis, and engagement scoring are built there, and the CRM receives only the derived flags it needs to act on (an at-risk indicator, a propensity score) through a small write-back.
Access and FERPA
US institutions operate under FERPA; others have equivalent student-privacy regimes. In the CRM this means security roles scoped by what each function legitimately needs, column security on directory-restricted fields, and auditing on the student tables. A student who has opted out of directory information must be flagged in the feed and the flag enforced by the roles and by journeys. The data protection and compliance guide covers the controls; the education-specific step is mapping each SIS field to a FERPA category before it is loaded.
Sequencing
Person and status first, matched on the SIS identifier. Then holds and the same-day event feed. Then programme detail and course enrolments if a use case demands them. Then the admissions handoff if the institution runs admissions in Dynamics 365. Institutions that start with the full course-enrolment history load a great deal of data that nobody looks at and delay the feed that student services actually needed.
Further reading
Related guides
- Alumni engagement and advancement on Dynamics 365How universities run alumni relations and advancement on Dynamics 365 — the lifelong constituent record from applicant to donor, affinity segmentation, engagement journeys and events, giving and major-gift pipelines, alumni portals, the graduation handoff from the SIS, and where the specialist advancement platforms still win.
- Dynamics 365 for educationHow Dynamics 365 fits higher education and K-12 — student lifecycle, alumni relations, fundraising, and Microsoft's Industry Cloud accelerators.
- Click-and-collect fulfilment in Dynamics 365 CommerceHow buy-online-pick-up-in-store works end to end in Dynamics 365 Commerce — delivery modes, order sourcing, store-side fulfilment in the Store Commerce app, payment capture at pickup, and the gaps you fill with partners.
- Donor management with Customer Insights and Dynamics 365 SalesHow nonprofits run donor management on Dynamics 365 — the constituent data model, gifts, pledges and recurring giving, major-gift pipelines in Sales, stewardship journeys and segmentation in Customer Insights, receipting and payment processing gaps, and the boundary with the finance system.
- Drop-ship patterns in Dynamics 365 Supply Chain ManagementHow drop shipping works in Dynamics 365 Supply Chain Management — direct delivery linking a sales line to a purchase order, intercompany direct delivery across legal entities, invoicing sequence, cancellations, returns, and vendor shipment confirmation.
Spot something wrong or want a topic covered? Send a correction or a topic request — both are welcome.