Sales Force Automation

Similar documents
Pega Sales Automation for Insurance

Access Oracle Sales Cloud on smart phones, tablets and Outlook to maximize selling time.

Certified Senior System Architect

Certified Senior System Architect

Product Composer System

Customer Timeline - New in Summer Web Lead Capture - New in Summer Built-In Dashboards - New in Summer 2012

Certified Pega Business Architect

release 240 Exact Synergy Enterprise CRM Implementation Manual

Sun Bear Marketing Automation Software

Sage CRM 7.3 Release Preview

Certified System Architect

Collaborative Forecasts Implementation Guide

Oracle Sales Cloud. What's New in Release 8

Focused Sales Management

Dare to COMPARE. Tour de Force. Be Efficient. Be Effective. CRM Product Evaluation: Feature Comparison Worksheet Table of Contents

CRM for Business Intelligence

Your Customer Is In Control

EXAM BLUEPRINT PRPC Certified Lead System Architect Version 6.2

CRM for Business Intelligence

Certified Next-Best-Action Consultant

CHAPTER 8: MANAGING LEADS

Salesforce Customer Portal Implementation Guide

Experience Business Success Invest in Microsoft CRM Today

Oracle Siebel Marketing and Oracle B2B Cross- Channel Marketing Integration Guide ORACLE WHITE PAPER AUGUST 2014

32 Benefits of Pipeliner CRM

MICROSOFT DYNAMICS CRM Roadmap. Release Preview Guide. Q Service Update. Updated: August, 2011

BPMonline CRM User Guide

Version Comparison MAXIMIZER CRM Published By. DATA SHEET Version Comparison 1

Managing Customer Relationships with SAP Business One

CHECKLIST: IS YOUR CRM EVOLVED?

Certified Lead System Architect

Customer Relationship Management

An Oracle White Paper September Oracle Team Productivity Center

EMC Smarts Network Configuration Manager

User Guide QAD Customer Relationship Management. Introduction Sales Management Marketing Management Customer Service Reference

QAD Customer Relationship Management Demonstration Guide. May 2015 EE2015 / CRM 6.7

setup and provide drill-down capabilities to view further details on metrics and dynamic updates for a real-time view of your business conditions.

Campaign Management Implementation Guide

Sales Force Automation with Microsoft Dynamics

The following are two things that cannot be done with a lead until it has been converted to a prospect or account:

Personalised view of metrics for an instant snapshot of your business. Wizard-Driven Dashboards

White Paper. Certified Pega Customer Service System Architect EXAM BLUEPRINT

Focused sales management

Marketing Automation with Microsoft Dynamics

IBM Unica Leads Version 8 Release 6 May 25, User Guide

Enhancing productivity, enabling. Success. Sage CRM

Sales Force Automation

OpenText Information Hub (ihub) 3.1 and 3.1.1

What's New Feature Guide

c360 Product Catalog

How To Use Netsuite With Openair

A Guide to Sharing Architecture

Enhancing Productivity. Enabling Success. Sage CRM

License Management App 2.1 Administration and User Guide

Customer Relationship Management

Compare your version to Maximizer CRM 12

Infor SyteLine Sales/CRM User Guide

for Sage 100 ERP Business Insights Overview Document

Customer Relationship Management Training Guide. C100 Customer Relationship Management

Cloning Opportunities for Next Year Donation Tools Task Reminders Volunteers Leads and Lead Conversion Reports...

2009, AdventNet Inc. All rights reserved. Product Customization

v7.1 Quick Start Guide

Zoho CRM. Getting Started. Guidelines for Beginners

This document is provided "as-is". Information and views expressed in this document, including URLs and other Internet Web site references, may

ANGLER CRM ANGLER Technologies India Pvt. Ltd.

Compare versions with Maximizer CRM 12: Summer 2013

Certified Senior Pega Marketing Consultant

Business Insight Report Authoring Getting Started Guide

Sage CRM 2015 R1 Release Preview

Administration and Business Collaboration. User Manual

CRM for Sales. Increase productivity and sales effectiveness to optimise opportunities and drive revenue. Templates

Oracle Sales Cloud Reporting and Analytics Overview. Release 13.2 Part Number E January 2014

Non-Profit Solution for Microsoft Dynamics CRM

Perfect Customer Relationship Management (CRM) System

Fixed Scope Offering for Implementation of Sales Cloud & Sales Cloud Integration With GTS Property Extensions

35 Examples How Sales Teams Benefit from Microsoft Dynamics CRM

IBM Global Business Services Microsoft Dynamics CRM solutions from IBM

CRM Quick Reference Guide

Customer Analytics. Turn Big Data into Big Value

Sage CRM. Communicate, Collaborate, Compete with Sage CRM

Overall Solutions and Features

Next-Best-Action Marketing

SAP Digital CRM. Getting Started Guide. All-in-one customer engagement built for teams. Run Simple

Business Intelligence with Maximizer CRM 10:

Last Updated on 11/06/

Dynamics CRM for Outlook Basics

Client Management WalkThrough

User's Guide for Maximizer Web Access

Customer Relationship Management

BusinessObjects Planning Excel Analyst User Guide

Introduction to ProSMART: Proforma s Sales Marketing and Relationship Tool How to Log On and Get Started

Gain a competitive advantage.

ORACLE CRM ON DEMAND INSURANCE DISTRIBUTION MANAGEMENT SOLUTION

Kaltura Extension for SharePoint User Manual. Version: Eagle

Transcription:

Sales Force Automation Implementation Guide 7.12

Copyright 2014 Pegasystems Inc., Cambridge, MA All rights reserved This document describes products and services of Pegasystems Inc. It may contain trade secrets and proprietary information. The document and product are protected by copyright and distributed under licenses restricting their use, copying distribution, or transmittal in any form without prior written authorization of Pegasystems Inc. This document is current as of the date of publication only. Changes in the document may be made from time to time at the discretion of Pegasystems. This document remains the property of Pegasystems and must be returned to it upon request. This document does not imply any commitment to offer or deliver the products or services described. This document may include references to Pegasystems product features that have not been licensed by your company. If you have questions about whether a particular capability is included in your installation, please consult your Pegasystems service consultant. For Pegasystems trademarks and registered trademarks, all rights reserved. Other brand or product names are trademarks of their respective holders. Although Pegasystems Inc. strives for accuracy in its publications, any publication may contain inaccuracies or typographical errors. This document or Help System could contain technical inaccuracies or typographical errors. Changes are periodically added to the information herein. Pegasystems Inc. may make improvements and/or changes in the information described herein at any time. This document is the property of: Pegasystems Inc. One Rogers Street Cambridge, MA 02142-1290 Phone: (617) 374-9600 Fax: (617) 374-9620 www.pega.com Document: Software Version: 7.12 Updated: October 2014

Contents About This Document... 4 Intended Audience... 4 Guide Organization... 4 Chapter 1: Sales Force Automation Overview... 5 Key Features... 5 Chapter 2: SFA Default Settings and Architecture... 7 SFA System Administrator Account... 7 Documenting Your Application... 8 Ruleset Hierarchy... 8 Key SFA Rulesets... 9 SFA Application Definitions... 10 PegaCRM-SFA... 10 PegaCRM... 10 Key SFA Work Classes... 10 Key SFA Data Classes... 12 Class Structure... 13 Entity Class: Data and Work Class Hybrid... 13 Work Class: Work class... 14 Social Media Classes... 14 Management Classes... 14 Data Classes... 15 Portal Classes... 15 Inheriting from SFA Classes... 15 Class Inheritance Diagram: Acme-Entity-Account... 16 Class Inheritance Diagram: Acme-Work-SFA-Opportunity... 16 Work Object Prefixes and Naming Conventions... 17 Predefined Organizations, Divisions and Units... 17 Operators and Access Groups... 17 Work Parties... 18 Follower... 18 SFA Tables in the PegaRULES Database... 19 Work and Data Tables... 19

Chapter 3: SFA Capabilities... 22 Account and Contact Management... 22 SFA Implementation for the B2B Sales Model... 22 SFA Implementation for the B2C Sales Model... 23 Entity Relationship Management... 24 Hierarchical Relationships... 24 Many-To-Many Relationships... 25 Activity and Task Management... 31 Lead Management... 34 Capture... 36 Route... 38 Nurture... 39 Qualify... 42 Convert... 43 Reporting... 45 Opportunity Management... 45 Sales Methodology... 49 Forecast Management... 50 Bulk Upload... 54 Mobile... 59 Navigating to the Landing Page... 59 Desktop View... 61 Sales Manager Portal Mobile View... 62 Collapsible Navigation on Mobile... 63 Desktop vs Mobile Functional Availability Matrix... 64 Sales Goals Management... 65 Time Period Maintenance... 67 Technical Implementation Details... 70 Sales Goal Entry... 71 Sales Goal Measurement... 75 Local Campaigns... 79 Executing a Local Campaign... 79 Territory and Sales Team Management... 91

Business Territories... 91 Operator Access Management... 95 Sales Dashboards...105 Reports...113 Tools...114 Chapter 4: SFA Integration... 125 Outlook to SFA Integration...125 Email Integration...125 Appointment Integration...127 VCard Integration...127 SFA to Exchange Appointment Integ only ration...135 Web Services Integration...141 Social Media Integration...144 Twitter Integration...144 Twitter APIs...146 LinkedIn Integration...152 Request Token...155 Facebook Integration...159 Creating a New Application...162 Dynamic System Settings for LinkedIn, Twitter & Facebook...165 Chapter 5: Building a Dynamic UI... 168 SFA Sign-On Screen...168 SFA Portal Class Structure...169 Basic Portal Configuration...170 Harness Configuration...170 Top Panel...171 Left Panel...171 Center Panel...173 Recent Gadget...173 Following Gadget...175

About This Document This document describes the design, structure and features of the Sales Force Automation (SFA) Framework and how to deploy and extend SFA v7.12 for initial implementation and production use. Intended Audience Business Managers responsible for evaluating the framework solution and possess a general, non-technical understanding of its features and capabilities. Project Managers / Business Analysts responsible for implementing a framework solution that can be applied to specific business requirements, and ensures compliance and continuous improvement across organizations. System Architects / Application Developers responsible for building, maintaining, modifying, and extending the framework. System and Database Administrators responsible for the installation, security, and ongoing operational functions of the framework such as access, tuning, and troubleshooting. These users are presumed to be experienced with system operations. Guide Organization This guide contains the following sections: Chapter 1: SFA Overview Provides an overview of the SFA Framework. Chapter 2: SFA Default Properties and Provides the default setup when you install Architecture the framework, and describes the SFA product architecture. Chapter 3: SFA Capabilities Lists the capabilities of the SFA 7.12 Framework. Chapter 4: SFA Integration Chapter 5: Building a Dynamic UI Describes the different types of integration supported by SFA and any configuration needed to set up the integration. Lists the UI changes in SFA 7.12 and provides an overview of the changes made to the enduser portals 4

Chapter 1: Sales Force Automation Overview Typical SFA applications capture data, but do not really help your reps sell. By marrying traditional SFA capabilities with real-time guidance, intelligent automation, and agile processes that instantly adapt to best support each sales opportunity, Pega SFA can automate the entire sales cycle from prospecting and lead assignment to sales stage promotion and product fulfillment. Drive Intelligent Selling - Make every sales person on your team your sales superhero. Deliver Next Best Offers - Sell the right product, at the right time, to the right customer. Mobilize Your Sales Force - Close a sale anywhere, on any device. Connect with the Rest of the Enterprise - Put customer-centric sales at the heart of your enterprise. Sell as a Team - Sell together. Sell based on relationships. SFA puts sales at the heart of an enterprise, maximizing the value of existing systems, eliminating unnecessary manual tasks, assigning essential processes and decisions to the appropriate teams, and enabling you to easily configure and execute the sales process to match your business need. SFA: Supports and empowers your sales team by guiding them through the complete sales process, dynamically suggesting the next appropriate activity or action required to close a deal and build a relationship. Automates the complete sales process from the lead prospecting to product fulfillment. Leverages familiar business tools to model and adjust the sales process without the need for code or customization. Rapidly adapts to changing market conditions, products, organization structures, and sales goals that are key to any sophisticated selling process. Maximizes visibility into current sales results and future forecasts directly in Sales Process Manager, not through disconnected tools. Easily integrates to and orchestrates existing systems to maximize investments and ensure seamless execution. Enables sales personnel through social tools and mobile device support, wherever they may be. You can deploy SFA anywhere, in the cloud or on premise. Key Features Account and Contact Management Activity and Task Management 5

Lead Management Opportunity Management Forecast Management Outlook Integration for Email and Appointments Social Integration for Twitter, Facebook & LinkedIn Native Social Collaboration (Pulse) Mobile Portals Sales Goals Management Local Campaigns Territory and Sales Team Management Configurable Dashboards Configurable Customizable Reports 6

Chapter 2: SFA Default Settings and Architecture This chapter covers out-of-the box features and properties that are ready to use after installing the SFA framework. Toward the end of the chapter are descriptions of the changes you need to make to develop the framework beyond what is provided in the default framework. The topics covered in this chapter are: SFA System Administrator Account Documenting Your Application Ruleset Hierarchy SFA Application Definitions Key SFA Work Classes Key SFA Data Classes Inheriting from SFA Classes Configuring SFA Application Settings Work Object Prefixes and Naming Conventions Operators and Access Groups Access Roles and Privileges SFA User Portals SFA Tables in the PegaRULES Database Work Tables SFA System Administrator Account As a system administrator, you should use the following Administrator ID to access the framework: Operator ID: SFASysAdmin Password: install You can find a complete list of users installed with the framework in the Operators, Access Group, and Portals topic of this chapter. Use this Administrator ID to access and work with the framework rules and processes. 7

