data.bythebay.io: Thomas Trolez, Single Customer View
Recording: data.bythebay.io: Thomas Trolez, Single Customer View
Hi. Um, hi everybody. Thanks to attending today. Um I will I will introduce you to a notion that probably most of you know is um how we can basically have a better understanding about what our user are doing in our product or in our u customer journey. So to do that we will speak to you about a single customer view. Um so a quick um I'm working with nitro we are doing cool stuff with documents and uh we need for that to understand uh what our user are doing in the product and what the our user are doing with the document to improve the experience of the user and make document smarter quicker. Um so let's start by a typical online acquisition journey. So when you have a customer um I'm taking this example because it's probably the most known
So you have people that start to have an uh an action with a website after that they go to download a content they start to read some emails that we send to them. We have they sign up for a trial they use a product and uh after that they become a customer. But all along that we can capture some sen about what they are doing and um we can interact with this sen. So the first thing will be when they eat the the website or eat the demo product the first time we can have an information here when they start to give us some information such as email or company we have ID the customer um we can at that point start to engage with them and start to discuss to tell them how the product is working what they should do in the product we can lead them to have a better experience with the product and get them cultiv ated. So that is I would say the top part of the funnel. But obviously when that is done you can lead the customer themsel during the journey inside the product and inside the the the feature of it. So if you take that um you see that to be able to understand what the customer is doing and giving them targeted uh insight we need to understand the context and why the context is key because having just a senior saying someone download or someone converted a document. We if we don't understand why and how to understand why we need to understand in which context they did it because context is critical uh for a couple of reason
uh most of the human interaction are linked to a reaction. So we have an action and we get a reaction as a human interaction. Knowing the compact help us to understand why the action came, why it's came from and it also help us to predict the upcoming event. So if a customer for instance convert a document in our world, we can predict in this case what would be the next action. So we can help them by showing what is the next most probable option depending on what they did in the past. Context is also important because it allow us to uh tailor our communication and lead the user to improve their customer experience. It's all about experience. It's all about being smarter when they use a product and smarter when they use a document
So to achieve that we need to build a single customer view. So what is a single customer view is taking all the channel for all the channel that they can we can have. So customer can interact with us on mobile they can interact with us on web they can interact with us on desktop they can also interact with us on our uh website and that is all the channel and what we do is we capture all the user activity across all the channel. We try to whole group them in a the related activity all together and because time is flowing so everything happen one after the other. So we need to to understand when when an action happen versus another one. After that we identify the user. So there is different way to identify user. Obviously if he's signing it's easy but we can also identify a user using some tracking technology
And after where it's become really critical is to to dduplicate a user because the same user can have I would say multiple virtual identity but in fact it's the same person. So that's the key component of building a single customer view. So I level how it works uh can go through all those slides but basically you have some session it's a suite of related event. We put all this session on every session we find a critical identifier and we duplicate the user one uh one two user we did duplicate them by making sure that all the session related to the same user goes to the same uh to the same single customer view. When we did that we merge personal information we merge all the activities and we can start to build some predictive analytic or analytics on it. We can start to enrich the information with external uh channels such as um knowing where the customer is uh knowing which kind of infra network infrastructure he has to do to improve that knowing basically some information that is not captured but we can enrich it from with other source of of information and that is where it become really interesting is with all this information is where you can lead the user and you can lead them real time so you know what they did in the past you know what other customer or other users that has the same u behavior did. So at that point of time we can suggest things. So let's say you are on a mobile you uh you download the you download the document you open it in your mobile and most of the time you did that in the past is because you want to do an e signature
So in this case we can start to directly suggest you what is the what are the field that you can do you can select to do the e signature and we can basically lead you to that point you don't need necessarily to do it by yourself we can suggest that to you um in another case it could be if you are if you if we sorry if you take all the customers that eat our website uh marketing website we can understand exactly what every customer did. It's pretty easy. It's it's a statistics. But if you we are able to group that by category of user, we can also lead the experience on the website. So someone that is more interested because they are doing some security research in the past on our website, they can but when they come back, we can discover that if the customer come from a a big uh enterprise or SMB, we might give them a different experience. And we can do that because we are able to identify every channel one after the other. So what are the key component of the single customer view? Obviously the first one is we need data and we need good data and for that we need to have a good data capture. Uh it should be flexible and scalable
Flexible in a way that we cannot um we cannot predict what we will need in the future and we cannot restrain the the solution at one way. So basically uh flexibility is I would say no no no non stricture data just to simplify um sessionization that is the the trick actually sization is this famous related events if you take a timeline and you have someone that visit a website uh you take all its events but what is interesting is to detect when that is finished because that's mean during that period of time it did something which makes which made sense for him. But eventually if he do that again three hours after is not the same that if his session stay for three hours. The same in a product uh if the user doing a group of things like opening three documents in a day is not the same that if he open three documents in a day or if he open three document in the same session because it will have a different interaction with the product. a different behavior um identification and duplication. That is the easy part actually is every time we have a session we have we have some ids on the on on the session and we just try to match all the session together using different various algorithm to find them. Um and after we basically do predictive analytics on behavior to get value out of that. So very high level view of how it works
Um we do the data capture. We push the data inside uh uh pipeline um with the row event. We don't process anything here. We just capture and store. We store everything just in case we want to reprocess in the in the future. When we have that we can start to consume the row event and build the session. So we basically consume the row event build a session store the session in a in a big storage push in another pipe actually the session itself. So we can consume the session at that point for with uh directly at that point but we so because we can consume the session we can go to the next stage which is doing the single customer view itself and at that point of time we are able to say okay all this session go to that single customer view we pipe that to another pipe and we can consume the single customer view and we can unreach it directly using a rest API so it's actually not one pipe but three pipe in once
[Music] Um couple of challenge obviously uh we speak about million eventually billion of uh data point uh to process uh we are roughly uh something we're speaking about at least 10 to 20 million of event a day. uh and if we speak about bigger system we can go for hundred of million of events a day captured by a system. So we need a high scalability we need a realtime context as well because we need to understand what the user is currently doing. Doing post analysis is not enough. So we can do post analysis to calculate predictive behavior but we need to understand the context real time. So we can do near-time matching and we can do near-time predictive analytics just to be sure that the user will go to one pass or another. Um and we need to do integration with third party with different various technology uh which might need near near time or time. So all these challenge are orienting the benefits of it is not that big
Uh why? Because first of all to provide the 360 view of our customer or user activities in one place. Whatever the channel, whatever the way the user interact with with us, we know exactly what he's doing and we know why doing it or at least we try to understand why doing it and we can basically get the value in one place. We provide behavior analytics so that help us to design the next generation of our products. We uncover network of user. We can discover that actually two users that are not supposed to be on the same team actually work a lot together. Uh we can also discover that someone in a company actually push uh some of our marketing email to another one someone else in the company that is a a strong signal of interest. We uncover activity flow. So we discover also how a document flow between different user how often a document is used which kind of thanks to machine learning on document that we can also understand to the content of the document why a document interact with another uh drive predictive and user behavior and drive target user experience
So now we will ask us why we build one because it look like a marketing automation tool. You are not really far from that except that marketing automation is for marketing automation. What why we build one is because we want to have everything in one place. Not only marketing but after the our customer become customer we want to enrich their experience. So we need to have also product information. We need to have all this information in one place. There is also another key component is we want to be sure that the information that we use are customer can trust on the fact that we are taking care of the of their data. We don't push the data everywhere
We are just owning the data of their activity. the same way that we take care of their content that give us a freedom to choose which is the best third party to do uh one thing or another. Um and it's allow us to leverage multiple solution uh to do analytics um to do customer behavior to do predictive analytics. We are not tied to one. Actually, long story short, we want to own the customer intelligence because that is where we can basically give a better experience to our user. So, a bit of technicalities I will say how we do we build it. Um data capture we just use a play uh server uh scale highly scalable uh on AWS. Data flow we use uh CFKA to push to push and store and the retention of the event
data storage we have different kind of data storage we use S3 for raw data we use dynamo debate for the advanced view we use analytics we use red shift uh but it's not limited to that is actually we can go to uh to some help outside also to improve to use an existing algorithm processing we use spark and analytics as I say we use uh third party and spark that's it any question. Yes, sure. Thank you. Yeah. So how do you actually I'm assuming that so the single custom sorry the question is how we flow the row data from S3 to uh to dynamo that's correct it's actually it's it's built real time so we don't flow the data from S3 to uh to uh uh dynamo on demand It's actually when the raw event are are captured. If we go back to the slide, we basically do that all of that is real time. So when we the event is captured, we keep the event just in case we need to reprocess them later. But in fact, the single customer view is built dynamically along real time when when the events arrive
So the data are captured here. They are stored in they are pushing in CFKA. uh and from CFKA we have two consumer one that store it in S3 for I would say f further study if we need it and one consumer go to another uh processing component that will calculate the session and the single customer view so there is no no direct flow the component that we use is spark to calculate to calculate the session but here in this case I don't think it's the key point of the question any other question Yeah. So for now we don't uh we don't because we have we are building other anatics on it. So we prefer to keep it. Uh we will probably in the future but for now we don't. just seems like a really useful what will force you to start deleting uh I would say cost and maintainability uh but for now we didn't reach this point any other question Cool. [Applause]