Top Banner
© RightNow Technologies, Inc. Connect Common APIs & Connect Common Object Model Chris Omland http://www.linkedin.com/in/omland
67
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Rightnow 3

© RightNow Technologies, Inc.

Connect Common APIs & Connect Common Object Model

Chris Omlandhttp://www.linkedin.com/in/omland

Page 2: Rightnow 3

My Introduction

RightNow2008 as Technical Product Mgr2010 Product Mgr, COE

BackgroundB.S. Computer ScienceMaster Business Administration

Personal InterestsSki, Snowmobile, Bike, Waterskiing

Page 3: Rightnow 3

Session Goals

Understanding of AppBuilder

Preparation for other RDC sessions

Enable future learning

Page 4: Rightnow 3

Questions

Page 5: Rightnow 3

RightNow CX

CX for Facebook

Support Community

Innovation Community

Cloud Monitor

Customer Feedback

Service Sales Marketing

Analytics

Voice ExperienceManager

DynamicAgent Desktop

Customer Feedback

Service Sales MarketingAnalytics

App Builder

Mission Critical OperationsKnowledge Foundation | Natural Language Search

Intent GuideWeb / Mobile Self-Service

Chat / Co-BrowseEmail Management

Intent GuideWeb / Mobile Self-Service

Chat / Co-BrowseEmail Management

CX for Facebook

Support Community

Innovation Community

Cloud Monitor

Voice ExperienceManager

DynamicAgent Desktop

Page 6: Rightnow 3

© RightNow Technologies, Inc.

App Builder

RightNow CX Cloud Platform

Page 7: Rightnow 3

App Builder

Custom Objects

Connect APIs

Experience Design

App Builder

Extend RightNow CX apps to support unique business processes

Leverage open standards-based capabilities to rapidly and cost-effectively integrate

Easily configure RightNow CX for unified and engaging experiences across all channels

Adaptive open standard technologies & design interfacesDesign, Build & Connect

Page 8: Rightnow 3

Build Any Object

Web

ContactCenter

Social

Unique

Custom Objects

RightNow Custom Objects enables Administrators and Integrators to build & extend the Apps with Custom Objects that support unique business processes

Page 9: Rightnow 3

RightNow Object Designer

Parent

Child

Association

Styles

Fields

Index

Notes Labels

Menus

Custom Objects

RightNow Custom Object Designer enables Administrators and Integrators to build and manage Custom Objects directly in the application

Page 10: Rightnow 3

Connect Any APIRightNow Connect delivers open standards-based API’s to rapidly and cost-effectively integrate the RightNow CX Cloud Platform into anything

Website

Desktop Voice

ServiceMarketing Sales

CX Cloud Platform

SAP

Connect

PHP SOAP ADD-IN

Page 11: Rightnow 3

Connect WSDL & PHP API’s

INTEGRATE

ACCESS

LEVERAGE

DEVELOP

C R U D WSDL & CRUD PHP API

RightNow Connect PHP is for PHP code executing on RightNow serversRightNow Connect Web Services for SOAP is for code executing on non-RightNow servers

Connect

Page 12: Rightnow 3

Desktop Add-In FrameworkRightNow Connect Add-In Framework enables Developers and Integrators to extend the Agent Desktop and create unified experiences

Connect

Page 13: Rightnow 3

Partner Ecosystem

85+ Partners 1+ Billion

Integration transactions per year

Best-of-Breed Technology providers with proven repeatable integrations into the CX Cloud Platform

Connect

Page 14: Rightnow 3

Connect Common Object Model

Page 15: Rightnow 3

Connect Common Object Model

A standard object model used across each of RightNow’s public APIs*

FieldsPermissionsData types

Each language binding has unique aspectsLists vs. ArraysReferencesEtc…

*Not all public APIs have moved to the Connect Common Object Model

Page 16: Rightnow 3

Our Goal

A single object model for developers to learn

Easy for developersLogical class hierarchyLabels & id’sIntuitive

Establish a solid foundation for the future

Page 17: Rightnow 3

RightNow Data Model

RightNow Database

Page 18: Rightnow 3

RightNow Data Model

RightNow Database

Customer Portal Agent Desktop Community

Page 19: Rightnow 3

RightNow Data Model

RightNow Database

Customer Portal Agent Desktop External Applications

PHP SOAP ADD-IN SOAP

Page 20: Rightnow 3

RightNow Data Model

