Now back for a run again running back to the hotel. So I ran from the hotel to see my friend and I'm running back to the hotel Heading to the Renegade Summit now. Just in an Uber heading over to Holborn area of London So I've arrived at the Renegade Summit. It's a bit of a jam packed house Got a yaya of a car rocking that Oh So just gave a talk at the Renegade Summit. How was it guys? So you got you got a pair of swannies, when? Nice Hey here at the summit and Absolutely amazing event definitely come down. You learn so much and you know I wish you could see more but it's gonna end right now So Sam, what's one lesson that you learned from the talks about?  For him here, do you like my talk? I love to talk I definitely got a lot out of it and the main thing that I got a bit is that there's no such thing as something for nothing John what was one thing you got out of today quality of a quantity if you have a busy day Mia, what was your one thing? Like that Just enough and I know this the acid tests. Let's have a look There you go, he's trying them on what do you reckon pretty good. Let's have a look at the photo you took How did you put on? So that was a fun day at the renegade summit in London, we're heading off to the VIP dinner an hour you want to come Let's go. We'll go to the VIP dinner. Let's go There's Raymond Duke world-class copywriter complaining about a 10-hour flight from the from the US to London Jesus try LA to Brisbane Oh my god, is that Brandon Carter is that Brandon Carter? Oh look out Yeah, so I want to get a little video with all the speakers just to say yeah, just answer one question Drop in some knowledge problems at the VIP dinner All right time to go home after a long day now I'm in the We're heading back to the hotel in London traffic Final morning in London just woke up always go for a run Get the endorphins going for the plane ride home Here's a map of London. So I am Here and we're gonna go for a run around Hyde Park Yeah, all Kensin and gardens


