Developer Keynote: Continuous Innovation with the Customer 360 Platform | Salesforce

Salesforce announced new developer tools at Dreamforce 2019, including Evergreen for serverless functions and Lightning Web Components. Demos showed Caesars using the platform for mobile reservations and Costa using blockchain to track coffee supply chains. New Einstein APIs added vision, OCR, and voice capabilities.
Questions this video answers
Over 6 million registered developers worldwide.
Over 290 groups in over 90 countries.
Over 5 million web components have been created.
The framework and NPM packages were downloaded over 6,000 times per week.
Blockchain (Celsius/Celsus) is cited as pilot in Winter '20.
Chapters
Thank you all for being here today. I am so humbled to be here with all of you. I really feel home here in Moscone west with all of our developers, because you are the people that really bring innovation to life. You are the people that build on our platform. You are the people that help us improve our platform. And that's why this morning, I really just want to start in a moment of gratitude for all of you, for all that you do every day, and not just for us and with us, but really for each other. It is so incredible being here at Dreamforce, and I just walk by and people stop me and they say, sarah, I want to tell you this story that happens to me all day. Katie Hobbs, my assistant, will tell you that happens all the time. And people don't tell me stories of themselves. They talk about how they've helped each other, how they've helped each other in this community, and it's really, really incredible and what makes this community so, so, so special. And the developer community is just thriving. It's a global community with over 6 million registered developers worldwide and over 290 groups in over 90 countries. And you do things like, we just had a few weeks back. Stephanie Herrera and team led global Salesforce Saturday. We have, like, in Africa, the North Africa dream in event. It's just a global phenomenon of what is happening within this community. And I stand here as a woman in technology, which is even more impactful to me, because this is a community which is all about building an equitable and an ethical future together. It's really important that you, as developers, take that really seriously to heart, because you're the people that are coding and building the future, and. And we need you to build that equitable and ethical future together with us. And there's one person here today who is doing incredible things in the community. And I'd like to invite Miranda Ragland up to the stage. Miranda, will you join us here? Okay. First off, the hair, it's just incredible. I saw it backstage. I was like, wow, you. You, like, give a competition for the Chris Duarte bling here. So, Miranda, you are an incredible champion of equality and incredible developer. Can you share a little bit about your story with everybody here today?
Certainly. I was always interested in tech from a very young age. I did things like take apart the family computer because I wanted to see how it worked. And I also taught myself to program. When I was a teenager, I struggled with being bullied and anxiety and depression, and I realized I'm transgender. And I thought that might make it hard for me to get a tech job. But years later, here I am. I build software for a living, and I absolutely love it. But that didn't make everything go away. It wasn't a cure all. I still struggled. And all that started to change when I became more involved with the Trailblazer community, not just as a member, but also as a community leader. And I also started speaking up about LGBTQIA rights. And since then, I've met an amazing partner. We've got three wonderful kids, and we've launched two Salesforce partner companies.
That is seriously just incredible. And Miranda was just sharing with me backstage. She was educating us on what the plus means and a bunch of other things. And so I just want to ask, like, what advice do you have for all of us here in building an inclusive community that can help everybody feel that they're at home here?
Well, I certainly didn't do it alone. Building software is a lot easier than building meaningful relationships with others. And today is actually the Transgender Day of Remembrance.
Oh, I did not know that. See? Learn something new every day. She's a wealth of knowledge.
My advice to anyone who's struggling and feeling like they're the other is to be honest with yourself and be proud of who you are, because visibility matters, regardless of your labels, and to also never let anyone hold you back, even yourself, because your voice is important, and sharing it will help everyone build a better world for us all.
Well, your voice is certainly important, and we've kind of created this little tradition that I think everybody knows about now. But what do you think? Do you think we should uphold the golden hoodie tradition with Miranda here today? All right, let's go ahead and bring this and put this on. You're beautiful in pink with that hair, but I think you're going to look great in gold too. All right, now I want to take a selfie.
Come on.
Let'S capture this moment. All right, thank you, Miranda.
Thank you very much.
Okay, that was incredible. And now we want to get into the tech stuff here, because we're all here because customer expectations are rising. And as developers, it's really hard for you to match these expectations, whether it's building trusted applications, putting AI into them, making them integrated, or doing it in a way that's ethical and sustainable and aligned with our values. And we all know it's hard.
It's.
It is hard work that you do every day, because not only do you have to make everything work, you also have to keep up with the latest trends. You have to make Everything documented. You have to make people happy. It's a very, very hard job to be a developer and to build experiences. And yesterday, mark shared the Customer360 platform. And all of these innovations are built into the platform, whether it's mobile, whether it's blockchain, whether, whether it's AI, whether you want to add in compliance and security and privacy and identity, or build in process automation. These are all services that are trusted and smart and fully integrated. And my favorite part, built on a Net zero cloud. And these are the same services that we at Salesforce have used to build our applications, from sales service marketing to commerce and more. So you can have faith that when you're building custom applications, you're. You're building on this platform. Just like some of our incredible customers like Caesar's Entertainment or Costa Sunglasses or Hive, they're using these services and building these applications, and ultimately they're delivering continuous innovation on the Customer360 platform. They're building those experiences, connecting them together and managing their deployments. Okay, so I wanna get right into this and we're gonna start with how you build these modern experiences. And, and who better to do this than our Vice President of Product Management, Andy Fawcett. Andy, come on up here.
Thanks, everyone. Super pleased to be here to talk to you all today about some amazing technologies. It's going to help you build your connected applications faster than ever. And today we have Nanda with us. Nanda is an amazing trailblazer at Caesars and he says it. Well, it's not about building apps, it's about building experiences. And great experiences often start on a mobile device. Which is why I'm super excited to talk to you all today about our brand new Salesforce mobile app. It's now general availability and it brings with it a brand new navigation model which allows you to reuse and open your existing Lightning desktop applications directly in that application. It's smart because we've embedded Einstein Voice in Pilot and we've also put Einstein analytics directly into the application. And of course, because it's a Salesforce application, it's customizable with clicks and code. Lightning Web components are available throughout the entire experience, including on your record homepage. So let's talk a little bit more about Lightning Web components. So we built Lightning Web components to embrace web standards, which is great for your applications and your experiences, but for everybody in this room, it's awesome because you get to play with the latest tech and the latest technologies and libraries. Since launching Lightning Web components in January, we've Had amazing traction. Over 5 million web components have been created by you. This is amazing. At Trailhead dx, we open source the library for Lightning web components. The framework and the NPM packages are now downloaded over 6,000 times a week. Brilliant traction and we're not stopping here. Our commitment to open source continues with Lightning based components now available as Open Source Framework. There are over 50 components available for you to build and extend, as well as building blocks to build your own enterprise grade user experiences. You can extend those components, modify the functionality of those components and obviously commit your changes and ideas back to the community. And what's more, if you're building brand new components, then take a look at the code because you'll learn how to build for speed and scale with your own components from that source code. Now, having open standards and embracing those at the client is awesome. It makes you very productive and you can access a wealth of open source libraries. What about having that technology and that power at the back end? Well, I'm super excited to tell you all today about a brand new technology we're calling Salesforce Evergreen. And Salesforce Evergreen harnesses open standards at the back end that allows you to build functions and microservices. It uses a serverless architecture allow you to deploy applications with event driven paradigms using open languages such as Node and Java and of course as well Apex. And we've built this technology and because we've built this technology, it's fully integrated into all of our low code tooling. And you'll see that momentarily in the demo. It's truly amazing. And for the ISVs in the audience, let's have a show of hands. Are there any ISVs in the audience? Guess what? It's packageable. So you can extend your app exchange packages with this power and this technology. So enough with the slides, let's go to the demo. I'm pleased to introduce two amazing demo drivers, Alex, Albert and Rene. Let's give it up for those guys. There they are. Familiar face. So we're looking at here the Caesars mobile application and it gives us a great overview of our account and lots of ways to make the best out of our stay at Caesars. The bottom of the screen I can tap to view more information about my account and my rewards. I also have available the ability to look at my reservations. What it's showing me right now is some Good news. It's 9 o', clock, which is pretty early for a check in. But actually I can start the check in process. So I can tap check in available and now I get some more news. The housekeeping team is still working on creating a beautiful room for me to live in, but they still need to complete that cleaning process. The good news is right here on my mobile device. I'll get a notification the second that's completed and my digital key will be unlocked and I can go straight to the room. Fantastic. So how does all of that work in the backend? How is that magic completed? Well, let's go to the iPad and take a look. What we're seeing here is a custom Lightning experience built using Lightning Web components and App Builder. And the housekeeping team use this on their iPads all the time and they're tracking the rooms that they're cleaning as well as confirming by tapping on the corresponding tile which rooms have been cleaned and completed. Now this is a custom experience, but how is it built? Well, of course with some great Lightning Web components. But you've got to compose those components in a way that allows you to fit the form factor of the device. This case, we're looking at a tablet. So let's go to the browser and take a look at the app Builder tool. Now the app Builder tool is awesome because it gets us to compose our components together, both those we've built and others that are standard. On the left hand side we can see our floor selector component and on the right hand side we can see the room selector. Now I'm looking at this in tablet landscape view. Now let's go to the device picker and choose the phone. Immediately this layout changes to give us an idea of what this would look like on a phone device. And we see at the top here a component that allows us to click some buttons. Notice the orange icon. That's giving us a clue of another awesome feature in App Builder, the visibility filter. And this filter is simply telling us that we only want these buttons to be displayed on the mobile phone device, not on our tablets, since that's not a feature we support. Now let's take a look at the amazing Process builder. A process builder is monitoring those changes to the records that are being to the rooms that are being cleaned. Now, as soon as that room is cleaned, it will publish a platform event. The platform event is going to be listened to by a function. And this is the amazing exciting bit of the demo because I love code and I'm itching to show you that. So let's go to VS Code and take a look at how that function is created. So here we see a regular looking Salesforce DX project. Let's use the command prompt to create an evergreen function. Now, evergreen functions are available in a number of different programming languages. All of these languages have a great open source ecosystem. But we happen to know that Node JS has got some great libraries that are going to help us with that push notification to the mobile device and unlocking that digital key card. So let's pick Node js. We'll give our function a name handleroom ready and we'll also associate it with that platform event. So let's go ahead and associate that with the room ready platform event. Now this could also be a change data capture event as well. So now that that's finished, we see a new folder has been created directly in our project amongst all our existing metadata and and code. Now, Node JS developers will immediately recognize the standard package JSON file. Let's open up package JSON. Now this file allows you to import a number of pre built libraries, whether you've built them yourself or Salesforce or from the community. We've injected the Salesforce SDK. We'll see that in action a bit later in the demo where essentially it gives you excellent read write access directly to the. Org this function's associated with. Let's go ahead and add two more libraries and these libraries have come from npm. These help us with our development process. Speed up the development with reusable components. Now I want to pause for a moment just to appreciate what we're looking at here. NPM has over 1 million libraries that are available to do image calculation, image manipulation, data, computational factors, generate PDFs, all myriad of capabilities that are now at your disposal. That is amazing. This is going to change the game in terms of how you develop code on the Lightning platform. Let's move to Index js. Index JS is kept incredibly simple. What we want is for you to write business logic, not plumbing. Therefore the event parameter gives you everything that you need to get started with the job. All of the data from that platform event is right there in that event. It's also based on another industry standard known as cloud events. The context gives you a secure connection to your salesforce Org. Let's go ahead and import those two open source libraries and add the code. And the code's pretty straightforward. We didn't have to write a lot of code. We leveraged some open source libraries. We enable that digital key so the guests can gain access to the room and once that's successful, we send them that push notification to confirm. So let's see how all of this hangs together. So let's go back to the iPad and take a look. In fact, let's go back to VS code and complete some other tasks. Before we move to the iPad, let's go to VSCode. Okay, we'll stay on the iPad. So on the iPad we have the opportunity to complete checking in and cleaning our room. Room 1804 is the room that I'm staying in. So let's tap to clean that room. And now that that's finished, let's go over to the phone and take a look at what's happened. So straight away we see that notification. So our function has been deployed to our Elastic compute. It's responded to that function and we're able to complete our check in and start enjoying our room. Fantastic. I'm feeling relaxed already. So we've had a wonderful stay at Caesar's and Caesar's checkout experience awaits. So let's go to the browser and take a look at a new employee experience. And this employee experience provides a guided experience for the checkout clerks to help the guests through checkout. And they've built that using our flow technology. Let's click the checkout button. The checkout button provides a flow experience that allows us to confirm the details the guest has on their charges. All of this looks good. Let's click next. We also can confirm the payment method. Also good. Now on the final step, we get the opportunity to ask the guest about how they want to receive their invoice and email is acceptable and what will happen. In a moment when we click Finish, we'll be able to see a confirmation on the screen that all of that processing is completed and the PDF will be visible in the bottom right hand corner of the screen. And you'll be able to see and open that PDF to review for future reference. So Rene, let's go ahead and click Finish. So now we have our confirmation that we're expecting. Excellent. Now let's open up that PDF and take a look. So this all looks good. We've got our logo, we've got our data. But how did all of that happen in the background? Well, we wrote another function and we used another open source library. So let's go to VS code and take a look at how that was put together. Now the PDFKit library was imported at the top from NPM. We also used that context parameter to give us that access to our Org as secure way. And we're doing three things. We're querying the data from a custom object directly in Node. We're calling that open source library to generate the PDF. And finally, we're updating the reservation record. Now we're also using another open source library, another architecture pattern known as unit of work. And the unit of work is making sure that our code is streamlined and easy to maintain. And I don't have to understand the detailed semantics of our underlying rest APIs. Now, how was all of this invoked? Well, we did see a flow earlier, so let's go to the browser and take a look at the flow. Now, this looks like a pretty regular looking flow. We've got all of the steps and all of the decisions that were needed to render that experience we saw a few moments ago. But wait, there is something pretty cool on the right hand side. This is an evergreen action. An evergreen action is allowing you to invoke that node JS code that you wrote that is managed by our elastic infrastructure, managed by our trusted infrastructure, and clickable directly from our low code tools. That is amazing integration and innovation that allows you and your developers and your low code builders to work in harmony together. And this is how, using Salesforce, evergreen functions and open standards, you can build connected experiences faster than ever. Back to you, Sarah.
All right, all right. That was incredible. I've never honestly been that excited to see a PDF document. And next up, we want to talk about how we're connecting these experiences. And I'm very proud to work with incredible customers like Caesars and like this next customer, Costa, who's doing incredible things that align to our SDGs, our sustainable development goals, and what we want to do real quickly first is roll a film. Can we see it now?
Discarded fishing nets are four times more harmful to marine life than all other forms of ocean plastic combined. This idea of untangling our oceans really came from, you know, looking at these fishing nets and finding out, okay, where can we make a solution? What we came up with was an idea to recycle it into higher value positive products. The fishermen now start collecting those nets back at its end of life. The nets then get recycled back into pellets. And those pellets are the same form as virgin plastic for injection molding purposes. Taking our plastic and making sunglasses that you can use to enjoy the ocean just fits so well with what we're really all about. The people wearing the glasses become the agents of change. Like they're the ones that are able to tell people the story that, hey, these were made from waste from fishing nets, but we can all be a part of the solution for a cleaner ocean.
Okay, it is my huge privilege and huge honor to to bring one of the most brilliant women I know. The brilliance behind Einstein and person who also created Trailhead, go with our team and much, much more. Please welcome our principal architect, Ching Ching Liu.
So what a great story. It is amazing that Costa is able to connect with their partner like brilliant and together they made their product more sustainable and our planet a better place. Seth Francosta is here with us today and he is a great trailblazer Francosta and he's also a strong believer that we're all connected and we should create applications that connect our product with our customer and our environment. And to do that, the first thing SaaS need is API. Without API, us developers, we're like fish out of water. We all love API and I love API obviously. And to help you navigate the vast amount of API that Salesforce offer, I'm super excited to introduce you today to Salesforce API Portal. This is a single place for you to discover all APIs from Salesforce, Sales Service, Commerce, Marketing, anything and everything from Salesforce. Here not only you can learn those API with interactive documentation, but you can also try them out in place. We even give you mocking service by default for the first time across all of our APIs. Which means you can try and learn those API without even having a Salesforce account. This is like Christmas comes in early. Come on. And because this yes, and because this is built on top of mulesoft Community API Manager, this allows you to engage with your API ecosystem and and collaborate with your fellow developers on this API portal. There's one special collection of API that can help you make your connect experience smarter and that is Einstein. So we have Einstein Vision language where you can build and integrate your own custom model. Always clicks and not code new in pilot, Einstein is now supporting up to six languages. We also have Einstein OCR Optical character recognition which help you identify those texts in images. So you can build applications like scan a business card or a paper form and automatically collect those information. We also have Einstein Voice where now you can create a custom voice skill with a builder and deploy that to any kind of voice enabled devices. So all those APIs are great but Costa, they also need to connect to their partner in a trusted connect way. And what a better way to do that than blockchain. Blockchain give you the immutable transaction data and also the supply chain traceability. And blockchain is a great technology but can be hard to implement. And that is why we introduced Celsus blockchain and trihead DX and is now pilot in winter 20 with selfless blockchain, you can build your blockchain network and the immutable data store always just clicks and not code. This enable us developers to focus our energy in creating the blockchain application and not the infrastructure. And because Salsa's blockchain object are just like any regular Salsa object, you can create your blockchain application tapping to all kinds of platform capability like lighting components, flow, AI bots, many more things. Celsius blockchain also allow you to access blockchain data from Salesforce or any other platform, all through API. This way you can easily engage with your partners whether or not they're on Salesforce or not. Super powerful. So now we as a developer, we know slides are necessity, they're great, but live demo is the best. So let's go ahead, take a live demo inspired by Costa and we'll start our demo with blockchain application. We need that for the supply chain traceability. And the way you define blockchain application is super easy. You start with a simple basic attributes like name description and then you move on to define the partners who can participate in the blockchain network. So here we see Costa. They're the founder, they're the creator of this blockchain network. They've added Braille, their supply chain partner to this network and also the Sunglass Planet, their reseller partner to the same network. Next, we'll define the data model of those data what can be distributed on this network. The way you define blockchain object is just like how you define any self, source object, very similar, click and declarative interface. The key difference here is any blockchain object become immutable once that's created. So let's go ahead, open up one of those object. You can see the object self is defined with very simple metadata, name description. And you can also define field and relationship for those objects. Field is like how you define any field, very similar. And you can define the relationship across all the blockchain objects on this network through the related entity field type. So now we've created this blockchain application, let's head over to the Brill's application. So Brill, they're the supply chain partner for Costa. So what they do is they go to, they go out to the ocean and, and they collect those discarded fishnet and they turn them into recyclable pallet, say Brio, they just produced a batch of that recycled pallet. Let's go ahead, enter that into the system. First thing we'll do is we'll select what is the fishnet batch they used, and we'll select that one and we'll enter the weight, say 100 pound. And then we just save it. By doing this, the data is actually saved to the blockchain network created by Costa. So let's go ahead and select that batch palette. Here on the right, we now see the prominence timeline that we can tell that the batch of pallet originated from the fishnet they collected months ago. So now we have the batch of pallet produced. Let's head over back to Costa and take a look at their production process. Here we are, we're seeing all the product lines from Costa and there is one special product line called Untangled. Why is that special? It's because every product under that product line is made of 100% recyclable pallets. That's why it's so special. So say they just received the pallet batch and they produce 200 pairs of sunglasses. Let's go ahead and enter that information into the system. And we'll do that by creating a new production order. Here we just select the Pescadoro product from the untangled product line and we say we produce 200 pairs of them and we'll enter a zero starting number here and save. Now, the data is written to the same blockchain network as Brio just did. But on the right, you can see there's not much going on here because we haven't told the system how the product is made. So let's just go ahead and do that. We'll add the material to the production order. I will select the batch of the pallet from Brio and let's save it. So now the data is saved to Blockchain Network and all those related blockchain objects also automatically put into the system. Here we can see the sunglass is made from the batch of pellet which came from the fishnet collected months ago. Very nice. So why, why is it important to do what we do with blockchain? It is important because as consumer like you and I, we're becoming increasingly mindful of the impact of the product we buy. So we want to trace the product oranging to see if is it sustainable or not. And Costa created applications just to do that. So let's go to the phone and take a look at the consumer application. Here we are, the consumer app called Prominence Tracker. So how you use application is you can either manually enter the serial code or you can scan a barcode. Or even better, you could actually embed R5D chip into the sunglass. If I can take this out and then you can scan the sunglass as you could with Apple pay and find out everything about the sunglass. So Renee, let's go ahead and scan the chip. There it is. So now I as a consumer I can tell the beautiful sunglass I'm holding in my hand was used to be a fishnet floating in the ocean, discarded. And Brill is able to collect them, turn them into recycled pallet and coast the turn them into this beautiful sunglass is now sold to me by Sunglass Planet. And this is amazing. Usage of technology and blockchain is not just about cryptocurrency. Remember that. So some of you might be wondering how is Brio and Kusta able to create application like this? The answer is Blockchain API. Celsius Blockchain not only give you the builder but but also the API to access the data from anywhere. But where do they learn about this new API? Obviously it's Salesforce API Portal. So let's go to the browser and take a look at this beautiful Salesforce API portal. There we are. So here you can learn all APIs from Salesforce. You can search for any API across all the clouds, or you can select a specific cloud and take a look at the API for that specific cloud. So here I'm going to select the platform cloud and take a look at the blockchain API underneath platform. And we will use a filter endpoint under Blockchain API. With that endpoint we're able to query blockchain with any kind of custom query we wanted. So the first thing we will do to trial this API is to select the instance that you want to use. As I mentioned that we give you the mocking service by default, but you can connect to any production sandbox instance you have access to. So go ahead, let's select the production instance. Next we'll give some API parameters like the fields we want to return and how we want to query the blockchain. So this time we want to query by serial ID and we'll use a code that could be embedded by the RFID chip and we say send. There it is. The exact same promise timeline as we just saw in the application all the way from the sunglass to the phishing Net. Super nice. So let's take a look at another API and this time it's from the Einstein platform. So what Costa wants to do is they want to allow their customer to scan the photo and able to tell what kind of product that Sunglasses is and to do that, they'll be using a pretty API under Einstein platform. For Einstein Vision to try this API, we will need to use a photo that Renee downloaded from Instagram because he really wanted that photo. Sunglass. And very nice taste, Renee. There. And we say click send here. And there it is. Einstein is telling us with 97% likelihood this beautiful sunglass is a Pescar dual sunglass from Costa. Very nice. So why this possible? It's possible is one. We have API. Second is Einstein Vision allows Costa to train their vision model with their own production cataloging. And that's why it's possible. So let me show you one last example of API, and this time it's REST API. So what Costa's management team wants is they want to be able to easily tell how many sunglasses they produce each day. And to do that, they'll be using the current endpoint on the REST API. So here we enter the query saying, give me the sum of the quantity from production, where the production date is today. Super simple. And we say send. There it is. The API is telling us we produce 500 pairs of sunglasses already today. So as you can see, with so many APIs that we can learn and try as developers from this portal, we can build all kinds of experience, and that includes voice experience. So it turns out you can use the exact query you're seeing here with Einstein Voice Skill Builder and build out your exact voice interaction that you want. So let's see that in action. Rene. Just go ahead, ask Einstein.
Hey, Einstein, how many pairs of sunglasses.
Did we produce today?
Hey, Renee. We produced 500 pairs of sunglasses today.
Seems that's right.
Back to you. Ching ching. Nice.
Thanks, Renee. So that is how you can create connected, smart and sustainable experience with API Blockchain and Einstein. Back to you, Sarah. All right.
Ching ching. I love that. And who here loves that API portal, right? Really awesome. Huge kudos to the man right here, Christoph Koenraetz, and your team for building that and putting that together. It's an incredible vision and very, very excited. And this is super cheesy, but I have to do it with that API portal. Our future's so bright. I gotta wear shades, right? These are Costa sunglasses here. All right, to take us home, please welcome a dear friend, incredible colleague, our SVP of Product management, Wade Wegner, to help us learn how to manage all of this stuff together. Wade, take it away.
It's awesome to be here. It's great to see you all. I am thrilled to talk to you about some amazing capabilities. We are Bringing for you to build apps as well as manage your applications in production. Now, I'm also very thankful to welcome Ines, who is sitting with us here today. Thank you, Ines, for being here. Ines is an amazing agile coach. She's a Salesforce MVP and a trailblazer at CentricaHive and Dream Team. Thank you. So, as Ines says right here, and as I think we all agree, apps are never done. It's up to all of us as developers to continuously innovate and continuously build new capabilities that delight our customers. And so how do we do that? Where do we start? Well, it all starts with us as developers writing code on our laptops. And to make that incredibly easy, I am very excited to introduce to you the Local Development server. So not only can you now build your local your Lightning Web components right there on your desktop and using VS code, but you can also end up using the local development server to render those components instantly without having to push them into an Org. So if you're like me and you have to iterate on your development a lot to see exactly what that UI is going to look like, you can do that all right there as you're developing. So, super cool. I cannot wait to demonstrate this to you shortly. Now, as awesome as it is to be able to do all that local development, it's also pretty cool to be able to test it in an environment with all of your production data and to do that incredibly fast. I am very excited to introduce you to Lightning Full Sandbox. Now, Lightning Full Sandbox is exactly what you would expect. With a full sandbox, you will be able to get all of your production data, but you'll be able to get it in minutes. And I am thrilled that we're going to be introducing this to you next week in a pilot that involves quick cloning. And yes, you will also be able to use this for your refreshes as well. So it's going to be incredibly exciting. Very, very excited about this Now, Yes. So while the ability to test with all that production data is super valuable, it's also really important to make sure that you protect that data. And even us as developers, we don't need to have access, we shouldn't have access to a lot of that sensitive production data. Now, to make that super easy, I'm also incredibly excited to introduce you to datamask. Now, data Mask allows you to create configurations that allow you to mask data before your developers use it in your sandbox. And there's a bunch of different ways with which you're going to be to able, able to do this and I'm going to show this all to you in a demo shortly. But there's two things that make this really exciting. One is it's going to help with just compliance requirements and so forth. Get that out of the way. It's also going to end up making things a lot more productive for you because a lot of you I know are doing this manually today. So get rid of those manual tasks and just be able to use the services that we provide to mask this data in your sandboxes. So very excited about this. Now, as exciting as it is to be able to protect this data in your QA environments, it's also really important to be able to protect this data in production. And so I'm also very excited to introduce to you real time event monitoring and also some important updates with transaction security policies. Now, many of you already are using event monitoring and you might be wondering, well, what's different? Well, what's different is it's real time. So we've connected it to platform events so that instead of having to do log based parsing of this, you know, every day, you can end up getting these events in real time and take action instantly. And also transaction security policies continue to be a great way to take actions when things happen in production. But now we're introducing the condition builder so you can declaratively create these transaction security policies in addition to also writing Apex to do it now, really, really exciting things. But you know what was going to be really awesome is getting Alba and Renee to join us again and to show you this all in action in a demo inspired by Ines and her team at Centrica Hive. It all starts here in the Hive service console. Now, a customer can end up taking their phone and take a picture of their H Vac system and submit it through that mobile application. And in doing so, they can submit it here and it'll open up a case and it'll end up using Einstein Vision to determine whether or not that H Vac system is compatible with the Hive thermostat. Now, Renee, can you go ahead and zoom in on that green line? That is an amazing green line that tells us that it is compatible. But guess what? As amazing as that green line is, our agents have told us that it is not particularly intuitive and obvious that that means that it's compatible. So together we're going to do some local development right here to make this a lot more obvious. So to do that, let's go over to the Local development server. Now as I mentioned, this is local, so notice up here, this is running on local host. So we can do all of this right here on our laptop. And what's more, you can see here all the components that I'm working with in my project right here available and they're interactive. So let's go ahead and select that product compatibility component. Look at this. Do you all see this? This is that lightning web component, Local. This is running on our machine. We did not push this into an Org and we can see this rendering so that we can see exactly what that UI looks like as we're developing. Pretty cool. So let's go ahead and make this a lot better by going to our ide. So let's switch over to the IDE and add some additional markup. So we're going to add a check mark here and save it just some HTML. And now when we go back to the local development server, notice that we don't even have to refresh. The local development server is looking for changes in the file system and it will just refresh the page. And so this looks a lot better. I think our agents are now going to understand that yes, this is a compatible H vac system with that thermostat. So great update. But now there's another thing to note here, is that it says Einstein Vision on this component and that's not particularly obvious that this is meant for product compatibility. So let's go now back to the IDE and this time instead of modifying our HTML, we're going to modify the JavaScript and so here we're going to switch this to something that makes a little bit more sense. Let's change this to product compatibility. So the thing to note is the local development server's not just working on HTML, it's also working on that JavaScript. So you can save it. Now let's go back to the browser and here you can see in a moment and it already has happened that it's updated to product compatibility. So this is awesome. We can iterate on this UI without ever having to push to an Org. Makes it a lot faster. So pretty cool. Now you know what's also going to be cool is testing this in an environment with all of our production data. But before we do that, we want to make sure that that data has been masked. So let's go ahead and take a look at data mask and how we can configure a configuration. So here we've got one already created Mask. Contact sensitive data. Let's go ahead and open this up. Now, there's a lot of different ways with which you can end up interacting with this. You can choose objects and fields upon which to have this configuration work. And here we've got contact selected. So let's go ahead and open this up and see how we've got it configured. There's three different ways with which we can define these masks. So the first one is kind of obvious, right? You can just anonymize it. So. So this is going to give you a bunch of just anonymized data, random characters, random numeric values. It'll all be contextual to the data type that you're choosing for this. Now, the other way you can do it is pseudo anonymize. And so you'll also get random data, but now it's going to be more contextual. So if this is a first name, you're going to end up getting things that look like names. If it's a country, you're going to see countries. So it ends up making that data a little bit more relevant for you as you're testing out that environment. And then the third way is you can just delete that data. So you can just decide, I don't want this production data even in my sandbox environment. So three really cool ways with which you can get this set up. I feel pretty good about this configuration. There's two ways that you should be aware of with which you can end up invoking these configurations. The first is you can just take an existing sandbox environment and have it run this configuration. So all of that data will end up being masked based on the way that this policy has been configured. Now, the second way you can end up doing it is by invoking it when you create that sandbox or you refresh that sandbox. So let's see how that will work. To do that, we're going to go to our sandbox setup. Now we're going to go ahead and create a new sandbox and we'll give it a really, really interesting name. And notice here on the right, we've got lightning full sandboxes. So another really, as I mentioned earlier, exciting addition to our sandboxes. This is going to give you all that production data and it's going to make it very fast. So let's go ahead and click Next here and it's on this page where we're going to tell it to actually run that data mask configuration just by specifying data mask right here. Now, if we were to hit the create button, we'd Go. And we'd create that sandbox. It would be a full sandbox created in minutes and then it would run that policy. Now we've already pre baked this so that we can get through the demo a little faster. But before I show you that sandbox, let's look at the kind of data that we're actually protecting. So let's go ahead and go to our production environment and take a look at this data. So here you can see we've got a vip, Mark Benioff. Now Mark loves to hear from developers, but turns out he doesn't like developers having his phone number. So we want to mask this data. So let's go ahead and look at what this looks like in our sandbox after we've masked it. So here we've got the same record, but now we've got a pseudo anonymized name, Von Nagy. The phone number has been removed, we've just deleted it. And then for the email we've randomized it. So notice that just a bunch of random characters, but also it's an email address still, so very important. So it's paying attention to that data type. So this is awesome. I feel really good about now our test environment. But notice we have the old component. So now let's go back to VS code. And in VS code we're going to end up using the command line interface to deploy that component. So simple command for source deploy. We're going to target that lightning component bundle and the component itself and push it into that sandbox. Quick operation. Now let's go back to our sandbox environment, do a refresh and we'll see that we've got that updated ui. So this is pretty cool. Now showing you a lot of things here, let's just quickly review what we've seen. We did a bunch of local UI development right on our desktop. Didn't have to push to an. Org. We ended up then deploying it into a sandbox that we created in minutes. And the data that came from production we masked to keep it secure. So a lot of cool stuff in order to make this happen. Now as exciting as this is, I also get pretty excited when we can protect production data as well. So to do that let's take a look at our transaction success security policies. So we've got two transaction security policies here. The first one Contact query execution. Let's go ahead and take a look at that one. Now what happens here is whenever a certain condition is met, we're gonna take some actions. And here the condition is when we query the contact object, when we do, let's take a look at the actions that we'll take. We're gonna block it. We're just gonna stop that from happening. In addition to blocking that from happening, we're gonna send notifications both, both through the app and email to admins so that they know that this has occurred. So I also want to highlight this is through that condition builder, so you can end up declaratively creating this transaction security policy. Now, we have another policy here, which is on the opportunity report, and this is going to be very similar. It's just going to stop you from being able to run that report. All right, so let's see what this looks like in action. To do that, let's go back to VS code. And again we're going to use the command line interface. And this time we're just gonna execute a simple SoCal query. And this is gonna try to extract data out of that contact object. But because we've set up that transaction security policy, we've stopped it. And so again, this will happen anywhere you're trying to end up executing a query against that object. So really, really cool. Now if we go back to the browser and take a look at this now in the. In the report here, we've got a report. Let's go ahead and just open up this report. And as you'd expect, guess what? You can't. We've blocked it. That transaction security policy has prevented us from opening the report. Now, I don't want you to think that this is only something that you can do here when you try to open this report. Again, it's the report that we've set up this policy on. So anywhere you use this report, we will block that operation. It turns out you can use reports when you create skills with the Einstein voice builder. So let's take a look at the Einstein voice builder here. Here we've got a skill that's set up so that when you interact with it, you can ask for your open opportunities. And so our expectation is we should be able to block this as well. So, Rene, are you ready to demonstrate how we can block this operation when you talk to the Einstein smart speaker?
Absolutely. Hey, Einstein, can you please read my open opportunities? Hey, Renee. A transaction security policy prevents me from getting the answer to that question. It's working. Back to you.
Thank you, Renee. Thank you for demonstrating that. So again, to highlight this, we're protecting, through that policy, the interaction with that report, however we interact with it. So in summary, we have seen how we can do local development changes, we can push it into a sandbox that we've created within minutes, protected that data, we can test it all out, and then we can also create transaction security policies in order to protect that same data in production. Pretty awesome. Sarah, back to you.
All right. That was incredible. Just a few quick things before we go. There's much, much more for you to discover and learn. Whether it's lightning, message service, Heroku, enterprise accounts, going ga mulesoft, anypoint, API community you saw with building our own API portal and more, we have a great link here for you to learn. And from a roadmap perspective, there's always more innovation to come. That security command center that Wade showed you, GitHub app support going into beta, and we put all of this into an incredible trail mix just for you to DF19 dev trail mix. And we're packaging up the best of Dreamforce for anybody that's not here in the room for you to take home to your communities. We're going on the road, starting the first of the year with the Dreamforce. 19 global gatherings, over 250 events already signed up. And it doesn't stop there. We're going to India in December. Our chief Product officer Brett Taylor's gonna be there with the team and doing our first trailhead DX India. So excited for this. And with that, thank you. And have an incredible Dreamforce.










