NOTE: This guide assumes that you have already integrated with Higher Logic. If you haven't, create a case.
The iMIS integration leverages the Higher Logic web service in combination with SQL. This integration is compatible with iMIS 15 and iMIS 20 (pre-cloud) and hosted/premise only. If you have iMIS for cloud, create a case.
To inquire about compatibility, create a case.
Features of the iMIS integration
- Single Sign-On (SSO)
- The iMIS Integration is compatible with MemberCentric; the iMIS Cloud Integration is not
- Scheduled updates to member data
- Community Group Management
- Security Group Management
- Activity Sync
The Higher Logic integration is individual record bound, which means the actions outlined above will always be tied to a specific member record. Any issues highlighted to support should always include the Legacy Contact Key – in this case the iMIS Contact ID.
Who should read this guide
This guide is for Community Managers and may be passed along to technical contacts within your organization to understand the overall schema and Higher Logic web services.
This guide assumes that you are experienced using:
-
Higher Logic Thrive Community (Thrive Community):
- Managing Community Groups
- Managing Workspace Groups
- Managing Security Groups
- Managing Community Groups
- iMIS:
- Updating Contacts
- Generating iQAs or Queries
Notification
Higher Logic should be notified if there are any changes to the service or servers. This notification of any scheduled changes should be made to Customer Support (create a case) as soon as possible. We request at least 3 weeks notice.
Requirements
- The iMIS version must be 15 or 20 with database access
- Completion of the technical worksheet
Initial set up
Higher Logic Periodic Refresh
The Higher Logic integration leverages the stored procedure called hlGetMemberDetails in your iMIS database. The standard configuration of this stored procedure will only consider the below activity as qualifying a member record to display in the GetChangedMembers web service call.
NOTE: If a member record does not appear in a sample search of the GetChangedMembers endpoint when a date range is submitted, the member will not be eligible for Periodic Refresh. The reverse of this is also true. If an event occurs in any of the following activities, that member will be eligible for Periodic Refresh multiple times.
The following activities are the only activities defined in the standard integration for iMIS. Changes made outside of the default will impact the existing integration between Higher Logic and iMIS. It is advised that if changes need to be made by your database administrator, they are first made in a test or dev environment and searched against the database to confirm the results.
Qualifying Events
- Orders
- UPDATED_DATE_TIME
- ENTERED_DATE_TIME
- Contact Updates
- LAST_UPDATED
- Activities
- TRANSACTION_DATE
Custom Demographics
The Higher Logic web service contains methods for extracting user-defined table data from the iMIS database.
- GetUserDefinedMeta determines whether a field from the Name table in iMIS will be either a freeform demographic, picklist, or multi-picklist.
- GetUserDefinedData retries the field names for a specific member during Member Refresh.
The iMIS integration is configured based on a predefined list of fields. Based on the initial configuration, the method GetMemberDetails will return the member details from the stored procedure, HlGetMemberDetails.
Activity Sync configuration
Activity Sync as a default is configured to the iMIS Activity table. Prior to enabling Activity Sync for iMIS, customer teams must ensure the Activity Codes are deployed to the PRODUCT_TYPE table. This is completed during installation with your database administrator or after implementation. A sample for creating these records in your SQL is below.
User permissions
The SQL user provisioning the integration must have the following permissions:
- Read
- Write
- Execute
To the following Objects:
- Activity
- Committee_Position
- Gen_Tables
- Meet_Master
- Member_Types
- Name
- Name_Address
- Name_Log
- Name_Security
- Order_Meet
- Orders
- Product
- Product_Function
- Product_Type
- UD_Field
- UD_Table
If the Higher Logic views or Stored Procedures are customized, permission will have to be added to the objects specified.
Single Sign-On (SSO)
Single sign-on (SSO) allows members to access authorized sites with one login. Leveraging iMIS as your Identity Provider (IDP) authorizes members, as well as staff, against your AMS to allow access to your Thrive Community site.
- Usernames and passwords are validated against iMIS, not Higher Logic.
- Thrive Community only supports the iMIS RiSE login workflow.
- Higher Logic can also support OAuth 2.0 and SAML 2.0 if the IDP is not iMIS.
The benefits of implementing SSO include:
- Seamless creation of new members in Thrive Community
- Simple login process across sites
SSO validation
Once a member is created in iMIS as a user and their data is available via the authentication service in iMIS -- an exchange that can take up to a minute complete -- that member can then log in to Thrive Community.
The member's initial log in will trigger a refresh of the user’s data, also referred to as a Member Refresh. On the Sync External Database page, this refresh type will say Unspecified. It is not scheduled and refreshes as the user logs in.
Determining eligibility for community access
Periodic Refresh will refresh all members based on a date and time submitted to the GetChangedMembers in the Higher Logic web service. The date and time are determined based on the last time there was a successful Periodic Refresh.
However, not all contacts with this updated field are eligible for community access. You might notice these records in the Sync External Database tool as highlighted in red or the name column says Not Imported.
Depending on your integration settings, there are three factors that determine whether your member is eligible for community access:
- Active Status
- Expiration Date
- Limit by Security Group
Active status
The active status for members in iMIS is determined based on the following criteria:
- Status column in the Name table
- Expiration Date
Status in iMIS
When configuring your iMIS integration with Higher Logic, one of the settings used to determine whether a member is active is based on the Name table and the column Status. If the record is active this status will return A; otherwise, this record is determined to be inactive.
Workspace and active status
If Workspace is enabled for your Thrive Community, for your contacts to show up in the Workspace Roster they must meet the following requirements.
- The record must be Active
- If the record is tied to a Company, the Company must be Active
- The record must have an email address
Expiration date
If the expiration date for a member has passed, the member can be deactivated in Thrive Community. When configuring your integration during implementation one of the questions related to Grace Period as well as whether Expiration Date should determine eligibility requirements.
As a default, the expiration date will determine whether a record should be deactivated in Thrive Community.
Limit by Security Group
Limit by Security Group is a setting in your integration configuration where only if a member’s contact record in iMIS has one of the allowed values will they be eligible for Community Access.
To see a list of Security Groups that meet this requirement, navigate to the Security Groups Summary Report. At the top of the report is a field called Limiting Security Groups. If this is True, next to it will be a field called List of Security Groups Allowed to Sync to Higher Logic. This setting in your integration will allow records into your Thrive Community only if their Contact record in iMIS matches any of the values stored in your Thrive Community.
Periodic Refresh
To ensure that data on your Thrive Community site remains synchronized with your AMS, our Periodic Refresh tool will query the Higher Logic Webservice AMS every 30 minutes, explicitly looking at the GetChangedMembers method. Records returned in this method will be eligible for refresh in Thrive Community. The Periodic Refresh also updates:
- Demographic information (e.g., first name, membership expiration date)
- Eligibility for membership to a Community Group
- Eligibility for membership to a Security Group
- Events
Custom Demographics
Demographics for a member are initially configured in the integration setup. If new fields should be added, Higher Logic support will require the following:
- The name of the field to be added
- If this is a field that doesn't exist in a User-Defined Table (e.g., the Name table in iMIS), this change will require your DBA to add this field to the iMIS Stored Procedure HlGetMemberDetails
- A few Contact IDs with the field value
Demographics can exist in the following manner in Higher Logic.
- Freeform Demographic - This field is reserved for contact fields that have a different value, or perhaps is just a large amount of text.
- Checkbox - For checkbox fields, Higher Logic creates "collapsed checkbox" demographics that are generally grouped by type. For example, a contact may have a checkbox field called "Bachelor's," which indicates having a bachelor’s degree, one called "Master's," and one called "PhD."
In this example, the demographic label may be Education Level. All Contacts with the Bachelor’s field checked would have the bachelor’s with a value of Yes or No under the record in Higher Logic.
Picklist: A separate demographic will be created for each pick list option that is selected by at least one contact syncing to Higher Logic. For example, if the picklist field is called Membership Type in Salesforce with the values of Platinum, Gold, and Silver, a demographic will be created for each of those values after an eligible member is synced to Thrive Community.
Multipick: If the value returned in the iMIS Name table has multiple values separated by commas, this will generate a Multipick list in Higher Logic. A separate demographic will be created for each pick list option, like the pick list fields. The only difference is that contacts can have more than one option selected and thus be assigned more than one demographic being pulled from this field.
The methods that are used to determine which demographic fields should be used -- as well as the field type -- are further defined in iMIS Integration: Higher Logic API Bridge Methods and iMIS Integration: Stored Procedure Schema.
Event sync
The events sync service runs once a day and calls the Higher Logic Webservice GetEvents method, which extracts all events that have a future END_TIME field. Once the events are transformed based on the Higher Logic schema, they are added to Thrive Community.
NOTE: Any events that have had a change in Higher Logic since the last time this service was run will be overwritten.
Community Groups
A feature of the integration will generate a Thrive Community based on configuration settings. Community Groups in Higher Logic are generated from the following objects in iMIS:
- Chapters
- Committees
- Events
To create a new Community Group in Higher Logic from any of the types above, the BeginDate must be returned with a date of today. For example, an Event Community Group will not be automatically generated in Thrive Community until there is a registration.
The integration will generate a Community Group with the following settings for members:
- Community Group Name: The full name of the object in iMIS ex the Event Name
- Community Group Type: Hidden AMS Default
- Community Group Description: The full name of the field in iMIS
- Community Group Member Start Date: The BeginDate of the item for that contact in iMIS
- Community Group Member End Date: The EndDate of the item for that contact in iMIS
- Community Group Member Role: The default is Member
Workspace
NOTE: The role of the contact in iMIS will define the user’s permissions in Workspace.
Rosters
Rosters will refresh as a user’s information changes in Thrive Community. Once a change is made (for example, if a contact is updated from inactive to active), this will sync to the Workspace product and update the Workspace Roster.
NOTE: User interest categories will NOT update based on your integration or from any setting in Thrive Community and must be updated in the Workspace Roster.
The interest category for every Community Member can be set via a dropdown on the Workspace Roster by users who have the proper privilege included in their Workspace Group Role. This means a Contact can have a different interest category for each Community to which they belong.
Voting Rights
The only way to grant voting rights to a contact is to assign a role that includes voting rights. Community Workspaces can be configured with two Voting Models.
- One Vote Per Person
- Each person gets a single vote which counts towards ballot outcome
- Company relation doesn’t matter
- One Vote Per Company
- Each company gets a single vote which counts towards ballot outcome
The vote that counts is determined by voting level and the time at which the vote was cast. A primary vote always overrules an alternate vote, even if the alternate vote was cast after the primary vote.
Votes of the same level overrule each other based on whichever was cast most recently.
Workspace Role
The Workspace product will acknowledge a Community Member’s Role in Higher Logic and will accept multiple values. If a member has multiple roles in a Community Group, this will be honored in Workspace.
NOTE: The highest permission will supersede the lowest. For example, if a Community Member has two permissions (Member and Doc Manager), and Doc Manager has the higher permissions, it will have those permissions. An example of this relationship is below.
Integration community types
The following Community types are explicitly generated by the iMIS integration.
Hidden AMS Default
As a default, when a Community is created by the integration, it will come into Higher Logic as a Hidden AMS Default. This default community will then require a Super Admin to change the Community Type.
Hidden Event
Event Community Groups generated by the integration will have the Community Type set to Hidden Event.
Security Groups
Security Groups in Higher Logic not only determine Member Status but can also determine access rights to functionality, navigation, and content within Thrive Community. In the iMIS Integration, security groups are determined by the Member_Record flag in iMIS and the Member_Types table.
After a new Member Type is generated, follow these steps to apply Member Status in Higher Logic.
- Perform a Member Refresh for a contact with that Member Type in Higher Logic
- Set the new Security Group to Member Status = True/Yes
Security Groups that are generated based on Member Type will have the following values set in Higher Logic:
- Security Group Name: Member Type Name
- Security Group Description: Member Type Name
- Security Group Start Date: The BeginDate in iMIS for the Contact
- Security Group End Date: The EndDate in iMIS for the Contact
Events
The iMIS integration can import Event communities and automatically generate Events and add them to the Event Calendar in Higher Logic. This requires an active subscription to the Event Calendar module to function.
In order for an event to sync to Higher Logic, it must:
- be active,
- have a title,
- have an End Date, and
- be web enabled.
NOTE: Event sessions can also be created. They require a title and must be active.
Integration tools
Sync External Database
The Sync External Database tool is the best place for admin users to confirm the status of their integration and whether records have been refreshed in the Thrive Community site.
To access Sync External Database:
- Login to your Thrive Community Site.
- Navigate to Admin > Settings > Integration.
- Select Sync External Database.
The Sync External Database page will display pertinent information for your integration including:
- Community information for individual members
- AMS information for individual members
- Whether the integration is currently running
- Which records have most recently refreshed
- Provides tools for Higher Logic Super Admins to refresh individual records
In this area, you will see the following information:
- Overview information
- Refresh Member tool
- Member Refresh History
- Refresh Community Group Members tool
- Refresh Security Group Members tool
- Job History
Overview information
The overview information will display the status of your integration.
- Number of Contacts Pending Refresh: The number of records pending Periodic Refresh
- Periodic Refresh Schedule: How frequently the refresh is scheduled
- Periodic Refresh Last Ran At: When the refresh last ran
- Daily Refresh Status: Typically, Disabled. This refresh type is no longer used.
- Daily Refresh Last Ran At: Typically, either Never or a date far in the past. This refresh type is no longer used.
- Community Sync Schedule: This refresh type is only used by the Weblink integration; otherwise, this will be Disabled.
- Community Sync Last Ran At: This will update once per day, if enabled. If disabled, either Never or a date far in the past because this refresh type is no longer used.
The Sync External Database page is also where Members can be manually refreshed with the Refresh Member tool.
Refresh Member
The Periodic Refresh controls when all the records are updated (every 30 minutes) in bulk. Super Admins can also manually refresh individual member records with the Refresh Member tool.
A Member Refresh can occur under the following instances:
- Every 30 minutes via Periodic Refresh, provided the Date Changed field has changed
- If SSO is enabled and a user attempts to log in to the application for the first time,
Higher Logic will validate whether that user has access to the Thrive Community site and refresh the user details - Manually via the Refresh Member tool
A Member Refresh will update:
- Demographic information (first name, membership expiration date)
- AMS managed Community Groups (Discussions, libraries, and microsites)
- AMS managed Security Groups
To manually refresh a member:
NOTE: Have the Integration Key of the member record accessible. You can find this by leveraging the User search tool and clicking on a member record. When you have the Integration Key, proceed with the steps below.
- Login to your Thrive Community site.
- Navigate to Admin > Settings > Integration.
- Select Sync External Database.
- Scroll down to the Refresh Member area.
- Enter the Integration Key in the Member Info box and select Refresh Member.
The page will refresh and you should see your member record in the Member Refresh History list with the value Member Refresh in the Job Type column.
- The Refresh Member tool is where you will also find back-end information related to your members.
- In Refresh Multiple Users, you can enter multiple members' Integration Keys and add them to the queue.
Display Backend System's User Data
Use the Display Backend System's User Data option to view the information related to your user in iMIS.
- Enter the Integration Key in the Member Info box.
- Select Display Backend System’s User Data.
You’ll be presented with a snapshot of this user’s information. This is particularly helpful when trying to diagnose why a member is not eligible for community access.
Display Connected Community User Data
To view a member record’s information and their existing community information (including security groups, demographic details, and community groups):
- Enter the Integration Key in the Member Info box.
- Select Display Connected Community User Data.
Community Refresh
The Community Refresh tool allows a Community Group to be refreshed in the Higher Logic Community. This tool will refresh only existing Community Group members. To add new records to the group:
- Create a Report in iMIS with the ContactID of the records you want to add.
- Paste the ContactIDs into the Refresh Multiple Users tool.
- Select Refresh Members.
After the records have been added to the Community, you can refresh the Community Group.
To refresh a Community Group:
- Login to your Thrive Community site.
- Navigate to Admin > Settings > Integration.
- Select Sync External Database.
- Scroll down to the Refresh Community Group Members.
- Select the Group Type from the dropdown.
- Select the Group Key to refresh.
- Select Refresh Group.
Under Job History, the Community Group will be listed with a summary:
- Date/Time displays the date and time of the refresh.
- Status indicates whether the refresh was successful.
- Job Type is which job type completed; in this example, Community Refresh.
- Comment/Error will present either a brief summary or error information (if applicable).
Security Group Refresh
The Security Group Refresh tool allows a Security Group to be refreshed in Thrive Community. This tool will refresh only existing Security Group members. To add new records to the group:
- Create an iQA in iMIS with the ContactID of the records you want to add.
- Paste the ContactIDs into the Refresh Multiple Users tool.
- Select Refresh Members.
After the records have been added to the Security Group, you can refresh the Security Group. To refresh a Security Group, you’ll need the Legacy Group Key, which can be found in Users > Security Groups, in the Integration Key column. Then:
- Navigate to Admin > Settings > Integration.
- Select Sync External Database.
- Scroll down to the Refresh Security Group Members tool.
- Enter the Integration Key.
- Select Refresh Group.
Under Job History, the Security Group will be listed with a summary:
- Date/Time displays the date and time of the refresh.
- Status indicates whether the refresh was successful.
- Job Type is which job type completed; in this example, Security Group Refresh.
- Comment/Error will present either a brief summary or error information (if applicable).
Member Refresh History and Job History
The Member Refresh History and Job History reflect the jobs that have run most recently.
The Member Refresh History displays:
-
Name: The name of the imported user.
- Not Imported: for members that were not imported to the Community
- Highlighted in red: Deactivated members
- Date/Time: The date and time of the refresh.
- Status: Whether the refresh was successful.
- Legacy Contact Key: The Integration Key or ContactID
-
Job Type:
- Periodic Refresh
- Unspecified
- Community Refresh
- Security Group Refresh
- Tool
- Comment/Error: A summary if there was an error with the specific record
The Job History displays:
- Date/Time: The date and time of the refresh.
- Status: Whether the refresh was successful.
-
Job Type: Which job type completed:
- Periodic Refresh: How many records were identified as meeting the member eligibility and Date Changed as updated
- Community Refresh: How many records were identified for a Community Group refresh
- Security Group Refresh: How many records were identified for a Security Group refresh
- Comment/Error: A summary or if there was an error.
Activity Sync
To enable Activity Sync for your integration, complete the following.
- Activity Sync has been purchased
- The Activity Sync stored procedure has been deployed to your iMIS installation (you can confirm this by looking at the service page; if Activity Sync is there, then this is complete)
- The Product Type script must be run in your iMIS database
- The subscriptions must be selected in Higher Logic
You can select the type of Activity Subscription by searching Activity Sync. If you are in the legacy interface, this is located under Contacts.
To learn more about Activity Sync in Higher Logic, see Member Activity Sync.
Related articles
The following articles have supporting information for the iMIS integration.