QuickBooks Online 2023 E-commerce and QuickBooks Flow Chart Get ready to earn the skills needed to boost your bank books on up with QuickBooks Online 2023 Support Accounting Instruction by clicking the link below giving you a free month membership to all of the content on our website broken out by category further broken out by course each course then organized in a logical reasonable fashion making it much more easy to find what you need than can be done on a YouTube page we also include added resources such as Excel practice problems, PDF files and more like QuickBooks backup files when applicable so once again click the link below for a free month membership to our website and all the content on it here we are in our QuickBooks Online test company file remember in the primary two ways you can practice with QuickBooks Online possibly for free is number one the free 30-day trial often offered by Intuit Intuit being the owner of QuickBooks which you can currently find on the Intuit website intuit.com then search for the QuickBooks software I would normally then go all the way to the bottom of the page because although this sales page will change over time they have had this footer quite static and constant over the years where you can then select the product of QuickBooks Online this sales page being a bit more static over the years than the prior one and has had for a long time this free 30-day trial that you can toggle on the other option you have going back to our test company file is to use the QuickBooks Online sample company file and you can open the sample company file while having your current company file open if you use another browser or we suggest using the incognito window so now we've opened the sample company file with the incognito window we have the two company files open at the same time if you're using Google Chrome you can open an incognito window by selecting the three dots in the browser new incognito window then search for QuickBooks Online test drive select the option that has intuit.com because Intuit is the owner of QuickBooks in the URL okay so now we want to think about the flow chart for QuickBooks and the normal process for an inventory related company so that we can then deviate it or change it for the specific needs and we're dealing with a company that has e-commerce and another platform such as I've got like a Shopify store over here so we have a Shopify platform where the actual sales are taking place we're tracking some of the products possibly in another platform and that's going to make it a little bit different than the norm of tracking inventory within QuickBooks if we didn't have a whole separate kind of Shopify platform so let's jump on over to a flow chart over here this flow chart is actually from the QuickBooks desktop version but we're just looking at it to look at the flow of the inventory and sales as it goes to the cycle and the forms and the names of the forms will be much the same in QuickBooks Online when thinking about a business that buys, marks up and then sells inventory making a profit from that profit margin we can follow the flow of the inventory from the purchase of the inventory represented in our flow chart here in the vendors or purchases cycle to the point where that inventory is sold represented in our flow chart in the customers cycle which you can think of as the sales or the revenue cycle we're first going to consider that as if we're basically an on-ground type of store because QuickBooks is basically designed for that type of setup and then we want to think about what kind of modifications need to happen within the process when we actually have a virtual type of store and a lot of the logistics are being handled not in an on-ground type of situation but by a third party that we're going to be integrating in so how can we pull that information into something from like a Shopify or an Amazon in order to construct our financial statements when thinking about an on-ground store that sells inventory following the flow of inventory the first step of course is the purchase of the inventory which may but does not always start with a purchase order the purchase order being a little bit unusual of a form because it doesn't have an actual financial transaction related to it and it seems a little bit backwards in process when we compare it to like our purchase personally of online stuff for example like if I was to purchase something from Amazon personally I have to pay for it when I request it and then they ship it to me the purchase order is basically reversed where we have the power to be able to say hey I would like you vendor to ship me the goods that I'm requesting with the purchase order and then I'll pay you after I receive it so it kind of depends if you have the capacity to request the inventory to be shipped before paying it if you're using the purchase order then we can imagine the next step we've received the inventory in our store or our warehouse or whatever with a bill in it and if the inventory count matches the purchase order we're going to enter the bill into the system which will actually record the inventory at that time and then we'll pay for the inventory when comparing this to an e-commerce type of situation we might have a similar process for the purchase of the inventory but we also might have a third party platform helping us out with the logistics of purchasing the inventory and we may or may not be dealing with the actual physical handling of the inventory so for example if I look at a Shopify type of store and I was to list my products the main goal of the Shopify seller is generally to logistically be able to have the number of units of inventory that they can be tracking so that they don't have too much inventory so that it spoils or it becomes useless over time and so that they have enough inventory so that they can fulfill the needs for requests of that inventory that's kind of where the focus will be however on the bookkeeping side of things we also need to think about not just the units of inventory but also the cost of the inventory so we can properly record in dollars in dollar amount, not unit amount the amount on the financial statement for inventory and cost of goods sold and because inventory prices kind of change over time we also usually need to use some kind of flow assumption like a first in first out or last in first out so that's some of the issues we'll kind of dive into in future presentations there's kind of easy ways to do that and there's going to be more complex details raised to do that and there's pros and cons of the different kind of ways we can be tracking our inventory if we were tracking inventory within QuickBooks in an on-ground type of system usually we would be setting up actually inventory items in the QuickBooks system so again in a Shopify store you're typically looking at the inventory units that you're going to be putting into Shopify and then you have this issue or question of should you be pulling those inventory items into QuickBooks the way you might be doing inventory if you were working in an on-ground type of system many people would generally argue that maybe that would be redundant maybe that's not the best thing to do because QuickBooks Online isn't really designed to be tracking inventory when you're looking at an e-commerce type of situation it's a little bit redundant to track the inventory in both spaces and you can also overwhelm your QuickBooks file if you have a lot of sales by just pulling in all that data into QuickBooks when you may already have it somewhere else so we'll dive into how can we pull that information then in if you were selling it in an on-ground type of situation then we would be and you were tracking inventory in a perpetual inventory system then we would be adding the products and services as we buy them into our products and services tab here okay so let's go back on over to our flowchart and so then once we have the inventory on the books the next thing that happens is we sell the inventory now the sales forms in QuickBooks are going to be an invoice and a sales receipt so and before I get into that in more detail let me just if we boil down the purchase of inventory to what happens on the bank account at some point in time of course we're paying for the inventory we're going to see the cash go out of the bank account with a check form which you could call like an expense type of form and if you have the bank feeds on we'll talk about integrating the bank feeds we'll see it the money go out of the checking account and then the question is how are we going to record basically the money going out of the checking account if we were doing a full service tracking inventory system within QuickBooks we would need to be tying it out to the items so we can run inventory reports if we're not doing a full service system within QuickBooks which is typically the case when you're using a Shopify store we're going to have to track inventory someplace else partially in the third-party platform because we'll have the units of inventory that we can try to make sure to populate here but we're usually going to need something else like a spreadsheet or possibly a third-party app depending on how complex you want to get alright then when we sell the inventory if it was an on-ground store and we're using a perpetual inventory system we would use an invoice and or a sales receipt so if it's actually in a store and someone bought it in the store we would use a sales receipt so we don't have to track the accounts receivable and the invoice is used when we're going to have to deal with accounts receivable to track them to pay us later so let's just think about a sales receipt situation because that's similar to an e-commerce situation because when someone buys something on a website they're typically going to pay for it at that point in time which is similar to someone purchasing something like in a store and bringing whatever they're purchasing up to basically the cash register now when you think about a sales receipt the transaction that happens in a sales receipt is quite complex actually even though if it's set up properly it's easy to facilitate you might have gone to a grocery store that has a self-checkout you can do it yourself you just scan the thing but the actual transaction that's happening is it's recording an increase in whatever you're paying them in cash that's going up possibly into some holding accounts so they can group the payments and then put it into the bank account the other side is going to revenue or sales and then you also have to deal with a decrease of inventory at that point in time and you have to deal with the related cost of goods sold and possibly with sales tax all happens at this point if you're using a perpetual inventory system so that means that if I was in QuickBooks in order to do that I would have to have my items to be set up properly and then and then when I make a sale I would use either an invoice or a sales receipt and the items as I enter the items into the system and we'll show a demonstration of this in future presentations it would properly do everything we just said it would reduce the inventory account in dollar amount and as well as the subsidiary reports and unit record the proper cost of goods sold related to that and record the sales related to that and deal with the sales tax now obviously we can't do that in a Shopify situation because we're not usually going to make a sale with a sales receipt form in a Shopify situation what's going to happen is Shopify or Amazon or whatever we're using is going to be facilitating the sales transaction so what we're going to see on our side then in QuickBooks is eventually the sale is going to hit the bank account so what happens is I'm going to make the sales here and usually each sale may not hit the bank account at each sale so if I sell $5 products then it's not like my bank's going to be hit by $5 $5 $5 each time often times there's going to be some kind of batching that takes place so if I was in an around store for example I'm at a cash register I would basically make whatever sales I do for the day if they were cash sales I would group that cash together and go to the bank and then deposit a lump sum for the cash sales that happens so what's going to happen on my bank account is I'm going to have a lump sum amount that's going to be hitting the bank account so that means that when I categorize the bank account on my books I want to categorize it in the same grouping that's going to be showing on the bank statement which adds kind of another bit of a logistical type of problem so when we think about an e-commerce situation we're not going to have a sales receipt what we do have are the bank feeds we're going to see the thing hit the bank so that's one thing that we can deal with now when we see the thing when we see the deposit hit the bank in the Shopify store as we saw in the past one of the problems is that we're not going to see some of the expenses and stuff related to it so what we would like to do possibly is use other integration apps if we want to get more advanced so that we can break out and see more of the detail that's going to go into our system so usually the question is well how am I going to deal with this inventory flow within QuickBooks facilitating some of these transactions in a third party platform well one way you can try to do it is you can say I'm going to integrate everything from Shopify every sale that happens in Shopify every time I make a sale of a product I want it to pull in to our system over here as a check form or bill form every time I buy inventory and then every time I sell inventory I want to create a sales receipt that will then tie out to product items that I have set up in QuickBooks which will basically mirror exactly what we would be doing in an on-ground type of situation now there's a problem with that method and that is that it's quite complicated number one because now you've got to set up all your items in here and in Shopify make sure that they tie out and then make sure that the integration is working properly it's redundant possibly because you already have a lot of the data in like a Shopify or Amazon in terms of the inventory count so to do it again in QuickBooks may not be necessary in free often times when you're making sales on like a Shopify or an Amazon you're looking for volume you're looking to sell a whole lot of products and you might not need to track in-depth each customer other than to get them on your mailing list or something like that in QuickBooks you might not need to pull all that stuff into QuickBooks and if you do then it could overload it could weigh down your QuickBooks file over time and that wouldn't be a good thing to do so usually the recommendation especially for smaller businesses is not to do that because hopefully you're going to grow and you don't want to overwhelm the system or make things too complicated so the next way we can do that is we can say well let's think about the points where the bank account is going to be impacted especially on the purchasing side I can see of course when I purchase inventory I'm going to see the transaction hit the bank and instead of using a perpetual inventory system we'll use more of a periodic inventory system so that's how we'll deal with that side of things and on the sales side of things we can wait till it hits the bank and do the same thing record the revenue when it hits the bank however we're also going we might want a little bit more detail than that on the revenue side so we could use integrations and apps to kind of give us more detail on the fees and whatnot so that's kind of why the inventory system in QuickBooks is not really designed exactly for the e-commerce system however you can't integrate it fairly nicely into an e-commerce system because the real issue is that the other platform is doing part of the work so now you got to pull in what you need into the QuickBooks system and we're going to modify it so that it fits our needs and our needs of course will change on the different businesses we have and how large we are and how much detail we want and so we'll talk about some of those issues in future presentations


