Agentforce NOW codeLive: Build Agentic Data 360 Experiences Headlessly — Transcript
Full transcript
- 0:03[music]
- 0:10[music]
- 0:12Hey,
- 0:17hey, [music]
- 0:22hey. [music]
- 0:34>> [music]
- 0:41>> Hey. [music]
- 0:46Hey. Hey. [music]
- 0:51Heat. Heat. N.
- 0:53[music]
- 1:00[music]
- 1:08>> [music]
- 1:15>> Hey, [music]
- 1:20hey,
- 1:21[music]
- 1:24hey.
- 1:33Doo
- 1:39[music]
- 1:48be
- 1:53down.
- 1:58Hey,
- 2:04[music]
- 2:11[music]
- 2:18[music] hey, hey.
- 2:21Heat. Heat.
- 2:24[music]
- 2:37[music]
- 2:42[music]
- 2:46Heat. Heat. N.
- 2:52[music]
- 3:02[music]
- 3:06[music]
- 3:12>> [music]
- 3:18[music]
- 3:26[music]
- 3:31[music]
- 3:39[music]
- 3:47[music]
- 3:56[music]
- 4:34[music]
- 4:43>> Heat. Hey, Heat.
- 4:52Heat. Heat. N.
- 4:56[music]
- 5:02Heat. Heat. N. [music]
- 5:12Heat. Heat. N.
- 5:22Hey, hey, hey.
- 5:26[music]
- 5:42Heat.
- 5:46[music]
- 5:55[music]
- 5:59Heat.
- 6:06[music]
- 6:23>> [music]
- 6:29[music]
- 6:32>> Heat.
- 6:38[music]
- 6:43[music]
- 6:48[music]
- 6:50Hey, Heat.
- 6:53[music]
- 6:59>> [music]
- 7:05[music]
- 7:09[music]
- 7:14>> Hey,
- 7:16[music]
- 7:17hey, hey.
- 7:21Heat. Heat.
- 7:24[music]
- 7:28[music]
- 7:35[music]
- 7:44[music]
- 7:52>> [music]
- 7:56>> Heat.
- 7:59[music] Heat.
- 8:06[music]
- 8:10>> [music]
- 8:16>> Hey.
- 8:19[music]
- 8:28[music]
- 8:34[music]
- 8:36Heat.
- 8:39[music]
- 8:46[music]
- 8:51[music]
- 8:56[music]
- 8:58Hey, heat. Hey, heat.
- 9:02Always
- 9:05[music]
- 9:29[music]
- 9:37>> [music]
- 9:45[music]
- 9:50>> Oh yeah. [music]
- 9:57Hey. Hey.
- 9:59Heat. Heat.
- 10:02[music]
- 10:07[music]
- 10:21[music]
- 10:27>> [music]
- 10:35[music]
- 10:42[music]
- 10:49[music]
- 10:58[music]
- 11:06[music]
- 11:09>> down.
- 11:12[music]
- 11:13Hello.
- 11:17>> [music]
- 11:25[music]
- 11:30[music]
- 11:34>> Hey. [music]
- 11:42[music]
- 11:46Heat. Heat.
- 11:50[music]
- 11:59[music]
- 12:10>> [music]
- 12:16[music]
- 12:26[music]
- 12:28>> Hey,
- 12:32hey, hey.
- 12:35Heat. Heat. [music]
- 12:46[music]
- 12:56[music]
- 13:04>> [music]
- 13:11[music]
- 13:18[music]
- 13:33>> Hey,
- 13:37[music]
- 13:46hey, [music]
- 13:47hey.
- 14:08Hey,
- 14:12hey, hey.
- 14:17Heat.
- 14:19[music]
- 14:33[music]
- 14:36Heat.
- 14:52>> [music]
- 14:55>> All right. All right. Hello everyone.
- 14:58Thank you so much for joining Agent
- 15:00Force now code live. My name is Mohit.
- 15:03I'm a developer advocate here at
- 15:06Salesforce and I welcome you all to this
- 15:08code live episode. Today we're going to
- 15:10be building agentic data experiences
- 15:15more importantly headlessly all through
- 15:17coding agents. Uh and uh I have with me
- 15:21uh the product manager who is sort of
- 15:23working on all of this Anush. Welcome to
- 15:27code live.
- 15:28>> Yeah thank you Mo. Thank you for
- 15:29inviting me. Uh hi everyone. My name is
- 15:32Anush. I'm the product manager for
- 15:34headless data 360 starting with the data
- 15:37360 MCP server. So really excited to for
- 15:40this hands-on session with Moeth to get
- 15:42you guys started and to see your
- 15:44experience using the MCP server.
- 15:46>> Perfect. Perfect. And and I know Anush
- 15:48you're very busy building these MCP
- 15:50servers. So I really appreciate you
- 15:53taking time today and for all those of
- 15:56you who are tuning um remember that we
- 15:58also have chats there. So as we sort of
- 16:01show these capabilities to you, if you
- 16:04have any questions, please make use of
- 16:06those chat and u shoot us to us and
- 16:10we'll we'll get back to those questions
- 16:12as they sort of come along. uh with that
- 16:15uh you know because this is Salesforce
- 16:17presentation um I'll I'll put the
- 16:19presentations here but more importantly
- 16:22uh a forward-looking statement uh so
- 16:25please uh do not make your purchasing
- 16:27decisions based on features
- 16:30um that are uh not available in the
- 16:32product at or not GA with that out of
- 16:35our way again um you know myself and
- 16:38Anush we're going to be talking about
- 16:40building agentic data 360 experiences
- 16:42headlessly Okay. And I just want to
- 16:45remind everyone that uh you know there
- 16:47is a QR code. I've also uh sort of
- 16:50placed this QR code on your screens on
- 16:52your right. So um make sure that if you
- 16:55have any feedback about this code live
- 16:58or any code live in general just uh use
- 17:01that QR code and tell us with that. Um
- 17:05how about uh Anush uh we actually take
- 17:07some time and explain uh to everyone um
- 17:12like what is this data 360 headless all
- 17:14about? What is this momentum about? What
- 17:16are these MCP servers? So let's take
- 17:18some time everyone to get to the same
- 17:20page here.
- 17:21>> Yes. Uh I think that'd be a good start.
- 17:24Uh starting with what are we doing here?
- 17:26If you started earlier this year using
- 17:28data 360, maybe even in Jan, uh a lot of
- 17:32the functionality was in the lightning
- 17:34UI in Salesforce. So even if you're
- 17:37using agents back then, you had to move
- 17:39between the UI, maybe ask your coding
- 17:42agent what you need to do, look at the
- 17:44documentation. So this led to like some
- 17:46sort of context mismatch between where
- 17:48you're doing work and where you need to
- 17:50go gather this context for. So in order
- 17:53to solve that we are starting a really
- 17:56focused headless program.
- 17:59What does this mean?
- 18:01>> The foundation of this program for us is
- 18:04making sure all our functionality in the
- 18:06UI is available through APIs. So that is
- 18:08the foundation layer in which we are
- 18:11building. Once those APIs are exposed we
- 18:15have now released a data 360 MCP server.
- 18:18Actually earlier in June we had a
- 18:20developer preview of a local MCP server
- 18:23right through which we got a lot of
- 18:24feedback about how users are using it.
- 18:27We saw the user experience with a lot of
- 18:29great feedback from that and from that
- 18:32we realized that the hosted remote MCP
- 18:34server was a better option for most
- 18:36users.
- 18:38>> Perfect.
- 18:39>> Now
- 18:41why is this really important? Right?
- 18:44It's not just about you going to claude
- 18:46or going to Codex and telling uh Codex
- 18:49go do this thing or claude do this thing
- 18:50no make no mistakes. It's not just that.
- 18:53It's about providing trusted context
- 18:56also with governed resources and
- 19:00pre-built skills via the MCP server. Why
- 19:03is this important?
- 19:06So if you notice, agents are good at
- 19:10solving things, but they may also not be
- 19:13the best at following the shortest path
- 19:15to a solution. But you being Salesforce
- 19:18developers or industry experts know what
- 19:21is the best path. So this MCP server
- 19:24paired with specialized skills reduce
- 19:27the number of tokens required for an
- 19:29agent to go from 0 to one. So if you
- 19:33notice the MCP server today, we have
- 19:35just three tools. We have the search
- 19:37tool, we have payload examples and we
- 19:41have execute.
- 19:43Why just three tools, right?
- 19:46We notice that with dynamic tool loading
- 19:49when you ask for a certain intent, the
- 19:53agent can then source for what what it
- 19:55needs. For example, it could be
- 19:56segmentation. you want to create a user
- 19:59segment to maybe uh target a specific
- 20:02user segment and then the agent finds
- 20:05the exact payload examples for that tool
- 20:07and that reduces the number of turns an
- 20:10agent needs to successfully solve this.
- 20:13So which is why we have followed this
- 20:14dynamic tool loading method as well as
- 20:17coming soon will be skills accompanied
- 20:20with the MCP server. This will reduce
- 20:22the number of turns your agent needs,
- 20:24the number of tokens you need and also
- 20:26it provides best practices that
- 20:28practitioners using the data 360
- 20:31platform use to build it.
- 20:35So now not just can you do this through
- 20:37cloud or codeex but you get this really
- 20:39smart reasoning engine paired with you
- 20:42following the best practices and
- 20:44executing on it which is why I'm so
- 20:46excited for this.
- 20:47>> Awesome. Awesome. No, this is this is
- 20:49great. Um one thing I really want to
- 20:51call out is look at the simplicity of
- 20:54this whole design right uh when I when I
- 20:57was sort of um thinking about you know
- 21:00these MCPS for data 360 and myself you
- 21:04know um um I I can call myself data 360
- 21:08uh developer or you know data blazer uh
- 21:13so there are there are so many tools in
- 21:16data 360 as as you know um Anush Like
- 21:20there's so much of power that this data
- 21:22360 has and the tools it has you know
- 21:25let's talk about you know creating these
- 21:27data streams to bring data from like you
- 21:29know multiple system like thousands of
- 21:31systems right you can ingest data
- 21:33through various mechanisms like for
- 21:36example zero copy is one of my favorite
- 21:39because if you have a snowflake or data
- 21:41bricks you can you know sort of zero
- 21:42copy data into data 360 uh but still
- 21:47like all of those involve lot of clicks
- 21:49And when I thought about MCPS for you
- 21:51know data 360 with all these tools I was
- 21:55like this is going to be like you know
- 21:57maybe n number of tools right thousands
- 21:59of tools here in this in this scenario
- 22:01because there are thousands of APIs
- 22:03>> but uh you know when I saw like okay you
- 22:06know you guys are like only exposing
- 22:08like only three different MCP tools um
- 22:12so that's again less number of token
- 22:14consumptions and also much easier for
- 22:17the AI to like sort of reason right
- 22:19because it's now progressively sort of
- 22:21progressing towards what what is
- 22:24required than you know just loading
- 22:26everything in one shot and sort of
- 22:28consuming the context window and then of
- 22:30having AI just hallucinate it right
- 22:34>> perfect perfect okay uh so for all of
- 22:36you right um today what what we are
- 22:39thinking is we're going to make this
- 22:41much more like practical just showing
- 22:43the use of it um and uh if you're new to
- 22:47data 360 welcome um no issues we we'll
- 22:50try to like cover those aspects as well
- 22:53like what is data 360 what does it do
- 22:55etc um but I have a business use case
- 22:58and I think you know all of us are there
- 23:01to solve business problems right so I
- 23:03thought it will resonate well if we
- 23:05start with the the use case here and uh
- 23:08Anush for us today the use case is we
- 23:11have this bronto a food delivery
- 23:12platform and this is a sample
- 23:14application that developer advocacy team
- 23:16sort of uses it uh to showcase uh
- 23:19different capabilities of the platform.
- 23:22So we've taken that Pronto uh platform
- 23:24today and we will leverage the data 60
- 23:27as a centralized system for context for
- 23:30agents that Pronto is building. Um
- 23:34basically it's going to be unifying data
- 23:36from multiple sources
- 23:38activating that data across different
- 23:40applications and different agents. So
- 23:42this is the primary use case of data 360
- 23:45in case you are wondering what is data
- 23:46360 right is that context engine that
- 23:49will drive agents uh your apps you know
- 23:52think of it like a big data processing
- 23:54engine right with all the tools and
- 23:56batteries included so you can quickly
- 23:58activate you know the data um for
- 24:01context as well as for um sort of
- 24:05building applications if if that's what
- 24:07you're doing with this data right um so
- 24:10that's so our use case our exad business
- 24:12problem that we're going to solve. We're
- 24:14going to try to solve in this session.
- 24:15Although I don't know how far we will
- 24:17get along with these coding agents and
- 24:19sort of working because you know
- 24:21building something live is like you know
- 24:23hours of work like even clicking through
- 24:25it and agents is going to simplify a lot
- 24:27of it. We'll try to to sort of do a lot
- 24:29of stuff here um live. So really what we
- 24:32are trying to solve is um for pronto the
- 24:36customer is showing up now in as two
- 24:38different peoples even though it's same
- 24:40customer um but it's showing up as two
- 24:43different people because uh you know one
- 24:47way the information is coming through
- 24:48their delivery app system which uses uh
- 24:52basically an application which uses the
- 24:54the email to order and then they are
- 24:57collecting all the reviews in Salesforce
- 25:00CRM And we need to a able to sort of
- 25:04activate it using data from multiple of
- 25:07these systems. The rules that we're
- 25:09going to write is not just belongs to
- 25:11the reviews here like our rules here as
- 25:13you can see is two different rules here.
- 25:16One is if the order date is sort of
- 25:18lapsed um 60 days beyond and also the
- 25:22rating or the rating is less than two.
- 25:24So you you can see we are creating a
- 25:26segmentation operation to sort of win
- 25:29back these customers from multiple
- 25:31systems and these are exact type of
- 25:33problems actually uh at scale that data
- 25:36360 sort of solves right
- 25:37>> yeah so this is a common problem I've
- 25:39seen moit where a lot of customers may
- 25:42have unhappy customers they're serving
- 25:45>> and how do you how do you figure out
- 25:46that's the right customer right when you
- 25:48have this data among multiple different
- 25:49systems how do you know this reviewer is
- 25:52actual customer of you is that a real
- 25:54review. Is it a fake review? How do you
- 25:56figure out should you reach out to them
- 25:57or is it worth your time?
- 25:59>> Perfect. Perfect. Yeah. Yeah. No, this
- 26:00is the use case. In fact, you used to
- 26:02call the CDP use case. I I remember the
- 26:05term CDP use case, right? Um but here's
- 26:09here's the simple design to solve these
- 26:11kind of things and I just put it out
- 26:13here because this is very common um you
- 26:17know solution design that you um that
- 26:20you as solution engineers are are doing
- 26:22most of the times. So you will basically
- 26:24in data 360 create data streams uh for
- 26:29different data um sources. In this case
- 26:32it is that app the data coming from the
- 26:35app uh which in my case I've simplified
- 26:38it actually with just a CSV file but
- 26:40think about it's coming from your mobile
- 26:42app or something. And then um uh the d
- 26:46uh the other data uh source here is the
- 26:48Salesforce itself that has all the
- 26:50reviews. So we take all those. So we
- 26:52create data streams. We create um what
- 26:55we call uh data lake objects uh and then
- 26:59uh from that we create uh data model
- 27:02objects by mapping them to the you know
- 27:04the canonical data model that um data
- 27:07360 provides. So data 360 by default has
- 27:11pre-built data models for different
- 27:14business purposes to activate that data
- 27:17uh or unify that data. Right? So, so
- 27:20that is unification. So, we'll do that
- 27:21unification generally that that is your
- 27:23workflow creating streams and doing this
- 27:26unification or mapping it to the right
- 27:29canonical data model within the data 360
- 27:32and then you resolve using identity
- 27:34resolution. In this case, it's very
- 27:36simple like I've just taken email as
- 27:38that common thing but it could be you
- 27:40know multiple logic like multiple stuff
- 27:42uh it could be very complex too uh fuzzy
- 27:45matches etc. So based on that you map
- 27:47them and match it and create that one
- 27:50single identity record from which we can
- 27:53create this segmentation which will be
- 27:55another uh data object called winback
- 27:58diners uh you know where we sort of
- 28:01segment all those customers who have
- 28:04like sort of not ordered from pronto app
- 28:07uh uh you know it's been like 60 days
- 28:09since they ordered or u the rating has
- 28:13like sort of fallen less than um True.
- 28:16So this is the solution design. Now
- 28:20uh you know because I have worked with
- 28:21this system I I know this solution
- 28:23design. uh but when you're solving a
- 28:26problem right and because we have
- 28:28different tool sets another way to
- 28:30approach this kind of problem these days
- 28:33with the agents is
- 28:36ask the agent itself like how do I solve
- 28:40using that MCP that we have and the
- 28:43agent will definitely sort of look at
- 28:44all the payloads and can recommend that
- 28:46these are the things again in this loop
- 28:49you still need to be in the loop because
- 28:51you need to judge whether whatever that
- 28:53agent is sort of telling you is correct
- 28:55or not. So you still need to understand
- 28:57all of these u but uh once you sort of
- 29:00understand then this whole MCP uh and
- 29:05skills and everything becomes much more
- 29:07useful because then there are like you
- 29:08know power tools which you can put them
- 29:10into action and can move with a very u
- 29:14you know rapid pace. Um any thoughts
- 29:16here um Anush? Yeah. So, uh I think you
- 29:20really nailed that one because even for
- 29:23me when I if for me sometimes the
- 29:25business problem is just I want to win
- 29:27back these dinos like I do not know
- 29:29anything about data 360.
- 29:31>> I don't know I need to unify this data.
- 29:32All I need to do is my goal is I need to
- 29:34win back these customers who have
- 29:36dropped off from the platform, right?
- 29:38And
- 29:39>> I usually pair with Claude or Codeex and
- 29:41I'm like, "Hey, this is my problem. This
- 29:43is what I have at my disposal. Help me
- 29:45brainstorm through the solution." And as
- 29:48long as you're connected to the tools to
- 29:50the agent, whether it's cloud, cursor,
- 29:52codeex, or even GitHub copilot, they'll
- 29:55be able to help you reason through your
- 29:57various options. And uh like Moit
- 29:59mentioned since Moit's a data 360 expert
- 30:02he has a good grasp of what he needs to
- 30:05do that is unify resolve and segment but
- 30:07if you are new to data 360 just ask your
- 30:10coding agent hey this is my problem how
- 30:13can I solve this and you'll be able to
- 30:14brainstorm through it
- 30:16>> yeah yeah exactly perfect um so let's
- 30:20let's go into that live coding segment
- 30:22with a coding agent um and uh the data
- 30:25uh 360 MCP so I want to take this MCP
- 30:28server for a ride today and see how it
- 30:30kind of does. Um and again um you know
- 30:33we want to be upfront honest with you.
- 30:35So this is all GA right. Um there are
- 30:38certain things in here that we are still
- 30:40bridging like of course like data 360
- 30:42has a lot of like lot of APIs and lot of
- 30:46capabilities right and to bring all of
- 30:48them to the MCP I think uh Anush's uh
- 30:51Anush and the team is working on but I
- 30:53would say from my experience working on
- 30:55this now from like last two weeks I can
- 30:57say you know definitely this is this is
- 31:00u helping me like you know I'm able to
- 31:02um sort of move with the speed of my
- 31:05intent here um you know just knowing
- 31:07what I need to do and then uh using this
- 31:10MCP is has been a helper. Anush you have
- 31:12any thoughts on what are the things that
- 31:14you're still working on. Um so yeah so
- 31:17anything that's a UI functionality u it
- 31:21will be exposed to the API and you will
- 31:23see it in the MCP server.
- 31:25>> If there are some recent APIs you should
- 31:27be seeing them shortly in the MCP
- 31:29server. But there are also certain APIs
- 31:32or certain functionality we might not
- 31:34expose.
- 31:35>> Mhm. An example for that is uh imagine
- 31:38you need to set up a connection which
- 31:39requires putting your credentials into
- 31:42an API or credentials into the UI to
- 31:44connect from system to system,
- 31:46>> right?
- 31:46>> We might not want you to put that those
- 31:48credentials into the agent because then
- 31:51that might be stored somewhere might
- 31:53which might lead to a security lapse.
- 31:56>> Yeah. So you might notice very few
- 31:59sliver of functionality that we might
- 32:02intentionally keep away from the lens of
- 32:07security as well as governance.
- 32:09>> But whatever other functionality that
- 32:11you have, you will see it in there.
- 32:13>> If we if you have missed something,
- 32:15please reach out to us, let us know. If
- 32:17something doesn't work out for you,
- 32:18well, let us know and we'll be we'll
- 32:20make sure to address that as soon as
- 32:21possible.
- 32:22>> Yeah. Perfect. Uh perfect. Um so first
- 32:25actually so I wanted to show you the
- 32:27Pronto instance. So this is the the
- 32:29Pronto instance that I was talking about
- 32:31and uh this is basically what I'll be
- 32:34using for my uh building uh demos. So
- 32:36one of the things we will do is ask the
- 32:39agent to create data streams um and then
- 32:42create identity resolutions today with
- 32:45um data streams from Salesforce um
- 32:48pulling all the reviews. So these are in
- 32:50Salesforce. Now we want to pull it into
- 32:51data data 360 here so we can unify with
- 32:54the app orders data. So that's something
- 32:56we'll be doing. But before all this
- 32:59there is some setup that is involved in
- 33:03um sort of setting up your org so that
- 33:05that MCP gets activated and you can
- 33:08connect to your coding agent. I want to
- 33:10go through that now uh with you. So uh
- 33:14real quick right um you should find
- 33:17this MCP server in your API catalog. So
- 33:22if you go to API catalog you will see
- 33:24something like data 360 server. So um
- 33:28again for every org you will basically
- 33:32go there um and this is going to take
- 33:35some some time. Let me actually refresh.
- 33:37Sometimes it does take some time to load
- 33:39but really what it will have is it'll
- 33:42have a toggle. Now there is already a
- 33:45Salesforce CLI command to that the CLI
- 33:49team is exposing. It's in beta at this
- 33:51point through which you can um sort of
- 33:54not have to like go through the UI to
- 33:57activate the servers. You can just like
- 34:00do it through the CLI itself. So that
- 34:03way you can script it if you need to.
- 34:05Uh, let's see why it's kind of hanging
- 34:07up here. Let's give it a shot once more.
- 34:12This is why I like headless actually.
- 34:17The headless makes it so easy. I don't
- 34:19have to click around and sort of wait
- 34:21for, you know, uh, this UI to sort of
- 34:23load up. Uh, but while that is loading
- 34:26up, right, uh, once that is sort of
- 34:29activated, which it will, uh, it will
- 34:31show up here, but let me show you what
- 34:34you need to do. So, so the first step is
- 34:35obviously to activate it. The next step
- 34:38here is to um create something called as
- 34:42external uh client credential app and uh
- 34:47it's in my case my coding agent is the
- 34:51cloud code. So for cloud code I create
- 34:54this client credential app. Um there are
- 34:57certain um uh settings that you need to
- 35:01do the oath settings uh like the call
- 35:04back URL uh the scopes the MCP scopes
- 35:08that you need and uh the the refresh
- 35:11token uh and then you will enable the
- 35:14the JWT token access. Um uh and uh yeah
- 35:19once you do that you will pretty much be
- 35:22able to like uh request for um the the
- 35:26keys the consumer key. So you'll get
- 35:28consumer and key and the secret and this
- 35:31is very secret for for that specific org
- 35:34um that your clients are going to
- 35:35connect to. So you use that secret and
- 35:38then uh basically authorize this MCP
- 35:42server so you can connect from uh your
- 35:45coding agent. This is what you going to
- 35:47do. Uh so this is this UI finally loaded
- 35:50here. So as you can see it has three
- 35:52tools. The data 360 it has three tools
- 35:55here. This is the server endpoint and
- 35:58the [snorts] three tools that we
- 35:59discussed is first to search that right
- 36:02data 360 tool um and then get the
- 36:05payload example so it can figure it out
- 36:07and then it's going to execute that data
- 36:09360 tool. So having said all of these
- 36:12right um Anush actually built up a skill
- 36:16that we will figure it out sort of how
- 36:18to like ship this to you so that you
- 36:21don't have to like click around uh to
- 36:23set it up. It's called setup platform
- 36:26MCP server basically and this skill file
- 36:29I I got it from um Anush. Anush thanks
- 36:32for sharing this.
- 36:33>> So really uh Anush you want to talk
- 36:34about the skill file? I think you this.
- 36:37>> Yeah. Uh yeah, we'll we'll find a way to
- 36:39share that soon. Uh the teams have been
- 36:41working on having this setup skill. Uh
- 36:44we do understand that uh setting up the
- 36:46external client app and connecting it to
- 36:49coding agent currently is a couple of
- 36:52steps.
- 36:52>> Mhm.
- 36:53>> And we want to solve that. So moving
- 36:56forward soon it should be as simple as
- 36:58you ask your coding agent set up data
- 37:01360 using the skill and it should be
- 37:04able to go set up the MCP server and the
- 37:06external client app for you.
- 37:08>> Yeah, pretty much whatever I described
- 37:10right now is there in the skill.
- 37:12>> Yeah, there's one caveat though. Make
- 37:14sure that you are the person setting
- 37:16this up as permissions to create an
- 37:18external client app. So one of the
- 37:19things I've noticed is not everybody in
- 37:21your org might have that permission. So
- 37:23make sure that you have access to go
- 37:25create the external client app.
- 37:26>> Yeah. Perfect. And for those of you who
- 37:28are looking um to like sort of
- 37:32um
- 37:34understand a bit more about like how to
- 37:37like headlessly activate
- 37:40um some of these right um there are uh
- 37:44as I said there is one command that I
- 37:46can I can share with you right now. It's
- 37:48kind of going uh in uh I would say in in
- 37:52u uh in beta right now uh kind of beta
- 37:57uh but you can um sort of ask help about
- 38:00it. It's called SF agent MCP. Um that's
- 38:04the command and if you ask for help it
- 38:07will show you um everything like you can
- 38:10create an MCP server in that API
- 38:12catalog. You can delete it. You can
- 38:14actually fetch a MCP server. you can
- 38:17list it, you can update the server. So
- 38:20this is a command that is also shipping
- 38:22up with the CLI. So if you are scripting
- 38:24this um because I know a lot of lot of
- 38:26you actually work with scratch arcs and
- 38:29sandboxes and you would want to like
- 38:31just automate this whole thing um
- 38:34because the moment you create a scratch
- 38:35arg you want these MCP servers to be
- 38:38activated so that you can connect uh
- 38:40easily right so if you're doing that I
- 38:42suggest go and look at these commands um
- 38:45these are in beta soon going GA but this
- 38:48is going to help you in like setting up
- 38:49your scratch arcs or sandboxes from the
- 38:52CI/CD pipeline. Um, okay. So with with
- 38:56having said that, let's actually move
- 38:58on. And so once you do that, basically,
- 39:02uh, I have already set up this, um, MCP
- 39:05server. You can see it's already
- 39:07connected in my cloud code. I'm using
- 39:09cloud code. Um, it's one of the coding
- 39:12agents that I use. But again, this is
- 39:14MCP server. So you can bring whatever
- 39:16coding agent you like. You know some of
- 39:18you I know are using pi some of you are
- 39:20using codeex
- 39:22you know some of you are using agent
- 39:23force wipes we are headless right so the
- 39:26idea with headless is this like this
- 39:27whole platform is available to any
- 39:29coding agent so but today I'm going to
- 39:32use the cloud code because that's what I
- 39:33I use it so you can see I'm connected to
- 39:36this data 360 uh MCP server and if you
- 39:39actually go you can actually view the
- 39:41tools I'm already authenticated actually
- 39:44um so it's all it's all well and good
- 39:46But if you're not authenticated, there
- 39:48is one um command that you will need to
- 39:51type in into your cloud and provide the
- 39:55the you know the consumer secret and the
- 39:58consumer key in that command. Make sure
- 40:00you don't again paste the consumer key
- 40:01or the consumer secret into this cloud
- 40:04code tool. Just be on the terminal mode
- 40:06always uh when you are doing some kind
- 40:08of sensitive um commands. Right? So you
- 40:11you go on a terminal and do it. Um but
- 40:14once you are connected right this tool
- 40:16now can use the MCP server. So uh I want
- 40:20to show you um uh the data 360 and what
- 40:24I have been building with this scenario
- 40:26to solve this scenario so that we don't
- 40:28do everything here live because we'll
- 40:30run out of the time. So you can see here
- 40:32um we have this uh diner contact stream.
- 40:36This stream basically is pulling data
- 40:39from Salesforce from contact object and
- 40:42it maps to a bunch of again this whole
- 40:46thing I created um through the MCP
- 40:48server itself like I I did not go and do
- 40:52this 100 number of clicks um I asked my
- 40:54MCP server to create it um and then I
- 40:58said you know I want these these
- 41:00mappings for these data and it
- 41:01automatically figured it out like which
- 41:03objects [clears throat] it should map to
- 41:06all that option. Yeah.
- 41:08>> Moit before the MCP server, how would
- 41:10you reason through these mappings
- 41:12previously? Just curious.
- 41:15>> Yeah. So, one of the things um like one
- 41:19of the things uh how we would reason
- 41:21through this is
- 41:24um
- 41:27so there are two aspects to to reasoning
- 41:30here. How how uh we used to do it. I
- 41:33think there is an auto map feature
- 41:35somewhere in the tool. So once you click
- 41:37in the UI, it will automatically look at
- 41:40the data types and sort of map. But that
- 41:44will only work until you kind of select
- 41:47that data model entity. Okay? Like you
- 41:49will say you know select contact and
- 41:51then account contact. So in this case
- 41:54and this is a good question from
- 41:55business perspective. How I reason is
- 41:57see in in data 360 there are only two
- 42:00key things whether you want to do the
- 42:04unification and this identity resolution
- 42:07by individual or you want to do it by
- 42:12the entity like account right or by
- 42:15business right um so usually it is
- 42:18mapping to account contact and contact
- 42:21point addresses and point phone and
- 42:24individuals but it matches by data types
- 42:26and uh of course I have to go by hand
- 42:29and map a lot of these. Yeah.
- 42:31>> Yeah. Even I noticed that at at least
- 42:33for me personally mapping was a tricky
- 42:36flow because a lot of this had to be
- 42:38handmapped.
- 42:39>> Uh so how was your experience from how
- 42:42you did this previously and now with MCP
- 42:45server?
- 42:46>> Yeah, I would say uh it was good. All I
- 42:49did was um just ask the the cloud code.
- 42:52I'm going to show one of them. So this
- 42:54this I built it already for the contact
- 42:56streams and we have one for the app
- 42:57order stream. So let's do one one from
- 43:00the tool so everybody can actually see.
- 43:03So one of the other things as I said we
- 43:04want to pull is all that review. So
- 43:06there is a review object. So typically
- 43:08how you would build is you know you'll
- 43:10go to new and you know you will do so
- 43:12many clicks. You will say yeah CRM
- 43:14objects and wait for this screen to load
- 43:16load and then you will be like view the
- 43:19objects. There are too many clicks you
- 43:21know too many clicks. my org is I would
- 43:23say reasonable but still you will you'll
- 43:26have to search etc etc find a lot of
- 43:28these things right a lot of clicks um so
- 43:31what I'm going to do is I actually wrote
- 43:33a spec of what I want um let's let's
- 43:37look at that spec of the changes I want
- 43:40so one of the things I'm doing now is
- 43:42this review uh data stream um basically
- 43:45so again um again I'm asking what I need
- 43:49to do here in this in this case Right.
- 43:52So the whole idea here with this spec
- 43:54and you know one of the features that
- 43:56got added in VS code was being able to
- 43:58view this markdown now. So really what
- 44:01I'm saying is look contact and app order
- 44:03are ready. I need the review signals
- 44:05ingested into new data stream and then
- 44:08this is how I like to write my specs
- 44:10actually um just just so it is
- 44:12consistent. Um so you know Anush you it
- 44:14need not be like this. You can just
- 44:16write it however you want. It's it's up
- 44:18to you but I think it makes it much
- 44:20easier for me also to think right in
- 44:22this case I'm saying you know once the
- 44:24system will create a data stream for the
- 44:26CRM object um and lands as a DLO
- 44:30carrying the rating review order and
- 44:31contact and then uh this is the only
- 44:34injection artifact this change creates
- 44:37uh and this is built using that MCP
- 44:39discovery loop right not giving again
- 44:41not giving the payload etc but just
- 44:43telling it scenario is you know review
- 44:46DLO is populated and carries the signal.
- 44:48So this is one scenario. The other
- 44:50scenario is event date stream is
- 44:51provisioned correctly like once it's
- 44:53done make sure it's kind of you know
- 44:55provisioned correctly. So this is
- 44:57basically um it and you know if you know
- 45:00certain things like I know there are
- 45:02these many dlos these many rows so I can
- 45:05also say right when you query these many
- 45:07rows are there uh if you know um
- 45:10sometimes whatever you know right that
- 45:13becomes a deterministic signal here. Um
- 45:16so yeah simple simple requirement uh you
- 45:19know um that I want and now I'm going to
- 45:21just ask that use this review data
- 45:24stream uh spec right and create a data
- 45:26stream. So we'll we'll we'll we'll chat
- 45:29about it but let's submit this work to
- 45:30the agent um here. So, we're going to
- 45:33say create um a data stream for the
- 45:37reviews.
- 45:40The specs are here.
- 45:44Um yeah. So, I'll uh
- 45:48I'll actually submit it right in the
- 45:50auto mode and let the agent kind of
- 45:53figures it out and create that uh
- 45:56stream. Um yeah. Yeah. So, so Anush,
- 46:00you're you're asking me something uh
- 46:02kind of works through.
- 46:02>> Yeah. I I was I was curious because like
- 46:05I wanted to try to gauge what your
- 46:08workflow was before versus what it is
- 46:10after like how have you changed the way
- 46:13in which you operate, right? Like how
- 46:15much of your previous context was
- 46:16important and what can users learn from
- 46:19the way you have changed your uh usage
- 46:21of data 360?
- 46:23>> Yeah. Yeah. So the biggest the biggest
- 46:25unlock for me doing this is see I am no
- 46:28more a blocker you know we have to think
- 46:30in this terms right if I sit on the
- 46:32computer and then like just click around
- 46:35like 50 number of clicks it's like I I'm
- 46:40I'm the blocker now to to execute that
- 46:42job right and if I know that the agent
- 46:45can like you know reliably go and do
- 46:47certain aspects of this right uh I'll
- 46:50probably kick that load and then move on
- 46:52you know like sort of do something uh
- 46:55else right um so that that has been
- 46:58operational change uh from me is like
- 47:00now I'm spending more time instead of
- 47:02like you know clicking around I'm more
- 47:05spending more time doing the the the
- 47:08design thinking um mostly around okay
- 47:11how do I solve this business problem
- 47:13what are the tools I need and writing it
- 47:16um in um natural language so I can then
- 47:19cue that work to the agent and then once
- 47:21the agent kind of does you know my work
- 47:23is more of verification. So as you can
- 47:26see my work is sort of moved moved from
- 47:28like implementing right I have more time
- 47:32to do the other side of the work now
- 47:33like the the planning you know I spend
- 47:35more time doing that planning
- 47:37>> after the work I spend more time doing
- 47:39the doing you know judgment and all
- 47:41these kind of capabilities so so that is
- 47:43what I've been doing. Yeah. So you moved
- 47:45like you moved up the stack. You have
- 47:47expanded your scope from being a just a
- 47:49developer to being a developer but also
- 47:51like a directly responsible individual
- 47:54for coming together with a business plan
- 47:57and evaluating if it was successful or
- 47:59not.
- 48:00>> Absolutely. Absolutely. And you know
- 48:02this is one terminal that is running as
- 48:04you can see I my my day now is if if
- 48:07somebody asks me to do something right
- 48:09usually I have like five or six
- 48:10terminals running and I'm just running
- 48:12you know sort of managing those
- 48:14terminals or those agents in this case
- 48:16we can say right um so you see so so
- 48:19Anush let's talk about you know what
- 48:21happened here right so you see what the
- 48:22agent did is it said it has the f
- 48:25picture it knew that the object name is
- 48:28review
- 48:30c engagement stream. It began that
- 48:32discovery loop which is basically
- 48:34searching and pulling down the exat
- 48:36schema. So now it has the schema. So now
- 48:40it knows that there is a home connection
- 48:42already in the org. That is so awesome,
- 48:44right? It knows that there is that CRM
- 48:47connection is there and if it would have
- 48:49the connection would have been missing,
- 48:51it will tell me that go first do that
- 48:53connection. Um so I can go do the
- 48:55connection. So I will be like sort of
- 48:56blocked at this point, right? But now
- 48:58since it has the connection it's able to
- 49:00go move. So it's now able to go and look
- 49:02at all the things. It looked existing
- 49:05stuff that are there in the in the org.
- 49:08>> Um it looked into all the prerequisite.
- 49:10It confirmed the the the field and now
- 49:13it's calling the data 360 um APIs to I
- 49:17think hopefully this is the next step.
- 49:18It's to create that um that uh data
- 49:21streams. In fact I think it's creating.
- 49:23Let's let's look at see. So you see
- 49:26there you go. You see it actually
- 49:28created it. So now it's going to
- 49:30schedule the I think it's going to the
- 49:32next thing is it's going to schedule the
- 49:33run which is to like you know get all
- 49:36the the data uh and schedule that that
- 49:40run um so it can get all the data into
- 49:43data 360 and it did it so like you know
- 49:47magically but um this this would have
- 49:50been some clicks actually you know. So
- 49:52it says you see run triggered
- 49:54successfully. Let me pull the DL count
- 49:56until it populates. Right? So I'm pretty
- 49:58sure it will now go and see it moved the
- 50:01status to pending. That means it knows
- 50:04that okay next I need to kick this job.
- 50:06So we should see some refresh history.
- 50:08It's not here yet but it's the next
- 50:11step. So once it does I think the next
- 50:13step I'm curious to see is it does the
- 50:15data mapping by itself. If it not, maybe
- 50:18that's one more prompt and from there I
- 50:20will have the review data already synced
- 50:23up um sort of without me having to like
- 50:25click just by intent I'm I'm moving.
- 50:27Yeah.
- 50:28>> Um meanwhile I'm also curious Mo uh how
- 50:33did you which model did you pick for
- 50:34this and why did you choose the specific
- 50:36model or do you have an insight on your
- 50:38usage and what you found works well for
- 50:40you?
- 50:41>> Yeah. Yeah. Exactly. So this one the the
- 50:45model that I have picked for this is uh
- 50:48Opus 4.8.
- 50:50Um Opus 4.8
- 50:53is decent model and the the best thing
- 50:56about Opus 4.8 to me is it somehow
- 51:00magically like knows a lot of data 3602.
- 51:03You know I played with this model a lot.
- 51:05The there is that reasoning traces in
- 51:08there. you know that that understands it
- 51:11does understand the terminology of data
- 51:13360 to some extent right and again uh
- 51:16you know your business might be
- 51:17different and that is the the ontology
- 51:20layer you know sometimes you'll have to
- 51:21come and write some uh ontology layer on
- 51:25top of um your um you know your work
- 51:28that you already have like a lot of you
- 51:29would have already built a lot of these
- 51:31things right if I'm not wrong you you'd
- 51:33have built data streams and data schemas
- 51:35and you you have your own business
- 51:38needs. So as long as you can express
- 51:40that in markdown files or
- 51:43some way to the agent and sort of ground
- 51:45that the agent will like have the
- 51:47context at that point and because it
- 51:50understands the technology of data 360
- 51:52to a lot of extent um it will be able to
- 51:55like sort of make or reason through the
- 51:57task really well with these MCP servers
- 52:00of course helping right. One question I
- 52:02have for you um Anush is this MCP server
- 52:07right? Um
- 52:08is it calling the APIs that our
- 52:11developers can also look at somewhere?
- 52:13Is it calling the same APIs?
- 52:15>> Yeah. Uh behind behind the scenes the
- 52:18MCP server does call a middleware that
- 52:20does call the same APIs that are exposed
- 52:22to you
- 52:23>> which is why the
- 52:24>> these API
- 52:26>> Yeah.
- 52:27>> Okay. So so the connect rest API right?
- 52:29So yeah, if you're a developer, again,
- 52:31we have the developer talks here and you
- 52:34can always go there and look at the
- 52:36connect APIs. Um the ones I'm sure it's
- 52:40actually um hitting right now is I think
- 52:43the the data stream uh APIs, right? Uh
- 52:47that is what it is hitting right now. uh
- 52:49but again you see the orchestration of
- 52:51these APIs what needs to happen when um
- 52:56I mean of course for repeatable use
- 52:58cases I would also like if your use case
- 53:00is too complex you know there's no harm
- 53:03in like um you know sort of
- 53:05deterministically writing some of these
- 53:07code or asking an agent to write it and
- 53:09then you run it via the agent all those
- 53:12kind of workflows are definitely
- 53:13possible but the key point here I want
- 53:16to make out is the agent like sort
- 53:19loves orchestrating these things. I mean
- 53:21it has with MCP like those three tools
- 53:24that this team has delivered right it
- 53:26knows now these APIs really well and it
- 53:29can reason through that and that you
- 53:31know if that makes sense Anush
- 53:33>> let's see if there are any questions
- 53:35that are coming I haven't got a chance
- 53:37to look at the the chat here
- 53:39>> yeah that's a good idea
- 53:41>> yeah let's look at um some chat here uh
- 53:47is there a way that we can rate limit
- 53:50the calls to these MCP servers. Um, so
- 53:54why is that? So, somebody is asking
- 53:56Himmanshu. Um, let's see. I'll I'll put
- 53:59the question here so we can all all see
- 54:01here. So, Himmanu is saying, is there a
- 54:04way we can rate limit the calls to MCP
- 54:06server APIs in case MCP connected to the
- 54:08autobots which are used by internal
- 54:10business user and not just coding agent?
- 54:13Thoughts Anush on this? I believe there
- 54:16is no way to explicitly rate limit the
- 54:18MCP server today
- 54:21>> on the Salesforce side
- 54:24>> but that we are building governance
- 54:26functionality into that as we go along
- 54:29but on the client side while you connect
- 54:31an MCP server to a specific agent you
- 54:34can always put limits on the client side
- 54:36to figure out hey do not make more than
- 54:38these number of calls right so there are
- 54:40client level guardrails those are not
- 54:42great yet I But we will be working on
- 54:45having better governance and control for
- 54:48Salesforce admins to have a better
- 54:50organization of how much of your MCP
- 54:53server do you want the users to use.
- 54:55>> Mhm. Mhm.
- 54:56>> And that also will come with more uh
- 54:59maybe usage metrics and traces and
- 55:01things like that. So we're still working
- 55:02on some of those governance features.
- 55:04>> Perfect. Perfect. Uh somebody is asking
- 55:07this question which is really
- 55:09interesting. How does this differ from
- 55:11agent force coworker?
- 55:13So that's a great question.
- 55:16The MCP server will work with anything
- 55:19that is an MCP client. Now whether that
- 55:22is Claude, Codeex, GitHub, Copilot,
- 55:25whether it's an MCP client, this will
- 55:27work with it, including agent FS wipes.
- 55:30>> Mhm.
- 55:31>> Agent F's coworker today is not yet an
- 55:34MCP client.
- 55:35>> I see.
- 55:36>> So today you will not be able to connect
- 55:38it, but that doesn't mean in the future
- 55:40you won't be able to. In the future,
- 55:41this could be part of agent folds
- 55:43coworker whether implicitly from our
- 55:46integration or explicitly from your
- 55:48integration.
- 55:49>> So, uh we are not there yet.
- 55:52>> Uh the other thing is like
- 55:54you can build your own agent. Don't have
- 55:57to go through any coding agent. If you
- 55:58have your own agent within PI, open
- 56:00code, any MCP client will work with the
- 56:03data 360 MCP server.
- 56:06>> Mhm. Mhm. Perfect. Perfect. Now we know
- 56:09these loads take some time especially
- 56:10for the first time because it has to
- 56:12bring in all the all the data. Let let
- 56:14it let it kind of run and uh we can um
- 56:17sort of keep moving. So so really you
- 56:19know for this requirement though my only
- 56:21thing will be build this data stream
- 56:23right and then sort of map that to the
- 56:27uh engagement object engagement um type
- 56:30of object category. The other
- 56:32interesting thing to me was when this
- 56:36like when when this data stream got
- 56:38created, it immediately picked up the
- 56:40the category as engagement which was
- 56:43interesting like it knew from the
- 56:45business requirement that you know the
- 56:47category will not be profiled and this
- 56:49is one of the fundamental decisions that
- 56:51we do in in data 360 because everything
- 56:54including how we we are charged etc
- 56:57depends on these kind of aspects like
- 56:59how how are you categorizing the data
- 57:02Right. Um so it did pick the right stuff
- 57:04and it's keep on moving. Of course this
- 57:06is the first it's a data load so it's
- 57:08going to take some time um behind the
- 57:10scenes running those bad jobs. Oh we
- 57:12have the data you see. Oh no the fields.
- 57:14Sorry is the field. Okay it's going to
- 57:16it's going to take some time u but you
- 57:19can see it's it's active
- 57:22and uh it's going to run the data stream
- 57:24is going to run and it created the data
- 57:26lake object. So as I was clicking
- 57:28through you know so you see there is a
- 57:29data lake object that got created. So
- 57:32next would be you know DMO creation and
- 57:35uh you know it itself puts like this I
- 57:38think this is a feature of the harness
- 57:39itself within cloud code. It can like
- 57:42you know put itself into the sleep mode.
- 57:44So it just sleeps and waits uh for the
- 57:47task completion. Um so that's that's
- 57:50perfect. It's it's working. It's it's
- 57:52way out. Um okay so the other thing that
- 57:56we wanted to um sort of discuss here
- 57:59with this um is
- 58:02this whole idea of skills right talk
- 58:05talk us more through that um Anush like
- 58:08the skills right I I see developers more
- 58:10often getting confused like what is
- 58:12skills what is MCP do we need MCP
- 58:16uh at all when we use skills um etc like
- 58:21let's let's get to the bottom of that.
- 58:24>> So, uh I think in the industry there is
- 58:27still some flux going on right now.
- 58:29>> Mhm.
- 58:30>> U the way we see it is I think there are
- 58:32two deferring standards right now
- 58:34coming. Uh you could say one is uh the
- 58:37skills and one is your agent plugins. Uh
- 58:41you might have seen this right? I think
- 58:43chat GPD or codec started with agent
- 58:45plugins. A plug-in can contain MCP and
- 58:48skills. And then on the other end you
- 58:50have MCPs which in the next spec will
- 58:52have skills themselves. So we are still
- 58:55observing that we will support whichever
- 58:58is the most convenient for our users.
- 59:01>> So that is the direction we're seeing
- 59:03things go.
- 59:04>> Okay.
- 59:04>> So today when we say skills
- 59:07skills are a way to provide just in time
- 59:11context
- 59:12>> to the agent of your choice.
- 59:14>> I see. I see.
- 59:15>> What do I mean by just in time context?
- 59:18That means whenever you have a
- 59:20successful workflow where you do not
- 59:22want the agent to freestyle reason
- 59:25through a problem
- 59:27>> but you want it to follow a specific
- 59:29workflow that you know works well.
- 59:32>> You you ask it to invoke a certain
- 59:34skill.
- 59:35>> Got it.
- 59:36>> Now for data 360 it could be something
- 59:40like we know best how to create certain
- 59:43segments.
- 59:45>> We know how to do transforms.
- 59:47>> Right? If you ask an agent to do
- 59:49transforms, an agent might reason
- 59:51through all the world knowledge it has.
- 59:54>> Mhm.
- 59:54>> That is relevant and irrelevant to data
- 59:56360.
- 59:57>> Got it.
- 59:58>> And then it will consume tokens. It will
- 1:00:01take a lot of turns. It might still get
- 1:00:04it right. But then you're spending a lot
- 1:00:06of tokens doing it.
- 1:00:07>> Right. Right.
- 1:00:08>> And it becomes slightly more
- 1:00:10nondeterministic.
- 1:00:12>> So
- 1:00:13>> yeah. So when the expert in a certain
- 1:00:18product now that could be the Salesforce
- 1:00:21product developers or engineers
- 1:00:23>> or the Salesforce implementers in the
- 1:00:26community when you know how best to
- 1:00:28implement a certain thing
- 1:00:30>> and you do not want the agent to do some
- 1:00:32freestyle reasoning
- 1:00:34codifying your workflow in the form of a
- 1:00:36skill and then invoking that will
- 1:00:38provide greater results.
- 1:00:40>> I see. Okay.
- 1:00:42One of the trend I've seen is also that
- 1:00:45if you pick a really good model with
- 1:00:47high reasoning, it can actually do most
- 1:00:50things without skills,
- 1:00:51>> right?
- 1:00:52>> But then that becomes expensive,
- 1:00:53consumes tokens. Now the question for me
- 1:00:56is how do you take like a clot sonnet or
- 1:00:59a haiku model that is really low cost
- 1:01:02and make it perform at the same level of
- 1:01:04opus.
- 1:01:05>> Right?
- 1:01:06>> So cost is one place where skills are
- 1:01:08helpful. Speed is another place where
- 1:01:10skills are helpful and having more
- 1:01:12deterministic execution is where skills
- 1:01:14are helpful.
- 1:01:15>> Got it. Got it. Yeah, that was
- 1:01:17enlightening. That was enlightening.
- 1:01:19Now, while you are there, you know, one
- 1:01:20of the things is you see it actually
- 1:01:22pulled the record. So, that job was
- 1:01:25success. So, it it has a refresh history
- 1:01:29now. So, that job is successful now. So,
- 1:01:31it's moving on to the next thing. So,
- 1:01:34now it says the this is all thing you
- 1:01:36know these are scheduled synchronously.
- 1:01:39it's able to infer the conclusion also
- 1:01:41right um so uh batch is still pending
- 1:01:46now at this time you know because it is
- 1:01:49like in the sleep mode you see I can see
- 1:01:51in the UI that it's all successful but
- 1:01:53because the agent sort of put everything
- 1:01:55in into the sleep mode um it's it's
- 1:01:58going to sleep over for like these these
- 1:02:00many time and then it's going to go back
- 1:02:02and query and uh uh sort of tell that
- 1:02:05okay this is this is successful let's
- 1:02:07let's move on. Right. Um what I'm going
- 1:02:10to do is of course stop it because we
- 1:02:14know it's successful. I'm going to say
- 1:02:16it's successful right now.
- 1:02:19Um
- 1:02:21and uh can you move ahead
- 1:02:24mapping creating DMOS and mapping it
- 1:02:28right? Um now again this is because I
- 1:02:32know the next steps so I'm able to tell
- 1:02:35but if you leave it it is automatically
- 1:02:37going to take that step you know because
- 1:02:39again it has the reasoning like this
- 1:02:42this claude knows that after this this
- 1:02:44is the step that needs to happen right
- 1:02:46um so again it's going to go and work
- 1:02:49this out it should now it should be very
- 1:02:52simple because now the next step it's
- 1:02:53going to do is you know of course map it
- 1:02:55right like if I if I do I will need to
- 1:02:58pull that DM DMO, but I I don't think I
- 1:03:00have the DMO here. Let's see.
- 1:03:04You see, it's going to every click takes
- 1:03:06some time, right, in data 360 because
- 1:03:08it's it has to search through all the
- 1:03:10objects. It's a big system. Um, so I
- 1:03:14don't think I have the diner review
- 1:03:16object yet.
- 1:03:19You see, I don't have the review object.
- 1:03:21Okay, we don't have the review object.
- 1:03:23So, the agent is going to create it. So,
- 1:03:25now it's calling. You see, it's it's
- 1:03:26called four times. uh let me confirm the
- 1:03:29review count then move on write up in
- 1:03:31order not to build a unified DMO it's to
- 1:03:33use this mapping on the content to
- 1:03:35autoprovision and standard and then map
- 1:03:36to the other sources now it's going to
- 1:03:39it's going to do so this is
- 1:03:42I think it learned from somewhere the
- 1:03:43reasoning here for harmonization
- 1:03:46um that it always needs to look at what
- 1:03:48is there so it's the the first reasoning
- 1:03:50it did is like yeah I need to be able to
- 1:03:52map using the standard mappings but I'm
- 1:03:55pretty sure it will try to find out and
- 1:03:57then it says no there's no way to map
- 1:03:59this review object to contact because
- 1:04:01it's not same it's going to reason like
- 1:04:04that um it's very different than how I
- 1:04:06think actually uh but you can see that
- 1:04:09it actually comes to the same conclusion
- 1:04:12maybe doing three or four more turns on
- 1:04:14it um but it's it's it's it's different
- 1:04:19so you can see it will now create the
- 1:04:21mappings it will take some time I'm not
- 1:04:23going to do it manually that the agent
- 1:04:24is going to create the mapping so once
- 1:04:26it's create the mapping I'll ask it to
- 1:04:28create the the identity resolution. Um
- 1:04:32again uh just for all of you right I
- 1:04:34will want to show really like what what
- 1:04:36would be my next step here or what is it
- 1:04:39that we're going to do here. So you can
- 1:04:40see the review you we have the reviews
- 1:04:42object, we have the contact stream and
- 1:04:44we have the app order object. Right? So
- 1:04:46we have all of these. So the next step
- 1:04:48is to actually use all of this and sort
- 1:04:51of map it to individual objects within
- 1:04:54um within Salesforce and sort of relate
- 1:04:57all of these um and then uh from there
- 1:05:01the idea is to create this uh identity
- 1:05:04resolution job. this one. Now I just
- 1:05:06need to wait uh for um the DMOS to be
- 1:05:10created here. So standard mapping
- 1:05:12succeeded. Now I need to map the app
- 1:05:14orders DLO. So now it's mapping. So you
- 1:05:17see the mappings is happening now. So
- 1:05:19once it maps my next step would be again
- 1:05:21as I said create the so you see the SSO
- 1:05:24individual is populated. Now let's get
- 1:05:26the app order dello and yeah next my
- 1:05:29next intent will be to create that
- 1:05:31identity resolution job and it's going
- 1:05:33to go go create it. Now I know a lot of
- 1:05:35you would have done identity resolution
- 1:05:37and you know the pain it's like you have
- 1:05:39to click at least 10 to 12 or maybe more
- 1:05:43clicks in here to actually do certain
- 1:05:46things in data 360. And I'm so glad that
- 1:05:49this MCP server is here and it's able to
- 1:05:52like you know sort of automate all of
- 1:05:54this and uh instead of me sitting
- 1:05:56through and clicking um the system can
- 1:06:00like reason through uh let's see if
- 1:06:02there are any any questions that are
- 1:06:04coming
- 1:06:06uh
- 1:06:08using headless 360 how to pass data
- 1:06:11effectively react as a front- end
- 1:06:13framework.
- 1:06:15uh very simple actually um this is
- 1:06:17something I've I've myself done it it's
- 1:06:20everything in data 360 can be queriable
- 1:06:23through Apex so Apex recently and let me
- 1:06:26show you guys this one um Apex connect
- 1:06:29query
- 1:06:31um so Apex um uh connect query for data
- 1:06:36360 Apex actually launched uh a new
- 1:06:41modern
- 1:06:42um query class actually that you can use
- 1:06:45it to just query. Yeah, it's called SFQL
- 1:06:49query name space. This is a new name
- 1:06:52space actually. Um I've used it often.
- 1:06:55So once you know your tables, you're
- 1:06:57just writing SQL statements within Apex
- 1:07:00basically very simple. Try it out and
- 1:07:02then you know you can build React apps
- 1:07:04or whatever on Salesforce and just use
- 1:07:06these to query u from data 360. We we
- 1:07:10made it much more easier now to just
- 1:07:12natively sort of use it. Uh let's see if
- 1:07:15there are any any other questions here.
- 1:07:17Um this is one. How is your diner data
- 1:07:21stream able to function when um fields
- 1:07:25have not been mapped? You might be in
- 1:07:27the process of configuring it. Um yeah,
- 1:07:30so the diner data stream. So first you
- 1:07:33create the data stream and of course
- 1:07:34it's not mapped but um you know yeah we
- 1:07:37need the mapping before we do the
- 1:07:39identity resolution that's why I'm
- 1:07:40waiting for it. Let's see if it is
- 1:07:42actually done. Uh let's see where the
- 1:07:45agent is.
- 1:07:47Um yeah agent is working through it. You
- 1:07:49can see
- 1:07:51uh
- 1:07:53most of them before creating. So it is
- 1:07:56so the other thing that Anushi saw this
- 1:07:59is one of the wonderful things is it
- 1:08:00actually goes back and looks what is
- 1:08:02there in the org.
- 1:08:04>> Yeah.
- 1:08:04>> Um
- 1:08:05>> that itself was previously taking me a
- 1:08:08lot of time right like whenever I need
- 1:08:09to go do context switch between what I'm
- 1:08:12doing and go back to the org and go back
- 1:08:14to my documentation it's saving me a lot
- 1:08:16of that time recently.
- 1:08:18>> Yeah and I think why it is doing is
- 1:08:20because I have this skill called reuse
- 1:08:22before reinvent. So this is one of the
- 1:08:25skills I wrought it in my harness and my
- 1:08:28plan is very simple is like anytime the
- 1:08:30agent builds something I wanted to go
- 1:08:33and see if there is anything it can
- 1:08:35reuse. It can backfire also sometimes
- 1:08:38like it will try to it will try to use
- 1:08:42um things that it shouldn't um but I
- 1:08:46have the skills. So so again uh this is
- 1:08:48very interesting thing right with the
- 1:08:49the skills concept here. Yeah,
- 1:08:52>> like yeah, it all depends on you like
- 1:08:54the hardness. I mean there is a thing
- 1:08:57like there will be a a baseline hardness
- 1:09:00that somebody can provide but then how
- 1:09:02you work um if you want to like like
- 1:09:07keep that non-sharable then you can do
- 1:09:10that as well like you can create your
- 1:09:11own skills and then use it within your
- 1:09:14harness. So that's that's very powerful
- 1:09:17um capability. So yeah, it's calling
- 1:09:20it's calling it's it's doing some some
- 1:09:22stuff here. Let's see.
- 1:09:25Yeah, it's it's doing uh it's basically
- 1:09:27going to create that object and then I
- 1:09:30think yeah the identity resolution I
- 1:09:32think it will it will create I I need to
- 1:09:35ask it to create identity res currently
- 1:09:37it is actually listing. So it's asking
- 1:09:40me see the standard DMOS so it kind of
- 1:09:43asking me the standard DMOS and the
- 1:09:44contact order mappings already exist.
- 1:09:47What should I build next? So create that
- 1:09:50DL. Yeah. Yeah. Skip further mapping and
- 1:09:54build the IR. Of course, we can't build
- 1:09:56the IR without we know that we have to
- 1:09:58map the the DLS onto the individual with
- 1:10:01the party and the rating. Uh this is the
- 1:10:04missing DMO. Yeah. So I'm going to go
- 1:10:06with that option. This is that loop.
- 1:10:09This is what I call it loop. If you are
- 1:10:11upfront like
- 1:10:14doing all the decisioning,
- 1:10:16you will never get in caught into these
- 1:10:18kind of loops, right? We can get rid of
- 1:10:20these kind of loops where it asks your
- 1:10:21feedback. But sometimes you can design
- 1:10:23loops where you know you are also part
- 1:10:26of the loop. So yeah, so now now it's
- 1:10:29going to build that uh DMO. I think the
- 1:10:32next step is that and if I leave my
- 1:10:34agent, it will next build the identity,
- 1:10:36resolution, segmentation, whatnot. In
- 1:10:38fact, you know, I had a spec that I I
- 1:10:42ran through this uh let me show you that
- 1:10:44spec. It's called Diner Winback and uh
- 1:10:48just because you know this whole thing
- 1:10:50can take like hours of long running
- 1:10:52task. We we are short of time here. But
- 1:10:56this is the spec I wanted to show that I
- 1:10:58actually ran in this arc. So I indicated
- 1:11:02all the source system. I exactly told
- 1:11:04what I need to do. Um I told it how to
- 1:11:07segment it. Um how to unify it. Uh and
- 1:11:11then my scope of the work and the test
- 1:11:12boundaries and my acceptance criterias
- 1:11:15and my assumptions and uh you know some
- 1:11:18things like you know I wanted to like
- 1:11:21keep a a companion doc of how to build
- 1:11:24like my own version of it. I also wanted
- 1:11:27it to inventory what is being built out
- 1:11:29so I can review it. Now this is another
- 1:11:31thing. If you are using a longunning
- 1:11:32agent, it will it can go and build like
- 1:11:35tens of components and then you will
- 1:11:37have to reason out when you are judging
- 1:11:39it. So it is always a better idea to
- 1:11:41inventory it um so that you can go and
- 1:11:44verify stuff because look verification
- 1:11:46is something that agent cannot do like
- 1:11:49it it can do in some way but it still
- 1:11:51needs like you know your your judgment
- 1:11:53here and that is very critical now.
- 1:11:56Uh I I was curious like do you want to
- 1:11:58take a minute to explain what is your
- 1:12:01process to create this spec and what's
- 1:12:03your process to evaluate the what the
- 1:12:05agent builds because sometimes we do
- 1:12:08feel when building is so easy it can
- 1:12:10feel slightly lazy to go and uh verify
- 1:12:13the work. I do feel that sometimes and
- 1:12:15and manual verification does not scale
- 1:12:18at the rate in which agents can build
- 1:12:20things right. So what's your process to
- 1:12:22evaluate whether the right thing has
- 1:12:24been done or not?
- 1:12:25>> Yeah, that's a good question. So here's
- 1:12:28the thing. I I I still think for
- 1:12:30enterprise applications, right? Um
- 1:12:33verification is definitely
- 1:12:37um needs to happen at human level
- 1:12:40especially for enterprise because
- 1:12:41there's lot of things at stake. Now this
- 1:12:43is also a judgment to begin with like if
- 1:12:46you know that this thing hasn't that it
- 1:12:49will not have that many impact then you
- 1:12:51can move really faster right like
- 1:12:53sometimes I'm not even reviewing the
- 1:12:55code I'm like yeah okay whatever the
- 1:12:56agent did let's just test it out like
- 1:12:58smoke test it's working fine but
- 1:13:01sometimes if it's very critical right it
- 1:13:05depends on the degree of criticality to
- 1:13:07answer in short right if it's very
- 1:13:08critical I I generally ask agent to like
- 1:13:12do some queries and you know automate
- 1:13:15that way like you know query it through
- 1:13:17this data lake objects and if I have a
- 1:13:20smoke test data given I will sort of
- 1:13:23manually do or at least manually keep an
- 1:13:27inventory that okay if this thing
- 1:13:29happens this is
- 1:13:31>> you know this is what I'm expecting
- 1:13:32right and then I ask agent to go and run
- 1:13:34that loop for me
- 1:13:36>> so it will go and run that loop right um
- 1:13:38so I can trust what the agent did is
- 1:13:41exactly correct or Not.
- 1:13:43>> Yeah.
- 1:13:43>> Uh but somebody like it's still somebody
- 1:13:47has to keep the system in their head
- 1:13:51like entire head because see it's like
- 1:13:53if you let agent sort of take over that
- 1:13:55thing from you. It will go and build lot
- 1:13:58of things that you have no idea and
- 1:14:00that's the worst thing like whatever
- 1:14:02agent build and if you don't have an
- 1:14:04idea about it that is the worst problem
- 1:14:06to have right. So that's that's the
- 1:14:09shift that is happening like because
- 1:14:11this implementation is so these agents
- 1:14:13can implement stuff very faster right
- 1:14:16>> um the the other part of the work
- 1:14:18suddenly becomes so much more important
- 1:14:20right
- 1:14:21>> yes
- 1:14:21>> um yeah so so that's the thing um that I
- 1:14:24would say
- 1:14:26>> and uh yeah I think the agent is still
- 1:14:28kind of working through it so look what
- 1:14:31it did um so here's the remaining new
- 1:14:34net mapping let me get the the field
- 1:14:36it's trying to All um for the run I
- 1:14:40expect a possibility category I'll
- 1:14:41execute it cannot map engagement you see
- 1:14:45it tried to map to the wrong thing and
- 1:14:48it suddenly realized it is not the right
- 1:14:50thing to do now remember like you know
- 1:14:52at this point that is the human signal
- 1:14:54is so much more important because for
- 1:14:56the next iteration I can put this in the
- 1:14:58skill in the skill file like whenever
- 1:15:01you are mapping these type of objects go
- 1:15:04map to this go map to that so now you
- 1:15:07know, instead of like your point, right?
- 1:15:09It will go back and sort of figure it
- 1:15:12out somehow.
- 1:15:14These agents are goal- driven. You have
- 1:15:16given it a goal. They're going to figure
- 1:15:18it out one way or the other. They're
- 1:15:20going to reason, keep reasoning, you
- 1:15:22know, like as you said, you know, it
- 1:15:23might have wasted ton of tokens here
- 1:15:25doing some unnecessary work. But it is
- 1:15:27coming to the same conclusion here. See,
- 1:15:29it was like contact point email mapping
- 1:15:31was created. It did create. It did
- 1:15:33create some mappings here. It's moving
- 1:15:35on but uh my point is same like see it
- 1:15:39created the mappings now you see it went
- 1:15:42and you know figured out that it needs
- 1:15:44to map to the contact point email. So we
- 1:15:47have a common email now right now it's
- 1:15:50going to create another object
- 1:15:52>> because it needs that review object and
- 1:15:54it's going to map the other fields to
- 1:15:56that and then once it's ready we'll go
- 1:15:58create the identity resolution rule. So
- 1:16:00as you said like you know sometimes the
- 1:16:02recipe is in your head and you want to
- 1:16:04just communicate to the agent. Sometimes
- 1:16:06you just let the agent lose, let it
- 1:16:08figure it out, you know. And both of
- 1:16:09these worlds have their own, you know,
- 1:16:12um, advantages and their own drawbacks
- 1:16:15as you said, like drawbacks and pros.
- 1:16:16And I think that is where the human
- 1:16:18judgment suddenly becomes like so
- 1:16:20important, right?
- 1:16:22Uh, yeah. So, it's going to work out.
- 1:16:24I'm going to leave my laptop. Um, you
- 1:16:26know, and, uh, as you can see, like
- 1:16:29these things can take forever, like, you
- 1:16:32know, uh, hour, couple of hours. One of
- 1:16:34the settings I did in my laptop is not
- 1:16:36to sleep. You know, this is the first
- 1:16:38change that happened after these agents
- 1:16:40and I saw how they work, right? So they
- 1:16:43can work and I think that is where the
- 1:16:44cloud loads are also going to become
- 1:16:46more critical like you can push this
- 1:16:48workload to the cloud and let all these
- 1:16:51things you know sort of happen in the
- 1:16:52cloud. I can see that u thing happening
- 1:16:55as well. U in fact not happening it's
- 1:16:57it's already happening. Uh with that
- 1:16:59actually I want to move back to the
- 1:17:01slides actually. I mean this is going to
- 1:17:03happen. Um I did run as I said with that
- 1:17:06spec and it did build end to end
- 1:17:08everything which was surprising. Um
- 1:17:11anyway so with that right uh I think we
- 1:17:13are running short of the time. I don't
- 1:17:15want to take much of your time as well
- 1:17:17Anush but for all of you right joining
- 1:17:19today a a big thank you right thank you
- 1:17:21for joining us and I hope you learned
- 1:17:23and saw this MCP. Now one of the other
- 1:17:26things I want is feedback. Definitely
- 1:17:28the feedback is there. Um, take a
- 1:17:31screenshot of this one. I'm going to
- 1:17:32keep it for a minute here. Um, this is
- 1:17:35all the resources that we have. I'll
- 1:17:38also try to do a trailblazer community
- 1:17:40post sharing all these things. Um, here
- 1:17:43we have blog post where we introduce
- 1:17:45this DX360 MCP server. Um, there is
- 1:17:49another code live sessions and um, uh,
- 1:17:53that is not the code live session. And I
- 1:17:55think this session this is on demand
- 1:17:57video that we have to learn about code
- 1:17:59extensions. I think they are also great.
- 1:18:01You can ask agent to write code to do
- 1:18:03certain aspects like rack pipelines or
- 1:18:06if you're building um transformations.
- 1:18:09Um and then um you know if you want to
- 1:18:12learn about cloud code, how to build um
- 1:18:15agent skills with cloud code, there is a
- 1:18:17link to there where we talk about that
- 1:18:20aspect of how to use cloud code to sort
- 1:18:22of build your own own skills. So all of
- 1:18:25these resources are there and then yeah
- 1:18:27of course um you know the other other
- 1:18:29aspect here I want you to remind
- 1:18:32uh the datablazer community right um
- 1:18:36please post all your questions Anushia
- 1:18:38is there as well
- 1:18:39>> yeah I'll be there to answer if you if
- 1:18:41you guys have any questions from this
- 1:18:43session you want some follow-ups you
- 1:18:45want resources that you have not gotten
- 1:18:47yet me and Moit as well as our
- 1:18:50engineering team will be in the data
- 1:18:52blazer community and we'll be able to
- 1:18:54help you out. You can start a post about
- 1:18:56today's session, ask any questions and
- 1:18:59we'll do our best to make you
- 1:19:00successful.
- 1:19:02>> Awesome. Awesome. Yeah, with that I
- 1:19:04think um you know we are end of this and
- 1:19:07again uh you know for all of you um I I
- 1:19:10hope this was educational and uh I hope
- 1:19:14you're going to play with the MCP.
- 1:19:16Please let us know if there is anything
- 1:19:18else we can help. Any parting thoughts
- 1:19:20here uh from you Anush? Uh no this has
- 1:19:22been great moit I think uh there's
- 1:19:24nothing better to use or learn about the
- 1:19:26MCP server than a hands-on session right
- 1:19:29this is not something you want to hear
- 1:19:31people just talking about it but
- 1:19:32actually showing how it works and I
- 1:19:35think you've done a great job in
- 1:19:37educating all of us in what your
- 1:19:39workflow was before how it's changed now
- 1:19:42and the way things are moving so I'm
- 1:19:44really glad thank you for everyone
- 1:19:45joining here and thank you for mo as
- 1:19:48well for conducting this session for us
- 1:19:50>> yeah absolutely Absolutely. Absolutely.
- 1:19:52And uh yeah um with with that right um
- 1:19:56again a lot of you are asking in the
- 1:19:58chat about how can we share some of
- 1:20:00these um skills and open-source work
- 1:20:03that as open source work. Um we'll
- 1:20:07definitely make all the possible
- 1:20:08attempts here to give you the
- 1:20:09documentation and the skills. Um and uh
- 1:20:13also the MCP server though is live you
- 1:20:15know make use of it connected to your
- 1:20:17coding agent if you're working in data
- 1:20:19360 space. your developer edition all
- 1:20:22orc also has all of these access. So if
- 1:20:24you're just learning please make use of
- 1:20:26it. Um and yeah um you know um we will
- 1:20:31make sure that we will give you all the
- 1:20:32all the resources. Uh and always please
- 1:20:36feel free to reach out to us and with
- 1:20:38that thank you. Thank you everyone. Bye.
- 1:20:43[music]
About this transcript
This page contains the full transcript of Agentforce NOW codeLive: Build Agentic Data 360 Experiences Headlessly by Salesforce Developers, generated from the public captions YouTube serves with the video. The transcript has 11,946 words across 1,747 segments, with the original timestamps preserved so you can click any line to jump to that moment in the embedded player.
What you can do with it
Use the transcript to take notes, quote the speaker, build a study guide, generate a summary with ChatGPT or Claude via the YouTube Summary tool, or export it as a timed subtitle file with YouTube to SRT. You can also re-open it in the transcriber to translate the transcript into 100+ languages.
Free YouTube transcript tool
YouTube2Text is a free YouTube transcript generator — no signup, no daily limit. Paste any YouTube link and get the full transcript instantly, with timestamps, click-to-jump, translation to 100+ languages, AI prompts for ChatGPT, Claude, and Gemini, and exports to TXT, SRT, VTT, or Markdown.