Uncategorized

– [Jesús Barrasa] Hi everyone, thanks for joining us My name is Jesús Barrasa, and I’m the head of Telco solutions with Neo4j And my plan for today is to introduce the concept of customer journey analysis, then try to understand what’s the business value of it, and how can graphs add to it And finally, in the second half of the webinar, introduce the concept of active customer journey, map, graph-based in building Neo4j So, let’s start with some definitions What’s customer journey analysis? And we have here some definitions I found on the web from some of the main analysts As you can see, it’s a practice that’s part of your digital experience technology strategy that aims at providing a cohesive view of all your customers’ interactions with the organization over time and across multiple channels And the objective of customer journey analysis is what can be optimized to customers’ experience, of course, but it can be also to predict the future behavior of your customer, or similarly it can be to identify gaps in your organizations, between different processes, between different departments, there’s a number of objects, and we’ll talk about them later on But, as customers, we’ve all experienced how companies analyze and optimize channels in isolation And what you see in front of you is the kind of emails that I get from my favorite airline when I do a search that I don’t conclude by by purchasing a ticket, and while that can be useful in some cases, it’s true that, I mean, we don’t know if that has happened after canceling a booking, after running parallel with another searches, or if I just, after that search, I called on the phone to the customer services and conclude the purchase over the phone, so this lack of context make this kind of interaction meaningless in some situations And the point is that this exclusive focus on individual interactions or channels can miss the big picture, which is exactly what customer journey analysis tries to achieve So why is it important? Well, from the point of view of customers, of course you find stats about this everywhere on the Web, but customers do value and have a good opinion of businesses that can remember previous interactions with them And similarly, we as customers appreciate relevant and personalized information, so, as I say, we all feel this disconnection and how painful it can be when we’re dealing with a company, whether that’s for service renewal, for an update, for following up on a claim and having to, every time you contact, having to provide again and again all the context So, it’s true that we don’t make it easy because, on average, customers, I believe, use two to three devices as, you know, as a channel So, it’s important from the point of view of the customers, but it’s also important from the point of view of the organizations because they want to give the management an overview of the customer experience to see how they move through the sales funnel, for example, or, think that would help to identify opportunities, strategic opportunities And similarly, organizations will want to uncover and sew gaps between channels, between departments, that can be frustrating for the customers and that can have a big impact in their business So, I hope that that gives an overview of what it is and why it’s important And coming back to the definition, the three recurring concepts The first one is, of course, the notion of customer, right? It’s a customer-centric initiative that combined with the third one, with the multichannel nature of this holistic approach to customer journey analysis, inevitably suggests that there will be an element of data integration, multichannel in IT terms, multiple data sources So, multiple views of the customer So there will be a component of integration And while graphs are super relevant in that space, I’m probably gonna leave that out of today’s webinar Feel free to browse our YouTube channel or all the content online, and– Yeah, so let’s leave that, the integration components So customer multiple channels, and finally, the third I mentioned, the time, which is the one that brings context and meaning to all these touchpoints, all these multiple events that we’ll have about a customer, about his interactions with us So, we’re saying that this is about connecting customer data, connecting events, connecting things across channels, so it’s all starting to sound pretty graphy, I would say

