Activity Sync gives your organization a view of your members' activities by bringing more member data into and out of your site. Activity Sync does this by writing member activity (e.g., actions in a community, Volunteer Program, online or in-person event) to your organization's AMS or CRM database.
Benefits of Activity Sync
Activity Sync helps you optimize your organization's programs by:
- Allowing you to immediately see what your members are doing with a snapshot of their activities, whether it's event attendance, webinars, or accepting a community's Terms & Conditions.
- Tracking community and organizational activities in one place, and creating a single, unified engagement score.
- Generating monthly, quarterly, and annual engagement report cards to track and present to stakeholders.
- Tracking members' activities and interests over time so that you can customize and improve their experience with your organization.
Supported integrations
Higher Logic can integrate with the following AMS and CRM databases.
Aptify | Association Anywhere | Cobalt |
iMIS | Impexium | Fonteva |
MemberSuite | Microsoft Dynamics CRM | netFORUM Enterprise |
Personify360 | RAMCO AMS | Salesforce.com |
UX Online |
Synchronized member activities
Activity Sync tracks hundreds of activities that your members do in the community and sends details of that activity to your AMS/CRM database.
Counts of tracked activities
The number of activities within each Activity Category is listed below.
Advertising (1) | Ideation (9) |
Announcements (3) | Mentions (2) |
Automation Rules (9) | Mentoring (28) |
Blogs (10) | Messages (1) |
Common (11) | Microsites (7) |
Communities (28) | Q&A (6) |
Contacts (72) | Resource Libraries (28) |
Discussions (22) | Search (2) |
Events (20) | System (3) |
External (3) | Volunteering (18) |
Glossary (7) |
NOTE: Refer to the Article attachments section at the bottom of this article to download the Activities List spreadsheet for a complete list of Activity Codes.
Write-back information
Activity Sync writes information to the AMS/CRM in near real-time to an "activity" table. The member activities that are written include the following information.
- The member's AMS/CRM Customer ID to identify who did the activity (e.g., who wrote the blog article)
- A descriptive Activity Code to categorize the activity (e.g., BLOG_POST; refer to Activity Codes)
- The Activity Date (UTC date and time) of the activity (e.g., when the blog article was published)
- The Activity Details (e.g., the subject of the blog article; refer to Activity Details)
- A URL to see the related activity in the community
Activity Sync requirements
Higher Logic can write information to any integrated AMS/CRM platform, and is limited only by the AMS/CRM. For Activity Sync to work, the AMS/CRM must have a:
- Place to store community activities (refer to Activity Storage)
- Method for Higher Logic to write information to it (refer to Write-back Sample Method)
Activity storage
Most AMS/CRM systems have an activity module where a contact's Community activities (e.g., email messages, email marketing campaign participation, and web site log ins) can be recorded and stored. An advantage is that the AMS/CRM is already set up to display and report on this module. The disadvantage is that the tremendous number of activities can make having them all in the same place unwieldy.
Because of this, some organizations choose to put the community activities in a separate place specifically for Higher Logic activities. Where these activities are stored in the AMS/CRM is inconsequential to the integration with Higher Logic; Activity Sync is concerned only with the method used to write these activities to the AMS/CRM.
Activity codes
For Higher Logic to write the activities information from your community, the AMS/CRM must have the corresponding activity codes added. These codes are often a single value, but some AMS/CRM platforms have two levels (codes and sub-codes) to describe the activity. The codes that are used in the AMS/CRM must be given to Higher Logic so they can be mapped to the corresponding activity in your community.
The activity details that can be written are a collection of XML key-value pairs that can be used for post-processing and looking for specifics about the action. This does not have a constant schema and is meant to be stored in a single text field. This information includes standard properties and any defined custom properties. This format may be more appealing for data-mining because it eliminates the details key-value pair array in favor of surfacing each as a property.
NOTE: Refer to the Article attachments section at the bottom of this article to download the Activities List spreadsheet for a complete list of Activity Codes, as well as a list of the most frequently used activities.
Write-back sample method
A sample method is shown below. Keep in mind this is just an example of what Higher Logic is expecting in a method to write back to an AMS/CRM, and the method supplied for any AMS/CRM should be similar. Note that the Details section is meant to be stored in a single field as the schema is not consistent between actions.
The write-back method will return that the call was successful or return an exception. In the case of an exception, Higher Logic will attempt to write back the activity at a later time. Activities are kept in a queue for two weeks to allow for error recovery.
If the write-back method allows, the activities can be written in bulk at a specified interval, instead of near real-time. This is an option to consider when the number of API calls is limited or when they can impact performance.
Additional examples
Below are examples of details that can be written to your AMS/CRM database.
DiscussionMessageCreate
{"Body": "Who all is going to the upcoming conference? ------------------------------ Steve Oxee Higher Logic (571) 351-1262 Ext. 220 soxee@higherlogic.com ------------------------------", "IsNew": true, "LinkUrl": "https://hug.higherlogic.com/communities/community-home/digestviewer/viewthread/?GroupId=1417&MID=36659&CommunityKey=b9c2bb9e-d4a8-4f9f-b1d1-936e26f85ab5&tab=digestviewer", "Subject": "Annual Conference", "IsDelete": false, "IsPinned": false, "IsPublic": "True", "EgroupKey": "218f776e-7b28-4a60-a802-81a6ce62dc9d", "MessageID": 36659, "ApprovedOn": "2016-06-13T20:10:53Z", "CreateDate": "2016-06-13T20:10:53.4316492Z", "IsDocument": false, "MessageKey": "3431dd8f-6426-40ad-94d7-0877c9d65558", "ObjectType": "EgroupMessage", "ParentName": "Demo Community", "TenantCode": "HUG", "ActivityKey": "9896253f-3efe-405a-896f-a8384910543c", "GeoLocation": "0,0", "RatingCount": 0, "ActivityCode": "DiscussionMessageCreate", "ActivityDate": "2016-06-13T20:10:53.4628857Z", "CommunityKey": "b9c2bb9e-d4a8-4f9f-b1d1-936e26f85ab5", "IsThreadRoot": true, "EventDateTime": "2016-06-13T20:10:53.4628857Z", "HasAttachment": false, "MessageStatus": "nm", "ParentLinkUrl": "https://hug.higherlogic.com/communities/community-home/digestviewer/?CommunityKey=b9c2bb9e-d4a8-4f9f-b1d1-936e26f85ab5&?tab=digestviewer", "RootMessageID": 36659, "ApprovalStatus": "Approved", "AuthorLastName": "Oxee", "IsSearchDelete": false, "ParentTypeName": "Egroup", "AgentContactKey": "bfdd623a-782e-4fbf-af55-a50316f56d73", "AuthorFirstName": "Steve", "AgentExternalKey": "soxee", "AuthorContactKey": "bfdd623a-782e-4fbf-af55-a50316f56d73", "MessageThreadKey": "2f9b6b81-3a58-4c7f-b59d-a95d86942bd8", "AuthorCompanyName": "Higher Logic", "AuthorDisplayName": "Steve Oxee", "AuthorExternalKey": "soxee", "ViewSecurityRoles": ["HLAdmin", "CMb9c2bb9e-d4a8-4f9f-b1d1-936e26f85ab5"], "ActivityDescription": "Steve Oxee posted a new message titled \"Annual Conference\" in the Demo Community community", "ExternalActivityCode1": "DiscussionMessageCreate"}
DiscussionMessageReply
"{"Body": "I'm going! I can't wait. Steve Oxee Inside Sales Executive 571.351.1262 soxee@higherlogic.com ", "IsNew": true, "LinkUrl": "https://hug.higherlogic.com/communities/community-home/digestviewer/viewthread/?GroupId=1417&MID=36660&CommunityKey=b9c2bb9e-d4a8-4f9f-b1d1-936e26f85ab5&tab=digestviewer", "Subject": "RE: Annual Conference", "IsDelete": false, "IsPinned": false, "IsPublic": "True", "EgroupKey": "218f776e-7b28-4a60-a802-81a6ce62dc9d", "MessageID": 36660, "ApprovedOn": "2016-06-13T20:11:49Z", "CreateDate": "2016-06-13T20:11:49.4918914Z", "IsDocument": false, "MessageKey": "eea3258f-28c4-4ee5-a743-64052e361764", "ObjectType": "EgroupMessage", "ParentName": "Demo Community", "TenantCode": "HUG", "ActivityKey": "9eb580ff-e7f4-4134-a0c9-a6e8b1b5f143", "GeoLocation": "0,0", "RatingCount": 0, "ActivityCode": "DiscussionMessageReply", "ActivityDate": "2016-06-13T20:11:49.5075148Z", "CommunityKey": "b9c2bb9e-d4a8-4f9f-b1d1-936e26f85ab5", "IsThreadRoot": false, "EventDateTime": "2016-06-13T20:11:49.5075148Z", "HasAttachment": false, "MessageStatus": "re", "ParentLinkUrl": "https://hug.higherlogic.com/communities/community-home/digestviewer/?CommunityKey=b9c2bb9e-d4a8-4f9f-b1d1-936e26f85ab5&?tab=digestviewer", "RootMessageID": 36659, "ApprovalStatus": "Approved", "AuthorLastName": "Oxee", "IsSearchDelete": false, "ParentTypeName": "Egroup", "AuthorFirstName": "Steve", "AuthorContactKey": "bfdd623a-782e-4fbf-af55-a50316f56d73", "MessageThreadKey": "2f9b6b81-3a58-4c7f-b59d-a95d86942bd8", "AuthorCompanyName": "Higher Logic", "AuthorDisplayName": "Steve Oxee", "AuthorExternalKey": "soxee", "ViewSecurityRoles": ["HLAdmin", "CMb9c2bb9e-d4a8-4f9f-b1d1-936e26f85ab5"], "ActivityDescription": "Steve Oxee replied to the \"RE: Annual Conference\" message in the Demo Community community", "ExternalActivityCode1": "DiscussionMessageReply"}"
LibraryEntryView
{"IsNew": true, "Action": "View", "IsDelete": false, "IPAddress": "204.97.94.34", "ParentKey": "02aef287-5aca-4636-81f0-709394c32f94", "AccessedOn": "2016-06-13T20:26:04.5094367Z", "IsDocument": false, "ObjectType": "ItemAccessLog", "ParentName": "SNAP! Training: New Admin Training", "TenantCode": "HUG", "ActivityKey": "6ba8a94f-0d7a-419f-b5bf-b60fcdc567e1", "GeoLocation": "0,0", "ActivityCode": "LibraryEntryView", "ActivityDate": "2016-06-13T20:26:04.5719449Z", "EventDateTime": "2016-06-13T20:26:04.5719449Z", "ParentLinkUrl": "https://hug.higherlogic.com/viewdocument/?DocumentKey=02aef287-5aca-4636-81f0-709394c32f94", "IsSearchDelete": false, "ParentTypeName": "LibraryEntry", "AgentContactKey": "5b324074-3b09-459e-0000-a9727353330d", "AgentExternalKey": "0037000001yHT1MAAW", "ItemAccessLogKey": "1d79d57b-cc2c-40e3-a28a-5a32230a7915", "AccessedByLastName": "Smith", "AccessedByFirstName": "Joe", "ActivityDescription": "Joe Smith viewed the \"SNAP! Training: New Admin Training\" library entry", "AccessedByContactKey": "5b324074-3b09-459e-0000-a9727353330d", "AccessedByCompanyName": "Direct Marketing Association, Inc", "AccessedByDisplayName": "Joe Smith", "AccessedByExternalKey": "0037yHT1MAAW", "ExternalActivityCode1": "LibraryEntryView"}
CommunityMemberJoin
{"IsNew": true, "IsAdmin": "False", "LinkUrl": "https://hug.higherlogic.com/communities/job-postings-for-community-management", "IsActive": "True", "IsBanned": "False", "IsDelete": false, "InvitedOn": "2016-06-13T21:57:58Z", "AcceptedOn": "2016-06-13T21:57:58Z", "CreateDate": "2016-06-13T21:57:58.2262617Z", "IsDocument": false, "ObjectType": "CommunityMember", "TenantCode": "HUG", "ActivityKey": "4409cc72-ddde-40eb-b9b1-eb4ebe5b5be8", "GeoLocation": "0,0", "ActivityCode": "CommunityMemberJoin", "ActivityDate": "2016-06-13T21:57:58.2262617Z", "CommunityKey": "37a0c949-88de-4715-a5f6-79dbd88a2f7a", "CommunityName": "Job Postings", "EventDateTime": "2016-06-13T21:57:58.2262617Z", "IsSearchDelete": false, "MemberLastName": "Summers", "AgentContactKey": "e176ab1e-0000-41b1-9757-cffbf735ea52", "MemberFirstName": "Carly", "AgentExternalKey": "csummers", "MemberContactKey": "e176ab1e-43dd-41b1-9757-cffbf735ea52", "MemberCompanyName": "Higher Logic", "MemberDisplayName": "Carly Summers", "MemberExternalKey": "csummers", "CommunityMemberKey": "a04a5abe-e5d7-4092-85d6-4bfe93b2013b", "ActivityDescription": "Carly Summers joined the \"Job Postings\" community in the Job Postings community", "InvitedByContactKey": "00000000-0000-0000-0000-000000000000", "ExternalActivityCode1": "CommunityMemberJoin"}
CommunityMemberInvite
{"IsNew": false, "IsAdmin": "False", "LinkUrl": "https://hug.higherlogic.com/communities/community-home/?CommunityKey=9fa96535-22c0-4279-8165-41f0a1c8aab7", "IsActive": "False", "IsBanned": "False", "IsDelete": false, "InvitedOn": "2016-06-13T21:52:45Z", "CreateDate": "2016-06-13T21:52:45.9407026Z", "IsDocument": false, "ObjectType": "CommunityMember", "TenantCode": "HUG", "ActivityKey": "c44a27a9-d633-4daa-ab8c-4c897c3beade", "GeoLocation": "0,0", "ActivityCode": "CommunityMemberInvite", "ActivityDate": "2016-06-13T21:52:45.9407026Z", "CommunityKey": "9fa96535-22c0-4279-8165-41f0a1c8aab7", "CommunityName": "Texas HUGgers", "EventDateTime": "2016-06-13T21:52:45.9407026Z", "IsSearchDelete": false, "MemberLastName": "Scotts", "MemberFirstName": "Evelyn", "MemberContactKey": "4c9977f6-5bdd-0000-9642-c686ce78baa3", "MemberCompanyName": "National Association of Door Plans", "MemberDisplayName": "Evelyn Scotts", "MemberExternalKey": "0037000000uwuhgAAA", "UpdatedProperties": ["InvitedOn"], "CommunityMemberKey": "00e02f68-3de0-484e-8721-5bba8158c05e", "ActivityDescription": "Evelyn Scotts was invited to join the \"Texas HUGgers\" community in the Texas HUGgers community", "InvitedByContactKey": "00000000-0000-0000-0000-000000000000", "ExternalActivityCode1": "CommunityMemberInvite"}
Endpoints and subscriptions
Endpoints are where — in your AMS/CRM — the various Higher Logic member activities are written to. They are required in order for you to be able to use subscriptions.
Subscriptions are the "connections" of your Higher Logic member activities to activity categories, in your AMS/CRM, so that those activities can be written to your AMS/CRM. These connections are preconfigured by Higher Logic and cannot be changed.
So, when an activity is subscribed to an endpoint, it simply means that Higher Logic is sending that activity to that associated endpoint (typically in your integrated AMS/CRM).
To manage the endpoints and subscriptions on your site:
- In the Admin Toolbar, click Admin.
- Navigate to Settings > External Content > Activity Sync.
The Activity Sync page has two tabs: Endpoints and Subscriptions.
Manage your endpoints
The Endpoints tab alphabetically lists all of your community's endpoints. On this page, you can easily see which endpoints are enabled and disabled, and a count of active and inactive subscriptions for each.
NOTE: This is a Super Admin-only activity.
Create an endpoint
- Click Create.
- On the dialog:
- By default, the endpoint is enabled. Click the toggle to disable it.
- Specify a name for the endpoint. (Required)
- Click the dropdown to select one of the Provider Types. (Required)
- Click the Activity Subscriptions dropdown to select activities to be synchronized from this endpoint.
- Click activities to include them. A check mark will appear to the right of your selected activities and they will populate the Activity Subscriptions field.
- Click in the Activity Subscriptions field to close the list when you're finished.
- Click Save.
- Review the list to verify that your endpoint has been added.
Provider types
Provider Types are created in your database by Higher Logic staff. There are two types:
- Membership Provider - Use for the endpoints for those activities that are to be written back to your integrated AMS/CRM.
- Activity History - Use for the endpoints for those activities that are to be written to the Higher Logic Activity History table (primarily used for debugging by Higher Logic staff).
Enable/disable an endpoint
Use the toggle in the Status column to enable and disable endpoints.
- Click Enabled to disable an endpoint.
- Click Disabled to enable an endpoint.
NOTE: You can also enable and disable endpoints in the Edit modal.
Edit an endpoint
- To change an endpoint, click Edit in the Actions column.
- On the dialog:
- Click the Enabled? toggle to enable or disable the endpoint.
- Specify a different name for the endpoint. (This field is required; do not leave it blank.)
- Click the Provider Type dropdown to select a different one. (This field is required.)
- Add and remove activities in the Activity Subscriptions dropdown.
- Click Save.
- Review the list to verify that your changes have been saved.
Delete an endpoint
- Click the down arrow next to an endpoint's Edit button and click Delete.
- Review the information in the dialog.
NOTE: This deletion will also remove all of the endpoint's activity subscriptions.
- Click Delete to continue with the deletion; otherwise, click Cancel.
- Review the list to verify that the endpoint has been deleted.
Manage your subscriptions
The Subscriptions tab alphabetically lists all of your community's member activities and the category to which each is subscribed.
Endpoints
The Endpoints column displays which endpoints each member activity is assigned subscribed to. The Endpoints column also indicates which subscriptions and endpoints (webservices) are currently disabled.
NOTE: Subscriptions are indicated by a lowercase "i" and endpoints (webservices) by a "caution" symbol.
- To enable a subscription, refer to Edit an Endpoint Subscription, below.
- To enable an endpoint, go to the Manage Endpoints tab.
Filter the list
You can use one or more of the filters to refine the list to more quickly see and manage your subscriptions.
- Use the Filter by Activity Name field to refine the list by subscription name. As you type, the list will automatically update to display matching subscriptions.
Typically, 3 or 4 letters are enough to refine the results.
- Use the Endpoint dropdown to filter the list by one or several of your community endpoints.
You can create, edit, and delete endpoints on the Endpoints tab.
- Use the Activity Category dropdown to filter the list by one or several of your community activity categories.
- Use the Subscriptions dropdown to filter the list by only those member activities that are subscribed to an endpoint, only those member activities that are not subscribed to an endpoint, or by All subscriptions.
To return to the original, complete list, select the All option for any filters you applied.
Edit a subscription
Use the instructions in this section to make changes to your subscriptions.
- To change a subscription, click Edit in the Action column.
- On the dialog:
- Click Add to access the Edit Endpoint Subscription dialog (see Edit Endpoint Subscription below).
- Click Edit next to any listed endpoint to edit it (see Edit Endpoint Subscription below).
Edit an endpoint subscription
- If you are adding an endpoint, click the Endpoint dropdown and select an endpoint.
NOTE: The remaining instructions are applicable when adding and editing an endpoint subscription.
The dialog expands to display several additional fields.
- Use the Enabled? toggle to enable and disable the endpoint.
NOTE: If you are adding a disabled endpoint, the Enabled? option will be set to No and a note includes a link to the Manage Webservices page where you can enable it.
- The Activity Description field is prepopulated with the appropriate static text and merge variables. (Refer to Activity Description Notes and Limitations, below.)
- In the Write-back Code fields, specify the codes that are used by your AMS/CRM. (Refer to Write-back Code Notes and Limitations, below.)
- Click Save to return to the Edit Subscription dialog and click Close.
- Review the list to verify that your changes have been applied.
Activity description notes and limitations
- The merge values are sourced from the activity/event properties.
- The maximum length of the premerged text is 500 characters.
- The merge variables used should correspond to the properties associated with the activity.
- The merge variables use the actual property name (e.g., Bool01) rather than the property alias name (e.g., IsCompany) in the case of the contact entity sourced activities.
Write-back code notes and limitations
- Use write-back codes if you want to use your own (AMS/CRM) codes instead of Higher Logic's activity codes.
- Write-back codes have a two codes per activity type to accommodate a bi-level categorization approach, such as the first code specifying a category and the second specifying a type within the category.