Documenting Your Application Before you or a member of your development team begins the deployment process, it is important to understand which classes, rules, and flows already exist. All PRPC applications have a self-documenting feature that enables you to develop and document your application simultaneously, making it easy to continue where you left off. Use the Application Document Wizard with this guide to better understand what has been delivered and what has changed after deploying SFA to your test or production environment. You can access the wizard by selecting Designer Studio > Application > Tools > Document. For more information on using of this feature, click on the wizard display. When you launch the application landing pages from the Designer Studio, you can access to information about your application and SFA. As you extend SFA, a recommended best practice is to complete the Full Description and Usage fields on the History tab of each rule form. Enter information in these fields to describe the rule and its use. This information is displayed in some landing pages for reference. You can then create a list view report that shows the information for each rule. Ruleset Hierarchy The framework is built on a number of application rules. Application rules define an ordered set of rulesets and versions that together identify the parts of a framework layer. In addition, application rules relate an application's objectives, use cases, requirements, and actors for cases that are created as part of the PRPC Direct Capture of Objectives (DCO) capabilities. You can view a list of the application rules and their rulesets that form the framework from the Designer Studio by selecting the Designer Studio > Application > Structure > RuleSet Stack landing page option. The RuleSet Stack tab displays the high-level ruleset stack for each application rule defined in the framework. Expand an application to list its ruleset. 8

Rulesets are arranged hierarchically with general rules at the bottom and more specific rules at the top. The rulesets at the bottom are standard in all applications and control the underlying PRPC operations; while the rules towards the top control SFA application functions. Ruleset order is critical to rule resolution. To find the appropriate rule, PRPC begins with the top ruleset in the list, and if the rule is not found, it moves down to the next ruleset. Key SFA Rulesets PegaCRM-SFA and PegaCRM: Basic building block rule sets for SFA. Most of the other rulesets are built on top of these. PegaCRM_SFA_BulkUpload: Contains the rules related to the SFA bulk upload functionality. Provides the ability to upload bulk objects into the system as part of regular maintenance and as part of conversion processes that a company may need to do when rolling out the application. PegaCRM-SFA_WebServices: Contains the rules that support the creation or update of work objects through web services. PegaCRM-SFA_Pulse: Contains the rules that support Pega SFA s native social collaboration tool. 9

PegaCRM-SFA-UserManagement: This ruleset was present in SFAv6.3 and merged into the product rulesets, that is, PegaCRM and PegaCRM-SFA from the SFA 7.12 version. Supports user access and administration functionality. PegaCRM-SFA-M2M: Enables visibility into relationships between contacts and accounts or organizations. This ruleset was present in SFA 6.3 and merged into the PegaCRM and PegaCRM-SFA rulesets in SFA 7.12. PegaFW-Email: Provides Outlook integration capabilities for email, appointments, and VCARD integration. PegaFW-Social: Supports social integration for the social tools: LinkedIn, Facebook, and Twitter. PegaFW-OAuth: Includes rules related to authorization functions. PegaFW-JSON: Contains rules to support the JSON object type. PegaFW-Gadgets: Contains the rules for logging and display of the bulk upload process. SFA Application Definitions SFA ships with several pre-defined applications. Applications are arranged hierarchically and inherit from each other. Applications built on top of Pega SFA inherit SFA rulesets and therefore inherit SFA features. PegaCRM-SFA Built on the PegaCRM application. Contains the rulesets related to the main functionality of SFA. PegaCRM Built on the PegaRules application. Contains the core rulesets required to use basic SFA framework functions and defines the standard use cases and classes. Key SFA Work Classes The classes in PegaCRM-Work- contain SFA-specific, work-related rules. Work classes organize the different types of work you require. You can view the SFA work class structure from the Application Explorer. The classes, which provide the core functionalities of Sales Force, such as Opportunity, Lead, and Task are kept under the PegaCRM-Work- class level. Core sales force automation entities such as opportunities, leads, and tasks are housed at the work class level. 10

The PegaCRM-Entity class contains the Account, Contact, and Organization classes. 11

Key SFA Data Classes The PegaCRM-Data class and its subclasses contain the SFA rules associated with data. The following diagram shows the class inheritance of the data classes and the subclasses they support. 12

Class Structure Entity Class: Data and Work Class Hybrid You can create classes as work objects to support additional work object features such as attachments, audit history, and notes. These classes are generally displayed on the right side of any work object on the pyworksummary page. These work objects are used with the main work object to support additional features. This simplifies the maintenance of features such as competitor, partner, product, and airport code. They can be handled separately from main work objects such as opportunity and lead. 13

S. No. Class Database Table 1 PegaCRM-Entity-Org crm_entity_org 2 PegaCRM-Entity-Account crm_entity_account 3 PegaCRM-Entity-Contact crm_entity_contact PegaCRM-Entity-* // derived classes are SFA defined constructs Work Class: Work class Main work object classes. S. Class Database Table No. 1 PegaCRM-Work-SFA-Lead crm_work_lead 2 PegaCRM-Work-SFA-Opportunity crm_work_opportunity 3 PegaCRM-Work-Task crm_work_task 4 PegaCRM-Work-Appointment crm_work_appointment Social Media Classes Classes starting with PegaSocial-FW- correspond to the Social media functionality. S. Class Database Table No. 1 PegaSocial-FW-Facebook pc_work_social 2 PegaSocial-FW-LinkedIn pc_work_social 3 PegaSocial-FW-Twitter pc_work_social 4 PegaSocial-FW-SocialDetails crm_link_socialdetails Management Classes Classes deriving from PegaCRM-Mgmt- support Competitors, Products, and Partners functionality. PegaCRM-Mgmt-Competitor PegaCRM-Mgmt-Partner PegaCRM-Mgmt-Product PegaCRM-Mgmt-DataLoad 14

Data Classes Classes which hold the data the functionalities to add, update, and delete. S. Class Database Table No. 1 PegaCRM-Data-Competitor crm_data_competitor 2 PegaCRM-Data-Partner crm_data_partner 3 PegaCRM-Data-Product crm_data_product 4 PegaCRM-Data-DataLoad 5 PegaCRM-Data-RecentWork crm_data_recentwork 6 PegaCRM-Data-Forecast crm_data_forecast 7 PegaCRM-Data-BusinessTerritory crm_data_businessterritory 8 PegaCRM-Data-AirportCode crm_data_airportcode PegaCRM-Gadget-Dashboard abstract class includes various gadgets SFA created for dashboard, forecast and so on. Portal Classes These three classes contain the user-specific navigation tabs and user interface: PegaCRM-Portal-SFA-SalesManager PegaCRM-Portal-SFA-SalesOps PegaCRM-Portal-SFA-SalesRep Inheriting from SFA Classes When you deploy SFA in your environment, it is important that your class structure inherit from the SFA class structure. The following table provides an example of how the Acme Company inherits from SFA work classes, using both directed and pattern inheritance. See the PRPC Help and the PDN for more about setting up directed and pattern inheritance at your site. Example Class Acme-Entity-Account Inherits From Acme-Entity- (pattern) Acme-Work-Opportunity PegaCRM-Entity-Account (directed) Acme-Work- (pattern) PegaCRM-Work-SFA-Opportunity (directed) 15

Class Inheritance Diagram: Acme-Entity-Account Class Inheritance Diagram: Acme-Work-SFA-Opportunity 16

Work Object Prefixes and Naming Conventions Work objects (cases) capture and process information about an individual unit of work or case. When SFA initiates a work object, a predefined model rule populates key property values that directly affect the work object. As work objects progress toward resolution, core property values, such as priority and status, are updated to reflect the current state of processing. Each work object has a unique.pyid property that is computed by combining a system-assigned number and a.pyworkidprefix prefix, defined by the work object model. The table below lists the prefixes used by SFA. ID Work Object Class Description Prefix Con- PegaCRM-Entity-Contact Used for contact work object Acc- PegaCRM-Entity-Account Used for account work object Org- PegaCRM-Entity-Org Used for organization work object Lead- PegaCRM-Work-SFA-Lead Used for lead work object Opp- PegaCRM-Work-SFA- Used for opportunity work object Opportunity Task- PegaCRM-Work-Task Used for task work object P2P- PegaCRM-Link-P2P Used for Relationship C2A- PegaCRM-Link-Entity-C2A Used for relationship between contact and account C2O- PegaCRM-Link-Entity-C2O Used for relationship between contact and org AFF- PegaCRM-Link-Affinity Used for affinity work object Predefined Organizations, Divisions and Units SFA comes with the following predefined organization, division, and units. You can display this chart by selecting the Designer Studio > Org & Security > Organization > Organizational Chart landing page option. Operators and Access Groups The framework is installed with a standard set of operators, access groups, and user portals. The password is installing. These allow operators to access the Designer Portal to view and configure the underlying processes and rules or launch business 17

processes from a variety of user roles including managers and users. Operator ID Access Group Portal Rule SFASysAdmin PegaCRM-SFA:SysAdmin Developer SFASalesOps PegaCRM-SFA:SalesOps SFASalesOps_Web SFASalesRep PegaCRM-SFA:SalesRep SFASalesRep_Web SFASalesManager PegaCRM-SFA:SalesManager SFASalesManager_Web SFAServices PegaCRM-SFA:Services User DefaultLocalSalesOps PegaCRM-SFA:LocalSalesOps SFASalesOps_Web DefaultSalesManager PegaCRM-SFA:SalesManager SFASalesManager_Web DefaultSalesRep PegaCRM-SFA:SalesRep SFASalesRep_Web Work Parties Work party rules define which participants (roles) can be associated with a work object. Each work object can contain multiple roles in addition to the required originator role. Some roles may participate with multiple occurrences. This rule also controls how and whether you can add parties using the user forms. The preconfigured processes support the following work party. Follower SFA User Portals This section contains sales portal layouts that, based on your role, you see on your home page when you log in to SFA. It also includes a table of gadgets and functions associated with each of the user portals: Sales Ops Portal - Sales Operational portal Sales Rep Portal - Sales Representative portal Sales Manager Portal - Sales Manager Portal Tabs for work objects such as Organization, Account, Opportunities, Contacts, and Leads are available for all portals. 18

Gadgets such as Recent, Following, and Pega Pulse are available for all the portals and all the screens. Recent All recently viewed items (Contacts, Organizations, Sales plays, Leads, Opportunities, and Activities) are available for quick and easy access within Pega SFA. Additionally, the application lets you edit or perform work on multiple items simultaneously. You never lose what you are working on while working on other items in the system Following Follow any work objects that you want to monitor or have easy access to. Pega Pulse (Collaboration) Create working groups to share information and collaborate on documents. Instantly find and communicate with the key individuals users who need to help to close deals. Controls such as Quick Create Menu and Search are available for all the portals. The view is controlled, based on your access permissions. SFA Tables in the PegaRULES Database When SFA is installed, the following tables are added to the internal PegaRULES database to manage work data and rules. You can view and modify the schemas for these databases using the Database Schema wizard that is launched from the Designer Studio > System > Data Base > Modify Schema landing page. Work and Data Tables Entity classes These are classes whose instances represent things in a sales system. They inherit from the class Work- to avail the PRPC features, such as audit history and attachments, that all work objects receive. Their processes are not complex and involve a single step to edit a specific attribute or the related component.crm_entity_account: crm_entity_org crm_entity_contact Basic work classes These are classes whose instances represent work objects that go through different sales processes: crm_work_opportunity crm_work_lead crm_work_task 19

crm_work_appointment Relationship class These are classes whose instances represent many-to-many relationships between entities of specific types. Classes also inherit from work- to have features on flow processing available for creating and maintaining these instances. crm_link_socialdetails crm_link_affinity crm_link_c2a crm_link_c2o crm_link_p2p Data classes These are classes whose instances represent data instances in the system. Most of the supporting data is entered and maintained by the sales operations team for use when creating work objects. crm_data_competitor crm_data_partner crm_data_product crm_data_recentwork crm_data_forecast crm_data_businessterritory crm_data_operatoraccess crm_data_airport_codes crm_data_relationshiptypes crm_data_airportcode crm_document_email crm_management_dataload Index classes These are classes that hold data related to embedded pages or page lists of work objects created and populated by PRPC declare index rules in the SFA RuleSets.fw_index_recipients. crm_index_affinityvisit crm_index_linkedobjects crm_index_operemail crm_index_opptycompetitors 20

crm_index_opptycontacts crm_index_opptypartners crm_index_opptyproducts crm_index_orgdomains 21

Chapter 3: SFA Capabilities Account and Contact Management Sales teams need to have access to all the account information to engage customers effectively and systematically grow key accounts into profitable long-term relationships. With Pega SFA, sales personnel get the complete picture of each account, with updated opportunity details, access to all related information including contacts, communication history, activity history, notes and much more. The application allows the sales person to store, find, and track all the information and communication activities linked to contacts involved in the sales cycles. The sales person can quickly and easily access critical data such as contact information, related sales documents, active opportunities, associated activities and get social insights. Pega SFA provides the following classes for efficient management of Accounts and Contacts and relationships in B2B and B2C sales interactions. PegaCRM-Entity-Org (Organization) PegaCRM-Entity-Account (Account) PegaCRM-Entity-Contact (Contact) SFA Implementation for the B2B Sales Model An Organization represents a legal entity in the corporate world. Data can be enriched by external service providers. Instances can be used to build and display a corporate hierarchy and display corporate linkage information. Contacts can be attached to the right level in the hierarchy. An Account is an economic decision-making unit. A logical group to which a product or service is sold CRM sales objects such as Leads or Opportunities are linked to The relationship between an organization entity and an account entity is one-to-many. This allows for granular and custom security configurations. For example, an organization (belonging to one geographical territory) can contain multiple accounts corresponding to different projects and multiple sales personnel operating in the same geographical territory. However, different business lines can own and have exclusive read access to these two different accounts. 22

