Integrate Microsoft Outlook Calendar and Teams with Oracle Learning

Complete this one-time setup to sync calendar invitations, online meetings, attendance, and recordings between Microsoft services and Oracle Learning.

Microsoft Outlook Calendar and Microsoft Teams can share the same Microsoft Azure app. If you integrate both providers, configure the Azure app once with the combined permissions for Outlook Calendar and Microsoft Teams.

  1. Verify that your organization is ready to integrate Microsoft Outlook Calendar, Microsoft Teams, or both with Oracle Learning.
    1. Confirm that your Oracle Learning and Development and Microsoft Office 365 subscriptions are active.
    2. Confirm that you can complete these actions:
      • Create a user in Microsoft 365 Admin Centre.
      • Register apps in the Microsoft Azure portal.
    3. Confirm that each instructor meets one of these account requirements:
      • Has an active Microsoft Teams licensed account associated with their Oracle Learning instructor resource (My Client Groups > Learning and Development > Instructors)
      • Has a primary email address in Oracle Fusion Cloud HCM that belongs to an active Microsoft Azure account
    4. Confirm that each instructor is an employee, contingent worker, or noncontingent worker in Oracle Global Human Resources.
    5. Confirm that each learner has an Oracle work email address that matches the Microsoft Azure email address they use to join the Microsoft Teams meetings.
  2. In Microsoft Azure, prepare the tenant and application that Oracle Learning uses to connect to Microsoft Outlook Calendar, Microsoft Teams, or both.
    1. Create a Microsoft tenant if you don't already have a tenant. Make sure the tenant is a generic account, not a personal account. You'll need to provide these details:
      • Tenant Type: Azure Active Directory.
      • Organization Name: Enter the name of your organization.
      • Initial Domain Name: Enter a unique domain name for your tenant.
    2. Register the app or web API in the tenant. You'll need to provide these details:
      • App Name: Use a name you'll recognize, such as Oracle Learning Integration.
      • Supported account types: Select one that fits your organization. For details, consult Microsoft documentation.
      • Redirect URL: Leave this blank for now.

      Save the generated app client ID because you'll use it later when setting up access.

    3. Add a client secret. Save the client secret value because you'll use it later to complete the integration setup.
    4. Grant the app permission to Microsoft Graph. Don't use Delegated permissions:
      Provider Required permissoins
      Microsoft Outlook Calendar

      User.ReadBasic.All

      Calendars.ReadWrite

      Microsoft Teams

      User.ReadBasic.All

      OnlineMeetings.ReadWrite.All

      OnlineMeetingArtifact.Read.All

    5. Grant admin consent to the configured app permissions.
    6. For security, limit access to just one dedicated user--they'll be the organizer for all events from Oracle Learning.
      1. Create a shared mailbox (user) just for the Oracle Learning integration, such as Learning Coordinator. Make sure the user account is generic and not personal.
      2. Restrict the app’s mailbox access by creating an appAccessPolicy and assigning it to the new usere. For details, see Limiting app permissions to specific Exchange Online mailboxes.
      3. In Oracle Learning, configure this user as the default organizer for all Microsoft Outlook meeting invites.
    7. Configure app access to Microsoft Teams online meetings by using the dedicated integration user. You'll need to provide the application client ID generated when you registered the app. You’ll also need to provide the user (object) ID, from the Azure user management portal, for the dedicated user you'll use later to complete the integration configuration. This user will be the organizer of all Microsoft Teams meetings created through the integration.
      1. Run Windows PowerShell ISE as an administrator.
      2. Run Connect-MicrosoftTeams to launch the Microsoft sign in page. Sign in using the dedicated integration user's account.
      3. Get application access policy information for the logged in integration user. The output should return the policy details.

      For help with this step, see these Microsoft topics:

  3. To send and sync calendar invites, configure the Microsoft Outlook Calendar provider.
    1. Go to My Client Groups > Learning and Development > Configure External Providers.
    2. Configure the Microsoft Outlook Calendar provider.
      Field Description
      Status

      When active, these delivered event alerts aren't sent.

      • WLF-00002: Offering Definition has Changed
      • WLF-00009 Learning Cloud Instructor Booking Event Removal
      • WLF-00008 Offering Activity Definition has Changed for an Instructor
      When you change status from Active to Inactive, Oracle Learning stops syncing updates for calendar events that were already sent.

      Secret

      Tenant ID

      Client ID

      Use the Organization ID, app client ID, and client secret from Microsoft Azure. Use the Organization ID as the Tenant ID.
      Organizer Email Address for All Calendar Meeting Invites

      For the Administrator user name, use the dedicated integration user name, typically in the format <username>@<tenant>.onmicrosoft.com. Oracle Learning uses this account as the organizer for calendar events and to send invites to learners. Make sure the account belongs to the same tenant ID that you're configuring.

      Because people get invites from this user, give it a meaningful name, such as Learning Coordinator or Learning Department.

      We strongly recommend not updating the default organizer value, especially in production. If the new coordinator user account doesn't have access to the mailbox of the previous coordinator account, any updates to events created by the previous coordinator account won't be propagated to learner calendars.
    3. Validate the configuration.
    4. Save your changes and close the page.
  4. To create and synchronize online meetings, attendance, and recordings, configure the Microsoft Teams provider.
    1. Go to My Client Groups > Learning and Development > Configure External Providers.
    2. Configure the Microsoft Teams provider.
      Field Description
      Account name Display name for the Microsoft Teams provider in Oracle Learning lists, such as on the Create Instructor Provider Account page.
      Status

      When active, Microsoft Teams is available to instructors and for virtual instructor-led (VILT) activities.

      When you change the status from Active to Inactive, remove Microsoft Teams from any VILT offerings that currently use it.

      Secret

      Tenant ID

      Client ID

      Use the Organization ID, app client ID, and client secret from Microsoft Azure. Use the Organization ID as the Tenant ID.
      Administrator user name Use the dedicated integration user that you configured in Microsoft Azure, typically in the format <username>@<tenant>.onmicrosoft.com. Oracle Learning uses this account as the organizer for online meetings. Make sure the account belongs to the same tenant that you're configuring.
    3. Validate the configuration.
    4. Save your changes and close the page.
  5. To automatically mark attendance as completed, enable and configure the virtual instructor-led (VILT) completion rules.
    1. Go to My Client Groups > Learning and Development > Configure Catalog Defaults.
    2. Optionally allow learning specialists to override these defaults when they create or edit offering pages.
    3. Enter the minimum percentage of the virtual activity that learners need to attend for the activity to be marked complete.
  6. Add instructors and link them to Microsoft Teams.
    1. Go to My Client Groups > Learning and Development > Instructors.
    2. Add an instructor. You can search for a person by entering a partial or complete person name or number, department, job, or business unit to get a filtered list or a single person.
    3. Edit the instructor resource to link the instructor to Microsoft Teams.
      1. On the Instructors page, search for and select the instructor you just added.
      2. In the Virtual Accounts section, select Create > Microsoft Teams.
      3. On the Create Instructor Provider Account page, complete the relevant account details. The user name that you enter needs to exist as an active User Principal Name (UPN) in Microsoft Active Directory.
      4. Validate the account details. The Product Templates section appears. But Oracle Learning doesn't use templates, so select Default.
      5. Save your changes and close the page.
      6. On the Edit Instructor page, save your changes and close the page.
    4. Repeat these steps until you've linked all the appropriate instructors to Microsoft Teams.

      Available instructor features depend on Microsoft Team.

  7. Schedule the Sync Instructor-Led Training for Learning process to sync session details and assigned learners. Microsoft Outlook events and ICS files include meeting links only after this sync process runs.
    1. Go to Tools > Scheduled Processes.

    Reference: Scheduled background processes for Oracle Learning

    When testing the integration in a nonproduction environment, we suggest that you test the integration using a set of test learner accounts with mailboxes you can access to avoid spamming real learners.

    Integration is one direction. Learner actions, such as accepting or declining an event, or proposing a new time aren't sent to the organizer or Oracle Learning.

  8. To personalize learner and instructor calendar invites, configure calendar event templates.
    1. Go to Setup and Maintenance > Tasks panel > Search > Manage Administrator Profile Values.
    2. Set the site-level profile value to Yes for the ORA_WLF_CUSTOMIZE_CALENDAR_TEMPLATES profile option.
    3. Go to My Client Groups > Learning and Development > Configure Calendar Event Templates.
    4. Edit the learner and instructor templates as needed. You can configure separate plain text and rich text versions.
      • Rich text templates are used for Microsoft Outlook calendar events and for ICS files imported into calendar apps that support rich text. Plain text templates are used for ICS files imported into calendar apps that don't support rich text, such as Apple Calendar.
      • Paste unformatted text into the rich text editor, and then apply formatting by using the editor tools. Pasting formatted text can cause unexpected formatting or compilation issues.
      • To format a token value, include the braces ({ }) in the formatting. For example, make {COURSE_TITLE} bold instead of formatting only COURSE_TITLE.
      • To edit translated versions of the learner or instructor templates, use Translate on the corresponding tab.

      Template changes affect new calendar events. To apply updated templates to existing calendar events and downloaded ICS files, update the parent activities after changing the templates.

      Use these dynamic tokens to personalize the calendar content.

      Available dynamic tokens Description

      {FIRST_NAME}

      {LAST_NAME}

      {DISPLAY_NAME}

      Name of the recipient

      Use only in learner templates because learning specialists can download calendar invites using the Add to Calendar link from the Offerings page

      {COURSE_TITLE} Course title
      {OFFERING_TITLE} Offering title
      {ACTIVITY_TITLE} Activity title
      {ACTIVITY_DESCRIPTION} Activity description
      {VILT_JOIN_LINK} URL used to join the virtual activity or event
      {ACTIVITY_LOCATION} List of all activity locations and their addresses, including the link to any virtual session
      {ACTIVITY_INSTRUCTORS_NAME_ONLY} List of instructors showing only their display names
      {ACTIVITY_INSTRUCTORS_NAME_EMAIL} List of instructors showing only their display names and primary email addresses
      {ACTIVITY_INSTRUCTORS_NAME_EMAIL_PHONE} List of instructors showing their display names, primary email addresses, and phone numbers
      {OFFERING_COORDINATOR_NAME} Display name of the offering coordinator
      {OFFERING_COORDINATOR_EMAIL} Primary email address for the offering coordinator
      {OFFERING_COORDINATOR_PHONE} Primary phone number for the offering coordinator
      {COURSE_ENROLLMENT_DEEP_LINK}

      Link to the recipient's course enrollment page with Course Enrollment as the link text

      Use only in learner templates

      {COURSE_TITLE_ENROLLMENT_DEEP_LINK}

      Link to the recipient's course enrollment page with the course

      Use only in learner templates title as the link text

      {COURSE_DETAILS_ADMIN_DEEP_LINK}

      Link to the administration course details page with Course Details as the link text

      Use only in instructor templates and only when instructors have access to the administrator course details page

      {COURSE_TITLE_DETAILS_ADMIN_DEEP_LINK}

      Link to the administration course details page with the course title as the link text

      Use only in instructor templates and only when instructors have access to the administrator course details page