RightNow Database

Customer Portal Agent Desktop External Applications

PHP SOAP ADD-IN SOAP

Connect Common Object Model

Page 21: Rightnow 3

Understanding Connect Common Object Model

Page 22: Rightnow 3

Object Categories

Primary Objects

Sub-Objects

Custom ObjectsOrganizationIncidentsContacts

Objects with a unique ID (primary key) that support direct CRUD operationsStandalone objects

Once created they exist until deletedMay have relationship to other primary objects

• Contacts & Organizations

All inherit from base class RNObjectAccessible by RightNow Object Query Language

Page 23: Rightnow 3

Primary Objects (Incident & Contact)

*Not complete object model

0..*

Page 24: Rightnow 3

Primary Objects (May 2010)Service

AnswersContactsIncidentsOrganizationsTasks

SalesOpportunities

Management & ConfigurationAccountSales Product Service CategoriesService DispositionService Product

Page 25: Rightnow 3

Object Categories

Primary Objects

Sub-Objects

Contact Incident Organization Custom Object

Notes Threads Address Email

Subordinate to primary objects, primary objects contain sub-objectsLifecycle is based on lifecycle of primary object

If primary object is deleted all sub-objects are deleted

Sub-objects are only managed through CRUD of the related primary object

Page 26: Rightnow 3

Sub-Objects

*Not complete object model

Page 27: Rightnow 3

Sub-Objects (May 2010)

AccountCTISettingsAccountOptionsAccountSalesSettingsAccountServiceSettingsAccountSpeedDialAccountSpeedDialListAddressAnswerLinkAnswerNotificationBannerCategoryNotificationContactMarketingSettingsContactSalesSettingsContactServiceSettingsCRMModulesEmailFileAttachment

FileAttachmentAnswerFileAttachmentCommonFileAttachmentIncidentFileAttachmentSharedGroupAccountIncidentContactIncidentContactDeltaInheritOptionsLabelLabelRequiredMonetaryValueNoteOpportunityContactOpportunityContactDeltaOpportunityContactListOrganizationSalesSettingsOrganizationServiceSettings

PersonFullNamePersonNamePhoneProductNotificationQuoteQuoteLineItemSalesProductScheduleSLAInstanceStageWithStrategyStatusWithTypeTaskMarketingSettingsTaskSalesSettingsTaskServiceSettingsThreadTimeBilledTypedAddress

Page 28: Rightnow 3

Questions?

Page 29: Rightnow 3

NamedID’s

Page 30: Rightnow 3

NamedID Intro

Page 31: Rightnow 3

Understanding NamedID

Two Primary FieldsID (long)Name (String)

Convenience for DevelopersSettingDisplaying

Page 32: Rightnow 3

Types of NamedID

Page 33: Rightnow 3

NamedIDHierarchy

Allows for HierarchyUse name or id of leaf

Set Parent by Name or ID for uniqueness

Example UsesProduct / Category on IncidentManager on Account

Page 34: Rightnow 3

NamedIDDelta

Used to alter items in a list by Name or ID

Action Attribute• Add & Remove

Example UsesVisible InterfacesAccess Levels

Page 35: Rightnow 3

Questions?

Page 36: Rightnow 3

Managing Relationships

Page 37: Rightnow 3

Primary & Sub-Objects

Primary objects often contain 1:N sub-objectsIncidents ThreadsContacts Notes

Page 38: Rightnow 3

Primary Objects & Sub-Objects

Connect Web Services for SOAPLeverage list wrappers to support 1:NManage list items through an action attribute

*Not complete object model

Page 39: Rightnow 3

Primary Objects & Sub-Objects

Connect for PHPLists are represented as ArraysNo need for list wrappers

Page 40: Rightnow 3

Primary Objects & Primary Objects

Some primary objects reference other primary objects

Contact Organization

Page 41: Rightnow 3

Primary Objects & Primary Objects

Connect Web Services for SOAPPrimary object relationships are managed through NamedID

• Contact.Organization is a NamedID

Connect PHPPrimary object relationships are managed through object references

• Contact.Organization is an Organization

Page 42: Rightnow 3

Object Fields & Customizable Menus

Page 43: Rightnow 3

Setting Custom Menu Field Values

Custom menu fields have a NamedID data type

Fields can be set by ID or by Name (label)

Labels are interface/language specific

Types of NamedIDNamedIDHierarchyNamedIDDelta