Instances of Organization and Account are typically created and maintained by Sales Operations personnel to ensure that overlapping or duplicate entities are not created. However, you can configure this in the operator access instance of every operator. Different implementations may choose to use different data enrichment services and enrich the data through agreed modes as described in their service contracts. Apart from standard attributes such as name and address, additional properties have been added to the data model to capture some additional attributes: ExternalID - Similar to a (D-U-N-S) number / CAPIQ for organizations around the world as a global standard for business identification and tracking. Site - Information about the account s location, such as single location, Headquarters, or Branch NAICS Code - The six-digit North American Industry Classification System (NAICS) code is the standard used by business and government to classify business establishments into 20 industries NAICS Description - A brief description of an organization s line of business, based on its NAICS code Ownership - Ownership of company, for example, public or private SIC Code - Standard Industrial Classification code of the account s main business categorization SIC Description - A brief description of an organization s line of business, based on its SIC code Year Started - The year the company was established or the year when current ownership or management assumed control of the company These attributes are exposed as columns in tables. You can easily update them through the bulk upload tool available for sales operations personnel. SFA Implementation for the B2C Sales Model The Pega SFA Framework requires a contact entity to be associated with an Organization entity. While this makes sense for B2B interactions (a contact is an employee of a company being sold to), as B2C interactions involve dealing and selling to individual people, some of the entities in this model have to be re-purposed for B2C needs. A bucket Organization entity is created for all individual accounts and contacts. For each individual being sold to, an instance of Account and an instance of Contact are created. Vertical frameworks or implementations of Pega SFA would have specialized screens that mask the creation and maintenance of these two entities - individual accounts and contacts. 23

The crmconverlead flow rule involves flow actions that allow you to convert a Lead to an Opportunity and create an Account and a Contact in one step of this flow. Entity Relationship Management Building and managing relationships is a key component of any SFA implementation. PegaSFA provides a framework that comes with standard relationship types and that you can easily extend for new types of relationships. Class Structure PegaCRM-Relationship (Class Group) PegaCRM-Relationship-Hierarchy-(Abstract class for hierarchical relationships) Database Table CRM_RELATIONSHIP Field Description Field EndDate FromRole LinkedFrom LinkedTo LinkedtoClass Path StartDate ToRole Description End date for this relationship Specifies the role from Parent work object whom it linked to Child work object where it linked to Class to which it linked Stores the complete hierarchy of the linked object Start date for the relationship Specifies the role to Hierarchical Relationships A sample implementation of hierarchical relationships is in building the n-tier organization hierarchy. Pega SFA allows building and viewing the corporate linkage by associating an Organization as a parent to another, creating a parent-child relationship. Relationship records are instances of class PegaCRM-Relationship-Hierarchy-Org and are stored in the CRM_RELATIONSHIP table. 24

Many-To-Many Relationships The following relationships model many-to-many relationships between entities in the SFA system. Contact-To-Organization (C2O) Contact-To-Account (C2A) Contact-To-Contact (P2P) (Sales) Operator-To-Contact (Affinity) C2O / C2A / P2P The Relationships tab of a Contact object provides all the contacts relationships grouped by the type of relationship. 25

All associations with respect to a contact are captured as a relationship. When a contact is created and associated with an instance of organization, a C2O relationship is created with a relation type of Primary. Similarly with the account provided, a C2A relationship of type Primary is created. This allows the contact to be related to other organizations and accounts (if required), but with different relationship types. For example, when a contact C1 is created with O1 as organization and A1 as account, then SFA implicitly creates: Contact C1 Primary C2O object for C1 an O1 And Primary C2A objects for C1 and A1 As the Primary relationship type is used internally and implicitly by SFA itself, you are not shown the Primary relationship type anywhere in the user interface. Relationship types are managed by Sales Operations through the Tools>Manage Relation Types gadget. 26

You can connect a contact to other contacts. You can establish a peer-to-peer relationship (P2P) using the Add Contact link under the Relationships tab of Contact. It has the same set of fields as C2O or C2A. C2O Creation Process: There are two ways that you can associate any active contact with an organization in the system: C2O Creation-I: By clicking on the Add Org link on contact s Relationship tab C2O Creation-II: By clicking on the Add Contact link on the organization s Contact tab C2A Creation Process: To establish a C2A link between a contact and an account, first establish an active C2O relationship between the Corresponding contact and the account s organization Similarly, the expiration of C2O flow checks for the any dependent C2As. C2ACreation-I: By clicking on the Add Account link on the contact s Relationship tab C2O Creation-II: By clicking on the Add Contact link on the account's Contact tab Details of establishing a C2O or C2A Link and field details: C2O Creation -I: When you click the Add org link of the Relationship tab of Contact, the M2M screen appears. 27

You can choose an existing organization or create a new organization. Edit Flow of C2O/C2A: Editing the flow for these link objects is simple where you can edit a few of the details or expire the link by providing an end date. C2O s expiration has a restriction as shown below. If you try to expire a C2O, which has some dependent C2As, then an error appears indicating that there are dependent C2A as listed. 28

Classes: PegaCRM-Link-Entity- PegaCRM-Link-Entity-C2O PegaCRM-Link-Entity-C2A PegaCRM-Link-P2P DB Tables: crm_link_p2p Affinity crm_link_c2o crm_link_c2a The Affinities feature of SFA allows the sales people to establish relationships between a member of the selling organization and customers or contacts. The affinity instance includes details such as Strength, how close the relationship is, the customer s likelihood of taking call, accessibility for meeting requests, and so on. Fields Detail: Field Affinity for Contact Org Account AirportCode Title Relationship Description Sold Before At Likelihood of Call return Strength Affinity Since Last Face-To-Face Returns Email Meeting Accessible Description Operator with whom this Affinity is associated (It s the logged-in User always) Contact or customer with whom SFA is linking the above Operator Organization of the Contact Account of the contact Airport code of contact Title Details of Relation between the Operator and the customer or contact. Did this contact buy when at a different company or organization Likelihood of customer return Strength of the Affinity How long is the relationship? Last face-to-face date Does the contact respond to email? Is the contact accessible for meetings? 29

Have Sold to them Before Notes Suggested Visits Did user sell to the contact or customer in the past? Include any other information or details List of suggested visits with contacts Class: PegaCRM-Link-Affinity DB Table: crm_link_affinity My Affinities top tab shows the list of Affinities established for the logged-in Operator with various contacts in the system. From My Affinities tab, you can: View a list of affinities that you are associated with; also provides ability to open the affinity and edit the information. Add a new affinity You can manage the affinities using the Edit and Close flows. You can view the affinities from the Affinities tab of organization, account, and contacts. The following shows the Review screen of the Affinity. 30

Only those users with the following access group permissions can see the Suggested Visits button. You need to add this role name in the user s access group to provide the permission to the required user. Access Role Name: PegaCRM-SFA:SuggestedVisits Privilege: ShowAllForSuggestedVisits Activity and Task Management Sales and Marketing staff spend a great deal of their time talking with customers. Ultimately the goal of these conversations is to sell product; however any particular conversation can touch on subjects such as the customer s business challenges, budget and timeframe, product demos, and so on. These conversations may take place across a number of different channels email, phone, in person, LiveMeeting, even chat clients. Since so much time is spent on this communication, management needs to make sure that the time is being spent well. Historically sales reps have been required to submit Call Reports where the rep details the interaction with the customer. The report is read by the manager and filed away. Call Reporting is traditionally seen as indispensable by sales management and as busy work by sales reps. One of the main goals must be to make this feature simple and ensure that the benefit is seen by both management and reps as providing robust reporting and intent-driven functionality. A customer activity is any meaningful communication between a sales rep and a customer or potential customer that is designed to drive a sale or develop a professional relationship. A ten-minute phone call to introduce the customer to your company and describe the products offered is a customer activity. A 1-hour discussion about sports, holiday plans, and the summer blockbuster is not. A customer activity involves at least one contact and at least one member of the sales team. It has a purpose, an outcome, an interaction date, and may have follow-up tasks. The activity should also be related to an account or opportunity. Fields Detail: Field Subject Date Communication type Related To type Related To What was the outcome? Customers Description Subject for the interaction made Date on which interaction takes place The channel taken for interaction such as email, mobile, and inperson Specify to which work object the interaction has been made Name of the work object Specify the final outcome List all the customers who participated in the meeting 31

Internal Staff Follow-Up Activities List all the internal staff people who joined the conversation Specify the follow-ups needed, after this interaction Class Structure: PegaCRM-Work-Task-CustAct The Activity functionality is part of the product and is shipped with the PegaCRM and PegaCRM-SFA rulesets. Flow: crmcreate 32

Activity: InitializeCustomerActivity Description: Dummy activity, implement anything pre-activity. Activity: CreateToDo Description: Loop through follow up task list and create new task for each follow up entries. Activity: UpdateStatus Description: Update the status of the work object to Resolved-Completed. The following shows the Activity page. 33

The following shows the Review screen. From one activity, you can create another activity work object. You can create activities from Opportunity, Contact, Account and Org, and associated from these work objects. Data Page: Declare_crmActivity Description: Here Load Activity has been configured as data source. Activity: crmopenactivity Lead Management Pega Sales Force Automation (SFA) enables organizations to manage its lead lifecycle end-to-end. 34

Pega SFA provides you a flat-list view of the leads that exists in the system on each portal it provides. You can view this list by clicking on the Leads tab in the left navigation pane. In the Leads screen, click on any of the leads to open the lead object in the Review screen. 35

Pega SFA improves operational efficiency and sales effectiveness by marrying core sales force automation functionality with Pega s trademark process management engine. Capture Pega SFA supports multiple lead-capture strategies: Manual lead input Quick Create menu on top of each user portal enables you to create a lead manually. Bulk import Real-time integration with Pega Next Best Action Marketing Once you import the Pega Next Best Action Marketing adapter rulesets, you can create leads in SFA system through local campaigns or programs functionalities. Web service access for real-time integration with third-party marketing automation A lead creation is exposed as a web service in Pega SFA. You can easily configure leads to reflect data that is relevant to your business. Marketers or Sales Representatives can create leads manually by inputting key lead information by clicking on Lead in the Quick create link at the top of the portal. 36

Marketers or Sales Reps can import leads in bulk, matching source data to Pega SFA fields. In a Sales Operations portal, to bulk upload the leads: 1. Click the Tools link on the left vertical navigation panel. 2. Click Bulk Upload to launch the harness; 3. Select Lead from the Upload Type drop-down list. 4. Choose the CSV/XML file containing the leads information. 5. Click Create. 37

Route You can automatically route leads to the correct individual or team upon capture, expediting the sales process. You can configure routing and delegate to the users of Pega SFA, creating a dynamic business environment where the technology aligns with the business policy. You can set up notifications and work lists to alert representatives of new leads. 38

Marketing Ops or Sales Ops teams can use Pega s decision logic to set up routing rules so that leads are assigned to the correct individuals upon entry. Nurture You can use local campaigns in SFA to drive marketing campaigns or sales strategies. Local campaigns offer a high degree of flexibility so you have control over each detail of an offer. You may qualify, disqualify, or convert leads based on the result of the campaign. You can configure process flows to define the appropriate actions based on campaign response. 39

You can easily maintain the details of an offer. 40

You can create email templates based on corporate designs to use in the campaign. 41

Qualify As lead progresses through its lifecycle, the owner may qualify or disqualify the lead. To assist in the qualification process, Pega s rules engine provides lead scoring, giving team members more insight into the value of an incoming lead. Sales Reps can qualify Marketing-qualified leads in one click by changing the stage for the lead. You can launch the following screen by selecting Take Action > Edit on the review screen of a lead. 42

Convert The last stage of the lead management process is converting the lead to an opportunity or contact on the appropriate account. 43

You can convert leads to new opportunities, existing opportunities, new contacts, or existing contacts. Sales Reps can convert a lead in a manner that makes the most sense for the business. To convert the leads, the sales reps launches the following screen by selecting Take Action > Convert Lead on the Review screen of a lead. 44

Reporting Pega SFA delivers with robust reporting to gauge the effectiveness of the lead management process. Through reporting and other data visibility advantages, organizations can improve their business performance. Opportunity Management The opportunity contains the information for every deal you are tracking, such as opportunity amount, stage, source, and expected close date. The opportunity is the core of your sales process. To gain visibility into your pipeline, you need to make sure that your sales reps actively track their deals and update the opportunity fields with accurate information. Sales managers can see how the sales organization is performing, and the sales reps will not have to spend hours putting together reports and sales projections. The quality of the sales process has a huge impact on success. 45

Opportunity Management allows you to construct a made-to-measure sales methodology to suit your sales processes. Your sales employees are trained through the steps of an ideal sales process from identifying the lead to closing the opportunity. Click the Opportunities tab in the left navigation pane to display the opportunities page. In the Opportunities Screen, click on the any of the opportunity to display the Opportunity Object. 46

Details Tab Fields Detail Field Name Short Name Description Amount Close Date Stage Probability Forecast Category Source Must Win Account Owner Territory Age Partners Competitors Products Description Name of the Opportunity Short Name of the Opportunity Description of the opportunity. Estimated total sales amount. Date when you plan to close the opportunity. Current stage of opportunity based on selections you make from a predefined list, for example, Prospect or Proposal. Likelihood that opportunity will close, stated as a percentage. Forecast category of the Opportunity Source of the opportunity, for example, Advertisement, Email, or Web. Company really wants to win Name of the account to which the opportunity is linked. Assigned owner of opportunity. Territory with which the opportunity is associated. Age of Opportunity in days, that is, from creation to closure. Partners of the Opportunity We can track competitors in the opportunity. Specific product or service that is purchased and delivered to the prospect as it relates to that specific sale. Contacts Tab List all the contacts associated with this opportunity. Activities Tab You can add the tasks and activities for the opportunity and display all the tasks and activities associated with the opportunity. 47

Emails Tab Associated emails with the opportunity from the email object are displayed, as shown in the following screenshot. Appointments Tab Associated appointments with the opportunity from the appointment object are displayed, as shown in the following screenshot. 48

