 Yeah, we are live. Hello everyone. I am Sanjay Gupta and I have Abhishek with me. Welcome Abhishek on the platform. So this is our first live session of this year and as you can see in the slide, so this is basically Season 2 of Omni Studio Bootcamp. So last year we did a bootcamp on Salesforce Omni Studio where Abhishek explained you his expertise on Omni Studio in terms of concepts and he tried to explain a few concepts like with you. So the idea with this bootcamp Season 2 is lots of people requested like can we have some scenarios and project implementation related sessions separately. So for that purpose, I again connected with Abhishek and now we are here with you. So like we will be explaining you each and every scenario sequentially, whatever concept like you already learned through the Season 1 bootcamp, right? And we will be having a few end-to-end projects, right? Where we will be implementing data rector, integration procedures, Omni scripts, flex cards together, right? So this way like you can master your Omni Studio skill set, right? So I hope this Season 2, all the episodes will be brushing up your Omni Studio skills so that you can thrive your career in industry clouds. Okay, so this is the idea and now moving ahead. So like I always start any bootcamp with this slide only. So in this slide, you can see the beautiful picture of Habamel and which represents our base location, right? So me and Abhishek both are from Jaipur and in Jaipur we have lots of companies or a huge community of sales force, right? So if you want to share your location, so you can just put a comment in the chat so that I can know like from which location you are. So meanwhile you are sharing your location so we will be moving on to the next slide. So I just want to give you my update. Like so last year I also learned Omni Studio and I am fortunate enough like I discussed all the concepts with Abhishek only, right? He guided me what all Omni Studio concepts are there and I was able to clear Omni Studio developer certification. So as we already discussed in previous bootcamp, like if you go through all the videos you will be able to crack both the certification either developer or consultant, right? So I gone through with that content only I just prepared myself. So the same way you can also prepare yourself and you will also be having that particular certification because this skill is demanding in the industry right now. So this is update from my side what I did last year and I also shared my knowledge with you. Now I just pass it on to Abhishek. So Abhishek also have some updates for you. He also did a couple of certifications. So over to you Abhishek. Thank you Sanjay. So hi everyone. Myself Abhishek and I am working as a Salesforce and Velocity developer in this industry. Salesforce community since five plus years now and from our last bootcamp to this bootcamp I have also obtained some certifications. And one of them is industry CPQ developer. So this is also a Velocity certification which was known as Velocity CPQ developer but now after the acquisition with Salesforce it's known as industry CPQ developer. So that's the new update from my side on the certifications. So yeah, that's also there. Okay. Thank you Abhishek for sharing the update. So I think we can jump on to the next slide. So as in previous bootcamp also I shared this slide with you. So in this slide you can see a QR code. So this is basically having a telegram group right. So where lots of folks are communicating with each other and they are helping each other to learn Salesforce skills. So if you want to become part of that community you can scan this and you can also join the telegram group. Okay and next like all the social media handles of Sanjay Gupta Tech School. If you follow them you will receive all the timely notification and this year also I have planned series of bootcamp and this is the first bootcamp I started right and in next upcoming bootcamp sequence will be like AI. So we did a couple of sessions on AI bootcamp but due to some issues we stopped that bootcamp and I think at the end of this month I will be restarting that bootcamp. And other than that we will be having LWC sales cloud service cloud experience cloud and other skillset as well. So all those bootcamps will be starting soon in this year. Okay so with this note I think now we can start the implementation. So this is also important like if you can share your feedbacks reviews if you are following all the sessions of this season to omni studio bootcamp. Okay so I think without wasting much time we can just focus on. So this is the beauty of this channel like we don't talk much about these things like introduction and all. So this is the first session that's why we are discussing in detail. Now let's jump on to the specific topic for which you are here. So Abhishek will be implementing each and every scenario one by one. So here in this video you will be having the solution implementation only. So if you don't know about the topic so you need to follow the other videos right and if you want to see other videos those are part of season one. So the session tracker is available in the description of this video from there you can find other session videos as well. Okay so I think now we can start Abhishek. Yeah sure. So from our previous bootcamp what we have learned about omni studio how what are the components we have into the omni studio. Omni studio tool and I mean like we have four meter four tools in omni studio data rector integration procedures flex cards and omni scripts. So in this bootcamp we will not not discuss about the theoretical part more but we will be just implementing whatever scenarios we have listed for you guys. So I will I will jump jump on to the org directly. So first of all we will be implementing the first scenario where we are saying that fetch ID account name and annual revenue from account records where activities equals to us. So from the from this scenario we can say that that it it's an area of data rector right. So again we're gonna we're gonna explain all the scenarios in the sequence in the sequence that we have learned all the topics in the season one. First will be data rector then we will implement IPs then we'll implement omni scripts then we'll implement the flex cards. So let me jump on to the org. And guys if you have omni studio org so that is well enough if you don't have so the omni studio org creation link is also available in the session tracker and session tracker link is available in the description of this video. We have to fetch ID account name and annual revenue of the account where active is equals to us. So first of all we're gonna create a data rector which will which will be of type extract. And if we according to naming convention convention we name it as DRE underscore fetch account information and this scenario can be achieved with the help of turbo extract or extract. So we can use both. So first of all I'm going to explain the turbo extract so I'm going to select the turbo extract and click on see. So we're gonna select the object which are from which object you want to fetch the records then extract output path it's nothing but it's a variable name where you will receive all your data output into the into this variable. And here we are seeing active is equals to yes right and which fields we want to fetch it was ID account name and the annual revenue. So first of all ID is pre-selected the annual revenue and the accounting account name. And if I go to preview and click execute it will fetch all the account information where the account where the activity equals to us. And just for verifying it I'm going to select the active field as well so that we can see that also in the result. Right. Here we go. Yeah. It is easy to identify whether we are fetching the correct information or not. Exactly. So that's the first example. I hope it was it was easy and it is well understood by everyone. And guys on right side you can see queries also created so that way also you can verify it like how data is being queried from data. Yeah. And one of the things that we should keep in mind whenever we are implementing any sort of data rector. Try to remove all the hard coded values where you are using all the where clause or the filter criteria and all these things. So right now I have kept it as hard coded value because in the upcoming example we will be using the dynamic value for this. So but yeah we'll not this is not a good practice to have it hard coded values into the filter criteria. Right. Moving on to the next one on the next one we have that's ID account name and well revenue from account where active is equals to us. And annual revenue is greater than equal to 10 one like. Okay. So at this time we're going to use a dynamic value for the active active parameter as well as for the annual revenue parameter. What we're going to do I think for that one. Yeah we have yeah yeah in fourth one we need to pass the input parameters so I think there we can see that so this is basically based on logical conditions like how if we have to condition so. So in this example we are saying we will be having two filter criteria. First is active is equals to us and the second is annual revenue should be greater than equal to 10,000 sorry one leg. So for that one we will first we have to click on this drop down icon from from the filter criteria and click on the end button. And from here you can select the other field with field. And from here you can select the operator and then you can type in the value for it. So as you as you guys can see that for the active one I have mentioned the single inverted comma but for the annual revenue haven't used that single inverted comma. The simple answer is this is a string value and this is a number value. So we don't need symbol inverted comma for the number values. And now if I go to preview and click on execute it says no value data is written like that. Yeah I think this is something else not this. So as you can see there is no so basically what what was happening when we are using this operator where we are saying it should be greater than one leg. So it's kind of it's kind of returning a error right. So for for debugging it what I did I just said annual revenue not equals to a blank value. Okay. And if we go to preview and click execute. Now there is no account where annual revenue is not equals to null. Right. So basically what we're going to do here. Maybe if you can go to the org and check the account records. Yeah. So what we can do is we can go to the accounts. Click on this one of the account and let's just search for it. Yeah I wish you what we can do just go for all list view and then we can add that field in the list view and well revenue so that we can see we need to select the all list view from. Yeah. It will be easy then. Yeah and well revenue. I think there is no annual there is no account record where annual revenue is greater than 100 K. That's why it is happening. Oh yeah. We need to shift it. Yeah. Yeah. Okay. We have some data. So maybe if we put it in single quotes but I don't think it is a number so we cannot put it in single quotes. Yeah. I mean we can try that but I don't think so it will work like that. It worked like that but no data is still written. Okay. Okay. The combination actually the combination active yes and greater than 100 K. So I think we can we can put that field as well in the list view. So that we can have a comparison. Sure. Yeah. So active field also we can put. So guys I think you are also understanding. So this is the idea behind doing these sessions because there are times when you are implementing some scenarios so you get stuck and you need to do debugging. So these are the best practices through which you can do the debugging. So here you can see I think we can sort on active just click on active. So it will be sorted descending. So yes will be on top. So on yes like we don't have any annual revenue populated. So that that's why I think data is not coming up. So what I'm going to do is I'm going to just put value on one of the account is on top. Yeah. Go to the data actor and click execute. It will give me the account list for that. Yeah. So I think now it is working. So guys what happened we are trying to fetch those records where active is yes and annual revenue is greater than 100 K. And with this combination there was no record available. So that's why it is not returning any value. So if you encounter this kind of scenario. So you need to make sure you have proper data set available. And I think we need to use single quotes. Yeah. It might be possible that this is a in the new version of that only studio. They are saying that number fields also should be fetched with the help of single inverted calls. Can we try removing and then if it is I think then I think it will get filled execute. Yeah. So that's right. So we need to use single quotes with the currency field as well. So basically that's that's the as Sanjay you have mentioned that's the main agenda. So when we were fetching the data without the single quotes then there was some error. So we tried debugging it with looking at the data and all these things still when I mean like when we added the single quotes still we were not able to pass the data because we didn't have the data into the org. So that is how we do all the debugging. Also sometimes what happens for example let's say for example let's say I'm not able to fetch any single data with this query. Okay. So for what I'll do is I'm going to just remove that value from here and I'm going to click on this execute again. Right. So sometimes we are not receiving any data but there is no error also into the data actor. So what we can simply do is you just copy this query and put it into the developer console query editor and try to see that if you are able to receive the data from there or not. If you are able to receive data from there then there is some problem with your data actor. But if you are not able to receive the data from the query editor as well then you don't have that data into or that's the main reason. Right. So we can debug it in two ways like from UI through list views we can verify or through developer console also we can check whether data is available or not. Right. I think that is also completed. Let's move on to the next example where we are seeing fetch account records where active is equals to yes and owner is logged in user. Okay. And in this question there is one thing mentioned over here which says use this velocity keyword dollar dot velocity user ID. So what this will do is so for this one we're going to create a new data rector which which will be of type extract. I'm not going to use it into the data extract as well but just for the demo purpose I'm just I'm just going to create a new data of the extract type. Right. And Abhishek in real time scenario is like we create separate data rector for separate functionality. Right. Yeah. So just to recall turbo extract and extract. So I think turbo extract is for one object and extract is for multiple objects. Yeah. So if I redefine it so turbo extract is for if you want to fetch the data from a single objects and direct parent to that object. Okay. If you want to fetch the data from contact then you can the direct parent of the contact is account then in that case we can use the turbo extract. But if you want to fetch the data from two objects which are not related to each other then we can use the data extract. Okay. So this one. And again, give the output JSON path. We are active is equals to yes. And the other. Oh, sorry. My bad. I clicked on the add extract star. Add an end condition. And here we will say owner ID is equals to. Because like dollar velocity dot user ID. So you have to remember this syntax as is it would be dollar velocity dot you will be capital and then I will be capital. So that is how it will pick the logged in user ID. So basically this is a this is a keyword that will only studio provides or velocity provides by which you get you will get the logged in user user ID. The same way we get the user ID of logged in user into the apex with the help of I think user info dot login. Right. So that's the thing. And for the data extract. We get two more tabs. First is formulas and second is output. Formalize for if you want to process your data or add some some some sort of conditions and output output is to me, whatever what feels you want to get into your output result. So, right now what we're going to do is we're going to get active. Second we'll get the, let's say, that's a name for that account. And if I go to preview and click execute. So I'm getting the account information with the 26 years. 26 years of records by five records my bad. So if I go to again, if I go to accounts, unless we. Yeah, so we can see on top five records are there where active is yes and like you are the only as you are the logged in user. Exactly. Oh, this is how we can verify it. Also, from the query you can see it automatically picked up the logged in user ID. Right. Right. Yeah, I think in some scenarios, it will be useful like how to get the logged in user ID. So that's why we picked this scenario. Correct. So that's the thing and I mean, we have a few more options available into the data extract or turbo extract, like you can set the limit offset order by and if you want to delete this filter that also you can do it. So that's that's some features of the data actor and the major difference between data turbo and data actor is in the data actor turbo. You don't have to create the mappings by own your own. You just have to select the fees. But into the exact you have to create the mappings as well. Because you can fetch two objects which are not related to each other. So that's why we have to create the mappings manually. Right. And if you want to learn these things details, so those are already explained in the previous year videos. So that playlist is available. Those session links are available in the session tracker. So just understand those concepts so that you can understand these scenarios very well. Okay. I think I'll pick the last one now. Yeah. So for the last one, what we have to do is fetch account records where activities and rating hard value of rating will be set up as an input parameter and use that filter into the extract data. So in this question, what we are trying to say that whatever feels that we are hard coding over here. We don't need we we are not supposed to hard code because this is not a good practice. So how are we going to do that? So for that one, we have to create some variables. So, for example, let's say I'm going to name it that as active parent. And I'm going to remove this owner ID one, because I don't need this one in this example. And I'm going to add one more. We are we are saying rating is equals to hot. And that should also come from the input parameter. So now, if I go to preview and click execute, I'm going to I'm not going to get receive receive any sort of output. The reason is data rector will think that these two are the variables which will get passed either from your ID. So these these parameters will get passed from whatever script tool that you are using like IP, only script or flex card. But right now, we are not having that example. So again, only studio has provided to test this thing as well. So what we can do is in the previous action, we can pass this past these parameters from the previous action. So what we can do is active parent is yes. And rating parent is equals to hot. If I click on execute, I'm just receiving only one result because with this combination, there is only one recording to the org. So that's the reason. So now what will happen to two major advantages of this thing by using the input parameters. One is you are not using any hard coded values. So let's say if you want to use this data rector into your two IP from the one IP you want to pass rating, active parameter active parameter as yes. And from another IP you want to pass active parameter as no. So you can use this same data record into the both the IPs because you can pass the active parameter value yes and no from your IP. So it's not hard coded into your data record. And according to best practices. This is this is also an optimized way. I mean, wherever you go and develop anything, we should always always follow the best practices for optimized code and all these things. So yeah, that's the main benefit. Yep. So I think this is very clear and it was very simple. One request like if you are following all the sessions of this season to if you want to practice Omni Studio and want to become expert in Omni Studio. So whatever examples Abhishek is explaining to you and implementing. So after after happening the session, you can also have those use cases scenarios and try to implement those scenarios in your org right and anytime wherever you get stuck. So you can just rewatch this recording. So it will be available on YouTube forever anytime if you want to revise the scenarios. So you can just watch it and you can complete your assignments. Okay, so this is what we have planned for today. So this week we will be having one more session. So I will notify you and I really want to appreciate efforts of Abhishek like selflessly. He is explaining all his expertise so that community people can learn Omni Studio and can thrive in their job like if they are developers so they can become velocity developer or they can work on industry specific clouds as well. Okay, and if you want to share some reviews or feedback about the bootcamp, so please do that in the comment section. Like when I receive a good comment or like any extraordinary comment. So I take a screenshot and I share it with Abhishek as well so so that he can feel motivated because if someone is get benefited through his efforts so it really means a lot. So thank you for that Abhishek. Okay, so thank you guys. So as I told you, lots of other bootcamps will be there. So keep on following Sanjay Gupta Tech School. So whatever I can do for you, I am trying to do myself and trying to connect with industry experts as well so that you can get lots of knowledge and information. Thank you. See you in the next session. I will share you the link soon. Thank you everyone.