- Overview
- What Syncs
- Initial Sync
- Administrate to Cornerstone
- Cornerstone to Administrate
- Field Mappings
- Setting Up the Integration
- Behavior to Know About
- Not Supported
- Integration Logs
- Troubleshooting
- Glossary
Overview
The Administrate - Cornerstone OnDemand (CSOD) integration keeps your two systems in step in near real time, so most information only has to be entered once.
- Administrate is where you run instructor-led training (ILT) and virtual ILT (vILT): course setup, scheduling, sessions, locations, instructors, resources, enrollments, attendance and results.
- Cornerstone remains the learner-facing system of record: user profiles, organizational structure, learner transcripts and online content.
Your administrators still use both systems, but we recommend keeping ILT work in Administrate as much as possible. Changes made there flow to Cornerstone automatically, and learners always see accurate course, session and enrollment information in Cornerstone.
One Administrate instance can connect to more than one Cornerstone portal, for example a UAT portal and a Production portal.
What Syncs
| Administrate | Cornerstone | System of record | Direction |
|---|---|---|---|
| Account | Division Organizational Unit (OU) | Both | Both |
| Contact | User | Both | Both |
| Location | Location OU | Administrate | Administrate to Cornerstone |
| Learning Category | Subject | Cornerstone | Cornerstone to Administrate |
| Course Template "Vendor" field | ILT Vendor (Training Provider) | Cornerstone | Cornerstone to Administrate (at setup) |
| Course Template | ILT Event (Learning Object) | Administrate | Administrate to Cornerstone |
| Event | ILT Session | Administrate | Administrate to Cornerstone |
| Session | Session Part | Administrate | Administrate to Cornerstone |
| Learner | Learning Assignment / Transcript | Both | Both |
| Learner attendance | Session Part attendance | Both | Both |
| Learner result | Transcript pass/fail and completion | Both | Both |
| Instructor | Instructor | Administrate | Administrate to Cornerstone |
| Resource (room) | Location OU / Venue / Room | Administrate | Administrate to Cornerstone |
| Achievement / Achievement Type | Certification | Cornerstone | Cornerstone to Administrate |
Initial Sync
Flow: Cornerstone to Administrate
When the integration is first set up, your implementation team runs a one-time import to build the baseline in Administrate. The steps run in this order, because Accounts must exist before Contacts, and Subjects and Vendors must exist before courses and events can sync.
- Organizational Units to Accounts. Division OUs are imported as Accounts, keeping their hierarchy. Accounts are set up under the Companies agreed during onboarding.
- Users to Contacts. Active Cornerstone users who have an email address and a last name are imported as Contacts and linked to the Account for their division. If a Contact with the same email already exists in Administrate, it is linked to the Cornerstone user rather than duplicated.
- Subjects to Learning Categories. Active Subjects are imported as Learning Categories, up to two levels deep.
- Vendors to the Course Template "Vendor" field. The ILT vendor list agreed during onboarding is loaded into a required Vendor dropdown on Course Templates.
Administrate to Cornerstone
These updates happen in real time as you work in Administrate.
Accounts
- Creating an Account creates a Division OU in Cornerstone, under the OU of the parent Account.
- Updating an Account updates the matching Division OU.
- Deleting an Account deactivates the matching Division OU. Cornerstone does not support deleting OUs.
Contacts
Creating a Contact creates a matching user in Cornerstone in the Account's division, unless that person already exists there:
- If the Contact has an email address, the integration looks for a Cornerstone user with the same last name and email address, and links to it if found.
- If the Contact has no email address, the integration looks for a Cornerstone user with the same first and last name. If it finds exactly one, it links to it. If it finds several, it logs a warning and creates nothing, so you can link the right user yourself.
Updating a Contact's name, email, manager or job role updates the matching Cornerstone user.
Course Templates
Publishing a Course Template creates an ILT Event in Cornerstone. The Course Template must have:
- A Vendor selected.
- At least one Learning Category that was imported from Cornerstone.
If either is missing, the Course Template is not synced and the reason is recorded in the Integration Logs.
Updating a published Course Template updates its ILT Event in Cornerstone.
Events and Sessions
- When an Event is Active, the integration creates an ILT Session in Cornerstone under the course's ILT Event. Each published Administrate Session becomes one Session Part, with its title, start and end times and location.
- If the Course Template hasn't synced yet, it is synced first.
- Each Session's Location is linked to a Location OU in Cornerstone. If it isn't linked yet, the integration looks for an existing Location OU with the same name, ignoring case, and creates one if there isn't one.
- Updating an Event re-sends schedule changes and any added or removed Sessions.
- Cancelling an Event is recorded in the Integration Logs, but the Session is not cancelled in Cornerstone. Cancel it in Cornerstone yourself.
Instructors and Resources
- Instructors on an Event sync to Cornerstone as instructors.
- Resources such as rooms sync to Cornerstone as Location OUs, venues or rooms.
Learners
- Adding a learner to an Event registers them on the Cornerstone Session. If the learner doesn't have a Cornerstone user yet, one is created first.
- Cancelling a learner withdraws the training from their Cornerstone transcript, using the withdrawal reason agreed during onboarding. Cornerstone does not send the learner a withdrawal email.
Attendance and Results
- Marking attendance updates attendance for each Session Part in Cornerstone. Present counts as attended; anything else counts as not attended. Attendance is only sent for Sessions whose dates have passed.
- Recording a result sends pass or fail to Cornerstone. Cornerstone then sets the transcript status from the result and the attendance record.
Cornerstone to Administrate
Cornerstone sends real-time notifications for users and for training registrations, withdrawals and completions.
- User created: a Contact is created in Administrate and linked to the Account for the user's division. If that Account doesn't exist yet, it is created.
- User updated: changes to the user's name, email, manager or job role update the matching Contact.
- Training registered: the learner is added to the matching Administrate Event. If the learner isn't in Administrate yet, their Contact is created first.
- Training withdrawn: the matching learner is cancelled in Administrate.
- Training completed: attendance and pass/fail for every learner on the Cornerstone Session are recorded in Administrate.
Some changes aren't sent by Cornerstone in real time, so the integration checks for them on a schedule:
- Organizational Units: renames, moves to a different parent and deactivations update the matching Accounts.
- Subjects: new and changed Subjects create or update Learning Categories.
- Certifications: Certifications sync to Achievements and Achievement Types in Administrate.
Field Mappings
Only the fields listed here are synchronized.
Account and Division OU
| Administrate | Cornerstone | Notes |
|---|---|---|
| Name | OU name | During the initial sync, if two OUs share a name, the Account is named with its full path (for example, Parent > Child) |
| Parent Account | Parent OU |
Only Division OUs are imported.
Location and Location OU
| Administrate | Cornerstone |
|---|---|
| Location name | Location OU title |
| Address | Location OU address |
When an Event syncs, each Session's Location is matched to a Location OU first by its link, then by name, ignoring case.
Contact and User
From Administrate to Cornerstone
| Administrate Contact | Cornerstone User | Notes |
|---|---|---|
| Email address | Username | Sent as the username only, not as the user's email address. If the Contact has no email, the username is built from the first and last name |
| First name | First name | |
| Last name | Last name | |
| Account | Division OU |
Phone numbers and middle name are not sent.
From Cornerstone to Administrate
| Cornerstone User | Administrate Contact |
|---|---|
| First, middle and last name | First, middle and last name |
| Work email | Primary email |
| Personal email | Secondary email |
| Mobile, work and fax phone numbers | Mobile, office and fax phone numbers |
| Division OU | Account |
During the initial sync, the personal email is used as the primary email if the work email is blank. Users without a Division OU are reported rather than assigned a default Account.
Subject and Learning Category
| Cornerstone Subject | Administrate Learning Category |
|---|---|
| Title (default language) | Name |
| Parent Subject | Parent Learning Category |
In Cornerstone, a parent Subject can be selected directly on a course. To support this, a parent Subject that has children is also created as a child of itself in Administrate.
Course Template and ILT Event
| Administrate Course Template | Cornerstone ILT Event | Notes |
|---|---|---|
| Title | Event name | |
| Vendor | Primary provider | Required |
| Learning Categories imported from Cornerstone | Subjects | At least one required |
| Minimum places | Minimum registration | Defaults to 1 |
| Maximum places | Maximum registration | Defaults to 20 |
New ILT Events are available to all users. Course code, description, price and learning mode are not sent.
Event and ILT Session
| Administrate | Cornerstone | Notes |
|---|---|---|
| Event | ILT Session | Created under the Course Template's ILT Event, with the same Subjects |
| Session title | Part name | |
| Session location | Part location | |
| Session start and end times | Part start and end times | Sent as local time; Cornerstone applies the Location OU's time zone |
The Event's title, places, registration deadline and staff are not sent.
Learners, Attendance and Results
| Administrate | Cornerstone | Notes |
|---|---|---|
| Learner | Learning Assignment | |
| Attendance per Session | Attendance per Session Part | Present is sent as attended, anything else as not attended |
| Result | Pass | Passed is sent as pass, anything else as fail |
When a completion comes from Cornerstone, attendance is matched to Administrate Sessions in start-time order. If the number of Session Parts and Sessions differ, attendance is not synced.
Setting Up the Integration
Your Administrate implementation team sets up and tests the integration with you. Here is what's needed on each side.
In Cornerstone
Your Cornerstone administrator sets up the following in each portal you're connecting:
| Item | Where in Cornerstone |
|---|---|
| An OAuth 2.0 API application and a service user | Admin > Tools > Edge > API Management |
| Webhooks for employee and training events | Admin > Tools > Edge > Webhook & Endpoints |
| The PGP public key we provide, used to encrypt webhook data | Admin > Tools > Edge > Imports and Feeds > Key Management > Report Encryption Keys |
The API application needs these scopes:
-
Cornerstone API:
ou:read,ou:write,employee:read,employee:create,training:create,training:read,training:updatefull,learningassignment:create,transcript:read,transcript:update,sessionroster:create,sessionroster:read -
Reporting API:
obj_subject_core:read,obj_ou_core:read,obj_user_ou_core:read,obj_users_core:read,obj_training_provider_core:read
The service user also needs Cornerstone security permissions to manage OUs, users, ILT Events and Sessions, session rosters and transcripts. Your implementation team will confirm the exact permissions with you.
The encryption key expires after one year. Cornerstone stops sending webhooks without warning once the key expires, so we'll work with you to replace it before then.
In Administrate
Your implementation team sets up:
- An Authorized Application for the integration.
- Webhooks that send changes to the integration.
- A default Company for Locations created from Cornerstone.
- The required Vendor custom field on Course Templates.
Decisions to Agree During Onboarding
Before the integration goes live, we'll agree the following with you:
- Which Cornerstone portal connects to which Administrate instance.
- The Cornerstone service user the integration acts as.
- The ILT vendor list.
- The Location OU type and root OU.
- How Cornerstone divisions map to Administrate Accounts and Companies.
- The OU new users are added to.
- Any custom fields Cornerstone requires on Events.
- The withdrawal reason used when a learner is cancelled.
- Unique Subject titles in Cornerstone.
- Matching time zones for Locations in both systems.
- Whether synced Events use Cornerstone completion workflows (approval or signature).
- Whether you deliver vILT.
- Whether your Production portal needs Cornerstone's Bulk API, which is purchased from Cornerstone.
Behavior to Know About
Linked Records
The integration links each record to its counterpart in the other system. Contacts and Locations without a link are matched by email or name, as described above. Other records that weren't imported during the initial sync or created through the integration have no link and can't be matched.
Courses and Events
- Cornerstone identifies Subjects by name, so each Subject title must be unique.
- The Vendor list is loaded once during setup. If you add or change a vendor later, update it in both Cornerstone and the Administrate Vendor field.
People and Organization
- Merged user profiles in Cornerstone are not supported and can leave a Contact linked to the wrong user.
Enrollments
- Only Sessions created from Administrate can be matched. Registrations on Sessions created directly in Cornerstone are recorded as failures in the Integration Logs.
- Cornerstone only sends a registration once it reaches Registered status. Registrations pending approval, denied or waitlisted are not sent; Cornerstone manages approvals and waitlists.
Attendance and Results
- The completed transcript in Cornerstone is the authoritative learning record.
- Cornerstone records attendance as attended or not attended for each Session Part, so "absent" and "not yet marked" look the same.
- Cornerstone only accepts attendance for Session Parts whose dates have passed. A result recorded on a future Session must be recorded again after it ends; a warning is logged.
- If synced Events use completion approval or signature in Cornerstone, Administrate records the pass when it's sent, but Cornerstone may still deny it, and the denial is not sent back. Whichever system updates the completion last is the one that applies.
- Cornerstone only notifies Administrate when a transcript is fully Completed. Pending approval, pending signature and denial are not sent.
- A completion recorded against the ILT Event itself rather than a Session can't be matched to an Administrate Event, so it is skipped.
Not Supported
- Syncing curricula or learning paths.
- Certificates. (Certifications sync as Achievements.)
- Online content. Administrate does not host e-learning content.
- Deleting records in either system, other than deleting an Account in Administrate (which deactivates the OU) and removing draft Sessions from an Administrate Event.
- Waitlists. Cornerstone manages these and does not allow learners to be waitlisted through its API.
Integration Logs
Every sync attempt is recorded in Settings > Other > Integration Logs in Administrate. Each entry shows:
- The Administrate record, with a link to it
- The matching Cornerstone record
- What was sent to Cornerstone and what Cornerstone returned
- The outcome:
- Success: the change was applied.
- Warning: the change was skipped on purpose or only partly applied. The entry gives the reason.
- Failure: the change needs your attention.
Troubleshooting
| The log shows | What to do |
|---|---|
| Course has no Vendor | Set the Vendor on the Course Template and save it again. |
| Course has no Cornerstone category | Add a Learning Category imported from Cornerstone to the Course Template and save it again. |
| Completion status applied but transcript not complete | The Session is in the future. Set the completion status again once the Session has ended. |
| Learner passed in Administrate but not complete in Cornerstone | Check the transcript in Cornerstone for pending approval, pending signature or denial. These are not sent back to Administrate. |
| Registration from Cornerstone failed to match | The Session was created directly in Cornerstone, not from Administrate, so it doesn't sync to Administrate. |
Glossary
| Term | Meaning |
|---|---|
| Organizational Unit (OU) | A Cornerstone grouping of users, such as a division, location or position. |
| Division | The OU type that maps to Administrate Accounts. |
| Learning Object (LO) | Any Cornerstone training item. ILT Events and Sessions are Learning Objects. |
| ILT Event | Cornerstone's course-level record. Maps to an Administrate Course Template. |
| Session / Session Part | A scheduled run of an ILT Event and its dated parts. Maps to an Administrate Event and its Sessions. |
| Transcript | A Cornerstone learner's record of training. |
| Learning Assignment | The Cornerstone record that places training on a learner's transcript. |
| Session roster | The Cornerstone list of learners on a Session, used for attendance and pass/fail. |
| Completion workflow | Optional Cornerstone approval or signature steps before a transcript is marked Completed. |