Leads Tab This List shows the leads that are converted to this opportunity. Stage History Tab It tracks the changes in the Amount, Stage, or Close Date for the opportunity. A new entry is added to the list with the name of the operator who made the change and the update time. Sales Methodology Every stage describes how close you are to making the sale. You define the specific probability of closing that opportunity in each stage of the opportunity. This probability measures the assurance in closing a specific opportunity for this opportunity stage value. Opportunity Stage Description Qualification The sales rep is currently interacting with the candidate to determine if a sales opportunity exists. Analysis After determining that the candidate has interest in the products or services, the sales rep now brings out the prospect s business problems. Proposal The sales rep delivers the proposal or the price quote to the candidate. Decision After finding that there is a match between the prospect s business problems and the company s products and services, the sales rep now identifies the decision-makers necessary to close Probability 10% 25% 50% 75% 49

Negotiation Won Closed this opportunity. The sales rep reviews and negotiates the proposal with the prospect. The sales rep has won this opportunity, and there is a new customer. This stage can be because of any one of the reason from Duplicate, Lost or Suspend. 90% 100% 0% The following decision table is used for holding the probability values corresponding to the stage. Forecast Management Forecasting provides Sales Management a summarized and realistic view about whether certain deals are likely to close based on the input of managers through the reporting or territory hierarchies. The overall capability sets could be categorized along the following lines: Ability for Territory owners in the hierarchy to override the three critical values related to opportunities (Stage, Amount, Close Date) and set a Forecast category on each opportunity Ability to represent the Forecast to Sales management according to fiscal quarters and Forecast categories, with the ability to drill down Appropriate security measures to ensure override values and Forecasting capabilities are only shown to the right levels in the territory manager tree 50

Forecast is a graph representation of all the opportunities the user is working. It is used for analysis, understanding the pipeline, and planning. You can forecast by clicking the Forecast tab. Forecast displays the four quarters of the fiscal year and the forecast categories. The number at the cross-section of two values is the total opportunity amount for those opportunities that fall in that category. To view a different year, you must adjust the filter. You can select a territory for which you want to see a forecast from the autocomplete, which shows the list of territories you have access to view a forecast. To see the forecast values for all the opportunities you own, you can select Owned by me in the autocomplete list. 51

By selecting the grand total value, a list of all your opportunities for fiscal year 2012 appears below. You can open aach opportunity by selecting the name from the list. To update your forecast, select Update Stage from the Take Action menu in the opportunity record. 52

The update stage editing mode allows you to change the stage, close date, and forecast category. The changes made here automatically appear in a refreshed forecast table. To override the forecast at various levels up the hierarchy of territories for an opportunity, select Forecast from the Take Action menu. Only operators who own a territory can override the forecast values at that level. Or an operator with the SFAForecastUpdateAll permission can update forecast for all opportunities at every level. 53

Bulk Upload Only Sales Operations users can perform data migration activities for various Work objects of SFA from other Sales force systems. Bulk Upload feature can be accessed from the Top Tab Tools > BulkUpload button. It allows the user to create the work objects in bulk by uploading an xml or csv file with appropriate data for Work objects. Screen1 From the screen below, you can upload an xml/csv with WO data such as contacts, accounts, and organizations. Screen2 The following screen allows you to map the properties of xml/csv file to the properties of Work object, that is, account, in this case. 54

Using this screen, you can create your own template of property mapping that can be reused when required. Available templates are listed on right side as shown in the screen. Screen3 After mapping the properties and taking default values into account, corresponding work objects are created for each row in the.csv file or.xml file. It also logs the status of the processed work object, if by chance any work object fails (may be mandatory field missed) while creation process, the log messages are recorded and shown. On click, it displays a dialog box, which shows the list of accounts or work objects created with its IDs. You can click on the ID of the work object to view the object created. 55

Technical Implementation Details: In order to map the properties in the 2 nd screen, the developer created field values at each class level of the work object. The following screen shows a list of field values that are part of the account work object. Extension point: So, if a new property is added in the future to the account object, you can add a new field value with field name as cmmaptoproperty and can map the value to this new field in the second screen of Bulk upload. 56

Rule Name: WorkType Rule Type: Field Value You need to add the required worktype as the field value. Rule Name: WorkTypeMap Rule Type: MapValue Need to modify the MapValue rule in order to add another worktype. Here you need to add required WorkTypeName and the WorkTypeClass, which will have the implementation of the work type. Rule Name: CreateWorkFromUpload RuleType: Activity You need to implement this activity in the WorkTypeClass that was declared in the map value WorkTypeMap. The entire logic, which creates the corresponding work object from the data uploaded from the Excel sheet, appears. 57

Rule Name: ValidationRuleName Rule Type: Map Value 58

You need to change this map value to add any validation rule for the work object that has been created. Mobile Customers expect a great browsing experience regardless of which device they use. Pega SFA introduces Omni-Channel UX, design-once, access anywhere user experience that opens applications to mobile and social channels. Pega SFA 7 is a Mobile-ready application. This means that the user interface can re-organize itself automatically according to the device viewing the application, so that the same application provides a great experience on any platform. SFA 7 supports a standards-based UI (HTML5 and CSS3). Existing Quirks mode applications can be easily upgraded to standards through a utility landing page. Navigating to the Landing Page Select the Designer Studio > User Interface > HTML5 Application Readiness landing page option. 59

Standards mode is rendered in Internet Explorer 8 and above, Safari, Chrome, and Firefox. Pega SFA 7 delivers a consistent, attractive, and intuitive user experiences across all channels of interaction. You can create your user interface once, deploy it on any device, in any locale, in any browser with no additional coding required. Pega SFA automatically generates the details the semantics specific to the browser and device environments (mouse-oriented, or fingeroriented features are automatically selected, depending on the device). Pega SFA automatically generates the user interface using current web standards, markup (HTML5), CSS, and Javascipt. In addition, native support for internationalization is included. With Pega SFA 7, you can provide your customers consistent, modern, and fluid end-user interaction desktop and mobile alike with less time and effort. This radically improves productivity for everyone working on user interfaces. For example, when the Sales Manager Portal is loaded in a desktop browser, you can quickly create a record, search for a record, and change the user by using a dropdown list located in the header. In addition, you see a robust navigation, Recent, Following in the left pane. The dashboard content exists in the main content area. 60

Desktop View On a mobile device, the Sales Manager Portal has a stripped-down version of the Sales Manager Portal. Yet the most prominent feature is still the same: a Quick Create icon and the user drop-down list in the header and dashboard content in the main content area. While you do not see the complex navigation up front, navigation can be accessed through a slide menu. 61

Sales Manager Portal Mobile View 62

Collapsible Navigation on Mobile 63

Desktop vs Mobile Functional Availability Matrix 64

Sales Goals Management Sales Goal Management enables organizations to plan and model sales strategies, ensure timely execution of sales initiatives, and ensure that both sales people and decision makers have the visibility into the sales performance through dashboards. 65

Specific capabilities include: Flexible customer-defined sales goals, such as quarterly sales quotas Tracking of goal attainment and performance with real-time dashboards and charts for both managers and sales reps Ability to measure goals against company-specific monthly, quarterly, or annual time frames. Management rollups and drill-downs across all levels of the sales organization Business benefits include: Incentivizing sales reps with real-time visibility into goal attainment on a daily basis Management insight into detailed team and territory attainment levels Early identification and mitigation of underperformance The out-of-the box functionality is configured to measure sales quota as revenue, measured over fiscal quarters. However, you can easily extend the reports and dashboards to track any metric that can be quantified by data in your SFA system, for example: Lead conversion rates Opportunity closure Customer activities 66

Time Period Maintenance Goals are measured against specific time periods. Before creating goals, set up the year, quarter, and month time periods against which you want to measure goals. Create the fiscal year time period first, and then create quarters as children to the fiscal year. If you measure goals by month, you can enter months for each quarter. Sales Operations user can use the Tools > Manage Time Periods option to create time periods or to view existing time periods. 67

View the list of existing time periods in a hierarchical format in a tree grid. Add a new Time period by clicking + (Add Icon) on the time period. You can add child time periods using the + icon on the right of the parent time period row. You may also modify an existing time period by clicking the time period. 68

Details of Fields: Field Name Start End Type Parent Description Name of the year, quarter or month. Start date of the time period. End date of the time period. Can be year, month or quarter If type is quarter, the parent year is required. If type is month, the parent quarter is required. Active If checked, this time period can be selected when setting up a sales goal. On the Implementation side, each time period is a data object of type PegaCRM-Data-TimePeriod. This includes properties as shown below. Database Table: CRM_Data_SalesGoal 69

Technical Implementation Details Activity: crmloadtimeperiods Description: Time periods appear through this activity. Activity: crmloadtimeperiodhierarchy Description: On clicking the specific time period, through defer load activity corresponding child time period is displayed. Activity: crmsavetimeperiod Description: To create a new time period or modify an existing time period. 70

Sales Goal Entry Sales goals give sales management the ability to plan quarterly or monthly goals for sales reps based on a variety of metrics. Goals, by default, are based on revenue but can be customized to be driven by other metrics such as Activities, Number of Opportunities, or Number of Leads created. Sales Operations can use the Operators tab to view the existing sales goal or to create a new sales goal. Click the Operators tab to display a list of operators. Click on the corresponding operators for which you want to define a sales goal. 71

Creation of new sales goal can be done by clicking + (Add Icon). 72

Details of Fields Field Fiscal Year Quarter Goal Type Quarterly Goal Month Goal Value Description Year for which you want to define the sales goal. Quarter of the fiscal year for which you want to define the sales goal. The type of goal. Revenue represents a sales quota. To extend this functionality for other types of goals, you can create a new custom goal type. Quarterly goal for the selected quarter for the selected goal type. Selection of the quarter displays the months. You can set a monthly goal for each of the months. On the implementation side, each time period is a data object of type PegaCRM-Data- SalesGoal. This includes properties as shown below. Database Table: CRM_Data_SalesGoal 73

Technical Implementation Details Activity : crmsavesalesgoal Description : Is called while creating a new sales goal and modifying an existing goal. Activity: crmopensalesgoal Description: To open the sales goal. 74

Sales Goal Measurement Once a goal has been entered, sales reps and managers can track their goal attainment from the Sales Goals quadrant in the SFA dashboard. This quadrant measures QTD Sales versus Quota using a curricular progress (or gauge) chart. 75

Drill-downs For a sales rep, the QTD Sales value on the dashboard drills down into the closed opportunities for the rep for the current quarter. For a sales manager, the QTD Sales value drills into a tree structure with rollups of sales versus quota across all levels of the manager s reporting structure. Technical Implementation Details Activity: SalesGoalAttaiment Description: To prepare goal attainment report data. 76

To prepare a drill-down report, use a Connect-SQL rule. Each of the supported databases has a corresponding Connect-SQL rule with the required query to attain the goal attainment results. Data Page: D_GoalAttainments Description: For maintaining the results. 77

DataSource: Load activity which loads the SalesGoalAttainment activity. XML Stream: crmgoalattainmentforoperatorgaugechart Description: To prepare a custom chart for displaying the goal attainment results in a chart form. Extending the Sales Goals Framework By default, Sales goals measure a sales quota as a revenue amount for a specific quarter. To extend this functionality, you can add new goal types. If you add a new goal type, for example, Leads Converted, the dashboard charts and drilldown views need to be revised to roll up lead conversions instead of closed opportunities. 78

Local Campaigns A Local campaign lets the sales rep start their own sales campaign that targets a small set of customers. From the SFA Sales Rep portal, the sales rep sees a navigation link and clicks on it to view the local campaign dashboard. In the local campaign dashboard, you can create a local campaign. It displays a list of offers available from NBAM through IAC. When the offer for the campaign is sent, the targeted customer can choose to accept, reject, or ignore the offer. The sales rep can see the results from the campaign dashboard and a marketing activity is recorded so it can be tracked. Requirements A local campaign requires the following: IAC NBAM Adapter raps Executing a Local Campaign 1. Log in as a Sales Rep. 2. Open the Sales Rep Portal. 3. Click the Campaigns link in the left side of the portal to display the Campaign Dashboard. 79

80

4. Click New Campaign at the top right. 5. Enter a local campaign name. 6. Select the SFAEmailOffer template to email an offer or select the SFASMSOffer template to send an SMS offer using the SMS offer flow. 81

7. Click Create. 8. Click the Edit link in the Campaign Information section. 82

9. Enter the objectives for the campaign 10. Click Edit in the Campaign Contacts section. 83

11. Select a contact with an email address 84

12. Click the Edit link in the Correspondence section to review the correspondence associated with the offer. 85

13. Submit it to accept the default email correspondences for the flow. Two out-of the-box offer flows do not require approval. So you can skip the approval step. 14. Click the Launch link in the Run section to begin the process of launching the campaign. 15. Click Submit to start the campaign now or optionally you can specify the time and submit. 86

16. Check the contact you selected. Make sure that you get a marketing activity created. 17. Check the organization s activity, if the contact is associated with an organization, shows. 87

18. Wait for about two to five minutes for the campaign to send the email or SMS. For SFAEmailOffer: a. Check if the email is sent to the customer. b. Open the email and either accept or reject the offer. A response appears in the browser. An email is sent to confirm your response. 88

For SFASMSOffer: a. Check the customer s mobile to see if you received a SMS message. b. Open the SMS and either accept (by entering Accept in the message) or reject the offer (by entering anything but Accept in the message). c. An email will be sent to confirm your response. Checking for results (for both email and SMS): a. Refresh the campaign in the campaign dashboard and verify that the numbers are updated according to the response. 89

b. Verify that the marketing activity, created for the contact, is updated with the result of the response in the outcome and status. c. Also if the result is accepted, verify that there is a lead created for the contact. 90

