Skip to end of metadata
Go to start of metadata

You are viewing an old version of this content. View the current version.

Compare with Current View Version History

Version 1 Current »

This document describes the actions that need to be performed in the Router and Workplace Management to get a synchronization between an external calendar and Workplace Management.

1. Scope

Setting up the Exchange Integration for Workplace Management.

2. Who is this document for?

  • Workplace Consultants

  • Workplace Integration Team

3. Prerequisites

The client needs to have Exchange and Azure set up correctly: /wiki/spaces/WM/pages/119668747

4. Reservation Sync interface / Router configuration (1)

The Reservation Sync interface or Router allows the synchronization of the external calendar (Exchange or Google) and Workplace Management. In the Router, the necessary settings can be set for both the external calendar and Workplace Management.

4.1 Login

You need to login into the Router via https://gcprouter.spacewell.com/login

If you do not have an account, this needs to be requested via the Integration team or the Product team.

4.2 Creating a new tenant

Create a new tenant for the customer. Go to Tenants -> Overview:

Click on + to create a new tenant:

Enter the name of the tenant. This has to be exactly the same as the client reference in Workplace Management.

4.3 Setting up API user and getting credentials

Go to Tenants -> Users:

Click on + to create a new user:

Fill in the values:

  • Select tenant: the tenant created in the steps above

  • First Name: optional

  • Last Name: optional

  • Email: noreply@spacewell.com can be entered as default value

  • User Name: A username related to the tenant (e.g. <tenant name>_api)

  • Password:

Click on Save after the relevant fields are filled in correctly:

Go back to Tenants -> Users and refresh the list.

Open the User just created.

Click on the Shield icon of the user:

Click on Get client credentials:

Copy the Client ID and Client Secret and keep them somewhere save. This information is needed later on in the configuration guide.

4.4 Setting up external calendar settings

Go to Configure -> Sync Settings:

Select the tenant created in the above steps. The following settings can be set. When setting this up for Workplace Management, no changes from the default should be necessary.

Sync Mode

Default: Bidirectional. This determines the sync directions. Inbound and outbound determine if Workplace Management needs to sync to the external calendar, or the other way around. Bidirectional indicates that it should sync in both ways.

Sync Scope

Default: Room Centric. Determines the method of synchronization. Leave this as is.

Calendar Provider

Default: Microsoft Exchange. Is based on the connection that needs to be setup.

IWMS Provider

Default: Axxerion. Leave this as is.

Failure Notifications via Email

Default: non-checked. By checking this, notification e-mail addresses can be provided (comma separated) whom will be reported when there are synchronization errors.

Max Occurrences

Default: 180. This prevents an unlimited number of occurrences from synchronization when looking at scheduled meetings.

Max Updates

Default: 50. This setting prevents a unlimited loop when updating a single reservation.

4.5 Setting up connection settings to external calendar

Go to Configure -> Technical:

Select the tenant created in the above steps. Select the option Microsoft Graph Settings:

Fill in the following fields:

  • Graph API version: This should be set to v1.0

  • Azure Account Directory ID: This is the Tenant ID value that has been provided by the client

  • Client ID: This is the Application (client) ID value that has been provided by the client

  • Client Secret: This is the Client Secret value that has been provided by the client

  • Email domains (CSV): This is the email domain that is used by the client. Most commonly this is the domain of the client (i.e. “acme.com”)

Click on Test to test if the integration from the Reservation Sync Interface and Exchange is succesfully working:

If the test is succesfull, click on Save, to save the entered configuration values. If not, some values are incorrect.

5. Workplace Management configuration (1)

5.1 Setting up webservice access in Workplace Management

Login with the system administrator to the Workplace Management environment of the client. Go to Client Settings:

Click on Authentication tab:

If there is already an Access rule to grant access for web services created, the following steps do not apply. Continue with chapter 4.7

Open te Access Rules include and click on New:

Fill in the fields:

  • Operation mode: Production

  • Access scope: Web services

Click on New on the Access rules Group include:

Select Grant access for the value Rule type. This will automatically set all the necessary values:

5.2 Setting up external application in Workplace Management

Navigate back to the “Setup > Authentication” tab. Scroll down and open the tab “External apps”. Click on “Create calendar integration”

5.2.1 Setup trust relationship

In the resulting external application, click on the tab “Trust relationship” and then on the link in the “key type” column

Set the “Authorized system user” to a user that has the system administrator group (G001) assigned

Make sure the selected user is unique from any other administrator user. This prevents the reservation synchronization from failing if that administrator user has been blocked due to a bad login attempt

Open the “Trust relationship”

Press on the button “Reveal secret key”

If the button “Reveal secret key” and the field “Secret key” are not visible, make sure the user has the group “License editor” (G101) assigned. Also, the user should be a partner user

When pressing “Reveal secret key”, you are prompted for a password. If you are using a partner user, you might need the “actual” password (not the client password). To gather that one, fill in your personal e-mail on the user, request a new password and use that password. This is a known improvement

Press on the button “Generate key”

When prompted, click on “ok”

Copy the value in the “Secret key” field somewhere where you can use it later on in this guide

5.2.2 Assign system users

Navigate back to the external application and navigate to the “System users” tab. After that, open the “System users” dropdown

Press on “Assign”

Search the users that you would like to add. Select the users and press on “ok”

Make sure that the user that was used during the trust relationship steps is also added here