And how do organizations go about the entities, customer journey analysis? Well, the tool is what’s called a customer journey map So it, the customer journey map, and again, you have some definitions there They emphasize on the visual components, so a customer journey map is a visual representation It can be in the form of a document or an infograph, infographic of something, that describes the different interactions in the life cycle of a customer And, of course, I mean, it can be, as you can see on the right hand side, it can be in the form of a document, a snapshot, a frozen view of it, or it can be more dynamic And as a tool, it’s success will depend very much on its quality, on its timeliness, on its level of detail And, of course, in building it, there’s an inherent complexity, and this, I love this quote from this Ghana analyst that actually, it’s kind of a challenge, that actually is that we in Neo4j like because it’s a– I’m actually gonna use it as a segue to introduce the next section because what he brings up here is, well, he’s actually trying to explain why although organizations are quite enthusiastically embracing the concept of customer journey mapping, they’re struggling to put in practice and to get actually meaningful value out of it And that’s because there’s a significant element of complexity, first of all, variability, and unpredictability, and that’s something that traditional stores, traditional data management systems, find very hard to deal with But that’s the kind of thing that graphs excel at And as I was saying, I’m going to– I have introduced this slide that I use very often to pitch Neo4j, and you will see that any describes that the typical customer needs, the sort of requirements that drive our customers to graph-based solutions And there’s a significant overlap with what I’ve just described, so there’s a need to capture complexity, there’s a need to allow flexibility in those situations where we want to bring in multiple data sources over time and all at once, and in incremental ways So this flexibility is required We’re gonna talk about performance later when we talk about actionable customer journey maps And finally Whiteboard friendliness, this idea of a model that’s user friendly, that lends itself naturally to visual exploration So these are all requirements that the property graph model, which is the one that Neo4j implements, fulfills by using the probably, the simplest but the most powerful and expressive model, which is the graph model, which is just based off notes, or basically data points are connected to other points, connected to other data points, which is what we call relationships or edges in a graph, all right? So, right Let me introduce you, the idea of active customer journey map on Neo4j because it start from the definitions that we’ve seen and the first characteristics of it is the fact that it’s visualisable, the visual component, the possibility of exploring it visually is critical, but it adds a number of elements that, in my opinion, are critical And one of them is this flexible and dynamic aspect, right? So we understand that a customer journey map is gonna be built incrementally I mean, you don’t wait until you have all the information at hand ready to build a map You build with what you have, and as new data sources arrive, you will enrich it to provide better insights So this flexibility and agile platform is very much required so that every time there is a change, it’s not a traumatic, you know, IT project to ingest it, to include it, and to enrich the graph with it, to enrich the journey with it And finally, the last one that we bring, as well, is that it’s an actionable platform It’s not just a static graph, it doesn’t represent a snapshot, a frozen snapshot, of what reality is It’s a data driven, actionable platform that you’re gonna be able to use to drive all sorts of initiatives, and in an automated way, and by the definition of, for example, rules on your customer journeys So, from the point of view of a methodology, probably calling it methodology is a bit too much, but there’s three steps that happen in a kind of iterative way And the first one is the identification and connection of relevant data sources, basically all the channels that contribute to the journey Then, you bring them into the graph platform Then you run some, it’s called reason analysis, some identification of the key elements on the key journeys

that you want to analyze, and then once you identify, you verify your hypothesis, you build automated interactions on top of it, and that’s the actionable part of it And this is an iterative process, as I say And we’re gonna see more of it probably in a demonstration that I’m going to run for you right now So, the demonstration is about a fictitious Telco company that’s selling home broadband or maybe mobile plans, and they’re looking to, at their customer journeys, trying to understand and analyze the customer journeys to try and predict and prevent churn, right? So, in order to show you what we built, I’m going to use a couple of tools The first one is Bloom Bloom is our data exploration, data visualization platform that has been just recently released And one of the ways in which you can query the graph through Bloom is by using, what we call, the search phrases, right? So, if I look in for customers, we see that there’s a search phrase that will pick up the name Let’s think of one customer, for example, Vokins Vokins with an N, I have to learn to type, there you go So it’s the auto-completion there And what Bloom brings is a fraction of the graph Let me zoom out so you can see all the elements in there So, we see a representation of Fernando Vokins, our customer, and we see around him a number of events We see, for example, the pink ones represent interactions, calls, from customer services, that can be marketing initiatives, that can be customer service And we see that for each of these notes that are linked to the customer, we have a sentiment, a sort of score, or some kind of score, that indicates whether it was a positive or a negative interaction, from one being the most negative to five being the most positive and three being neutral So we have two calls that happened overtime, and we see that if I double click on a note, we see the characteristics and everything, all the events are timestamped Remember the time was a crucial element, and we’re gonna see why So we have calls from our customer service, our marketing team, and we see that there have also been interactions from Francisco with a help desk, right? That’s customer service chat, as we call it here And similarly, we have a sentiment score, and that, again, might be based on Fernando’s review of the interaction or some of the metrics And on the other side, we see Fernando’s service, right? Which, in this case, let me expand it here, is an instance of a– Whoop, let me travel down here Of, call it, orange extra 56 gig service Maybe it’s a mobile plan And we have a number of events also associated to this service, right? 12 would be a 12 month contract And we see, for example, information about usage All the brownish notes represent events again, and they’re all similarly timestamped, that provide information on a monthly basis of what’s the usage in terms of calls, data, or minutes in other plan calls Similarly, we have information about incidents, maybe incidents in the networks, or that can be incidents that have potentially affected Fernando’s service, right? So, yeah, in this case, we have a service outage that took place in a particular date like all the other events, and another event that was no service impacting So you can think of these as an aggregation, as I was saying before, of data coming from multiple different sources And, of course, we will have the event representing the service description, when the contract started And we create, also, future events, things that haven’t happened yet, but are milestones in our journey, which is the expected service renewal, right? And we see how we’re gonna use that in a minute So this is a good way of exploring, you know, all the information about a customer, and we can see that things are connected because there are other subscribers of the same service, and if I expand it, I can see other instances of service of that particular orange extra 56 gig And for each one of them, we will have similar information to the one we found for Francisco So that’s the first overview of the model Let me clear the scene, and do another type of search So this was based on a predefined search phrase,