Territory and Sales Team Management Business Territories Territory Management capabilities establish the hierarchical structure for managing the sales organization and tracking the entities such as Accounts, Opportunities and Leads used in a SFA application. Key functionality in Pega SFA such as Forecasting and Operator access controls are based on the structure of the sales territories. Sales Operations users can dynamically create and manage the Sales Territory structure. A Sales ops user can view and edit their primary territory and children under that territory. A global sales ops user (someone whose primary territory is the root territory node in the tree) would be able to view and edit the entire territory tree structure. Business Territory Usage in SFA: Access to SFA objects is based on traditional PRPC Operator ID privileges as well as a new construct called Business Territory (BT). The privileges give the Operator blanket access to objects, while the ability to create, read, update, and delete specific objects is governed by the BT who owns the object. For example, the SFAUpdateAccount privilege grants authority to update SFA Opportunities in general. However, in order to update a specific account in the InsCoGroup BT, you must also be granted security to update accounts in that territory. 91

An implementation may organize themselves in an organizational structure, a geographical structure or any other hybrid type system. The BTs point to parent territories that allow for a hierarchical relationship. The different objects in SFA (leads, opportunities, orgs, contacts, and so on.) can have a direct relationship to a business territory (for example, an org has a territory property) or an indirect one (for example, a contact inherits the BT of its account or org). A Territory is an instance of the PegaCRM-Data-SFA-BusinessTerritory class. Details of Fields: Field Name Status Owner Delegate Description Name of the Business Territory Active or Inactive Operator or user who owns this Territory and responsible to manage the territory and its children Operator or user with delegated ownership 92

Parent Territory Is this a top Level Agency Node? Parent Business Territory Note: Except Global Territory (that ships OOTB) every territory is expected to have a parent territory Setting this flag to true creates default operator access records associated with this territory and its children. If operators whose primary territory is this territory (or its children) do not have explicit operator access configured, the default operator access defined at this level is used. The Business Territory Hierarchy Model uses the Path Enumeration approach. Each node in the hierarchy has two fields indicating its position in the hierarchy: the path or signature and level. Path is the list of nodes to traverse from the root to reach this node; level is the number of levels down from the hierarchy. A typical path would look like this: BT1\BT5\BT7 where BT1 is the root, BT5 is the root's immediate child, and BT7 is a child of BT5. A couple of notable data pages for reference are: 1) D_BusinessTerritory: Given a territoryid, looks-up the instance from the DB. 2) D_ChildBusinessTerritoriesOpen: given a territory s signature, active children territories. Clicking the Territories link takes you to a landing page that allows you to: View the list of existing territories in a flat list in repeat grid/hierarchical format in a tree grid. Switching between two modes is supported through the toggle icon on top right corner of the Territories List/Tree. Modify any territory details by clicking on any territory as below Add new territories using the Add Territory link in the top left corner. 93

List View: Tree View: 94

Operator Access Management You can add, modify, and manage operators from the Operators menu item in the SalesOps portal. The Add Operator button allows you to create new operators as shown in the following screen. An operator is an instance of the Data-Admin-Operator-ID class. 95

Fields Detail: Field Operator ID Password Title Operator Type First Name/LastName/Full Name Position/Job Title Phone TimeZone Email Default Locale Report To Default Territory Calendar Image Description UserID or operatorid. This will be used for login to SFA. Password that is used for login to SFA Title of the operator Type of user. Typically, this is mapped to various access groups of SFA. From the SFA end user portal, you can create only SalesMgr, Local Sales ops, and Sales Reps. Name of the operator or user Designation of the operator Phone Number Time zone of the operator Email of the operator Default Locale The individual to whom this user or operator reports. Used for showing the operator hierarchy Territory to which the user belongs. Based on this, all operator access permissions are provided by default, that is, until the operator access configuration is done for this user explicitly. Calendar of the operator Operator image can be uploaded from here Once the operator is created, it is shown in the list of operators. 96

Access to SFA objects is based on traditional PRPC Operator ID privileges as well as a new construct called Business Territory (BT). The privileges give the Operator blanket access to objects, while the ability to create/read/update/delete specific object will be governed by the BT that owns the object. In order to update a specific account in the InsCoGroup BT, the user must also be specifically granted security to update accounts in that BT. The Operator Access table holds the permissions that an operator has over the various objects within a BT. Each user has one instance in the table. A primary territory (BT) is defined and used for defaulting during creation of new objects as well as defining the BT of Contacts and Leads. For the objects, the ability to grant access is more robust. Lists of territories are entered and permissions to read, update and create are set. In addition, the owner of an object such as Lead, Opportunity, Account, or Org has full access to those objects irrespective of territory access. Log in with SFASalesOps privileges and click on the Operators tab. The Add Operator button allows you to add an operator and also provide access permissions to work objects for a territory and its children. Selecting the Create check box also selects the Read and Update privileges. Permissions for each operator are stored in the CRM_LINK_OPERATOR_TERRITORY table. The table is populated and maintained on specific user actions (for example, edit of operator access or parent territory change). 97

Table: CRM_LINK_OPERATOR_TERRITORY USER BT CLASS READ CREATE UPDATE skendall BT2 Account YES YES YES skendall BT5 Account YES YES YES skendall BT10 Account YES YES YES When rules: When rules that check for access use the D_OperatorTerritoryAccess data page by passing the appropriate parameters [for example, crmhasreadsecurity: D_OperatorTerritoryAccess [pyuseridentifier:declare_crmoperatoraccess.pyuseridentifier, TerritoryID:.TerritoryID, WorkType: @ObtainValue(tools, mysteppage, "DetermineWorkType")].ReadAccess == true] Report Definitions: Class Joins retrieve the list of territories that an operator has read access to. Class Join against this table checks if a record exists, as shown in the following screenshot. NOTE: Take additional care for work types that inherit their territory IDs. For example: Contacts get territory ID from the Organization work type or the Account work type that they are related to. Similar cases exist for Tasks.) 98

Generation of Access Records Specific user actions trigger creation of access records. When new operator is created, a new instance of class PegaCRM-Data-SFA- OperatorAccess is created. NOTE: For a given default territory, there is additional validation to check if there is a territory marked as TopLevel in the hierarchy to allow creation of the operator access permissions. To ensure that an agency exists, always mark the root element in the territory hierarchy as TopLevel. This ensures that a set of default operators are available. When a default operator ('BTX~DefaultSalesRep') is edited, the access permissions of all the operators that were deriving access permissions from this default operator are regenerated. When operator access permissions are explicitly edited, this operator is decoupled from the default operator data instance and subsequent updates to the default operator ('BTX~DefaultSalesRep') do not get cascaded into this operator s access. When the operator profile is edited and the default territory is changed, the operator is linked to another default operator data instance based on the default territory's location in the tree. When new territory is added, access permissions are generated for operators that had implicit access to this territory as a part of explicit access granted to any of its parents. When a territory is moved within the tree (parent territory is changed), access permissions are regenerated. 99

Bulk / Incremental generation of Access Records A new DSS setting has been added AccessMgmt/GenerateAccessRecords. By default, it is set to true. This allows for tracking user actions (use cases listed above) and generating access records incrementally. For new deployments, it may be beneficial to generate access records in bulk. For this: Set this setting to false Add or change territories Add operators Run the System-Queue-SFA-.BulkRegenerateAccessRecords activity Set this setting to true (to track incremental changes) Additionally, you can run the above activity to clean and bulk regenerate access records at any point in time to cleanup and regenerate access records for all operators in the system. The duration of execution is directly related to the number of territories and operators in the system. Invoke this activity in a BATCH requestor. Access records are generated through BATCH requestors in the background as part of Agent processes. If your deployment involves running PRPC and SFA on multiple nodes, consult the LSA or system administrator to ensure that this is enabled only on one node to avoid lock contention issues. 100

Agent Activities: Algorithms It is not common for implementations to require changes to the activities that maintain the operator access records for different operators. However there could be a need and this section provides an outline of the algorithms used for reference. Operator Access Management process Bulk Regenerate records in (crm_link_operator_territory) For each operator access instance that has explicit access configuration (Call GenerateAccessForOperator (Params: pyuserindentifier)) Delete records from the table that belong to this operator For each work type (Call GenerateAccessForWorkType (Params:pyUserIdentifier, WorkType)) 101

Get explicit configurations against territory sorted descending on territory path For each explicit configuration o Generate a record against the territory New page with access details (store in a page group keyed by territory) o o If any of ( ChildRead, ChildCreate, ChildUpdate) is true go to next step else continue with loop For each of the child territories check if child territory record exists in the page group, if not go to next step; else continue loop Generate a record (new page with access details) for the child territory. Loop through the page group and insert records into the table. Edit Operator Access Track changes to the operator access record (post flow action activity) Agent process Create Default Operator Access Queue for Agent, Operator Name, Work Type For which records need to be regenerated Delete records from the table that belong to this operator for this work type Call GenerateAccessForWorkType Whenever an operator is created, an operator access data instance is created. For each operator access instance, maintain a flag to indicate if it is default operator access or explicit operator access (by storing the defaultoperator ID). Once you edit access permissions for an operator (post flow action activity), if there are changes, change the flag from default to explicit by replacing the defaultoperatorid to the current operatorid. 102

If you modify the default territory, capture change and use the right defaultoperator to set the access permissions. Parent Territory Change Track changes Capture the old and new signature for the territory whose parent changed Queue for agent, territory ID that has changed parent Agent1 process: Get access records (from link table) which define implicit access for operators to this territory and its children territories - baseterritoryid IN (clause) signature list of the old parent. Delete those records Get list of opportunities for which forecast records need to be created o o o o o o Compute old and new signatures for current territory and all children and grandchildren Get those operators, worktype records that had explicit access to the new parent that grants (any) access to children as well. (from index table) Queue for Agent, Operator Name, Work Type For which records need to be regenerated Get those operators, worktype records that had implicit access to new parent (from link table) Queue for Agent, Operator Name, Work Type For which records need to be regenerated. Create Work object for ObjSaver. Agent2 Process Delete records from the table that belong to this operator for this work type o GenerateAccessForWorkType Add territory Queue for agent, territoryid and parentterritoryid Agent Process 103

o Get access records (from link table) which define implicit access for operators to the parent territory Insert new record into table with the same access configuration as parent o Get those operators, worktype records that had explicit access to the parent that grants (any) access to children as well. (from index table) Insert new record into table with the child access configuration o o If territory is a top level agency (in createdefaultoperators activity), for each default operator Queue for agent (GenerateAccessForOperator), OperatorID 104

Sales Dashboards Sales dashboards provide a one-stop landing page where sales reps and managers can easily assess their sales pipeline, goals, and next steps. The Sales Rep dashboard provides a personal summary while the Sales Manager dashboard gives a cross-team view with the ability to drill down into the details of the sales team. The Sales Manager dashboard contains: Team Pipeline Team Leaderboard Opportunities by Competitor Sales Goals The Sales Rep dashboard contains: My Pipeline Leaderboard 105

Sales Goals Reminders Pipeline The Pipeline quadrant shows a sales funnel of all open opportunities by sales stage, categroized by revenue and probability of closure for each stage. Sales reps see their own personal pipeline and can drill down into the specific opportunities for each stage. Sales managers see the total amount per stage for everyone on their team, with the ability to drill down and explore the detail of their team s pipeline. 106

The screen above shows the reporting structure for the manager and a breakdown of pipeline amount by sales representative. Clicking on a representative shows the individual opportunities for the stage (see below). 107

Clicking Total allows the managers to see a breakdown of Pipeline amount for each representative across all opportunity stages (see below). 108

Leaderboards The leaderboard quadrant gives managers and sales reps a view of the top representatives in the organization in terms of closed deals and sales activities. Closed Deals Current Quarter The Closed Deals Current Quarter leaderboard shows the representatives who generated the highest amount of revenue. Clicking on any of the representatives gives a detailed look into the closed opportunities. The leaderboard defaults to the Top 5 representatives on login; however you can use the radio buttons to view the Bottom 5. The screen below shows the same leaderboard quadrant but for the Bottom 5 representatives. 109

Most Active Current Quarter The Most Active Current Quarter leaderboard shows the representatives that have the most and least activity with contacts. Clicking a representative gives a detailed look into each of the activities taken by the representative. 110

Opportunities by Competitor The Opportunities by Competitor quadrants allows managers to gauge the competition by displaying the number of opportunities by competitor. Clicking on a competitor shows the appropriate open opportunities for the selected competitor. Sales Goal The Sales Goal quadrant compares sales for the current quarter and the quota for the rep or manager. For a sales rep, drilling down into the QTD Sales shows a list of all of the closed opportunities for the current quarter. For sales managers, drilling down into the QTD Sales shows a detailed breakdown of the managers team and the individual quota and sales information for each sales rep. Clicking on a representative shows the relevant opportunities in the Close Opportunities For box. 111

112

Reminders The Reminders section provides the sales rep with a summary of all of their open tasks sorted by due date. Drilling down into the items displays all of the details about the specific task. Reports SFA includes many standard, out-of-the box reports for monitoring and analyzing work. This table lists the types of reports that are available by their Report Definition Category. Report Definition Category Account and Contact Reports Lead Reports Opportunity Reports Description Reflects various Accounts, Contacts and Organizations information Reflects various lead stage information. Conveys sales and opportunity 113

pipeline reports (Source, Pipeline, and so on) Sales Reports Usage Reports Provides the list of opportunities won and lost; also those won by each sales rep and account level sales Provides login or logout details and work object usage details by requestor basis Tools A sales admin or a sales operator can access tools provided in the Sales Ops portal to: Bulk upload work objects and operators Manage Partners Manage Products Manage Competitors Manage Relation Types Manage Time Periods Bulk Upload Work Objects Clicking Bulk Upload leads to a new flow of work, which facilitates a sales operator to upload data and create various work objects and operators in the SFA system. 114

Manage Partners A product in the SFA system is a data instance of type PegaCRM-Data-Partner. Below is the data model of this class. Partners are associated with the Opportunity work objects in the SFA system. 115

