Home >Technology >Todd Mitchell - x db crash course

Todd Mitchell - x db crash course

Date post:09-Apr-2017
Category:
View:264 times
Download:1 times
Share this document with a friend
Transcript:

FileNewTemplate

Sitecore xDBA Crash CourseTodd Mitchell, @agenttmiTechnical Product Manager, Sitecore

@agenttmi

2

What is xDB?

4

CRMSocialMediaCustomer SupportWebsitePOSApps

problem

CRMSocialMediaCustomer SupportWebsitePOSApps

ProblemERP

Centrally stored ExperiencesCRMSocialMediaCustomer SupportWebsitePOSAppsxDB

ModelContactInteraction

Web VisitPhone CallHotel Check-InEmail OpenedOutcome

Ticket PurchaseProduct PurchaseSigned Phone Contract

Gold star supports strongly typed facets

Custom values will be replaced by facets8

Part 1

xDB Platform Architecture

9

10Server Roles

Experience ManagementExperience Database

10

Infrastructure11

11

Infrastructure Content Delivery12

Tracker

TrackerContent Delivery Cluster

Xdb is a product meant to be separate than content delivery. It constsis of 3 server roles collection, processing, and reporting

You put CD clusters around the world, then centralize xdb12

SharedContact

PrivateInteraction

CollectionDatabase

Goal

Page

PageContact (if exists)

Tracking web sessions

Delivery Cluster Session

Sitecore is a trademark of Sitecore A/S. All other brand and product names are the property of their respective holders. Copyright 2001-2012 Sitecore A/S. All Rights Reserved.Page 13

key behavior cache14New!8.1

Fast loading customizable cache of recent key behavior and eventsEnabling personalization on historical behavior

@ Scale15

Part 2API

Background Whos the Brand?18Jetstream airlines

18

Background External Systems19Membership databaseCall Center systemTicket Booking System

19

Jetstream wishes to own the experience for all individuals interacting with their brand

using all data known for an individual

The Problems22How do IUse my membership data in Sitecore xDB?Use interactions from my Call Center?Leverage ticket purchases from my booking system?

22

Problem 1Using membership data

Using membership data24Jetstreams membership system has the following attributes per user

Member Id unique identifier for their usersFirst Name, Last NameMembership Status Silver, Gold, etc.Preferred Seat

24

Solution25Extend the contact

Facet TechnologyUnified Contact ModelContact Bulk Import

25

What is contact facet technology?26Enables extensibility model on Sitecores ContactUsed internallyShip with a default set of attributes (name info, email addresses, phone numbers, etc.)Scales since its part of the Contact

Unified Contact Model27Centralizing Key FieldsDefault Attributes (first name, last name, etc.)List of email addresses with bounce countList of AddressesList of Phone NumbersConsent RevokedCommunication Revoked

27

Designing the contact28Determine which attributes the you want available in your web presence..

A few factors..Identification strategyPersonalization strategySegmentation strategy

Designing the contact

Some factors to consider

How do you wish to identify a contact? 8.0 supports a single unique identifier per contact.

What attributes about the contact do you wish to use for personalization?

Since we can index this data in our contact segmentation index, it can later be used to create lists and segments.. Lets say you wanted to send an email to all Gold level members using ExM. Storing this in xDB enables it.28

Identification leads to Merging29Happens when you call Tracker.Session.IdentifyIts expected you customize this for the brands specific facets

Defining Facet Technology30Brand AttributesFirst Name, Last Name Member Id unique identifier for their usersMembership Status Silver, Gold, etc.Preferred Seat

Contact Bulk Import31Queue up large numbers of new or existing Contacts to be stored in xDBCustomize specific attributes to be updated

Talk about the pipeline and the single merge point so brands can implement their logic..

Talk about future version of this using better queuing

Talk about the idea is to enable updates to massive numbers of contacts while maintain a stable system.. I.e. not eating all the CPU time on the processing server to import millions of contacts.31

Problem 2Using experiences from Call Centers

Using experiences from Call Centers33Jetstreams call center handles thousands of calls per day

They want to collect the results of the call per contactPersonalize the web experience based on the phone calls result

Call center handling thousands of calls per day

Each call they can identify the customer by their member id

They wish to collect each these experiences including the result of the call

Did a booking occur?Was the customer angry?Did they upsell a vacation package?33

Solution34Import Interactions

ChannelsVenuesTouch pointsInteraction Registry API

Sitecore 8 introduces support for channels

This replaces traffic type

Youll still see traffic type in the system as weve begun to obsolete it and expect it to be out fully by 8.2s release

A channel is the source of an interaction in this case it would be a phone call

Sitecore 8.1 introduces venue

A venue is the physical location of the interation.. Some example venues are a the call center where the phone call took place

34

Channel35Source of the interaction

Channel is a new field on the interaction that replaces traffic type.

While the traffic type is still found in the system, its obsolete and will be removed in the coming versions.Note: There is configuration which maps old traffic types to channels.