5.2.3 Assign rooms

Navigate back to the external application and press on “Externally connected”. Then press on “Assign”

Search for the rooms that you would like to enable in the reservation sync and press on “ok”

Open each of the added rooms by clicking on the reference

Fill in the field “External reference” with the address of the room and click on “Save and return”

5.2.4 Create mappings

Navigate to the external application and press on “Mappings” and “New”

If you do not have the button “New”, make sure your user has the “Administrator” (G001) group assigned

Create the mappings in the table below by filling in the “Key” and “Value” fields and press on “Save and return”

key

value

client_id

Client ID retrieved in user creation section (4.3)

client_secret

Client secret retrieved in user creation section (4.3)

grant_type

client_credentials

token_url

Router URL, most likely https://gcprouter.spacewell.com/user/oauth/token

webhook

Push URL, most likely https://gcprouter.spacewell.com/push/axxerion

5.2.5 Set commission and operation mode

On the external application, make sure commission is set to “Active” and operation mode is set to the correct server (most of the times, this will be “production”)

5.2.6 Set default category

On the external application, navigate to the “Workflow interaction” tab and press on “Default for category”

Select the category in which the reservation synchronization should create the reservations. For Workplace, this is “FMB-RESC-19030001”. Than press on “Ok”

6. Reservation Sync interface / Router configuration (2)

6.1 Setting up connection settings to Workplace Management in router

In the router, go to Navigation > Technical

Select the tenant and click on “Generic Connector Settings”

In the resulting form, fill in the fields as below

Reservation Sync Router

Workplace Management value

URL

URL of the client (https://<client>.axxerion.com/)

Connector type

AXXERION

Tenant ID

Leave as is

Unique name

Client reference

User or schema name

Username of the created external calendar user (see user that was set when creating the trust relationship)

Password

This password is not used, but you need to fill in one to test the connection. Enter a random password with lower case, upper case, numbers and special characters.

App ID

Reference of Workplace Management external application

Preshared key

Generated key in Workplace Management of external application

Salt

Static value: adfadf$kalf!@#+8

Encryption key

Access ID on ObjectTrustRelation

Recursion limit

0

Time out

0

Wait period

0

Once done, press on “Test”. You should receive a success message

Once you receive the “success message”, press on “Save” to save the current configuration

IMPORTANT: Do not press “Save” multiple times. If you do, multiple configurations will be created. If this happens, please contact Product and they will fix this for you

6.2 Setting up mappings in router

Press on Navigation > Outlook > Mapping

Select the tenant and press on the “add” button

There is a delay up to 48 hours before the room list is available in the Router.

In the resulting pop-up, select the Exchange room list and the room mailbox. Also select the Workplace room. Click on “Save”. If you do not want a room enabled at first, select the checkbox “enabled”

This will create the mapping between the room in Exchange and the room in Workplace

The initial status will be a triangle with an exclamation mark in it, stating that the connection is Inactive. This is due to the fact that no reservation has been synced yet. As soon as you create a reservation in this room, the status will have a green bell icon

7. Necesarry changes if customer uses custom reservation workflow

If the implementation is done for a none Workplace Management environment (FMB), then the custom reservation workflow needs some changes:

  • For all cancel connectors (to the status ‘Cancel’) need to have the postsetter: syncActionCode = Cancel.

  • Create a manual ‘Cancel via Exchange' task for the group ‘Integration external owner’

    • Set ‘Display in task list’ and 'Display task description’ to No

    • Link a Cancelgroup from reservation confirmed to the reservation ended

    • Connector from task to status Cancelled

      • Function: cancel

      • Presetter: reservationStatusCode = Cancelled

      • Set date: cancelTime

  • Create a manual ‘Change via Exchange' task for the group ‘Integration external owner’

    • Set ‘Display in task list’ and 'Display task description’ to No

    • Link a Cancelgroup from reservation confirmed to the reservation ended

    • Connector from task to status Change

      • Function: change

      • Presetter: reservationStatusCode = Change

  • For all connectors from the first task in the workflow need to have the postsetter: syncActionCode = Synchronize.

  • Create a connector from the first task in the workflow to reservation confirmed status

    • Presetter: reservationStatusCode = Confirmed

    • Condition: syncDirectionCode = Incoming

  • Add a script to the manual 'Change' connectors to prevent changes can be done to an Inbound reservation.

Recurring reservations

There are also some recurring reservation topics you have to take into account.

  1. In Workplace Management (FMB) the synchronization for Outbound recurring reservations is triggered on the field ‘Schedule.scheduleGenerationStatusCode’. Once this field is set to 'Ready' (all occurences have been generated initially), the syncActionCode is set to Sync (which triggers the communication to Outlook).

  2. In Workplace Management (FMB) a script is linked to Reservation.approveDate, Reservation.closeTime and Reservation.cancelTime. This script sets the corresponding fields on the ReservationSchedule in particular situations.

    1. If all occurences are approved, the ReservationSchedule is also approved

    2. If all occurences are cancelled, the ReservationSchedule is also cancelled

    3. If all occurences are closed, the ReservationSchedule is also closed

    4. If all occurences are cancelled, but some occurences where already closed or cannot be cancelled anymore, the ReservationSchedule is closed

If the client uses a custom reservation schedule workflow, keep these in mind. If you are not sure, contact Product to discuss the case and determine the best solution and possible changes needed to the worklfow.

  • No labels