Well, aren't we just finishing up the site? That's pretty much where I'm at, I think, sort of. OK, let me list what's at least to do. There's basically putting in the final sessions, and I'm still waiting on those. There's push messaging and notifications if I can get to it in time. And I think there might be one other thing that's escaping me at this exact moment. If it's important, I'll remember it. If not, I won't have it to-do list somewhere. It'll probably be on there. But since I last recorded a video, it's been a few days. And the reason it's been a few days is because I have been working on the service worker part, and I wanted to try and get that just right. And it's working. I mean, I've had a service worker in place from the start, but I don't know if you remember, but it basically was like a pass-through service worker. It didn't do anything particular. All requests just went through it, and it was a fetch to go and get the resources. And the next step for me was to actually have a populated cache of items and actually respond from the cache and do a couple of other bits and pieces. So let's actually have a look at the code because I think that will illuminate things. Firstly, that will go into the Python because I have got to the point now where we basically hotswap the home page. Oh, actually, well, hotswapping the home page is related to this item. I now have a JSON file of the actual sessions, which is currently filled out with nonsense sessions that I have just made up for now. And you can see that the date is the first key and then the time of each, and this is in PST because that's the time zone of Chrome Dev Summit. It's in San Francisco, which will be PST, which means it's, I think, seven hours behind UTC or GMT as you might call it, depending on how you refer to time zones.  I know I do. So I've got the JSON file. And the JSON file is loaded in by the Python. And that's actually important because I do things like I basically start to kind of step through. And basically, the sessions file is now the source of all sorts of bits and pieces in the site. For example, I've moved the filters out as well, out to their own file. So we've got things like getting the current session. And so we get the current UTC time and we step through all the individual sessions from that JSON file. I have to add seven hours on, which is that there. This is a bit of a funny way to do date parsing. Normally, you'd pass it things. But because I need to adjust the time, I might go back to this now that I've actually got it working and just tidied up because I could ask to parse it based on, I could make a string and then ask it to parse it properly rather than doing it this way. It's a bit of a funny way to do it. But we have things for getting the current session, getting the next session. And there are some interesting bits and pieces in there. Like, you have to make sure that the next session has a different day to the current day and bits and pieces like that. But it's all dynamic. And also, when it comes to the actual homepage, which is this, if template's non, as in the homepage, we have to make a decision based on the time as the server thinks it is. But that's OK because all these things are in UTC anyway. Mostly, basically, if the number of days between the first day of the conference and today is zero, adjusting for PST, then it's the live day one. If it's the second day, live day two, because these will, I think, have different YouTube embeds. So I have to have different, effectively, different files for those different templates. And then the final one is we're not on neither day of the conference, so show the homepage. This works just fine. In fact, let me just show you what happens. I will do this without any service worker. So we'll just directly, if you hit command shift R, if you're working on service worker stuff, command shift R will actually cause your page to load. You can see it in the network stack. Cause it to load without any service worker. And none of those requests are going through the service worker. So that can be a really good way to sort of test that is my server actually responding with the right things before I introduce the service worker. Let me also, while we're here, let me just change the date and time. So I've set it to yesterday, if you like. So let's set it to the first day of the conference and then hit command shift R. And you can see that it's not only is it, let me just move this out of the way. I'll do that. Actually, we'll come back to that in a little bit. So you can see that I've actually chosen the developer diary day one. So I know this is actually the day one. It's just like, oh, OK, it's definitely doing the right template. It's day one. And you'll see that up next, and this has been adjusted for local time. If I disable JavaScript for a moment. La, la, la, la, la, la, down here, up here. Disable JavaScript, there you are. Command shift R. You can see it's 8AM PST, or it doesn't have the title in there. Oh, I'm going to have to go back and fix that. And if we re-enable JavaScript, it's the same content once I've got the title back in there. But it's been adjusted for the local time, which is just done in the JavaScript. I have a bit of JavaScript that constantly, or not constantly, but kind of watches for changes in the schedule, which I can show you. If this video doesn't get too long. Anyway, the theory then is this is day one. And you can see that coming up at 4 o'clock local time for me, which is in about, what, five hours? There are thereabouts. Five hours, it'll be registration and breakfast. Obviously, as we get into the other sessions, it'll make more sense open date and time. So let's say it is, in fact, 6 o'clock in the UK. You can see now we've got the current session is Alex Russell. And oh, good, we've gone from breakfast pretty much straight to lunch. This time traveling thing is working out just fine. So anyway, as you can see here, I've got this refreshing listing in just less than a minute. We could wait, see what happens next. I might get them to time-lapse this. Still waiting. There it goes. Well, it happened. You can see that the one that was up next becomes live. And now the next one has appeared in the listing. So that will be, as the video is playing, I'll basically be swapping the session. So that's kind of what happens with the live stuff, which is all very, very cool. And the code for that is kicking around in components. There's a live session info, which basically goes through. It's sort of, in many ways, it's a duplicate of those filters on the server side, because it's got to do similar kinds of things. It's got to look through that session, Jason. So they share that, Jason, the server side and the client side, both look at that same, Jason, and make some decisions on what the next session switch time will be, which is basically look for the next session and find out what the time is and then set a timeout to basically go and do a check for that, which is, it works just fine. Well, it seems to work just fine anyway. So that is all working. If you JavaScript, it's swap sessions, all that. Now, if we reload and look at the network, these, all these requests are actually coming from the service worker. Let me show you the service worker. The service worker from the top, import scripts. And then I'm sure you recall the ad hash remark filter thing. That basically is going to make sure that if this file changes, that this import scripts line is going to actually be different. So if we look at the service worker itself, you can see that it's cached up manifest and then there's the long alphanumeric hash string that goes in there. If I change whatever the contents are of this cached manifest, then this will get updated. The service worker will update. It'll run its install and its activation and go through its lifecycle. If, by the way, you have not come across the service worker lifecycle, there is a brand new document guide article thing on Google Web Fundamentals, which we will link to in the description and possibly they'll even put one of those fancy annotations on this video as well. Who knows? So what goes into the cached manifest glad you asked. The cached manifest is here and you'll see that it's basically a list of all the things that I want caching and good news, I don't create those myself. Or this myself.  This partial flag means that I actually don't have the server bake in any of the session information. It just means that those, they come through empty because I know the JavaScript is gonna populate them later on. I also get the session information and I go through each session and I get its URL because I know I want to cache that offline. And then I walk through the static file. So I go through dot slash static. So basically the static file here which has the images, the JSON, the JavaScripts excluding the service worker itself, the styles and any third party stuff and manifest and whatever else. That, as I say, results in this big long file here. And in the service worker once that gets imported and whatever else, the install essentially steps through each of those and it makes a request for each of those and it will wait until the caches have been opened and we've added all those items and then it does the skip waiting which basically means go straight to the activated stage. So the lifecycle is sort of, it's installing and then it waits until all the clients that are connected to the service worker have disconnected as in you do like a force refresh or you close the tab. When all the tabs to the Chrome Dev Summit site have closed, it would normally then switch the service worker across to activating. But in this case, I'm telling it to just go straight to the activating stage. Don't worry about anything that's already connected. I'm hoping that will work out fine. I'm hoping there won't be any breaking changes by doing that. The activation itself looks through previous installation caches. So every time we install the service worker that populates the cache, I'm saying find all those other caches that aren't this one, the one that we've just populated through the install and get rid of them, delete those caches so that we're not building up space and spaces and space over time. This probably could do with a little bit of improvement in that I think it should possibly have a couple of caches, caches for things that are less likely to change and caches for things that are more likely to change like the JavaScript or the CSS. I'm likely to find minor things in there, minor bugs that I just want to tweak or change or whatever. And so rather than invalidating the whole cache and downloading everything every time, a better version of this would be the things that I think are likely to change. Those should have their own cache that I can just delete and repopulate. And the things that I think are pretty static and unlikely to change, put them in their own cache as well. Again, it's a function of time to see how, you know, how we get on. And this client's claim, if I understand it correctly, on activation when this service has been activated, it basically says, okay, I will now respond to all future requests from this point on. So if the page then asks for an image or a URL, I will handle it. And it basically pushes the old service worker off to wherever service workers go when they're not needed anymore. Oh, on message, this is an interesting little thing. I mean, I think it's an interesting little thing. I wanted to do this. I was like, how do I decide whether to notify somebody? Like if the service worker changes, it might be a minor change. And I don't really wanna kind of put a little thing that's like, hey, new version. Cause it might just be really minor. It just might be like a typo or something. And I'm like, yeah, it can cope for next time. What I do is the version that's baked in here, which is from the package.json. If it gets a message asking for version, and that message will come from the page, and I'll show you that code in a moment. It basically posts a message back saying, here's my version. In the service worker install, the, where are you? Where are you? Yeah, if we've got an active service worker, we post message going, what's the version? When that comes back, if we've not already kind of had a version, then we store that. And then if there's one that's updating, as in we get, so you've imagined the situation, you've got one service worker, it's installed, it's running, it's activated, it's doing its thing. And then a new one comes in. And it's like, okay, I'm taking over. Well, we've asked the first one, what's your version? And it said 0.1, 0.0, cause it's semva. Let me just do that. Let's say 1.0.0, that would have been a better one. And so we've got that version back. And then the new one gets installed and we ask it, what's your version? And it comes back and says, I'm 2.0.0. I've basically said, I split the current and the new version on dots. And I basically said, if the major version is the same, just log it out to the console going, yeah, I updated the service worker. If it's a major version change, like 1.0 to 2.0, then we push this toast that's like, really, you should refresh the site. And again, these are things that I might just improve over the coming days. We'll see how we go. So you can see, actually, if I go to package.json and I change that to 2.0.3, hopefully, when I refresh the page, that I see site updated, refresh to get the latest. Whereas, if I do 2.3, 2.0.4, what I look in the console, you can see we just get this service worker move from 2.0.3 to 2.0.4. So it's a way for me to kind of decide how much do I want to bother the person at the other end. Okay, I don't want to take up too much more of your time, but I do think it is worth looking very finally at the fetch itself. This is the function that's gonna be called whenever you make a request to the page. One thing is, if the image ends in at 1x, I always respond with a 1.5x. This means that I can, I only have to cache the 1.5x and I will just hot swap it. It doesn't matter. You've asked for the 1x, you get the 1.5x. In my case, it's always background size cover, so I can respond with a bigger image. And it means I don't have to cache the 1x and the 1.5x offline. It's handy. If the request itself doesn't end with dev submit, then I just say stick to the current request. But if, however, you have asked for the homepage, I go through the sessions and I basically look at each day and I adjust for PST and then I say if you're inside the first day, respond with Live Day One from the cache. If you're inside day two, respond with Live Day Two from the cache. And if not, you're gonna respond with the dev submit slash home. And then if there are any errors, just respond with dev submit slash home. So that means that what we get is, we basically call this first. So we were saying, either we're just gonna leave the request as it is or if it's a request for the homepage, we might remap it just like the server was doing in the Python. We have to replicate that behavior in the service work. And I guess if you had a JavaScript server, you might actually use the isomorphic. I mean, as bad as Jake, he couldn't say isomorphic either. Isomorphic JavaScript, there we go, to do the same logic here of kind of going, is this on the conference day one, day two, if not respond with whichever page, whatever. So we're doing the same kind of remapping and rewriting. And if we didn't do that, then on the conference days, you might get the old homepage and you'd have to kind of force refresh to see the live stream, which we don't want. So we potentially remap the request if it's needed. If not, we'll just leave it as is. Check for the cache. If the cache has got that request, which for all of the files apart from, say, like YouTube thumbnails, anything for analytics or basically any third party stuff, it won't exist in the cache and we'll just fetch it. And for everything that we do have from the cache, we'll just respond if we've got it. So goodness me, that was a lot of information, wasn't it? But it's been a few days since I've had chance to record a video. So there you go, that's what happens if I don't record them often. At this point, I think the site is pretty much shippable and this will probably be the last dev diary that I'm gonna record. And maybe if there's something that comes up in the next little while, that's like, oh, I must tell you, then I'll be back. But for now, all I wanna say is thank you so much for coming on this journey with me. Thank you for all the comments, all the feedback, all the chatter. And I hope you've enjoyed coming along this journey with me, I've enjoyed having you along and you know what, let's do this again sometime. But maybe you can do the coding. Yes, what a concept. Tiddlyoo!