where I just need to parametrize with the name of a customer in that case But Bloom can also sort of interpret pseudo-natural language, it’s not completely natural language because we have to be slightly aware of what the model looks like, but I can, let me think of an example I want to analyze churn So the event that represents a churn, is a customer churning, is a non-renewal event So, if I look for a non-renewal, we see that as I type, Bloom is detecting maybe it would be a good idea? I don’t know how readable that is, but maybe that will make things better So, we see that– No, maybe actually increasing it, anyway So we see that that departure is detecting the fact that there is a non-renewal type of event that is actually connected to a service, to the for service relationship, and that’s what I mean that I need to be familiar with the model Sorry, for service instance And that would be connected to service instance that connected to a customer And for the customer, you see that as I type, the departure is mapping it to the data in my graph so that the customer has a property that’s the name And, for example, I’m going to use with– sorry, let’s space, his name, for example, Garlick Okay, and that’s exactly the pattern that I’m looking for So if I go back to my full screen mode, we see that, effectively, we have a similar pattern, similar structure to the one we see before with Fernando We have this Lona user that subscribes to a particular service, and we have an event that it’s actually the non-renewal event But if I expand it, we see that we have exactly the same information that we had before, all the usage, when the subscription take place, the type of service, et cetera, et cetera, right? So, as I was saying, this is exploratory view, and you may say, well, I can see that that’s nice to see all the information that we have about a customer, but I’m missing one element which is the sequential element, right? We said that we wanna look at events as they happen overtime, right? So we’ve aggregated the events, but we don’t see this connection And to do that, let me jump to our other service of interaction with the graph, which is the browser, right? In the browser, we have a more, it’s basically a query interface So we write cipher, cipher is the query language that we use with Neo4j, and we have a much more powerful and expressive interface, but it’s fully more technically, oriented to technical forms So, I have some queries here that I’m going to run to show you a little bit more about the model So I was saying that I’m interested in this sequential view of events, right? So, what this query is running, for a particular customer, right? Again, our friend Fernando Vokins, I’m saying, well, find me this customer From the customer, find the service that he subscribes to, and find the first event, which will typically be the service subscription, right? That’s when the service starts, when he subscribes to that particular service And then from there on, that note representing subs, go all the way back, and that’s the link list of events that are connected through the next relationship, give me all the events that we have about his interaction with us, across all possible channels And, well, again, that’s probably a technical detail, but this asterisk indicates the go– it’s a variable length expression and it means go all the way back in time following the next relationship until you get to an event which is probably the expected service renewal, right? Well, back in time, actually forward in time, because we’re starting from the point where the subscription was created So if I run this query, what we get is a different view So here, we don’t have the connection to the customer We have just a chain of events that has the route of it, the service subscription, a number of events that is just service usage reports that come every month, but interleaved, we can see, for example, that a customer phone call, right? A customer service phone call, that might be one of the campaigns that we were talking about before There might be an interaction with the help desk, right? That green one is, no, this is an incident, actually, it’s the incidents that we were seeing before So we see that things happen all the time, and ultimately, this journey finishes on a future event that’s meant to happen next month, September, October 17, which is the expected service renewal, right? So that gives us this sequential view And while that’s nice to see, it’s probably not the most useful way You might want to present the same information, it’s exactly the same query, as you see, but I’m going to present it in a more tabular way And that actually returns this for every step