The Manage Partners tool facilitates a sales admin or sales operator in creating or updating a partner within the SFA system. Clicking + at the bottom of the list creates anew partner. Double-clicking a row allows editing of a partner. Manage Products A product in the SFA system is a data instance of type PegaCRM-Data-Product. Below is the data model of this class. 116

Products are associated with the Opportunity work objects in the SFA system. By using the Manage Products tool, a sales admin or sales operator can create or update a product within the SFA system. Clicking + at the bottom of the list creates a new product. Double-clicking a row allows editing of a product. 117

Manage Competitors A competitor in SFA system is a data instance of type PegaCRM-Data-Competitor. Below is the data model of this class. 118

Competitors are associated with the Opportunity work objects in the SFA system. This Manage Competitors tool facilitates a sales admin or sales operator in creating or updating a competitor within the SFA system. Clicking + at the bottom of the list creates new competitor. Double-clicking a row allows editing of a competitor. 119

Manage Relationship Types A Relationship type in SFA system is a data instance of type PegaCRM-Data- RelationShipTypes. Below is the data model of this class. 120

Relationship types can be used to associate a contact with an account or organization. Implicit relationship types that SFA uses are: C2A - indicating Contact to Account relationship type C2O - indicating Contact to Organization relationship type P2P indicating Contact to Contact relationship type This Manage Relationship Types tool facilitates a sales administrator or sales operator in creating or updating a relationship type within the SFA system. Clicking + at the bottom of the list creates a new relationship type. Double-clicking a row allows editing of an existing relationship type. 121

Manage Time Periods A Time Period in the SFA system is a data instance of type PegaCRM-Data-TimePeriod. Below is the data model of this class. 122

Time periods are used while setting goals for an operator through the Sales Ops portal. This Manage Time Periods tool facilitates a sales administrator or sales operator in creating or updating a time period instance within the SFA system. Clicking + at the bottom of the list creates new time period instance. Double-clicking on a row allows editing of a time period instance. 123

124

Chapter 4: SFA Integration This chapter describes the different types of integration supported by SFA, how they work, and how to set up the integration. Integration types include: Outlook Web Services Social Media Outlook to SFA Integration SFA provides a mechanism to allow you to push emails and appointments from Outlook (or from the default mail client) to PRPC. You push by sending or CCing the mail or calendar invite to an inbox. The framework polls the inbox, parses the email or appointment, and creates a record to store it. This technology can identify mail or appointment recipients and map them to system users, giving implementers the opportunity to display emails or appointments by operator or on the Calendar tab in the Case Management portal. A flow allows you to manually associate the email to another object in the system, allowing you to show that an email relates to an opportunity or associate an incoming email to a contact. Email Integration To see the emails for any contact, send a mail to the contact object which has the work email address. Once a user receives an email, a contact user can associate it to other objects. Components The following rules are available following a new installation of SFA: Email Listener: CollaborationGatherEmails Service Package: FWEmailCollector Service Class: FWEmailCollector Service Method: GatherEmails The following must be created or modified: 1. Create an access group the default is PegaCRM-SFA:Services with the PegaRULES:User4 role and open, modify, search, and execute activity access to PegaCRM-Document-Email. If you do not use the default access group, you must change the Service Access Group on the FWEmailCollector. 2. Create a user with the access group listed above. This user should become the Requestor Login in the email listener. 3. Create or modify the default email account with the type Notify. It is used to send the bounce back email if the incoming message cannot be associated with 125

anything in the system. So, the email account should be configured to look as it were an official communication coming from the system. 4. Configure the CollaborationGatherEmails email account. This is the account the email listener uses to import emails and appointments. This account can be linked to any email address; the sample is linked to an Exchange inbox created by the IT department. Create New Email and Appointment Classes in the Implementation Layer 1. Create a new class for emails and appointments. The email class should have directed inheritance to PegaCRM-Document-Email; the appointment class should inherit directly from PegaCRM-Work-Appointment. After doing this, override the PegaCRM-Document-Email.getAppointmentClass decision table to default to your new Appointment class. 2. Create a new service package using the FWEmailCollector service as a guide. Be sure to update the Service Email rule to set the page class to your new Email class. Associations with Other Objects Emails and appointments can be associated with other objects in the system such as organizations, accounts, and contacts. Since your implementation uses classes inheriting from the framework classes, make sure that the email integration associates with implementation layer objects. Note that for Emails, this association is configured through activities called from PegaCRM-Embed-Recipient.lookupRecipient; for appointments, the PegaCRM-Embed-Recipient.DoRecipientAssociations activity handles this. Contacts: Override @baseclass.crmfindcontactbyemail. Replace references to PegaCRM-Entity-Contact in the obj-browse calls and pages and classes to your contact implementation class. Organizations: If you created an implementation class for PegaCRM-Index- OrgDomains, then fix the class references in @baseclass.crmfindorgbydomain. Update the UI Emails and Appointments appear in several places in the UI. You must update the following rules to change class references to your implementation classes. Appointments Data-Portal.SFAPortal_MyCalendar modify the configuration of the pxcalendar control to update the class reference on the Appointments tab. @baseclass.crmpopulateappointmentevents modify step 1 to fix the report class. crmrelatedappointments override this rule in your implementation classes to fix the class reference to the above report definition. Update 126

both the repeating grid and the Open Report icon. There are versions in PegaCRM-Entity-Contact and PegaCRM-Entity-Org. Emails Copy the following report definitions from PegaCRM-Work-Appointment into your implementation class: crmappointmentsbycontact,.crmappointmentsbyoperator, crmappointmentsbyorg Copy the following report definitions from PegaCRM-Document-Email into your implementation class: crmemailsbylinkedid, crmemailsbyoperatorid, crmemailsbycontact crmrelatedemails override this rule in your implementation classes to fix the class reference to the above report definition. Update both the repeating grid and the Open Report icon. There are versions in PegaCRM-, PegaCRM-Entity-Contact, and PegaCRM-Entity-Org. Appointment Integration To see the appointment for any contact, send an appointment to the contact object which has the work email address and email account. Calendar Integration Create an appointment. Forward it as calendar (.ics). To see the appointments in the Calendar option below the Operator menu, send the appointment from Outlook with the To list: Fergusonsfa (Inbox sample user) and with the mail ID of the sales ops operator. Then you can see the appointments in the calendar section. The Appointments table is queried to get a list of all appointments whose owner is the current operator. VCard Integration 1. Create an outlook contact. Forward this as a business card (.vcf). 2. To create a contact from the vcard (for example:service.user@megasystems.com). The system first checks whether there is any contact with this work email address and then checks the domain of the mail address ( that is, here in.pega.com) and it checks the organizations in the SFA application, which has the following domain and returns that org pzinskey which is used in our contact creation having org ID is mandatory. Now the contact gets created from vcard. 3. To create an affinity, you should have an operator in the system with an email address to the work email address of the one created in the previous step. 127

Then, only an affinity object is created with the operator (who has the same from e-mail address) and the contact that was just created with the vcard. crmevaluateemail is the main service mail activity where the execution starts for all the outlook integration. The following images and scenarios provide a view of the Vcard functionality and processing. Scenario 1: Add a new Contact In this image, no contact exists for Ethan Allen This image shows a user of SFA sending a vcard to the email account for the SFA instance savetest@pega.com. The SFA listener runs in the background and creates a contact record with the vcard details in the.vcf file. The new contact is attached to the organization specified in the vcard s email address. 128

Contact Created The pega.com in the person s email address (ethan.allen@megasystems.com) matches a domain name in the organization record in SFA for the Megasystems organization. C2O Link Created At this point, there is a new contact record and a C2O primary link that attaches the contact to the organization. This image shows that the contact is attached to Megasystems organization, because the megasystems.com in the email address for Ethan Allen matches a domain name (megasystems.com). Once the contact is created, the.vcf file is attached to the contact (Related Files). 129

Scenario 2: Creating an Affinity for the Sending Operator If the sender s email address matches an SFA Operator ID, the system can create an Affinity link between the newly created contact and the sending Operator Dr. Service User. An Aff- Link is created and the.vcf File is attached to Aff- Link. Scenario 3 Updating Details for a Contact If a vcard is sent for an existing contact, the system attempts to update missing values on the contact record. The system does not overlay anything already populated in the contact record. When the contact record for Ethan was created, the Home Phone value was empty in the vcard. 130

The following image shows adding a Home Phone number to Ethan Allen s vcard. After sending the vcard again, the existing contact properties keep the same value, but the Home Phone number is now stored in the Contact. Scenario 4: Adding an Affinity Link for an Existing Contact The following image has a required organization called Megasystems but does not does not have Affinity link. It shows that shows that user created a new contact (John Smith) record. 131

After the Operator Dr. Service User sends a vcard that matches the John Smith contact to SFA mail box, a new Affinity link is created between them (Operator to Contact). Creating a vcard in Microsoft Outlook If you do not have any contacts in your MS-Outlook mailbox, you need to create them in order to test the SFA system. To do this, from the File tab, select New Items > Contact. Complete the information (General view shown below) and Save the vcard. 132

Sending a vcard Using Microsoft Outlook There are two steps to sending a VCard: 1. Find the vcard in your MS-Outlook Contacts folder. 2. Send the vcard to SFA mailbox. Open the Contacts folder in MS-Outlook. Use Ctrl Key + 3 as a shortcut, or click Contacts to open your Contacts folder. There are 2 contacts in mailbox. 133

To start, right-click a contact card. Select Forward Contact > As a Business Card. Enter the SFA mailbox address in the To field and click Send. 134

SFA to Exchange Appointment Integration SFA has real-time integration with Microsoft Exchange, allowing you to create a new appointment in Pega SFA, and synchronize the appointment to Exchange. All operators and contacts that you see can be added to the SFA Appointment as an attendee. Once an attendee is added to the appointment, SFA displays their availability, retrieved in real time from the Microsoft Exchange server. There is also an Expert search, allowing you to find resources by any combination of Name, Territory, or Skills. For example, an insurance agent can easily find all experts in the Auto or Life product within a specific territory and book an appointment based on their availability. Once created, the appointment is associated with any Contacts in the appointment, as well as any organizations that have a domain matching the domain of the email address of an attendee. The sales rep can also associate the appointment with any account, opportunity, lead, or contact. Once an appointment is successfully created on the Exchange server, it becomes readonly in SFA. You can make subsequent updates to the appointment on Exchange using Outlook. To synchronize changes from Exchange to SFA, you can leverage the email listener functionality from the Outlook to SFA Integration section. There is an option to default this listener mailbox into all appointments created in SFA so that changes are synchronized back to SFA. Appointments List You can view existing appointments through the Appointments tab, which displays a list of all appointments where you are an attendee. Appointment Creation 135

To create an appointment, click Create Appointment, or select + Create > Appointment. Once created, the user interface below is displayed. The default is that you are an attendee and the availability is displayed. Details of Fields Field Subject Location Start time End time Meeting Duration Reminder Body Description Subject of the appointment Location for the meeting Start time for appointment End time for appointment Duration of the meeting (30mins to 23.5 hours) Reminder for upcoming calendar events Content of the appointment Add Attendees You can view the availability of attendees as seen below. Availability is retrieved in real time from Microsoft Exchange. 136

The Scheduling section has three buttons to add attendees: Add Staff Adds a row to the availability grid, with an auto-complete that allows you to select one operator. The auto-complete drop-down list shows the operator s name. Once selected, availability is displayed using EWS integration Add Contacts Adds a row to the availability grid, with an auto-complete list that allows you to select one contact. The auto-complete drop-down list shows the contact s name and organization for any contact to which the operator has access, and has an email address. Availability is generally not provided for contacts since they do not have an account on the Exchange server. Add Experts Clicking this button launches the Add Experts modal below. Experts are simply operators with specific skills. Allows searching on operators by name, skills or territory Territory should default to the Territory of the logged-in user, but can be changed to any territory that the user has visibility to. The Skills search field allows the selection of multiple skills. Once selected, availability is displayed using EWS integration for all experts added. Scheduling The Send button creates the appointment on the Exchange Server. The status of the appointment becomes Scheduled once the appointment is successfully created. To save an appointment for the future, use the Save button. The status of this appointment becomes Draft until you are ready to send it. 137

Scheduled appointments are also visible in the My Calendar view. Technical Implementation Details Activity: FillTimeSlotsHeader Description: Preparing the time slots in the header of the scheduling UI grid. Activity: FIllOrganizerDetails Description: Getting the time zone information of the Organizer and availability. 138

Data Page: D_AttendeeSchedule Description: Getting the Availability of attendees via GetUserAvailability EWS integration. The source for data page as GetUserAvailability SOAP connector is provided. Activity: LoadCalendarSlots Description: It is the Post processing activity of D_AttendeeSchedule data page, populating the free or busy information of all the time slots for each attendee in the schedule UI grid. 139

Activity: createappointmentinexchange Description: Creating the appointment in exchange using the CreateItem EWS integration. Modifying the Data Instances 1. EndPoint URL: The End Point URL provided from CreateItemURL DSS. To change the exchange URL, modify this DSS. 2. Authentication Profile: EWS_Integration_AuthProfile having the Authentication details required by the remote service. You need to modify based on End Point URL. 140

