Online Attendee Registration

Customers can use the Veeva Attendee API to register attendees for an event via an external source, for example, a portal site. In order to register Attendees online, the following configuration is required:

  1. Grant all users FLS edit to the Online_Registration_Status_vod field on the EM_Attendee_vod object.
  2. Grant all users FLS to the Online_Registrant_Count_vod field on the EM_Event_vod object.
  3. Set the Attendee Validation rule on the Event_Attendee_vod object to AND(LEN( Account_vod__c ) < 1,LEN( Contact_vod__c ) < 1,LEN( User_vod__c ) < 1,LEN(EM_Attendee_vod__c) < 1,LEN(EM_Event_Speaker_vod__c) < 1, ISBLANK(TEXT(Walk_In_Status_vod__c)), ISBLANK(TEXT(EM_Attendee_vod__r.Online_Registration_Status_vod__c)))

Customers can optionally configure required fields for registering an attendee at the individual event level. Create an Event Rule for the event type(s) and countr(ies) for which you want to enforce these required fields for online registrants. The following permissions are required by the admin user:

  • Record type permission to the Online_Registration_Fields_vod record type on the EM_Event_Rule_vod object
  • FLS edit permission to the Online_Registration_Fields_vod field on the EM_Event_Rules_vod and EM_Event_vod objects

The Online_Registration_Fields_vod field includes a list of fields that are required to register an attendee for the event. This is in addition to any fields that are marked as required in the SFDC database. The format is a semicolon-delmiited list of field names, for example: ;FieldName1;FieldName2;...FieldNameX;

When creating an event, based on the applicable Event Rules, the configured fields are copied from the Rule to the Event. However, the required fields can be overridden by modifying the list of fields on the Event itself.

Veeva provides an Attendee Portal API to allow adding attendees to an existing event.

Retrieving Base URL – Portals Service

Portal data is available through APIs on servers and release versions specific to the customer’s org. Veeva provides a central portal service used to retrieve the base API for all subsequent portal calls.

Send a GET request to https://portal-api.veevacrm.com/portals. Use Basic authentication with the Salesforce username and password.

The response contains the base URL for one or more supported Portal types. Each entry includes a name and a URL. The “name” field for the Events Portal is “eventManagement.”

Sample Response:

{

"status": 0,

"message": "",

"data": [

{

"name": "eventManagement",

"url": "https://someServer.vod309.com/26.0.0/api/v1/em/"

},

{

"name": "orderManagement",

"url": "https://someServer.vod309.com/26.0.0/api/v1/om/"

}

]

}

It is important to use the Portal Service to retrieve the base URL at least once per session. Veeva routinely releases software upgrades and reconfigures its cloud infrastructure. As a result, all components of the base URL are subject to change, without notice.

Response Headers:

There are two authentication-related response headers from the Portal Service, sfSession and sfEndpoint. These can be provided as headers in future API calls, along with the Basic Auth header. This re-uses Salesforce session information and saves some of the overhead of user-password login on later calls.

Saving Attendee

URL: BASE_URL/events/{eventId}/attendees

Path Parameters: eventId is the CRM Id of the relevant Event

Action: POST

Description: This endpoint takes a payload of data and saves it to CRM. The eventId passed is used to validate against the required fields from the configured Online_Registration_vod__c field on the EM_Event_vod__c object. If the account, user, and contact lookups are all blank, AND the Online_Registration_vod field is blank, the Online_Registration_vod field will automatically default as Needs_Reconciliation_vod.

Sample Request:

POST https://someServer.vod309.com/26.0.0/api/v1/em/events/a2sL0000000Tbyf/attendees

JSON Payload:

{

"type": "EM_Attendee_vod__c",

"Email_vod__c": "sarah@veeva.com",

"Last_Name_vod__c":"Jones",

"First_Name_vod__c": "Sarah",

"Event_vod__c":"a2sL0000000Tbyf",

}

Sample Response:

{

"status": 0,

"message": "",

"data": {

"Id": "a2gL0000000dklBIAQ"

}

}

 

Once attendees are inserted via API, if the inserted record is inserted with a status of Needs_Reconciliation_vod, It may be necessary to reconcile the online registrant with an existing CRM Account or user. The reconciliation process uses the same “Attendee Reconciliation” page used to reconcile walk-in Attendees. See Walk-in Attendees for more information.