in the sequence, we see the timestamp, when it took place, what type of event happened, and all the details about the event And, of course, it starts with the service subscription, and then there’s usage reports all the time, things like interaction with customer service, et cetera, et cetera So it’s an overview of the data, right? Good, so that’s what the model looks like So we see that I have in detail how the whole data ingestion and integration happens I mentioned before that I would leave that out of today’s session But once we have this view, what we want to analyze and start to try and understand churn, right? So, what do the paths that lead to churn look like? That’s the question that I’m asking And again, we saw that the events, the note representing a customer churning, are non-renewal events, right? So, if I start from an non-renewal event, and see all the sequence of events that lead to it, I can ask interesting questions, this is a global question, not specific for a particular customer but for all customers So if I run this query, it’s gonna scan all the customers that have churn, that have a non-renewal event, and it’s giving me the list of the different types of events So we see that it starts with the service subscription, it continues with maybe some customer service calls, a chat with the help desk, some incidents happening, and some service usage information We saw that service usage is gonna be there always because we have that on a regular basis every month, and there’s always gonna be a service subscription So we want to look at what’s different about each of them, right? So what we can do, for example, instead of looking at them in detail one by one, I can say, well, give me a summary of the most frequent ones And if I aggregate them, we see that the one that happens more frequently is when, between the subscription and the non-renewal, we have things like incidents, we have something like interactions with the help desk, maybe with negative experience We’ll have to look at the satisfaction, at the score, at the sentiment score that we’re looking at So, this just gives us an overview of what do these paths look like instead of going step by step, that gives me the, kind of, the skeleton of the path Right, so now that we know that there are these types of events that might have an influence, I can start testing my hypotheses, right? What do I mean by that? Let’s say that I think that maybe having a bad experience with customer service or with the help desk may have an impact on churn So what kind of query would I write? I would say, well, let’s look at all the, again, all the paths that terminate in a non-renewal, in churn, and let’s see if there’s any instance of interaction with the customer service, we call it customer service chat, is one of the ways you can interact with the help desk, right? It can be phone, it can be chat, that’s the data that we have in this data set So, this is the type of pattern that I’m interested in, and again, I mean, I don’t want this to be, of course, a training in cipher, but I hope this is quite self-descriptive in a way, and, well, first of all, I hope it’s readable But, the idea is that we’re asking pretty complex and deep questions about the patterns and with, as you see, we’re doing it in one line of code So I’m saying start from a note that represents that non-renewal and go back in time, as deep as you want, follow all the events, and then do some aggregating In this case, what I want to understand is for all the interactions with the help desk, what was the sentiment, the average sentiment So I’m using just a simple average function to aggregate So if I run this, we’ll see, and again, that’s been done on an individual basis, we’ll see that, well, in most of them, there’s a number of interactions, right? Well, most of them, because I’m looking at these patterns So there’s a number of interactions with the help desk And we see that the average sentiment is, mm, suspiciously under, remember the three was the neutral, so anything under three is probably negative or very negative So there will be exceptions, probably, yeah, as you can see, just above But in general, it looks like there seems to be quite a bit of a correlation between a bad experience with the help desk, some probably technical problems, and the fact that our customer churns Again, I’m facing these, and I’m conscious of, you know, trying to show in a short space of time this whole process that I was describing before But this is the, typically, the job of a data scientist, that you will, to some extent, be able to automate as we’re gonna talk later, as we’re gonna discuss later But, so yes, we see that there’s some kind of correlation between bad experiences, negative experience with the help desk and churn And in a similar way, would service usage have anything to do with churn? Well, we can look at that as well, and we can say, well, again, from all the paths, all the journeys

