Understanding PeopleSoft CRM and Microsoft Exchange Integration
This topic discusses:
PeopleSoft CRM and Microsoft Exchange integration.
Synchronization of contacts.
Synchronization of calendar entries.
Use of category.
Conflict resolution.
The PeopleSoft CRM and Microsoft Exchange integration provides enterprise users the ability to synchronize contact and calendar data between CRM and Exchange (data in Exchange is accessible to users through Microsoft Outlook). This integration is driven by Oracle Business Data Synchronization Server (BDSS), an Oracle Fusion Middleware synchronization technology service that facilitates data exchanges between different types of Personal Information Management (PIM) data stores, PeopleSoft CRM and Microsoft Exchange in this case.
Through this integration, contacts that are added or updated from the CRM system are synchronized to Microsoft Exchange and then Outlook. Calendar entries that are added, updated or removed from one PIM system are synchronized to the other system. Data synchronization takes place behind the scenes and requires no end-user intervention.
Data Synchronization Process Flow
BDSS is a synchronization service that enables server data stores to exchange and compare data. It is the center of a hub and spoke architecture in which different PIM systems synchronize enterprise data with one another through it. BDSS interacts with PIM systems using connectors, which are standard communication interfaces between the hub (BDSS) and its spokes (PIM systems). As a synchronization process begins, connectors pass changed data from PIM systems to BDSS to be processed. In the case of PeopleSoft CRM, the PeopleSoft connector retrieves changed data for users from the CRM system through the Contact and Calendar web services that the CRM system delivers. Data is then transformed into a compliant format and passed to BDSS. At the end of the process, connectors write the synchronized data that they receive from BDSS back to their PIM systems.
This diagram illustrates how data flows amongst BDSS and PIM servers in a synchronization process:
Image: Data Flow between PeopleSoft CRM and Microsoft Exchange and Outlook in a synchronization process
This example illustrates the fields and controls on the Data Flow between PeopleSoft CRM and Microsoft Exchange and Outlook in a synchronization process.
![Data Flow between PeopleSoft CRM and Microsoft Exchange and Outlook in a synchronization process](img/i-42c12a96n-733e.png)
Here is a sample synopsis of the synchronization process flow at runtime:
User Jane Doe updates a meeting of hers in her Outlook client.
User Stephen Ray creates a business contact in CRM.
The synchronization process is invoked in BDSS by a scheduler program as set up in the system.
BDSS performs a number of tasks for the synchronization process, which include:
Identifying the list of users to be included in the process and verifying that they are available for synchronization.
Connecting to the CRM and Exchange connectors respectively, asking from each of the two server systems for the set of records that have created or changed for each user since the last synchronization.
Contact data from CRM is extracted based on the users included in the process, the last synchronization date and time and the predefined dataset rules.
Calendar data from CRM is extracted based on the users included in the process and the last synchronization date and time.
Processing the data that was extracted from CRM and Exchange through their connectors.
Contact data from CRM is transformed to the Exchange-compatible format within the PeopleSoft connector, and is compared with the contact data that is collected from Exchange in BDSS. The comparison is done between contact pairs (for example, John Doe from CRM and John Doe from Exchange) that are mapped by their record IDs. The mapping table is stored in BDSS. In case of new contacts, no record ID mapping is available. New contacts are compared to Exchange contacts based on the predefined comparison fields (first name, last name and email address). As there are no Exchange contacts to compare to, these new CRM contacts will be created in the Exchange system later in the process.
Calendar data from CRM is transformed to a standardized internet calendar format (called iCal) within the PeopleSoft connector, and is compared with the calendar data from Exchange in BDSS. The remaining processing logic is similar between calendar entries and contacts.
Resolving any data conflict that arise in the process, and preparing the result data set to be updated in each PIM server.
As delivered, CRM records take precedence of Exchange records in case of data conflict.
Passing the result data set to corresponding connectors.
CRM and Exchange connectors receive their result sets and update the contact and calendar information for users in their servers accordingly.
The synchronization process is completed. User Jane Doe sees her updated meeting in CRM, and the contact that user Stephen Ray created is now available in his Outlook application.
Refer to the installation guide for information on installing the PeopleSoft CRM Personal Information Management Server and setting up synchronization in BDSS and PeopleSoft CRM.
See PeopleSoft Enterprise Customer Relationship Management Personal Information Management Server Sync Installation Guide
Note: The CRM and Exchange integration, also known as PIM Server Synchronization, is a licensed product offering. PeopleSoft CRM provides an installation option (called PIM Server Sync) for this integration on the General Options page. You can, for informational purposes, turn it on to indicate that the integration has been activated for the CRM system.
See General Options Page.
Scheduling of Data Synchronization
Oracle Business Data Synchronization Server provides a Java program (called DispatcherClient) that initiates the data synchronization process and this program can be called from a command line manually, or a scheduler program (for example, Windows' Scheduled Tasks or Oracle Enterprise Manager Scheduler) to run automatically on a schedule. Refer to the BDSS documentation for more information on scheduling data synchronization processes.
See Oracle Fusion Middleware Administrator's Guide for Oracle Business Data Synchronization Server
Users
To include users in the synchronization process, they need to be defined in both the BDSS and CRM systems as part of the setup.
See Specifying PIM Users for Synchronization.
In addition, create a SuperUser in the CRM system. This user is served as an administrator user who has all the necessary security privileges to facilitate data synchronization, including access to the contact and calendar web services as it is being used to invoke these web services on behalf of PIM users at runtime.
Do not create the SuperUser as a PIM user in both systems, and do not make any calendar updates using this SuperUser ID.
Refer to the installation guide for instructions on how to create PIM users and the SuperUser.
See PeopleSoft Enterprise Customer Relationship Management Personal Information Management Server Sync Installation Guide, Setting Up Synchronization in BDSS and PeopleSoft CRM
The CRM and Exchange integration enables you to synchronize contact information between them. This table lists the actions and the directions of data flow that are supported when synchronization takes place:
Action |
From |
To |
Result |
---|---|---|---|
Add Contact |
CRM |
Outlook |
New contact added to Outlook with the Peoplesoft category. |
Outlook |
CRM |
Not synchronized to CRM. |
|
Update Contact |
CRM |
Outlook |
Updated contact modified in Outlook. The contact has the Peoplesoft category. |
Outlook |
CRM |
Updated contact (who was originally created in CRM) modified in CRM. The contact has the Peoplesoft category. Contacts who were originally created in Outlook are not synchronized to CRM. |
|
Delete Contact |
CRM |
Outlook |
Not synchronized to Outlook. |
Outlook |
CRM |
Not synchronized to CRM. |
Contact Creation
In PeopleSoft CRM, users access the My Contacts component to add new contacts to their own contact list. When a synchronization session completes, users can see from their Outlook clients the contacts that were created from CRM between the synchronization that was just finished and the one prior to that. These contacts are tagged with the Peoplesoft category, a hard-coded filter criterion used to identify data that is subject to synchronization. In addition to contacts on user's contact list, the synchronization process also propagates to Outlook systems contacts that are referenced in leads and opportunities to which the user is assigned. PeopleSoft leverages dataset rules to conclude the set of contacts that need to be synchronized in Exchange for each user.
Note: Users in CRM can add contacts through other means, such as the Person component or any other transactional pages that support the creation of contacts (using Quick Create), for example, Leads and Opportunities.
Contacts created in Outlook are not synchronized to CRM.
Contact Update
When users modify contact information, such as name, email address, phone and physical address, in the CRM system, the same change is synchronized to Microsoft Exchange and reflected in the Outlook clients for users who have access to those contacts based on dataset rules.
Similarly, contact updates made from Outlook are available in CRM after synchronization. However, instead of overwriting old contact information with the new update, modified information is added as new entry for contacts in CRM. Old contact information remains in the system. This behavior is similar to making a modification to the contact phone and email information in the Lead or Opportunity component.
As mentioned previously, contacts created from Outlook are excluded from the synchronization process. Therefore, the process supports updates of contacts who were originally created from CRM only; updates of contacts that were created from Outlook are ignored. Contact updates coming from the Exchange system are based on the sync data of BDSS (the BDSS hub knows which contacts were created originally in the CRM system). Contact changes that have been synchronized to CRM from Outlook will be synchronized back to all Exchange users who have access to the contacts.
Note: When adding phone numbers in Outlook, enter them in this format: xxx-xxx-xxxx. Do not include spaces.
When adding addresses in Outlook, you must enter countries or regions for them to be synchronized to CRM.
Contact Deletion
Contacts deleted in Outlook are not synchronized to CRM.
Contact records cannot be deleted from CRM, however, they can be removed from users' contact lists (on the My Contacts page). Removal of contacts from a user's contact list is not synchronized to Exchange.
Contact Method Deletion
Removal of contact methods (for example, phone, email address, or physical address) from contacts in CRM is synchronized to Exchange.
Use of Datasets to Filter Contacts for User's Outlook
To help control the distribution of data more effectively and shorten the time needed for data synchronization, datasets are used as a data filtering mechanism in the synchronization process. Outlook users receive a subset of contact data from the CRM system that pertains to their individual business use based on dataset rules, which are a series of sub queries of views that select the newly added or updated contact data that gets downloaded and updated in the Outlook system during synchronization.
PeopleSoft delivers these dataset rules under the RBP_CONTACTS dataset for synchronization on contacts; any given user receives data updates on their Outlook applications for:
Contacts that are created by the user.
Contacts on leads in which the user is present.
Contacts on leads that are created by the user.
Contacts on opportunities in which the user is present.
Contacts on opportunities that are created by the user.
With these dataset rules in place, the user will not see any contacts that do not pertain to his or her work on Outlook at the end of the synchronization.
The use of datasets does not apply to calendar entries.
Refer to “Using Datasets, Defining Dataset Rules” in the Active Analytics Framework product documentation for more information on datasets.
Field Mapping
A field mapping identifies the field a piece of data gets extracted from the source system and the corresponding field it gets displayed in the target system at the end of a synchronization run. This table lists the delivered field mappings between PeopleSoft CRM and Outlook contacts:
Contact Name:
PeopleSoft |
Outlook |
---|---|
First Name |
First |
Name |
Full Name |
Last Name |
Last |
Middle Name |
Middle |
Title |
Job title |
Contact Address (mapping applies to the Business, Home and Other types):
Address Type |
PeopleSoft |
Outlook |
---|---|---|
Business, Home, or Other |
Address 1 |
Street |
Address 2 |
Street |
|
Address 3 |
Street |
|
Address 4 |
Street |
|
City |
City |
|
State |
State/Province |
|
Country |
Country/Region |
|
Postal |
ZIP/Postal code |
Note: Data from the Address 1, Address 2, Address 3 and Address 4 fields is merged into the Street field during synchronization. Each PeopleSoft address line appears as separate lines in the Street field. When Outlook addresses are synchronized to the CRM system, data in the Street field is parsed into Address 1, Address 2 and Address 3 fields respectively.
Contact Phone Number (mapping applies to the Business, Home and Cellular and FAX types):
Phone Type |
PeopleSoft |
Outlook |
---|---|---|
Business |
Number |
Business Local number |
Home |
Number |
Home Local number |
Cellular |
Number |
Mobile Local number |
FAX |
Number |
Business Fax Local number |
Contact Email (mapping applies to the Business type):
Email Type |
PeopleSoft |
Outlook |
---|---|---|
Business |
Email Address |
|
Additional Fields:
PeopleSoft |
Outlook |
---|---|
Customer If a contact is associated with multiple customers (companies), names of these companies are concatenated (separated by semicolons) into the Company field in the Exchange system after synchronization. |
Company |
Department |
Department |
The CRM and Exchange integration enables you to synchronize calendar entries between them. This table lists the actions and the directions of data flow that are supported when synchronization takes place:
Note: Invitees in CRM are called attendees in Outlook.
Action |
From |
To |
Result |
---|---|---|---|
Add Calendar Entry |
CRM |
Outlook |
New calendar entry added to Outlook with the Peoplesoft category. |
Outlook |
CRM |
New calendar entry added to CRM as:
|
|
Update Calendar Entry |
CRM |
Outlook |
Modified calendar entry updated in Outlook. |
Outlook |
CRM |
Modified calendar entry updated in CRM. The entry has the Peoplesoft category. Important! Only changes that are made by the creators of calendar entries get synchronized to CRM. Changes made by invitees are not synchronized to CRM. |
|
Delete Calendar Entry |
CRM |
Outlook |
If an invitee cancels a calendar entry in CRM, it is marked as Cancelled in CRM, and is removed from Outlook if synchronization has already taken place, or it is not created in Outlook if synchronization has not occurred. The owner sees the entry in Exchange, which shows who declined the entry. If the owner cancels it, it is removed in Outlook. |
Outlook |
CRM |
Calendar entry is marked as Cancelled in CRM if it is deleted by its creator. If an invitee of the entry deletes it from Outlook after the entry is synchronized to CRM, the entry shows the invitee status as Assigned in CRM. If an invitee of the entry deletes it from Outlook before the entry is synchronized to CRM:
|
In the CRM system, calendar entries are types of tasks. This table lists the delivered PeopleSoft task types and for those that are supported in this integration, they are mapped to Outlook as calendar items:
PeopleSoft Task Types |
Outlook |
---|---|
Appointment |
Calendar |
Meeting |
Calendar |
Reminder |
Not supported in this integration |
All Day Event |
Not supported in this integration |
Phone Call |
Not supported in this integration |
To Do |
Not supported in this integration |
Note: For calendar entries that are marked as all day events, they are synchronized into the CRM system as meetings with the start date and time set to 12:00 am of the meeting date and the end date and time 12:00 am of the following day.
Calendar Entry Creation
In PeopleSoft CRM, users access the My Calendar component to add new calendar entries. When a synchronization session completes, users can see from their Outlook clients the calendar entries that were created from CRM between the synchronization that was just finished and the one prior to that. These entries are tagged with the Peoplesoft category, which is a hard-coded filter criterion used to identify data that is subject to synchronization if you set up the integration to synchronize calendar entries based on category.
In addition to calendar entries that they created, users also see on their calendars entries which they are invited to attend.
Exchange users can create calendar entries from their Outlook clients as well. Calendar entries are synchronized to CRM and appear on the calendars of their owners and invitees.
See Use of Category
Calendar Entry Update
When owners of calendar entries modify information, such as date, time, subject and invitee list, in the CRM system, the same change is synchronized to Microsoft Exchange and reflected in the Outlook clients for users who are either the owners or the invitees of the entries.
Similarly, calendar entry updates made from Outlook by their organizers are available in CRM after synchronization.
Note: Invitees can make changes to calendar entries but the updates are not synchronized to the other system. An exception to this is when invitees decline the calendar invitation; this status change will be synchronized to the other system at the end of the process.
See Use of Category
Calendar Entry Deletion
In PeopleSoft CRM, calendar entries cannot be removed from the system, rather, they can be cancelled by owners or declined by invitees. After synchronization completes, corresponding calendar entries are removed from the Exchange calendars of their owners and invitees.
Both owners and attendees can delete their calendar entries on Outlook. If an entry is deleted by the owner, it appears as cancelled in CRM; if it is deleted by an invitee, it still appears in CRM and the status of the invitee is set to Assigned (status is not synchronized).
Field Mapping
This table lists the field mappings between PeopleSoft CRM and Outlook calendar entries:
PeopleSoft |
Outlook |
---|---|
Subject |
Subject |
Status: Cancelled Completed In Progress Open |
All replicated regardless of status. |
Private |
Private |
Priority High Medium Low |
Priority High High Low |
Start Date |
Start Date |
Start Time |
Start Time |
Time Zone |
Sets to current user's time zone by default |
End Date |
End Date |
End Time |
End Time |
Location |
Location |
Owner (for Meeting) Provider Group (for Appointment) |
Value is used to validate the task ownership and is not replicated. In the case of appointments, the members of the provider group are automatically populated as invitees. |
Repeats |
Recurrence |
Reminder |
Reminder |
Description |
Description |
Invitee |
Invitee |
Calendar Entries with Invitees/Attendees
In PeopleSoft CRM, users can create meetings (a type of calendar entry supported in this integration) which include invitees. When a meeting is synchronized to Microsoft Exchange, it appears on the calendars of its owner (creator) and its invitees (if they are Exchange users). CRM meeting invitees must be CRM contacts and defined as PIM users but they do not have to be contacts of the meeting owner or contacts in Exchange. For invitees who are not Exchange contacts, they will not be created as Exchange contacts at the end of synchronization.
Similarly, users can create calendar entries that include attendees in Microsoft Exchange. When an Outlook meeting is synchronized to the CRM system, the first name, last name, full name and email address of each attendee are used to find a matching contact in the CRM system. This matching occurs only for the first time when the calendar item is created in both systems and they haven't been synchronized previously. Each identified attendee appears as an invitee of the synchronized calendar entry in CRM. For those that cannot be identified as PeopleSoft users or contacts, they are shown in the calendar entry as external invitees if each of them is associated with an email address.
Invitee Status in Meetings
When an invitee accepts a meeting invitation, make sure that the acceptance is done in both systems manually or the calendar entry can go out-of-sync. This type of status change (acceptance of invitation) is not supported in the synchronization process.
As for declining a meeting invitation, the invitee only needs to do it in one system; this type of status update gets propagated to the other system at the end of synchronization. In other words, if you decline a meeting (or you're removed from a meeting as an invitee) in one PIM system, the meeting entry is removed from the other PIM system after synchronization completes.
Meetings with non-PeopleSoft Owners
In Microsoft Outlook, users (who are not registered users in PeopleSoft, also referred to as external users) can create calendar entries with PeopleSoft users or contacts as attendees and these calendar entries can get synchronized to PeopleSoft CRM. These calendar entries are created as appointments in CRM, and the owners of these appointments, who are not PeopleSoft users, are displayed in the invitee lists as external users, with their owner position being replaced by invitees in the appointments who are valid PeopleSoft users. For information purposes, each of these appointments will have the email address of its non-PeopleSoft owner recorded as message detail.
Note that calendar entries of this nature can get out-of-sync as the changes that are made by the original owner (who is not a PeopleSoft user) are not synchronized to the other system because he or she is no longer the current owner of the entry, and the synchronization process only honors owner-initiated changes.
Meetings with non-PeopleSoft Attendees
If Outlook calendar entries include attendees who are not PeopleSoft contacts or users, these individuals are synchronized to the CRM system as external invitees provided that they have email addresses associated with them.
Recurring Calendar Entries
Both PeopleSoft CRM and Microsoft Exchange support the creation of recurring calendar entries, events that occur daily, weekly, monthly and yearly. Users can also specify the range of recurrence. Recurring entries created in one system are populated to the other system at the end of synchronization.
In PeopleSoft CRM, when you make and save a change (for example, description, location, or start date) on a recurring calendar entry, the system asks if the change is to be applied to the current instance or current plus all future instances of the series. If you select the latter option, all (not just current and future) instances of the series are updated in the Exchange system when synchronization completes.
PeopleSoft CRM Calendar Repeating Options
The PeopleSoft CRM Calendar supports a number of repeating options for calendar entries on the Task Repeating Options page (RB_TSK_REPEAT_SEC), including daily, weekly, monthly, yearly and custom. This table lists the recommendations for setting up recurring calendar entries in CRM:
Repeating Type |
Recommendation |
---|---|
Custom - the ability to schedule a calendar entry to occur on specified dates |
Not supported. Do not configure custom repeating options for calendar entries that are subject to synchronization. |
Daily, Monthly and Yearly |
If a calendar entry is set up to recur, use only the Don't Move value for the If Date Occurs on a Non-Work Day option. |
Monthly and Yearly |
Do no use the Count from End of Month option. |
Note: If you set up recurrence for a calendar entry in Outlook to not have an end date, the entry will be created in CRM to recur for six months.
Data Translation for Time Zones in Calendars
PeopleSoft delivers 19 time zones in the system, whereas Java supports about 600 time zones. These two sets of time zones are delivered in PeopleSoft as codeset setup data. The codeset groups are RBP_ECRM (with 19 PeopleSoft-supported time zones) and RBP_BDSS (with 600 Java-supported time zones) and the mappings are predefined. If deemed necessary, modify the mappings to suit your business needs.
Refer to “Applying Filtering, Transformation and Translation, Understanding Data Translation” in PeopleTools: Integration Broker product documentation for more information on codesets.
Data Translation for Contact Information
PeopleSoft also delivers codeset groups to provide mappings of country, title and state values between systems. They are PIM and INFOSYNC and are referenced in the PSFT_PIM and PSFT_INFOSYNC nodes respectively for this integration.
When PeopleSoft contacts and calendar entries are synchronized to Exchange successfully, they are displayed in Outlook with a PeopleSoft category. The category helps users to identify, for example, contacts that were brought to Outlook from PeopleSoft as opposed to the ones that were created in Outlook or any other PIM systems. Also, if a customer has multiple PIM systems interacting with BDSS and wishes to limit PeopleSoft contacts and calendar entries to the Exchange system only, they can set that up in BDSS using the PeopleSoft category.
Data filtering occurs in BDSS. Customers can configure BDSS to filter on the PeopleSoft category for the synchronization process.
Important! By default, all calendar entries are synchronized regardless of category. However, you can set up the filter capability that is in place to synchronize calendar data based on the category of PeopleSoft.
The BDSS profiles database has a setting called EarliestCalendarDate and it is used during the initial synchronization of calendar data from PeopleSoft to Exchange systems. The integration looks for and processes calendar entries that are created after this date. The default value of this setting is January 01, 2011.
When a user creates a contact or a calendar entry in CRM and it later gets synchronized to Exchange, it is displayed in the user's Outlook client along with the PeopleSoft category. In the case when the user creates a calendar entry in Outlook, and BDSS is set up to use filter, the user must tag the entry with the PeopleSoft category for it to be picked up by the synchronization process.
As for updates, contacts and calendar items are subject to synchronization (from Exchange to CRM) if they are in the PeopleSoft category and BDSS is set up to use filter.
A data conflict can arise if the same contact record (sharing the same first name, last name and email address) or the same calendar entry (sharing the same subject and start time) is shown to have been added for the first time in both CRM and Exchange servers in a single synchronization session. Data conflicts are handled by BDSS based on the priority that is set for each connector domain involved in the integration. In this integration, the Contact and Calendar domains of the PeopleSoft connector are configured with a higher priority than those of the Exchange connector. In other words, when a conflict occurs, the record of the PeopleSoft side always wins.
Suppose that you add a contact called John Doe in both CRM and Exchange systems and these newly created contacts are captured in the same synchronization process. This is considered a data conflict because of the matching first and last names in these new records. As a result, the contact record from CRM wins and is used for John Doe in the Exchange system. The conflict has no impact one the CRM system because new contacts from Exchange are not synchronized to CRM.
Here is another example. You add a contact called John Doe in the CRM system and a contact named Johnny Doe in the Exchange system. These new contacts are captured within the same synchronization process and John Doe from CRM is replicated to the Exchange system as a result. Later, you modify the contact name from Johnny Doe to John Doe in the Exchange system. In this case, these contacts are not considered in conflict even though they share the same first and last names, because they are not added to the system for the first time.
The system creates a log entry after a data conflict is resolved.