3. Security Profile: EWS_Integration_SecurityProfile having the WS-Security to be used to communicate with WS-Security enabled service. You need to change the key store of this security profile based on End Point URL. Impersonation To create an appointment in SFA and synchronize with Exchange, your Exchange account must be impersonated by an impersonation account. The impersonation account is used by SFA to create the appointments on behalf of all of the SFA users. You need to create only one impersonation account. You can use it to impersonate as many exchange accounts as necessary. Impersonation enables the caller to perform operations by using the permissions that are associated with the impersonated account, instead of the permissions that are associated with the caller's account. With Exchange Impersonation, one account is acting as another account. When an account is impersonated, the system logs the access as if the account that is specified in the header were acting on the system. The calling account must have the appropriate permissions to perform impersonation. After impersonation permissions have been established, the user who has impersonation permissions can make calls against the other user's account. The impersonated account is maintained in the Authentication Profile ( EWS_Integration_AuthProfile ). Work with your Exchange administrator to set up impersonation for your version of Microsoft Exchange. DSS Settings DSS Name: ListenerEmailID, ListenerName Description: For changing the Listener email id and Listener name need use these DSS. DSS Name: EnableAppointments Description: Set to True or False to enable or disable exchange integration functionality. Enable Exchange Integration: Include these rulesets PegaCRM-SFA- EWSIntegration: 01-01, PegaCRM-EmailIntegration: 01-01 and PegaFW- EWSIntegration: 01-01 at the top of the application ruleset list and also set EnableAppointments DSS to true. Web Services Integration Using SOAP web services, SFA provides the ability to create a contact work object from external sources, that is, through external applications. 141

Service Package: SFA SFA supports the following actions on a contact work object: Create contact Save contact Update contact Service SOAP Package: SFA Class Name: PegaCRM-Entity-Contact Method Name: CreateContact 142

Activity: SFACreateContact Applies To: PegaCRM-Entity-Contact Description: Creating the contact work object Package: SFA Class Name: PegaCRM-Entity-Contact Method Name: SaveContact Package: SFA Class Name: PegaCRM-Entity-Contact Method Name: UpdateContact Data Transform Name: SFAContactInput Applies To: PegaCRM-Entity-Contact Description: For mapping the properties on clipboard the data transform has been used. 143

Social Media Integration This section describes the social media integration supported by SFA including: Twitter LinkedIn Facebook Twitter Integration SFA has been integrated with a Twitter API to retrieve the information related to an entity (Organization, Account, Contact) using a Twitter authorization profile. As part of this integration, you can call the REST APIs provided by Twitter and use the response format as XML. All APIs used in this application integration supports the Authentication, but using only the Authenticated mode of requests. You have to be authorized to use this feature of Accessing the Twitter from the SFA application. For Authentication, the Oath library is used. As a Sales Representative, you should be able to perform the following functionalities: Authorize Twitter Maintain business relationships to track key information as they happen by associating a linkage of individual profile to Lead, Contact, Org and Account objects. Re-associate linkage to different Twitter user profiles De-authorize Twitter 144

Design Twitter is supported by the following class structure: PegaSocial- Base class for all social media integration PegaSocial-Embed- Base class for all data classes used in integration PegaSocial-Embed-Twitter- PegaSocial-Embed-Twitter-User Concrete data class for user profile PegaSocial-Embed-Twitter-Tweet Concrete data class for Tweet Messages PegaSocial-FW- PegaSocial-FW- Twitter Concrete class that contains all the integration and functionalities PegaSocial-FW-SocialDetails (Data class that holds the linking between social media profiles and WO) PegaSocial-Preferences Concrete class that contains the authorization required) PegaSocial-Preferences- Twitter Twitter Authorization SFA uses the three-legged Authorization model. More details are available at https://dev.twitter.com/docs/auth/3-legged-authorization Authorization steps: 1. A Request token is sent to Twitter. Twitter replies with the token. 2. The application redirects to Twitter to authorize the user. 3. After authorization, Twitter redirects to the call back to the URL. 4. Another OAuth call is made to get the Access token for the user. 5. LIN returns token which consists of oauth_token and oauth_token_secret. Authorization complete. The oauth_token and oauth_token_secret obtained can be used in future API calls. 145

Twitter APIs REST API is used for Twitter integration. Details of all Rest API provided by Twitter are available at https://dev.twitter.com/docs/api Also, there is an API console provided by Twitter, which can be accessed at https://dev.twitter.com/console Most requests that use the HTTP GET method are rate-limited. To know more about the Rate limiting details of Twitter, refer to: https://dev.twitter.com/docs/rate-limiting POST oauth/request_token Allows a Consumer application to obtain an OAuth Request Token to request user authorization. This method fulfills Section 6.1 of the OAuth 1.0 authentication flow. It is strongly recommended that you use HTTPS for all OAuth authorization steps. Further details are available here: https://dev.twitter.com/docs/api/1/post/oauth/request_token GET oauth/authorize Allows a Consumer application to use an OAuth Request Token to request user authorization. This method fulfills Section 6.2 of the OAuth 1.0 authentication flow. Desktop applications must use this method (and cannot use GET oauth/authenticate). Use HTTPS for this method, and all other OAuth token negotiation steps. Further details are available here: https://dev.twitter.com/docs/api/1/get/oauth/authorize POST oauth/access_token Allows a Consumer application to exchange the OAuth Request Token for an OAuth Access Token. This method fulfills Section 6.3 of the OAuth 1.0 authentication flow. The OAuth access token may also be used for xauth operations. Further details are available here: https://dev.twitter.com/docs/api/1/post/oauth/access_token GET users/search Purpose: This API is used in User search with keyword. By Default, passing the Name (Firstname & LastName) as key word for search. Runs a search for users similar to Find People button on Twitter.com. The results returned by people search on Twitter.com are the same as those returned by this API request. It is basically a keyword search. Rate Limits: This method has a feature-specific rate limit of 60 calls per hour that is applied with the main REST API rate limit. Calls to this method count against the feature-specific rate limit and the main REST API rate limit. If either limit is exhausted, the request fails. 146

You can monitor the status of the feature-specific rate limit by inspecting the HTTP response headers X-FeatureRateLimit-Limit, X-FeatureRateLimit-Remaining, and X- FeatureRateLimit-Reset. These headers correspond to the X-RateLimit headers provided by the main REST API limit. Some features, such as the GET search method, have additional feature rate limits, which are applied in conjunction with the main REST API rate limit. Calls to users/search count against both the feature and default request rate limit. If either limit is exhausted, the method fails. You can monitor the status of the feature rate limit by inspecting the HTTP response headers that are returned. In addition to the default rate limit headers, you may also see: X-FeatureRateLimit-Limit X-FeatureRateLimit-Remaining X-FeatureRateLimit-Reset The meaning of these headers corresponds to the X-RateLimit headers provided by the main REST API limit. Further details are available at: https://dev.twitter.com/docs/api/1/get/users/search Below are the response header details received for the Search Users API request from API console. 147

The first image contains the normal rate limits and the second image shows the feature-specific rate limit. GET statuses/user_timeline Purpose: This APIAPI call is used to retrieve the tweets for the specified user. It returns the 20 most recent status posted by the authenticating user. It is also possible to request another user's timeline by using the screen_name or user_id parameter. The other user s timeline is visible only if they are not protected, or if the authenticating user's follow request was accepted by the protected user. The timeline returned is the equivalent to the one seen when a user views a user's profile on twitter.com. 148

Rate Limits: It uses the default rate limit of the Twitter. Details of the Rate limit can be monitored by inspecting the response headers X-RateLimit-Limit, X-RateLimit- Remaining, X-RateLimit-Reset. Below is one of the response header details received for the Tweets API request from API console. Further details are available here: https://dev.twitter.com/docs/api/1/get/statuses/user_timeline GET friends/ids Purpose: This APIAPI is used to retrieve the Friends of the specified twitter user. It returns an array of numeric IDs for every user the specified user is following. This method is powerful when used with users/lookup. When the process passes the Cursor parameter, it causes the list of connections to be broken into pages of no more than 5000 IDs at a time. The number of IDs returned is not guaranteed to be 5000, as suspended users are filtered out after connections are queried. Rate Limits: It uses the default rate limit of the Twitter. Details of the Rate limit can be monitored by inspecting the response headers X-RateLimit-Limit, X-RateLimit- Remaining, X-RateLimit-Reset. Below is one of the response header details received for the Friends API request from API console. 149

Further details are available here: https://dev.twitter.com/docs/api/1/get/friends/ids GET users/lookup Purpose: This API is used to retrieve full details of Friends (in Bulk) by sending the comma-separated list of friend IDs received by GET friends/ids API It returns up to 100 users worth of extended information, specified by either ID, screen name, or a combination of the two. The author's most recent status (if the authenticating user has permission) is returned inline. It is also well suited for use in tandem with friends/ids and followers/ids. When using this method. You must be following a protected user to be able to see their most recent status update. If a user does not follow a protected use, their status is removed. The order of user IDs or screen names may not match the order of users in the returned array. If a requested user is unknown, suspended, or deleted, then that user is not returned in the results list. You are strongly encouraged to use a POST for larger requests. Rate Limits: It uses the default rate limit of the Twitter. Details of the rate limit can be monitored by inspecting the response headers X-RateLimit-Limit, X-RateLimit- Remaining, X-RateLimit-Reset. Further details are available at: https://dev.twitter.com/docs/api/1/get/users/lookup 150

The following is one of the response header details received for the LookUp API request from API console. GET users/show Purpose: This API is used to retrieve full details of the specified user. It returns extended information of a given user, specified by ID or screen name as per the required ID parameter. The author's most recent status is returned inline. Rate Limits: It uses the default rate limit of the Twitter. Details of the rate limit can be monitored by inspecting the response headers X-RateLimit-Limit, X-RateLimit- Remaining, X-RateLimit-Reset. Further details are available at: https://dev.twitter.com/docs/api/1/get/users/show 151

Above is one of the response header details received for the UserShow API request from the API console Limitations of this Integration Extension Points Pagination is not available for the user search. If this is needed, you must refine the query string. Pagination not available for Tweets. Only the most recent 20 tweets are displayed at any time. Token Invalidation at Twitter side after the user has de-authorized from SFA App. (Twitter does not have any API to invalidate the token.) SFA comes with default Twitter application called Pega Social. If a customer is interested in having their own application, you must update the following rules before they can start using the system. The application ID and application secret values available under PegaSocial-FW- Twitter. TwitterApplicationSettings map value rule should be changed to have the correct values. LinkedIn Integration SFA provides a way to search a profile and company from the LinkedIn application using its API. Authorize LinkedIn Maintain business relationships to track key information as they happen by associating a linkage of individual LinkedIn profile to the Lead or Contact object. Maintaining the company s profile data by linking them to Organization and Account objects. Re-associate linkage to different profiles. De-authorize LinkedIn Creating a LinkedIn Application To integrate with LinkedIn, create an application in LinkedIn at this location: https://www.linkedin.com/secure/developer. 152

The Add New Application link is used to configure the application. The link directs you to the following screen where you enter the details related to the application. The consumer key and consumer key secret are generated for the application which is used for the API calls. 153

Class Structure: PegaSocial- (Base class for all social media integration) PegaSocial-Embed- (Base class for all data classes used in integration) PegaSocial-Embed-LinkedIn- PegaSocial-Embed-LinkedIn-Profile (Concrete data class for user profile) PegaSocial-Embed-LinkedIn-Company (Concrete data class for company profile) PegaSocial-FW- PegaSocial-FW- LinkedIn (Concrete class that contains all the integration and functionalities) PegaSocial-FW-SocialDetails (Data class that holds the linking between social media profiles and WO) PegaSocial-Preferences (Concrete class that contains the authorization required) PegaSocial-Preferences- LinkedIn LinkedIn Authorization: The steps of the LinkedIn Authorization process are: 1. Request token to LIN. 2. LIN replies with the token. 3. Application redirects to LIN to authorize the user. 4. After authorization, LIN redirects to the call back URL. 5. Another OAuth call is made to get the Access token for the user. 6. LIN returns token which consists of oauth_token and oauth_token_secret. 7. Authorization complete. The oauth_token and oauth_token_secret that are obtained can be used in future API calls. 154

Implementation This is achieved with the Connect-HTTP rule. It requires a header which must be sent along with the call. Request Token Request Type: POST URL: https://api.linkedin.com/uas/oauth/requesttoken A request token call header should contain the following: oauth_callback (optional) oauth_consumer_key oauth_nonce oauth_signature_method oauth_timestamp oauth_version Request Access Token Request Type: POST 155

URL: https://api.linkedin.com/uas/oauth/accesstoken A request Access Token call header should contain the following: oauth_consumer_key oauth_nonce oauth_signature_method oauth_timestamp oauth_token oauth_verifier oauth_version LinkedIn Token Invalidation Invalidate an OAuth token for your application by sending an OAuth signed request to the following URL. Request Type: GET URL: https://api.linkedin.com/uas/oauth/invalidatetoken Reference for additional details about the API is available at https://developer.linkedin.com/documents/authentication Other API Calls For other API calls, you build the header. The header contains the consumer key, the consumer key secret of the application in addition to the token and token secret of the user. The URL to be hit is modified with the search parameters. LinkedIn User Search Request Type: GET URL: http://api.linkedin.com/v1/people-search? keywords=[space delimited keywords]& first-name=[first name]& last-name=[last name]& companyname=[company name]& current-company=[true false]& title=[title]& currenttitle=[true false]& school-name=[school name]& current-school=[true false]& country-code=[country code]& postal-code=[postal code]& distance=[miles]& start=[number]& count=[1-25]& facet=[facet code, values]& facets=[facet codes]& sort=[connections recommenders distance relevance] Profile API Request Type: GET URL: http://api.linkedin.com/v1/people/id=abcdefg 156

http://api.linkedin.com/v1/people/url=<public-profile-url> You can obtain the profile based on ID or profile URL. Company Search Request Type: GET URL: http://api.linkedin.com/v1/company-search:(companies:(id,name,universalname,website-url,industries,status,logo-url,blog-rss-url,twitter-id,employee-countrange,specialties,locations,description,stock-exchange,founded-year,end-year,numfollowers))?keywords= Company Profile Request Type: GET URL: http://api.linkedin.com/v1/companies/162479 http://api.linkedin.com/v1/companies/universal-name=linkedin Company Profile can be obtained based on id or universal name. Throttle Limit LinkedIn API keys are throttled by default. The throttles are designed to ensure maximum performance and protect the user experience of all users on LinkedIn. Calls for the user s own data: These calls all concern the user's own data. API Uses Daily Limits Current User's Standard Profile Returns profile details Application: 100k Current User's Public Profile Returns full public profile details Application: 100k 157