that terminate in non-renewal, there will be information about service usage And the service usage has absolute values on text, calls, and data usage, but it also has a data usage index which is a relative value saying you using 50%, 40%, 75%, 120% of all your monthly allowance So, if I look at that, and I run same, a query, like I did before from all of our churners here, I’ll see that the average usage is also significant, as well I wouldn’t call it low or anything if it’s 56, 60%, but it’s, I would say, around 50% usage So that might be another reason why if you realize that you’re not using what you’re paying for, you might decide to not renew your service, right? So that’s another simple analysis that we can do in one of these two line queries And what do we do with all of that? Well, basically, we will come up with the model, we come up with a prediction of what, based on the past, can help us predict in what’s gonna be the future behavior So let’s say we validate that, and I’m simplifying this for this demo, but let’s say we come to the conclusion that negative experiences with the help desk and under-utilization of your service can be an indicator of potential churn So what we’ll do is we will build an automated predictive model, here, that basically looks, it’s probably a bit more complicated query, but still, we’re looking at the customers that have an expected renewal in the next few months, so before the end of the year So the renewal is due before the 31st of December, this year And again, we’re gonna be looking at the two elements that we thought were relevant One is service usage, and highlighting those that are under 50%, and customer service chat, which is help desk at a sentiment that’s under three, which is the neutral one So if there’s any of these two conditions happening for the customers that are due to renew in the next few weeks, few months, I wanna highlight that, and I’m presenting that in a table So that’s the simple way of producing, as you see, what I’m describing here, the logic of what I’m doing, and keep in mind that we’re doing it with three full lines of code, so this is a list of all the customers that are due to renew in the next few weeks, months, and that verify any of the conditions that we consider relevant from the point of view of maybe helping predicting churn Right, so I’m gonna stop it here because I’m conscious of time and I want to come back to the conclusions before we answer questions if we have any Right, so what’s the conclusion from this exercise? Well, first of all, it’s that the graph gives you an efficient and flexible way of representing your customer journey data, right? And, in that sense, Neo4j, being a platform that uses graph as the way of representing and analyzing and consuming data gives you a headstart, not only because it represents data like that and can make it possible for you to analyze it like that, but because it also comes with a number of out of the box components or connectors to ingest data from any possible data source It comes with a library of algorithms We haven’t talked about that, but if you enrich, for example, your model with data about, let’s say, interactions between customers, you can not only predict churn, but you can also try to understand what’s gonna be the impact of an influential customer be, in case he or she decides to not renew And that can be based on algorithms like centrality, like community detection, et cetera, et cetera So, all that comes out of the box with Neo4j, and, well, if you’re ready to build your active customer journey map with Neo4j, then it’s my call to action So four, it’s a long list, but, first of all, go and download Neo4j from out website I have a specific recommendation that I think is relevant to this webinar which is appointed to this very interesting blog post by my colleague, Adam Cowley, on how to build an active customer journey map on Neo4j from Google analytics data So it’s a very detailed step-by-step description of how to do it, so that’s an interesting resource, I think And, of course, once you start working with Neo and playing with it, join our online community, there’s the link But if you’re taking it seriously and you wanna bring a solution into production, maybe you wanna reach out to us for licensing information and best practices around building active customer journey maps That’s it for me, thank you very much, and– – [Woman Interviewer] Thank you Yeah, thank you Jesús So, we’ll try and answer a few questions now So, to start off, we have a question around Google analytics, so can you think of some way to incorporate Google analytics, maybe website visits,

