SUGNL sHertogenbosch Welcome Sitecore 9 x Connect and
SUGNL 's-Hertogenbosch - Welcome Sitecore 9 x. Connect and Marketing Automation Speakers: Daniil Raschupkin - Lead Sitecore/. NET Developer at Brimit, Sitecore MVP 2017, Sitecore 9 Certified, MCP Alexei Vershalovich - Managing Director at Brimit, Sitecore Team Lead & Consultant, Sitecore 9 Certified Daniil @danlrby Alexei @lebeg
SUGNL – Sitecore x. Connect Sitecore 9 Partners Intro webinar Daniil @danlrby Alexei @lebeg
SUGNL – Sitecore x. Connect Background (Sitecore 8. x Problems) § § § Scalability Session expiration Contact Locks Extend model Lack of documentation Daniil @danlrby Alexei @lebeg
SUGNL – Sitecore x. Connect Background (Sitecore 8. x Problems) eve lop ell /do c. s ite c ore. ne t/d &w ttp s: / De do velop cum er en frien ted dly h & Om cus ni-ch tom an iza nel r ble ea dy Sec reg ure, ula sup tio po rts n GD ) PR EU ers / Scalability Session expiration Contact Locks Extend model Lack of documentation Sca Clo lable ud & rea dy (Pa a. S § § § Daniil @danlrby Alexei @lebeg
SUGNL – Sitecore x. Connect Edit x. DB Contact (SC 8. x) public void Set. Contact. Data(string username) { Lease. Owner lease. Owner = new Lease. Owner("YOUR_WORKER_NAME", Lease. Owner. Type. Out. Of. Request. Worker); Contact. Repository. Base contact. Repository = Factory. Create. Object("contact. Repository", true) as Contact. Repository. Base; Edit Contact with x. Connect public void Update. Contact(string source, string identifier, Data data) { using (XConnect. Client client = Get. Client()) { Identified. Contact. Reference reference = new Identified. Contact. Reference(source, identifier); // Attempt to obtain an exclusive lock on an existing contact in x. DB. Lock. Attempt. Result<Contact> lock. Result = contact. Repository. Try. Load. Contact(username, lease. Owner, Time. Span. From. Minutes(1)); Contact contact = client. Get<Contact>(reference, new Contact. Expand. Options(Personal. Information. Default. Facet. Key)); if (contact == null) { return; } Contact contact = null; if (lock. Result. Status == Lock. Attempt. Status. Already. Locked) { // Another worker or a live web session has an exclusive lock on the contact. // You can't use this contact right now. It's up to you what to do in this case. /*. . . */ } else if (lock. Result. Status == Lock. Attempt. Status. Database. Unavailable) { // Database is down. Try to handle this gracefully. /*. . . */ } else if (lock. Result. Status == Lock. Attempt. Status. Not. Found) { // A contact with the given identifier doesn't exist. // Just create a new contact object. contact = contact. Repository. Create. Contact(Guid. New. Guid()); // Set Facets client. Set. Facet<Personal. Information>(contact, Personal. Information. Default. Facet. Key, personal. Information); } } client. Submit(); // Identify it. contact. Identifiers. Identifier = username; // And make it known. contact. Identifiers. Identification. Level = Sitecore. Analytics. Model. Contact. Identification. Level. Known; } else { // We successfull locked an existing contact = lock. Result. Object; } // Set some contact facets: /*. . . */ } // Save the contact and release the lock. if (contact != null) { var options = new Contact. Save. Options(release: true, owner: lease. Owner); contact. Repository. Save. Contact(contact, options); } Daniil @danlrby Alexei @lebeg
SUGNL – Sitecore x. Connect New roles & services https: //sitecore. gallery. video/detail/videos/xconnect/video/5596004966001/xconnect---scaling Daniil @danlrby Alexei @lebeg
SUGNL – Sitecore x. Connect § Service Layer § Implements o. Data protocol § Provider based § Use x. Connect to read/write/search § Supports sync/async § Supports batching § Secure § Customizable § Not x. DB Daniil @danlrby Alexei @lebeg
SUGNL – Sitecore x. Connect Core components § x. Connect Collection service § x. Connect Search service § Automation Operations & Reporting § Marketing Operations Daniil @danlrby Alexei @lebeg
SUGNL – Sitecore x. Connect Experience/Collection Data Daniil @danlrby Alexei @lebeg
SUGNL – Sitecore x. Connect Facets Daniil @danlrby Alexei @lebeg
SUGNL – Sitecore x. Connect default Facets Daniil @danlrby Alexei @lebeg
SUGNL – Sitecore x. Connect & Marketing Automation Demo Daniil @danlrby Alexei @lebeg
SUGNL – Sitecore x. Connect The tracker is used on Sitecore Content Delivery servers to track a contact during a session. The tracker has its own data model which is converted into a format for x. Connect by the XConnect. Data. Adapter Daniil @danlrby Alexei @lebeg
SUGNL – Sitecore x. Connect Daniil @danlrby Alexei @lebeg
SUGNL – Sitecore x. Connect Daniil @danlrby Alexei @lebeg
SUGNL – Sitecore x. Connect Daniil @danlrby Alexei @lebeg
SUGNL – Sitecore x. Connect Daniil @danlrby Alexei @lebeg
SUGNL – Sitecore x. Connect Daniil @danlrby Alexei @lebeg
SUGNL – Sitecore x. Connect Facets used across the demo Automation. Plan. Enrollment. Cache Avatar Classification Contact. Behavior. Profile Email. Address. History Emails Engagement. Measures Exm. Key. Behavior. Cache Face. Api. Contact. Info Interactions. Cache Key. Behavior. Cache List. Subscriptions Personal Phone. Numbers Daniil @danlrby Alexei @lebeg
SUGNL – Sitecore x. Connect Api Features • Calculated facets • Search • No Sitecore. Content. Search • x. Connect Service plugins • Xdb. Contact. Event. Watcher • Example: Batch executing, Operation completed • Right to be forgotten Daniil @danlrby Alexei @lebeg
SUGNL – Sitecore Marketing Automation § New way to create automated campaigns § Easy & User friendly § Customizable § Is a stand-alone Windows Service/Console App/Azure Web Job Daniil @danlrby Alexei @lebeg
SUGNL – Sitecore Marketing Automation Built in Action Types Classification § § § Campaign Entry Marketing Action Listeners Decision Points Other Daniil @danlrby Alexei @lebeg
SUGNL – Sitecore Marketing Automation enrollment § Automation processing pool - A new entity (contact or interaction) is created in x. Connect § Timeout worker - regularly evaluates all ‘Pause’ activities § Operations API - directly, bypassing the processing pool § Enroll contact in a plan(s) § Register live event(s) § Delete contact from plan(s) Daniil @danlrby Alexei @lebeg
SUGNL – Sitecore Marketing Automation Custom Action § Create Activity Type backend logic and definition item § Create Activity Type Sitecore UI and Editor (Angular, Typescript) § Deploy Activity Type to Sitecore UI and MA engine § Implement ICondition interface § Deploy condition definition to MA engine Ch e act ck B ivit rim y im it B ple log me for nta sam tio n ple Custom Condition Daniil @danlrby Alexei @lebeg
SUGNL Thank you! Daniil @danlrby Alexei @lebeg
- Slides: 25