Live from Orlando, Florida. It's theCUBE. Covering.conf18, brought to you by Splunk. Welcome back to Splunk.conf18. Hashtag Splunk.conf18, as you're watching theCUBE, the leader in live tech coverage. My name is Dave Vellante and I'm with my co-host, Stu Miniman. We're going to take a cruise with the data. Kurt Persot is here. He's the director of IT for Guest Technology at Carnival Cruise Line. So he's the ship and Ariel Molina is here. He's the senior director of web development and enterprise architecture at Carnival Cruise Line. He's the shore. Gents, welcome to theCUBE. Good to see you. Happy to be here. Very, very. It's for having us guys. Dave, Dave, I see what you did there. Pretty good, how well. This is kind of, you know, Splunk is known for a little tongue-in-cheek. Let's keep this interview on course. So Arnold, you got it. So Arnold Donald, your CEO was on stage today with Doug Merritt, a very inspirational individual.  You see those ads and just go, wow, just makes you want to go. It's fun. But Ariel, let's start with you. You're kind of your role. What you guys are doing here. Let's kick it off for us. So, no, it's fantastic. Great to be here. I think great energy in the conference today. The keynote was fantastic. It was great to see our CEO up there and really represent our company. Really talk about sort of where we're heading and how Splunk helps us along that journey when it comes to data. Things are changing. We fast every day, right? We're pressured into delivering more value, delivering innovation at a faster pace. And Splunk is a key enabler of that for us, right? And Kurt, you, at any one point in time, you guys said you have 250,000 guests on the seas around the world. Wow, and everybody wants to be connected these days. So that's kind of your purview, right? Yeah, absolutely. I mean, like five, 10 years ago, what Soul Cruises was the ability to be disconnected. You know, right now, people want to be connected more than ever. So what we try to do beyond just like the connectivity and giving them better bandwidth and stuff like that, was to try to develop products on board that helps them be connected, be social, but not miss out on the product that we're actually selling, which is the ship, the people, the crew, and the actual entertainment and the staff on board, right? So we're trying to make people social but not anti-social with some of the technologies that we're bringing on board as well. Doug Merritt said today we're all data emitters. And I think the number was, you guys will service 13 million guests in any given year. So a huge, huge number of data emitters. And of course, Ariel, you obviously are analyzing a lot of data as well. So how has the use of data changed over the years at Carnival? Maybe you could kind of take us through that. Well, ultimately, I think it's about personalizing the experience, right? So how do we use the data to better understand what folks are looking for in that guest journey? So we call the guest journey everything from planning, on a voyage, purchasing a voyage, purchasing all the data, all of the auxiliary items that are up for sale, and then ultimately making it into the ship. So what we're doing these days is mining this data and looking for opportunities, you know, on the dot-com side of things. Obviously it's about resiliency and personalization, right? How do we deliver innovation through multiple releases and then do so in a resilient way? And a lot of those innovations typically are on personalization. And we see that move the needle, right? We see that, we're incentivized to have more folks book online, right? That's ultimately good for the bottom line. So data's a big part of that, personalization, resiliency. Yeah, it's one of those interesting things we look at, most people probably think of cruise ships as like, oh, well, your vacation and transportation, everything like that. You're a technology company now, you're tied in, you've got multiple mobile apps before and during, maybe bring us a little bit inside, what's that like? Over the past three years, we've seen a great transformation in terms of the technologies that we're bringing on board. I mean, you name it in terms of whether it's very high-end tools like Splunk and other APM tools that we use to cut an edge technology like AI, chatbots, facial recognition, we're using a full breadth of all these innovation in terms of technology to try to enhance guest experience. And to Ariel's point, the focus is really on trying to be very personal, trying to personalize this information, trying to personalize your guest experience and using all those data points that we're capturing to really target what a custom experience looks for you. It's really interesting because one of the things that we try to do in that personalization is try to manage those micro moments. So we're trying to get you what you want, we're trying to get you the feedback that you need in that micro moment so that you can do your transaction and move on to you and join your cruise. There's something that you mentioned, you want a balance that you want people to take advantage of what's there. You said, you used to think of vacations like this, you disconnect yourself, help understand that balance. You'd be surprised. So we were just recently in a cruise, my family and we, and we don't cruise as often as you would imagine because you work at the company, but when you do, it feels good to be a customer, right? And there's so much activity going on on a ship on a given day, right? It's very hard to understand where to be at a certain point, a certain point of time. And some people find that overwhelming. So what things like the app does, right, is really allow you to curate your day to say, hey, you like music, let's focus on events that are music oriented and that's going to be in location X, Y, and Z on the ship and they're going to be sequenced. So I mean, that's personalizing the experience, but it's also sort of ensuring that folks are really taking advantage of the full product. So that's technology. From our perspective, the technology should be kind of like in the background, it's more complimentary. The real product is really the ship, right? The crew members, the activities, the entertainment on board. That's the product we really want people to kind of like really connect to. The stuff that we do is auxiliary in terms of like, hey, let me help you get those, make maximize those experiences on board. And that's what we're really trying to do. If we can get that done and accomplished, then we've done our jobs. So the app is the digital conduit to the physical experience. If you have a good app, it makes all the difference in the world. I mean, if you're at Disney and you're trying to figure out what's next, what are the lines look like? You've got a lot of people on a ship and you want to prioritize it. You'll feel like curating your experience. So it's all about the app, as they say. What's the state of the app? I mean, the first, you know, the 1.0 probably needed a little work. Where are you now in the evolution of the app? So we're like in a 2.0 release version of it. And the original version, we started with kind of like what we call the meat and potatoes. The very basic stuff that hey, where can I get food? You know, what is the entertainment line up for today? We started off with some innovation in terms of being able to generate. We did a chat, kind of like communication so that people can chat with their families on board without having to purchase a plan or having any bandwidth needs. And then as we evolve that, then we start to go into things that are more transactional. So you're able to purchase your photos digitally through the app. We leverage facial recognition software so that if a photographer on the ship takes a picture of you, it recognizes that issue and it puts your photo in your photo stream and your photo album. So very, very convenient. We do things like sell short excursions in terms of transactional stuff. You can sit at the pool and say, oh, tomorrow's a port day, I'm going to be in the Bahamas. Let me see what short excursion I want to do and you can do it directly from the app before even moving. So now, as we evolve that, now as Ariel said, now we're trying to leverage all that data now to go beyond the transactions and make things even more personalized.  And then carry that across the journey, right? So now they leave our ships and how do we get them to come back to our ships? How do you create that conversation that's ongoing notifications about what's going on on our ships? People follow their favorite cruise director. People follow a lot of the unique experiences there. How do you bring that to the online, to the dot-com experience so that when they're thinking about that next cruise, they can remember what that last cruise was about and they can know what's happening in each one of our ships in real time, so. It's a journey and technology definitely is a huge enabler for us to the experience, so. So what's the data architecture look like? I mean, we always talk in the cube about the innovation sandwich of the future. It used to be Moore's law. Doubling every two years, okay, great.  What's your data architecture look like? Well, I think it's early days. I think it's really, I mean, they're all over the place, right? I think there's silos within the enterprise that are really maximizing data. I think that trend continues to happen, but I think there's got to be, and in the enterprise architecture world, it's sort of wrangling that and figuring out how the value, how data from different dispersed touchpoints affect that. So it's early days. I do think that you're starting to see the machine learning algorithms do play a part. I'm seeing it personally more in the operation side of the world, right? So all these systems at the end of the day that need to be resilient, they need to have high service levels, right? So what I'm seeing now is tools and it's blunt, you saw that today, being able to really be predictive about where the anomalies are, right?  The predictive nature of some of these tools are such that you're being proactive, right? So again, when you talk about data, there's so many different places you can go. You think about our technology stack and that guest experience point of view. It's all about really maintaining that SLAs, resolving issues as quickly as possible and there's a ton of data in that space, right? I mean, it's everywhere. There's a ton of signals. When you guys know, we tend not to throw stuff away in technology. You sort of have to figure out how to integrate, right? A single view of the customer is probably one of those, right, as well, right? So at the end of the day, what more information are we collecting about our guest to ultimately personalize that experience? So it's centered around that. That's challenging.   But the phone experience and even the laptop experience are a little bit different. It's because of the data. It's very, very challenging. Have you figured that out or are you sort of figuring that out? In terms of making that a single experience? That's APIs, right? It's that experience API layer, right? Being able to activate that data, which is sitting in distinct silos and then do so across those experience apps, the experience channels, which is .com, the app. I mean, the chat bot, then there's so many interfaces out there. But yeah, it's a solid, mature API strategy that's going to get us there, right? And I think one of the things that our challenge is, as technology partners, is the ability to kind of like build those platforms so that the next wave of conversions, as you mentioned, there's some disjointed experience across like the desktop view versus the mobile view, is to try to bring those conversions together. And in order to do that, like Ariel said, maybe making some API extraction layers, figuring out how to mine the data better, figuring out how to leverage insights from different tools or machines and sensors. We have a ton of sensors on the ships as well, and bringing all those things together to be able to put us in a position that when we do finally get a seamless conversion, we're ready for it from a technology and a platform perspective. All right, so it's obviously, it's obvious why data is important for your business. You actually did a press release with Splunk. Maybe explain a little bit of how Splunk Cloud fits into this discussion we've been having. Well, I mean, Cloud really removes the barriers, right, of experimentation, right? So right size, how do you right size a problem you don't understand very well, right? I think Cloud really helps with that. So we're looking forward to being able to, you know, be flexible. It's flexibility in architecture, flexibility in infrastructure. So that's absolutely the use case. I think security's got a number of use cases. You see it every day in the news, right? So yeah, more opportunities, I would say, it's scale, it's that flexibility that's taking us the Cloud route. Well, when you think Splunk, you think security, you got guys in the knock, that's not where you guys are. You're kind of closer to the business. Right, right. And so you're seeing Splunk, as I said before, permeate into other parts of the organization. Absolutely. You kind of expected somebody else to do that, I don't know, the Hadoop guys, and it's interesting. Splunk never used to talk about big data. Now that the big data era is sort of behind us, Splunk talks a lot about big data, it's kind of an interesting flip. I would say democratizing the data. That's the stuff that I liked, that I heard today, right? How do you get these tools away from the IT operators that are writing these complex queries to get insights? And how do you elevate that up to the analyst and the product managers? And how do they get access to those interfaces? You know, drag and draw, whizzy way, whatever you want to call it. But I think that's kind of where I see this happening. More so than machine learning that's great and predictive, but just empowering others to really leverage that data. So I would say Splunk is leading there. It's good to see some of that stuff today. Yeah, absolutely.  Whereas it's the end users, the guys that make the decisions, it's the product owners, it's the product managers, that are making those slight tweaks to that interface or to that design or to that experience that makes a difference, right? And that's what we're trying to do and leverage with tools like Splunk as well. Even the simple visualization, right? Even the stuff that's out of the box is really important for the business user, right? Absolutely. The out of the box part is another thing that I saw today which is more sort of curating for a particular use case and saying, hey, we're going to build that end to end and really turn that on and activate it a little sooner, right? So that infrastructure product we saw today, I think that's a big step forward.   And then he talked about being able to sort of organize that data in the moment. So I think about, okay, just put it in the, we like to call it data ocean, right? And just capture it.  I mean, my question is, did he describe it accurately? I think yes, but then can you actually do that with this messy data? Yeah, I mean, I think it's a great concept. I'm interested to see how that plays out, you know, going forward.  You know, we have a very captive audience for seven to 10 days. So we really have a very limited amount of time to make a really good impression. So it's not only about attracting for some cruisers trying to get a repeat cruiser. So that limited timeframe that we have to kind of like leave a really lasting impression is very limited. So things like, hey, recovery in terms of getting metrics or data real time and being able to act on it immediately. Say you had a bad experience at the sushi bar. If that, we're able to grab that information, whatever, you know, data points that allow us to understand what happened and then do a quick recovery, we may have a guess for repeat cruise, right? You know, those are the things that we're trying to do. And if what Doug is saying is something that they've, you know, kind of solved or are able to try to kind of solve it in a good way, that is very powerful for us as well. And we've definitely seen leverage in that. Last question, Aaron, you saying off camera, it's kind of early days. Yeah, yeah. What's the future hold?  Blow our minds. Oh, it's the predictive thing, right? It's bringing your favorite drink before, you know, you're ready to have it or something. I don't know. It's really, it's, you know, the cruise line business, the travel and hospitality space is a very fun space to work in, right?  And us as technologists, we get to see how technology moves the needle. So, continued innovation, right? If you're in the development side of the world, challenging yourself to deploy more often, to deliver more value more often. And if you're in the data side, how to aggregate and compile this data for ultimately what we're looking for, which is to enhance the guest experience. Yeah, absolutely. I mean, that real-time notion that you were talking about, Kurt, you could see that coming together and completely transforming the guest experience. So guys, thanks so much for coming to theCUBE. It was great to have you. Thank you. Thank you guys. Congratulations on all your success. Thank you. Good luck. All right, keep it right there, everybody. We'll be back at Splunk Conf 18. You're watching theCUBE, Dave Vellante with Stu Miniman. We're right back. Cool.