that sort of thing, into this sort of customer journey? – [Jesús Barrasa] Absolutely, and that’s precisely, let me go back to the link, that’s exactly Adam’s content So what he’s done is he’s taking a big dump of Google analytics data on a public data set, and it’s a lot more granular, so what I’ve tried to describe in today’s demo is more like a multichannel overview This is more focused on click stream, on understanding how you navigate your pages, what transactions happen But that’s definitely a possibility, and I refer you to this very interesting blog post about it – [Woman Interviewer] Okay, great And from your experience in the field, how much time from the, kind of, start to finish of a Neo4j project tends to be spent on data collection and preparation? – [Jesús Barrasa] Right, well that’s, of course, a critical element The thing, I mean, it’s hard to, of course it will depend on the complexity of the data sources, it’s not the same to load a CSV, a simple flat CSV with 10 columns loading a hierarchical structure from an adjacent, I mean, it can vary a lot But the idea is that it’s pretty standard, I would say, that you should be able to, that’s what we do in this field, is to to build a prototype in a short iteration, let’s say, couple of weeks, something like that, and then build from there, iterate That’s the idea I mean, Neo4j, as I was mentioning before, accommodates change, it’s built for, I mean, it’s a schema-less platform So, you don’t need to know everything upfront and do a massive modeling exercise, you can build your solutions incrementally So, I don’t know if that answers your question, it’s a bit vague, but I hope it gives you an idea of it – [Woman Interviewer] Okay And when you download Bloom, can you let us know how you would normally represent or visualize the timeline within Bloom? – [Jesús Barrasa] Well, the representation is actually in the database Now, whether you can see that in Bloom, of course you can, I don’t know if that would be super useful because, and that’s why I focused on the other visualization, but you can, of course, take an event of any type, follow it by another event, right? And if I look for this pattern, probably Bloom will, I mean, it won’t explode, but it will probably take all the paths Let’s see what happens, but it’s gonna be a pretty large data set that’s gonna come out of it I’m not sure it’s the best idea But, and that’s probably down to my laptop being a bit busy, but we’ll see what happens, wow (laughs softly) Wow, that’s a lot of notes Not a very good idea So yeah, I mean, as I’ve tried to show today, it’s visualizing this sequential link of events It’s not that useful, I mean, it’s important to have it because it enables very, very interesting and very sophisticated queries on what’s happening and what kind of patterns of events, but the visualization may not be that useful But again, that’s just a prototype, it’s a demo There might be cases in which seeing the chain of events like we saw in the browser could be done in Bloom Another way would be to create a text, sorry, a search phrase that would return the customer data in the form of a chain as opposed to groups of notes like we saw before – [Woman Interviewer] Okay, and on a related note, is there a limit to the number of notes you can have when you’re using Bloom? – [Jesús Barrasa] Well, that’s a good question which I’m probably not the best person to answer, I think that would come down to the, first of all, to the client-machine, I would say, but I would, for saying something wrong, I would rather leave it unanswered, check it with the Bloom team and come back to you But, well, it could be a large number as you can see there (laughs loudly) – [Woman Interviewer] Definitely And okay, so we’ll try and squeeze in one more question So, how would you be able to start details of an event rather than just add the sentiment score that you assigned? – [Jesús Barrasa] Right – [Woman Interviewer] If you wanted to, you know, provide a bit more detail around the sentiment score – [Jesús Barrasa] Absolutely, and that’s a very good question because, I mean, for my demo, something that you can present in 10, 15 minutes, I want to try to simplify it to the minimum Basically, you can have, I mean, this sentiment score may not even exist, it’s something you may want to compute on the fly based on some other elements, as you described So, of course, there’s a whole modeling exercise, and in my case, I just wanted to have an element that I could use for my queries, but you can compute it on the fly, you can say, well, if you can be flexible

and say if, for example, the usage, if it’s above 10% or 20% of the monthly allowance, then you do this other thing And same with the score, so you can outcoded it or you can represent it in different way And in some cases, I think the service usage, I saw an example, I’ll show an example where you have the actual details of the data usage for data calls, texts, et cetera, and then there’s a combination of all of them using the average, but that will depend on your case

You Want To Have Your Favorite Car?

We have a big list of modern & classic cars in both used and new categories.