Skip to main content
EMS Integration
Albert avatar
Written by Albert
Updated over a week ago

The CampusGroups platform can integrate directly with EMS provided that the API module is provisioned on your EMS instance. Please refer to EMS' documentation page for additional details regarding the licencing requirements.

The integration can support the following scenarios:

  • Importing events from EMS into CampusGroups using customizable filters

  • Integrating EMS room reservation requests within the Event form in CampusGroups

The integration requires you to set up a new API client user with the following settings:

  • do NOT enable the "Everyday User Authentication Required" option

  • enable the "Allow this client to book without Everyday User Templates and ignore Booking Rules" option

  • the role selected should grant access to at least the API routes below; allowing all routes should be preferred where possible to support additional use cases as they are implemented:

    • /clientauthentication [POST]

    • /authentication/token [POST]

    • /webusers/actions/search [POST]

    • /bookings [GET]

    • /bookings/{booking_id} [GET]

    • /bookings/{booking_id} [PATCH]

    • /bookings/{booking_id}/cancel [POST]

    • /bookings/actions/search [POST]

    • /bookings/actions/search/userdefinedfields [POST]

    • /reservations/{reservation_id} [GET]

    • /reservations/{reservation_id} [PATCH]

    • /reservations/actions/create [POST]

    • /reservations/actions/search/userdefinedfields [POST]

    • /reservations/{reservation_id}/bookings [POST]

    • /reservations/{reservation_id}/cancel [POST]

    • /reservations/{reservation_id}/userdefinedfields [GET]

    • /reservations/{reservation_id}/userdefinedfields [PATCH]

    • /rooms [GET]

    • /rooms/actions/availability [POST]

    • /rooms/{room_id}/features [GET]

    • /features [GET]

    • /webtemplates [GET]

    • /webtemplates/{webtemplate_id} [GET]

    • /setuptypes [GET]

    • /buildings [GET]

    • /floors [GET]

    • /roomtypes [GET]

    • /statuses [GET]

    • /eventtypes [GET]

    • /groups [GET]

    • /reservationsources [GET]

    • /timezones [GET]

To get started please contact us at with the following information:

Importing events from EMS into CampusGroups

CampusGroups can import events from EMS using the EMS API. You may select which events to import using combinations of filters based off of:

  • Buildings

  • Event types

  • Groups

  • Rooms

  • Room Types

  • Status

  • Reservation level user defined fields (eg "Publish to CampusGroups: Yes")

  • Booking level user defined fields (eg "Publish to CampusGroups: Yes")

Additionally CampusGroups groups and EMS groups can be mapped in the EMS to CampusGroups direction so that imported events end up in the correct group. Events that belong to EMS groups not mapped to specific CampusGroups groups would be imported into a single default group of your choosing.

Book rooms in EMS from events created in CampusGroups

When creating an event in CampusGroups officers can request a room in EMS. This will only suggest rooms which are available at the selected time based on the information provided by the EMS API.

The EMS integration lets club officers request rooms in EMS directly from CampusGroups using the event editing page as per below:

  • Student begins the event registration process

  • They can choose the following options for location:
      - On Campus
      - Off Campus

  • If they select On Campus they can enter additional information such as expected attendance, required setup time, breakout time, setup type or EMS process template

  • If they select Off Campus they can enter the location

  • The On Campus option provides access to a Book Rooms button which opens the system where users can trigger room requests to EMS where your office can verify the bookings as needed

The integration supports the following configuration options:

  • EMS Initial Status [Required]: all room reservation requests sent to EMS will be sent with a pre-selected Status

  • EMS Cancel Status [Required]: requests cancelled from the CampusGroups side require a cancellation Status

  • EMS Reservation Source: all room reservation requests sent to EMS may include a pre-selected source (eg, a "CampusGroups" source)

  • Groups: you may configure a mapping of groups between CampusGroups and EMS to allow for easier identification of organizations

  • EMS Event Type [Required]:
        - A single default event type for all events pushed to EMS
        - A mapping from CampusGroups event types to EMS event types

  • Everyday Users:
        - Use the email or netid from the currently logged in user's CampusGroups profile to find the matching Everyday User in EMS
        - Use a default Everyday User of your choosing
        - Do not use a Everyday User

  • Everyday User Process Templates:
        - Use the same default template for every user
        - Retrieve the list of templates assigned to the Everyday User and display it to the user for selection
        - If no Everyday User is configured or found you may either fallback to a default template or display the full list of templates available to the API Client User

Using the configuration above, the list of available rooms to display to the user is retrieved from EMS using the following parameters: 

  • Expected number of attendees

  • Event date 

  • Event start time (including selected setup time)

  • Event end time (including selected breakout time)

  • Everyday User (see above)

  • Selected Room Setup Type (see above)

  • Selected Process Template (if more than one is available, see above)

Once the user makes their selection and saves their event the room reservation request is sent to EMS with the following information:

  • Event type (see configuration above)

  • Event name

  • Status (see configuration above)

  • Temporary contact (currently logged in user's name)

  • Contact email address (using the currently logged in user's email address)

  • Source (if configured, see configuration above)

  • Group (if configured, see configuration above)

  • Selected Room Setup Type (if enabled)

  • Expected number of attendees

Did this answer your question?