Venue coming in 8.1 defines the physical location of an interactions so for instance, if we consider

scanning badges at symposium, we could say the venue was Barcelona\Symposium\room 1702Ortracking a POS transaction at Starbucks Copenhagen central station the venue could be Denmark\Copenhagen\Store 1702

Touchpoint interface between a contact and a brand for us at Sitecore this is the page or content item representing the page view. Essentially we just need to tie a specific content item to a subject in the call center or kiosk. A bit more on the kiosk example we can connect the35

Venue36Physical location of the interaction

Venue coming in 8.1 defines the physical location of an interactions so for instance, if we consider

scanning badges at symposium, we could say the venue was Barcelona\Symposium\room 1702Ortracking a POS transaction at Starbucks Copenhagen central station the venue could be Denmark\Copenhagen\Store 1702

Touchpoint interface between a contact and a brand for us at Sitecore this is the page or content item representing the page view. Essentially we just need to tie a specific content item to a subject in the call center or kiosk. A bit more on the kiosk example we can connect the36

Touch point37Interface between a contact and a brand

Touchpoint interface between a contact and a brand for us at Sitecore this is the page or content item representing the page view. Essentially we just need to tie a specific content item to a subject in the call center or kiosk. A bit more on the kiosk example we can connect the

37

Interaction Registry API38Enables you to import interactionsUses same execution model as a web session

The interaction registry enables you to model a full interaction as if it has already occurred and you just need to collect it in xDB.

This uses the same execution model as a page view or even whole session in a Sitecore web session.

So for instance, you can model the entire interaction for a phone call by creating an interaction record along with a touchpoint (or content item) and push that into siteceore. The tracking field still works which means any campaigns, goals, and behavior profiles will still be tracked and triggered for the contact.

38

Problem 3Leverage ticket purchases from my booking system

39

Using the booking systems data40Jetstream has a centralized booking system for flight and vacation purchases.

They wish treat this information as experience data to use for personalization.. Surveys New offers

40

Solution41Register Outcomes

Significant events planned by the brand.

Sitecore 8 introduces support for channels

This replaces traffic type

Youll still see traffic type in the system as weve begun to obsolete it and expect it to be out fully by 8.2s release

A channel is the source of an interaction in this case it would be a phone call

Sitecore 8.1 introduces venue

A venue is the physical location of the interation.. Some example venues are a the call center where the phone call took place

41

Outcomes42Outcome is not a GoalCan have Monetary ValueDirectly associated to the contactInteractionsInteractionsGoalGoalInteractionsOutcome

InteractionInteractions

Outcomes are a significant event planned by a brand and it can have financial value

In our example case booking a ticket is a significant event..

When compared to a goal.. A goal is something the contact achieves with-in an interaction and it stays with that interaction.. An outcome goes beyond it..

Examples

Brands that negotiate contracts Signing an NDAeCommerce site purchasing a packageAirlines - buying an International Ticket

42

Registering Outcomes43Outcome Manager API

Using the outcome manager you can manage outcomes for a given contact

Stored in their own collectionCan be associated to an interaction

Can personalize on outcomes..

Can have custom values

Additional reporting is targeted around v8.243

Quick Recap..

The Problemsdone.45Membership data in Sitecore 8Facets, unified contact, Bulk importExperiences from my Call CenterInteraction registryLeverage ticket purchases from my booking systemOutcomes

Ensuring scalability security, without allowing direct web access

And supporting full integration to other Sitecore products?45

Collection Database

Reporting Database

Contact Segmentation Index

ProcessingService

Aggregationtask

Blue arrow : data fetchedOrange arrow : data pushed

Processing data flow

In 8.0Products like xfile query directly against xdb using the mongo query yet always have a contact id

xAnalytics queries against the reporting database

Searching for contacts is always done against our segmentation index47

Processing48ContactInteraction

Contact Processing49Executes when a contact is CreatedUpdatedObsoleted

Interaction Processing50Executes when:

Web session is completedVia Interaction Registry

Collection Database

Reporting Service

Content Management

ProcessingService

Aggregationtask

Blue arrow : data fetchedOrange arrow : data pushed

Reporting data flow

In 8.0Products like xfile query directly against xdb using the mongo query yet always have a contact id

xAnalytics queries against the reporting database

Searching for contacts is always done against our segmentation index52

Reporting/Query API53Querying data from xDBSQLMongoContact Segmentation Index

Querying Mongo directly54Try to only do this when using an indexed field.ContactIdIdentifier

Querying Contact Index55Uses Sitecore.ContentSearch APIUse when you wish to search across a contacts behaviorInteractionsGoalsCampaigns

Querying Reporting database56Accepts T-SQLExecutes against reporting database

Reporting Service

Content Management

Organizers

Sponsor

Thanks to our &

of 59/59
Sitecore xDB A Crash Course Todd Mitchell, @agenttmi Technical Product Manager, Sitecore
Embed Size (px)
Recommended