The SpotMe - Veeva native integration module (and the optional Veeva walk-ins add-on module) provide all that is required to connect Veeva with the SpotMe platform.
Once the integration is in place, all the event’s organizational aspects can be performed in Veeva, such as adding attendees, speakers and sessions to the event, and all of this entered data is then automatically pulled into the SpotMe platform.
The integration supports two types of attendee records:
- Attendees that are imported from a Veeva event (using only the main Veeva integration module).
- Attendees that are added directly to the SpotMe event - manually added or uploaded, imported via a third party integration, or via an external portal or registration page - using the main integration module + the optional Veeva walk-ins add-on.
For each of these attendee types, when performing a synchronization the SpotMe platform sends a URL for each attendee back to Veeva. This is a unique and personalized URL that each attendee uses to access the SpotMe event application. This allows the emailing campaign to take place in Veeva, including the sending out of the actual event invitations (URLs) requesting users to access the event.
Finally, once the event is over, the SpotMe Veeva native integration sends back each attendee’s engagement analytics data types, from SpotMe into Veeva, in order to consolidate the attendees’ profiles within Veeva.
Note: The Attendance tracking and Stats data is only collected for attendees who attend a live session remotely (based on the live stream watch time).
The basic flow of how the status of attendees can be updated and synced between the platforms is as follows:
|1 - The attendee Veeva status/Status VOD (accepted, nominated, invited, etc.), can be read by the Veeva-SpotMe connector to determine which participants will be pulled into the SpotMe event from the Veeva instance.|
|2 - An Attendance tracking data type is used in the Veeva-SpotMe connector, that includes a configurable Attendance threshold field. This field can be populated to determine the full percentage of live stream time that the event participants need to have viewed in order to have the "Attended" status. This data type also determines the "invited" and "accepted" status for participants.|
|3 - The status of participants is then updated by the Veeva-SpotMe connector based on the Attendance tracking data, and in particular the Attendance threshold percentage, and communicated back to the Veeva instance.|
To summarize, all the organizational aspects of the event are handled within the Veeva platform, whereas the actual live aspects of the event are handled within the SpotMe platform, including video streaming, video breakout sessions, live interactivity, polls, Q&A sessions and more. This ensures that there is no duplication of tasks within the two platforms, and that each serves a clear and well-defined role during the lifecycle of an event.
1.2 Veeva - SpotMe connector workflow
The below process breaks down the workflow for setting up and using the Veeva - SpotMe connector into distinct steps (A-B-C-D-E).
Within these steps are numbers (for example B1-B2-B3, etc.) that correspond to field mapping values between Veeva and SpotMe data types:
- B1 - Attendees are taken from Veeva and added to SpotMe workspace
- B2 - Speakers are taken from Veeva and added to SpotMe workspace
- B3 - Sessions are taken from Veeva and added to SpotMe workspace
- B4 - SpotMe event invitation links are sent back to Veeva from SpotMe workspace
- E - SpotMe engagement analytics are collected in SpotMe and sent back to Veeva
For more information or support on field mapping, please reach out to SpotMe support.
1.3 Process of connecting a Veeva event to a SpotMe event
Below is an overview of the steps required to set-up and enable the Veeva - SpotMe connector, and that are fully detailed further in this article.
- Configure the SpotMe - Veeva Connector in Veeva Events Management (performed once in Veeva).
- Provide the necessary permissions on object fields in Veeva Events Management (performed once in Veeva.
- Create the specific Veeva event destined to be connected (performed for each event in Veeva).
- Create the SpotMe workspace (performed for each event in SpotMe).
- Install and configure the SpotMe - Veeva Connector on the SpotMe workspace (performed for each event in SpotMe, but can be installed once on a template event in SpotMe which is then easily re-used for future event creation).
- Connect and synchronize the data between the Veeva event and SpotMe event.
2. Configuring the SpotMe - Veeva connector in Veeva Events Management
2.1 Creating the Veeva connector (connected app)
The steps in this Creating the Veeva connector in Veeva Events Management section only need to be done once per Veeva instance.
Once the Veeva connector is created and configured in Veeva Events Management, it can then be used for each connection between a Veeva event and a SpotMe event.
- Log in to Veeva with your username and password.
- Go into the Setup section:
- Go into the Apps section to the left of the screen, select App manager, and click on New connected app (in the top right corner):
- Enter the following information: Connected app name / API name / Contact email.
- Check the box for Enable OAuth settings.
- Add a “dummy” value to the Callback URL (this is not used but is a mandatory field).
- Select the following OAuth scopes in the available list, and add them by hitting the Add button:
- Full access (full)
- Manage user data via APIs (api)
- Perform requests at any time (refresh_token, offline_access)
- Once the above information is entered, scroll down and click on Save, and then on Continue.
The connected SpotMe app has now been created in Veeva, with the authentication keys and tokens.
- Copy both the Customer key and the Customer Secret Key (by clicking on Click to reveal), and store them somewhere safe as they will be needed when completing the configuration steps in the SpotMe environment (step 5 in section 2.3):
2.2 Providing the necessary permissions on object fields
As part of the integration set-up, certain access permissions must be given on object fields for the end users and the integration user. Here we will explain what permissions need to be given and how to do it.
Permissions needed on object fields
Below is a list of fields for which access permissions must be given for the end users and the integration users. These users may need to be identified by the organization administrator, as their naming can vary depending on the Veeva instance.
Note: In some cases the permission will need to be granted via permission set. Please reach out to the organization administrator to know the correct setup. These users may also need to be identified by the organization administrator, as their naming can vary depending on the Veeva instance.
"Read only" for End user
AND "Edit" for
(check the record type Spot_Me_vod after clicking on Edit inside the permission set)
(check the record type Spot_Me_vod, after clicking on Edit inside the permission set).
To help you read the above table: In the EM_Attendee_vod object, in the Invitation_Link_vod__c field, "Read only" permission needs to be granted to the End user.
How to change permissions on object fields
To change the permissions on the object fields as described above, follow the below steps.
Here we will look at the EM_Attendee_vod object, where in the Invitation_Link_vod__c field a "Read only" permission needs to be granted to the End user:
- Go to the Veeva Setup page:
- Click on the Object Manager tab:
- To locate the object EM_Attendee_vod on which you need to change the field permissions, you can search for “Attendee” in the search box:
- Then click on the Attendee object, you will be brought to this screen where you should now click on the Fields and relationships tab to the left:
- Next, in this list of fields, scroll down to the SpotMe invitation link, and click on it:
- You will then be brought to the following page, where you need to click on the Set field level security button:
- Now in the following screen, you can change the permission for the EM_Attendee_vod__c object's SpotMe_Invitation_Link_vod__c field, to Read only for the End user:
You'll need to change the permissions as explained above for all the object fields listed in the Permissions needed on object fields section.
2.3 Creating the event in Veeva
- Log in to Veeva with your username and password.
- Go to the Events tab, and click on New:
- Enter the event start time, end time, and country:
- Enter the event name, topic (using the search), and the event type:
- Enter the estimated attendance, and then click on Save:
- The event is now created in Veeva and all the event details are displayed.
Copy the event ID that is visible in the URL, and store it somewhere as it will be needed in Step 5 of section 3.2:
3. Configuring the Veeva Connector in SpotMe
3.1 Creating the event (workspace) in SpotMe
An instance of an event in the SpotMe platform is referred to as a “workspace”. To create a workspace:
- Log in to Backstage, the SpotMe CMS.
- In the Backstage home page, to the right of the screen, click on Create a workspace.
- Select a workspace template as a basis for your event, or use one of your own if you have one:
- Add the necessary workspace information:
- Name: Enter the name of the workspace or event.
- Start date and end date: Enter the dates through which the event will be attended by the audience.
- Location: This is open text. You can enter a location or any text of your choosing.
- This workspace has users in multiple locations: Select this option if your audience will be attending from multiple physical locations. This is frequent with virtual events, and having this information will help SpotMe optimize the app and content delivery to the audience
- Timezone: Select the time zone of the event. This is typically the time zone of the team or organization creating the workspace. And will be used as a basis for scheduling agenda sessions, notifications, generating reports, etc. The times used in the event will automatically adapt to the audience’s time zone via the app.
- Data location: Select the country or continent where the workspace data will be hosted. This would typically be where the organizer's headquarters are. Data location is an important consideration for data privacy and law enforcement, as well as internal company policies.
- Container app: Select the mobile app that will house the new workspace (or event) that you are creating. The workspace will only be visible in this selected container app, as well as the web-app by default.
- Test workspace: Checking this box will create a "Test" workspace, where seats are not consumed, and where advanced/paid modules can be installed free for testing purposes. Also, users can only be invited one-at-a-time to test workspaces, and test workspace will display a watermark on the side of the screen in the app (except for SpotMe users).
- Once you have added the workspace details per the above, click on Proceed.
- Check the summary of the workspace creation. You can review the information here and make any necessary changes by selecting the corresponding Edit links.
- Once you have verified all the information, click on Create workspace.
Once the workspace is created, Backstage will take you to the workspace's dashboard, where these settings can be modified at any time.
3.2 Installing and configuring the Veeva connector in the SpotMe workspace
The Veeva connector will need to be installed on each SpotMe workspace that will be connected to a Veeva event.
This process can be greatly facilitated by creating an event template in the SpotMe platform, that already has the Veeva connector installed and configured with the adequate Veeva credentials, and that can simply be reused to create future events within SpotMe that are destined to be connected to Veeva.
By using a template this way to create a SpotMe event, the only thing that will need to be done in the SpotMe event is to enter the Veeva event identifier. More information on creating and using SpotMe templates is available here.
To install the Veeva connector on a SpotMe workspace:
- Log into Backstage, and access the workspace created in step 2.1.i.
- Go to the Marketplace section of the main menu (to the left of the screen), and in Integrations, click on the Veeva integration module:
- Click on Install to add the module to the workspace. Once the install is complete, click on Done. Backstage will reload to complete the installation:
- Once Backstage has reloaded, In the workspace main menu to the left, select Integrations.
This will open the Veeva integration configuration page:
- Click on the Credentials tab. Here you can enter the necessary credentials for the integration, per the indications provided below:
NOTE: Only Backstage organization admins have access to these fields in the Credentials tab. The Backstage organization members will only have access to the "Event VOD" field, the "Status VOD" field, and the "Override attendee email fields" fields.
Server URL: Enter the Veeva server address that you want to connect to.
Client ID: This is the “Customer key” that was previously put aside in step 9 of section 2.1.
Client secret: This is the “Customer secret key” that was previously put aside in step 9 of section 2.1
Username: This is the email used to log-in to Veeva.
Password: This is the password used to log-in to Veeva
Event VOD: This is the specific Veeva event identifier that was previously put aside in step 6 of section 2.3.
Status VOD: Define the Veeva attendee status that will be used to identify which attendees will be pulled into SpotMe. Multiple status can be added by simply separating them with a comma ",".
Override attendee email fields: This field can be used to configure which Veeva field is used to lookup the attendees email address during imports.
- Once you’ve entered the above information, click on Save changes.
- Next, open the Data types tab. Here you can see the objects that can be synchronized from the Veeva event into the SpotMe event (users, sessions, speakers, stats, attendance tracking):
- From the Data types tab, click on Attendance tracking to access the options for this data type:
Here you can enter a value in the Attendance threshold field. This number will correspond to a percentage of the total live stream time (all streams combined) that the attendee needs to have watched in order to be considered as having attended the event.
For example, if the total combined live stream time is 10 hours, and the value entered for the attendance threshold is set to “20”%, then an attendee will need to have watched at least two hours of live stream (any live streams) to be considered to have attended the event.
There is another setting here that can be checked or unchecked, in the Attendance tracking and also in the Stats data types, called Track stats per session. This setting is checked by default:
More information on this setting is available in the How is the Attendance and Stats data computed for live streams section.
- An additional setting that can be individually changed for each data type available in the Data types tab (users, sessions, speakers, stats, attendance tracking) is the Auto-sync frequency. This option determines how frequently the auto-sync will take place for each data type:
By default, if no value is specified in the dropdown list, the auto-sync will occur every 60 minutes.
Please note that the autosync will automatically stop 7 days after the end date of the event.
- After following the above steps, the sync is still not yet active/working.
To test that the integration works, click on the Sync button for one of the objects, and confirm by clicking OK. Here we have clicked on the Sync button for the Attendee tracking object:
- Once the manual sync is complete, you’ll see a summary of the exchanged data.
Check that you can see no authentication errors here (like in the example below).
If no errors are displayed, this means that the sync is correctly set-up:
Note: If you have only just created an empty Veeva event, with no participants, sessions, or speakers, then it is normal that no data is imported.
- Once you are ready to start syncing data between the Veeva and SpotMe event, you can simply enable the auto-sync functionality in the integration, using the buttons in the Auto sync column for each object type:
The Attendance tracking data collected in SpotMe is used to identify if an attendee has attended an event (by updating the Veeva "Status" field) and if they have attended a specific session's live stream. Attendance tracking data for participants is computed and sent back to Veeva as follows:
- Tracking at the event level - This is a Status field in the Event Attendee object (EM_Attendee_vod__c) that contains a list of predefined possible values. If the Attendance threshold value is reached for this object, i.e if an attendee has watched more than XX% of the sum of all live stream time, this field is set to “Attended” in Veeva. This attendance status is only ever tracked at the event level.
The Status field data should only be referred to once the event is over. If the event takes place over multiple days, with multiple streams, the attendance status can be re-calculated and updated multiple times during the event.
- Tracking at the session level - This is a flag/tickbox field at the Remote Meeting Attendee object (Remote_Meeting_Attendee_vod__c). If the attendee watches the live stream associated with the corresponding session for more than 1 second, then the flag is set to true/ticked in Veeva.
See the Veeva report example in the How to access the data in a report in Veeva section for more details.
The Stats data collected in SpotMe corresponds to the engagement data for the attendees, such as the number of claps and Q&A questions asked, that is collected and sent back to Veeva.
This data can be computed on a per-session basis, or for the sum of all live streams in the event (regardless of sessions). This can be configured using the Track stats per session option, that is present in both the Attendance tracking and Stats data types:
Important: The Attendance tracking and Stats data types work hand-in-hand. This means that the same selection must be applied in both data types for the Track stats per session setting. The setting must either be checked on both data types, or unchecked on both data types.
When checked on both data types, the attendance status sent back to Veeva (i.e. live stream time watched compared to the Attendance threshold value) is computed based on the sum of all live streams, and the engagement stats (claps and Q&A questions) is computed for each session separately.
When unchecked on both data types, the attendance status sent back to Veeva (i.e. live stream time watched compared to the Attendance threshold value) AND the engagement stats (claps and Q&A questions) is computed based on the sum of all live streams, regardless of the sessions.
Note: Changing the status of the Track stats per session setting in the Attendance tracking and Stats data types AFTER the sync has started will result in an error. Please make sure that you have selected the correct setting based on the information provided above, prior to starting syncing.
What about test live streams?
A common practice when preparing an event with live streams is to use test live streams, in order to prepare and verify the platform set-up. These test live streams need to be excluded from the attendance tracking and engagement statistics that are collected via the SpotMe platform and sent back to Veeva.
Test live streams are always excluded from the data, whether the Track stats per session setting (as explained above in the How is the Attendance tracking and Stats data computed for live streams section) is checked or unchecked. However, the definition of a test live stream is different depending on whether the Track stats per session setting is checked or not for the two data types
- When the Track stats per session setting is checked in the two data types, SpotMe considers that test live streams are live streams that are not associated with agenda sessions in Backstage.
- When the Track stats per session setting is unchecked in the two data types, SpotMe considers that test live streams are live streams which have a duration of less than 11 minutes, or have less than 11 live attendees. Attendees that watch the recording, i.e. the video on demand, are not counted.
How are SpotMe to Veeva “walk-in” users handled?
To support walk-in attendees, in addition to the main SpotMe - Veeva integration module, you will need to install the Veeva walk-ins add-on module from the Marketplace.
The Veeva walk-ins add-on integration module is a native Veeva functionality that is completely independent from the SpotMe API. More information on Veeva walk-ins
“Walk-in” attendees are participants that are not imported into the SpotMe workspace from Veeva. Instead, these participants are for example:
- Added to the SpotMe workspace manually or uploaded via XLS.
- Imported to the SpotMe workspace via a third party integration.
- Registered to the SpotMe event via an external portal or a SpotMe registration page.
These attendees, once added to the SpotMe workspace user list, are collected as part of a Walk-in users to send to Veeva data type:
This Walk-in users to send to Veeva data, along with the Attendance tracking and Stats data, is sent to the Veeva platform after the event. The walk-in attendee data can then be reconciled against any existing CRM “Accounts” and “Users” in Veeva.
Note: Only “walk-in” users that have the “active” or “hidden” status in the SpotMe workspace are pushed to Veeva.
Walk-in attendees are created in SpotMe, and sent one-way to Veeva at any time when performing a synchronization. This can be done:
- Before the start of the event, for example to send back the created personalized URL (EM_Attendee_vod__c ID) that each attendee uses to access the SpotMe event application, and therefore perform full email invitation/management from within Veeva.
- After the event, for reconciliation within Veeva (including the Attendance tracking and Stats data).
“Walk-in” users are never imported back into SpotMe from Veeva.
Custom field mapping for walk-ins
To better support user/attendee reconciliation in Veeva, custom fields can be mapped to the Walk-in users to send to Veeva data type in order to capture additional information about the walk-in attendees.
Note: Custom field mapping can only be done on the Veeva Event Attendee object (EM_Attendee_vod__c).
For example, if you have a custom “ID” field in the your Veeva event for users, you can create it in the SpotMe event and add it to the Walk-in users to send to Veeva API data mapping:
By clicking on the button here you can create a new mapping:
For more information or support on field mapping, please refer to the Integration configuration page or reach out to SpotMe support.
In Veeva, users can use reports in order to access the Attendance tracking data (for the full event and per session) as well as the Stats data that was sent back from SpotMe.
Whether you are creating a new report or using an existing one, the type of the new report should include the “Remote Meeting Attendees” object in order to visualize the stats.
In the below example of a generated report, you can see the information as presented below:
Note: In this report, the Track stats per session checkbox setting is enabled in the two data types in Backstage (Attendance tracking and Stats), and therefore the SpotMe live claps and SpotMe live questions data is computed for individual sessions (as indicated in the Event Session column):
Event attendee: Status
This is the attendance tracking status for the entire event (i.e. the Status field in Veeva).
This is the individual session in the event. Each participant will have a separate line in the report per individual session in the event.
SpotMe attended session
This checkbox indicates whether the specific session indicated in the Event session column was attended or not by the relevant participant.
SpotMe live claps
This is the applause (number of claps) for the individual session specified in the Event session column and for the specified attendee.
SpotMe live questions
This is the number of Q&A questions entered for the individual session specified in the Event session column and for the specified attendee.
Support and troubleshooting
As part of troubleshooting, please note that while testing the synchronization between the two platforms, a clear message will be displayed to indicate if:
- Any incorrect or invalid credentials are used.
- The server URL is wrongly entered.
- Any required fields on Veeva are missing.
In case it is not possible to troubleshoot from the messages obtained, you can reach out to the SpotMe support team via Backstage, who will rapidly support by observing the server side logs and traces.
The SpotMe staff have all the required tools to rapidly pinpoint where the issue could be coming from.