Page 44: Rightnow 3

Questions?

Page 45: Rightnow 3

Generic Objects

Page 46: Rightnow 3

Typed vs. Generic

Typed Object: Contact

Generic Object: GenericObject

Contact newContact = new Contact();PersonName personName = new PersonName();personName.setFirst(“Chris”);peronsName.setLast(“Omland”);newContact.setPersonName(personName);….

GenericObject genericContact = new GenericObject();//Set the object type to contactRNObjectType objType = new RNObjectType();objType.setTypeName("Contact");genericContact.setObjectType(objType);GenericField lastGenericField = createGenericField("Last", createStringDataValue("Omland"),

DataTypeEnum.STRING);GenericField firstGenericField = createGenericField("First", createStringDataValue("Chris"),

DataTypeEnum.STRING);GenericField[] personNameFieldList = new GenericField[] { lastGenericField, firstGenericField };GenericField nameGenericField = createGenericField("Name",

createObjectDataValue("PersonName", personNameFieldList), DataTypeEnum.OBJECT);

Page 47: Rightnow 3

Generic Object Model

*Not complete object model

Page 48: Rightnow 3

Sample XML<n0:RNObjects xsi:type="n1:GenericObject">

<n1:ObjectType><n1:Namespace>objects_ws_rightnow_com_v1</n1:Namespace><n1:TypeName>Contact</n1:TypeName>

</n1:ObjectType><n1:GenericFields name="Name" dataType="OBJECT">

<n1:DataValue><n1:ObjectValue xsi:type="n1:GenericObject">

<n1:ObjectType><n1:Namespace>objects_ws_rightnow_com_v1</n1:Namespace><n1:TypeName>PersonName</n1:TypeName>

</n1:ObjectType><n1:GenericFields name="First" dataType="STRING">

<n1:DataValue><n1:StringValue>Chris</n1:StringValue>

</n1:DataValue></n1:GenericFields><n1:GenericFields name="Last" dataType="STRING"><n1:DataValue>

<n1:StringValue>Omland</n1:StringValue></n1:DataValue>

</n1:GenericFields></n1:ObjectValue>

</n1:DataValue></n1:GenericFields>….

Page 49: Rightnow 3

Why Generic Objects?

Dynamic programming vs. static programming

Runtime discovery of data types

Flexible integrations

Forward compatible integrations

Page 50: Rightnow 3

Questions?

Page 51: Rightnow 3

Custom Objects

Page 52: Rightnow 3

Web Services vs. PHP

Connect Web Services for SOAPCustom Objects are represented through a generic interface

Connect for PHPCustom objects are strongly typed objects

Page 53: Rightnow 3

Meta-data

Page 54: Rightnow 3

Meta-data

Data that describes dataObject typeObject fieldsConstraints

Programmatic version of object model docs

Used by anyone working with generic objects & dynamic programming

Page 55: Rightnow 3

Meta-data APIs

GetMetaDataObtain all the meta-data for all objects

GetMetaDataForClassObtain meta-data for a specific set of classes

GetMetaDataLastChangeTimeObtain the time of the last change to meta-data

Page 56: Rightnow 3

Meta-Data Class

Page 57: Rightnow 3

Meta-data Attributes

Page 58: Rightnow 3

Meta-data Relationships

Page 59: Rightnow 3

Questions?

Page 60: Rightnow 3

What’s New

Page 61: Rightnow 3

May 2011Key Highlights

• AnalyticsReport• AnalyticsReportColumn• AnalyticsReportFilter• AnalyticsReportFilterAttributes•AnalyticsReportSearchFilter

• Contact• ChannelUsername

• Product & Category Linking• Variables

May 2011 Key Highlights

Month

May

Page 62: Rightnow 3

Aug 2011Key Highlights

•Purchased Product•Standard Content•Sales Territory•Custom Attributes

Aug 2011 Key Highlights

Month

Aug

Page 63: Rightnow 3

Learning More

Page 64: Rightnow 3

Developer Guide – Object Model

Developer guide has a section dedicated to the new object modelObject Model OverviewCore Objects (Primary, Sub & NamedID)List ObjectsMessage Objects

Refer to the developer guide if you need more detail on any objects

Page 65: Rightnow 3

Developer Community

Page 66: Rightnow 3

Questions?

Page 67: Rightnow 3

© RightNow Technologies, Inc.

Thank You!