Calls for the user's network data: These calls all return data from the user's network. API Uses Daily Limits Application: 500k Get Network Updates Connections Returns the network updates from the LinkedIn home page Returns the mini-profile for all connections Per User: 300 Per Developer: 300 Application: 20k Up to 100 returns per search, 10 returns per page. Each page is one API call. Application: 100k People Search Returns the profile for each search result Per User: 100 Per Developer: 400 Application: 100k Other's standard profiles Returns the mini-profile for any profile visible to the requesting user Per User: 50 Per Developer: 200 Application: 100k Other's public profiles Returns the public mini-profile for any profile visible to the requesting user Per User: 50 Per Developer: 200 158

Calls for Jobs, and Company data: These calls return data for companies and jobs. API Uses Daily Limits Application: 100k Get Companies Returns company profiles from LinkedIn Per User: 500 Application: 100k Company Search Searches company profiles on LinkedIn Per User: 300 Reference: https://developer.linkedin.com/documents/throttle-limits Facebook Integration A sales representative can perform the tasks below in SFA: Authorize Facebook Maintain business relationships to track key information as they happen by associating a linkage of individual profile to Lead or Contact object. Maintain the company s profile data by linking them to the organization and account objects. Re-associate linkage to different profiles De-authorize Facebook The implementation of the social media integration (Facebook, Twitter and LinkedIn) is available in a single RuleSet PegaSocial-FW. Integration Classes PegaSocial-FW- PegaSocial-FW-Facebook (Concrete class that contains all the integration and functionalities) PegaSocial-FW-SocialDetails (Data class that holds the linking between social media profiles and the work object) The following is a snapshot of the inheritance for class PegaSocial-FW-Facebook. 159

Embed Classes PegaSocial-Embed- (Base class for all data classes used in integration) PegaSocial-Embed-Facebook PegaSocial-Embed-Facebook-Profile (Concrete data class for user profile) PegaSocial-Embed-Facebook-Company (Concrete data class for company profile) PegaSocial-Embed-Facebook-Education (Concrete data class for education details) PegaSocial-Embed-Facebook-Employer (Concrete data class for employer details) PegaSocial-Embed-Facebook-Feed (Concrete data class for feed details) PegaSocial-Embed-Facebook-Location (Concrete data class for location details) PegaSocial-Embed-Facebook-School (Concrete data class for school details) PegaSocial-Embed-Facebook-Work (Concrete data class for work information) The following is the snapshot of inheritance for Embed class PegaSocial-Embed- Facebook. 160

Preferences Class PegaSocial-Preferences (Concrete class that contains the authorization required) PegaSocial-Preferences-Facebook The following is a snapshot of the inheritance diagram for Preferences class PegaSocial-Preferences-Facebook. This class contains the implementation for Facebook Authorization. 161

Creating a New Application Before authorizing Facebook, you need to create a new application in Facebook through which the logged-in, authenticated user ID communicates to retrieve the information available on Facebook. The application ID and application secret values are available under PegaSocial-FW- Facebook. The CPMFacebookApplicationSettings map value rule should be changed to have the correct values. To create a new application: 1. Log in to https://developers.facebook.com/apps to create a new facebook application using Create New App button. 2. Enter the application name as required and click Continue. 3. Fill in the Site URL and Canvas URL appropriately. 162

Modules SFA uses a graph API to integrate with Facebook. A Graph API presents a simple and consistent view of the Facebook Social Graph, uniformly representing objects in the graph (people, photos, pages, and so on) and connections between them. The SFA integration with Facebook can be split into the following modules: Authorization The authorization process starts when the sales representative clicks on the Facebook icon available on a lead, contact, account or organization object. Graph API uses OAuth 2.0 for authorization. When authorizing the application, the user grants your application access to the basic information. Since SFA needs additional information such as work history, education history, location and so on, you need to request additional permissions using the scope parameter. 163

API Used: https://www.facebook.com/dialog/oauth?client_id=your_appliaton_id&sco pe=permissions _requried&redirect_uri=your_callback_url The following permissions are requested to be granted by the user for the Pega Social application. offline_access read_stream user_work_history user_education_history user_location, friends_work_history friends_education_history friends_location user_about_me friends_about_me The above URLURL returns the access token with the permissions required. The generated access token is now used to get the authenticated user ID. The generated access token and user ID values are stored in database, so that when you log in, you can perform other operations without going through the authorization process again. Link Profile Once the authorization process completes, SFA allows you to link a user profile to a contact or lead object and a company profile to an organization or account object. The sales representative can search through different lists of users by using the search criteria and link any of it to the object to see the detailed information. A linked object can be re-linked to a different profile. API used: User and Page objects are searched using the URL https://graph.facebook.com/search?q=query&type=object_type (Request Type GET) Individual detailed profile information is obtained using - https://graph.facebook.com/object_id?fields=information_required(reques t Type GET) 164

Feeds posted on user or a page are obtained using https://graph.facebook.com/object_id/statuses(request Type GET) The mutual friends between the logged in authenticated user id and the linked profile for a contact or lead object are obtained using https://graph.facebook.com/me/mutualfriends/linked_profile_id?fields=inf ormation_required. (Request Type GET) De-Authorization You have an option to de-authorize from Facebook. On clicking of the de-authorize button, the session through which the SFA logs into Facebook is logged out and the access token details stored in the database are removed. After the de-authorize process, you need to go through the authorize process once you click on the Facebook link available on the contact, lead, account or organization object. API Used: https://www.facebook.com/logout.php?next=your_callbackurll+"&access_token="+a ccess_token_to_expire (Request Type GET) For more information related to the Facebook Graph API, refer to: https://developers.facebook.com/docs/reference/api/ Dynamic System Settings for LinkedIn, Twitter & Facebook SFA captures the attributes of LinkedIn, Twitter, and Facebook required for social media integration while authorizing against their respective social media apps. To update value of each attribute, the developer needs to update corresponding Dynamic System Settings with the appropriate value. The following table contains the list of Dynamic System Settings that need to be updated for social media integration in SFA and the sample value for each of them that you use in one of the development environments. Dynamic System Settings Name For Linkedin Dynamic System Settings sample Value LinkedinConsumerKey LinkedinConsumerSecret LinkedinRequestTokenURL LinkedinAccessTokenURL LinkedinAuthorizeUserURL y5n687wd7a2r ABUqF5luPwJYnzjk https://api.linkedin.com/uas/oauth/requesttoken https://api.linkedin.com/uas/oauth/accesstoken https://www.linkedin.com/uas/oauth/authorize 165

Dynamic System Settings Name LinkedinRevokeTokenURL LinkedinAPIURL For Twitter Dynamic System Settings sample Value https://api.linkedin.com/uas/oauth/invalidatetoken https://api.linkedin.com/v1/ TwitterConsumerKey TwitterConsumerSecret TwitterRequestokenURL TwitterAccesstokenURL TwitterAuthorizeUserURL TwitterAPIURL For Facebook zlsxesps7yt2inrsrdkedw P95m6E9wmiQJFVKDAg5nWlg5FsJxPAUXdOhAxRwNUZE https://api.twitter.com/oauth/request_token https://api.twitter.com/oauth/access_token https://api.twitter.com/oauth/authorize https://api.twitter.com/1.1/ FBApplicationID 213682632091885 FBApplicationSecret FacebookAPIURL 4ed6d6cbd90c24df1c790c2f5b854de2 https://graph.facebook.com/ PublicLinkURL varies per environment and should refer to the web application in the URL such as http://hostname.domain.com/prweb The following screenshot shows one sample Dynamic system settings viz. FBApplicationID. To retrieve a value from the Dynamic system settings, use the getdynamic utility function in the following manner (in this case retrieving the value from the above mentioned Dynamic System Settings) and can use wherever you need it. 166

Using Dynamic System Settings, you can enhance the maintainability of the properties that are configurable for each deployment or for each environment without unlocking any ruleset in that particular environment 167

Chapter 5: Building a Dynamic UI This chapter lists the UI changes in SFA 7 and gives you an overview of the changes made to the different areas of the end user portals. SFA Sign-On Screen You can customize the splash image and background for the SFA application. The out-of-the box implementation of the screen installed with the framework is shown below. SFA ships with the following rules that you can customize to create a different login experience for the user: Ruleset PegaCRM-SFA-Unauthenticated AccessGroup PegaCRM-SFA:Unauthenticated Data-Admin-Requestor Browser pega Browser prpc 168

SFA Portal Class Structure In previous releases, the SFA portals were defined as Data-Portal instances. As the UI has become more complex, a more reusable structure was necessary. In this release, a new class structure, PegaCRM-Portal, was created although many UI components are still defined as Data-Portal instances. The PegaCRM-Portal class and its children were created to define the portal template and customizations of the template. 169

Basic Portal Configuration Portals Classes SFASalesOps_Web SFASalesRep_Web SFASalesManager_Web PegaCRM-Portal-SFA-SalesOps PegaCRM-Portal-SFA-SalesRep PegaCRM-Portal-SFA-SalesManager Skin pysfa71 Harness PegaCRM-Portal.SFAPortalWorkSpace Harness Configuration The PegaCRM-Portal.SFAPortalWorkSpace harness consists of three panels: Top Left Center 170

Top Panel Section: PegaCRM-Portal.SFAPortalHeader Description: Contains the UI for the header part of all the three portals. Header Components 1. Search Box SFA allows a search across work pools Section: @baseclass.crmfindwork 2. Quick Links: + Create Menu Control: Link control is used with Menu as an action on it Navigation: SFAWebPortal_TopNavigation Uses the Link control to open the SFAWebPortal_TopNavigation menu on click Create menu creates new work using a standard menu option 3. Standard Operator Options Control: Link control is used with caption as OperatorID.pyUserName Uses Link control to open the menu crmcasemanager on click Menu: crmcasemanager Uses standard options from base version with additional Calendar and Email options. Calendar and Email options set a number of control properties on the pydisplayharness Left Panel Section: PegaCRM-Portal.SFAPortalLeftPanel MenuBar: PegaCRM-Portal.SFAPortalMenuItems 1. Overriden Rules PegaCRM-Portal-SFA-SalesRep.SFAPortalMenuItems PegaCRM-Portal-SFA-SalesOps.SFAPortalMenuItems 171

PegaCRM-Portal-SFA-SalesManager.SFAPortalMenuItems 2. Data-Portal.pyRecents For Recent Item 3. Data-Portal.pyFavorites For Following Items 172

Center Panel Section: PegaCRM-Portal.SFAPortalContent This section refers to the SFAPortalLanding section from SalesRep, SalesOps and SalesManager classes as per the respective user login. SFA Ops Portal Components 1. Harness: PegaCRM-Portal-SFA-SalesRep.SFAPortalLanding 2. Section: PegaCRM-Portal-SFA-SalesOps.SFAPortalHome 3. Section: Data-Portal.SFASalesOpsPortal_Dashboard_Content 4. Overriden: PegaCRM-Portal-SFA-SalesOps.SFAWebRightNav Contains the pulse section (pxactivitystream) SFA Rep Portal Components 1. Harness: PegaCRM-Portal-SFA-SalesRep.SFAPortalLanding 2. Section: PegaCRM-Portal-SFA-SalesOps.SFAPortalHome 3. Section: Data-Portal.SFASalesOpsPortal_Dashboard_Content 4. Overriden: PegaCRM-Portal-SFA-SalesOps.SFAWebRightNav Contains the pulse section (pxactivitystream) SFA Manager Portal Components 1. Harness: PegaCRM-Portal-SFA-SalesManager.SFAPortalLanding 2. Section: PegaCRM-Portal-SFA-SalesManager.SFAPortalHome 3. Section: Data-Portal.SFASalesOpsPortal_Dashboard_Content 4. Overriden: PegaCRM-Portal-SFA-SalesOps.SFAWebRightNav Contains the pulse section (pxactivitystream) Recent Gadget Section: Data-Portal.pyRecents Description: Uses the standard PRPC provided Recents Gadget beginning with Version 7.12. However, the rule has been customized to enable the following: Display of the Work Object Icon Removal of the Work Object ID Refresh the Recent gadget once you follow the work item. Declare Page: Declare_pxRecents 173

Activity: pzpopulaterecentgadgetlist responsible for populating the recents list. Section: RecentItem. This is customization of the pyrecents section. Description: In the left side of the column, the.pyclassname property for work objects is referenced for the work object such as Opportunity, Lead, Account, Organization, Contact and so on. The GetCaseIcon control is used to display the respective work object icon. Control: GetCaseIcon Parameters: ClassName -.pyclassname useonstate true DefaultIcon - null On the right side of the column, the.pylabel property is referenced. The icons in this display reflect following states of a recent item: New: Red Perform: Red Open: Grey Viewed Recently: Grey 174

Following Gadget Section: Data-Portal.pyFavorites Description: Uses the standard PRPC provided Following Gadget. Beginning with PRPC version 7.12. However, a few customized few rules are used to achieve the following: Refresh the Follow gadget once you follow the work item Open the work object from gadget itself Declare Page: Declare_pxFavorites Report Definition: crmfollowedworkitems This report definition is responsible for populating the list. This is the customized report configured to contain columns from the table such as pxinsindexedkey, which is needed to open any work object from the Follow Gadget. Section: pyfavdisplay. This is a customization of the pyfavorites Section that has been configured to refresh the Follow gadget when you follow the work object. Description: In the left side column, the.pxinsindexedclass property is referenced for work objects such as Opportunity, Lead, Account, Organization, and Contact. It uses the GetCaseIcon control to display the respective work object icon. Control: GetCaseIcon Parameters: ClassName -. pxinsindexedclass useonstate null DefaultIcon - null On the right side of the display, the property.pylabel is referenced. 175