How to Develop Custom Salesforce SOAP API Endpoint – II

In this article, we will look for Service Operations return record by Indexers (Unique Ids) as part of Response.

This article is in continuation of my earlier one How to Develop Custom Salesforce SOAP API Endpoint – I

In this article, we will look for the Service Operations which return records by Indexers (Unique Ids) as part of Response.

Operation 2: Returns a Single Record By Indexer

As we can see the “getInvoicesByAmount” is bound to return a collection of all the matching records meeting the filter criteria, now we add another method to the Service Class which always returns a single record based on the filter criteria.

Such operations are always helpful to handle scenarios like “Get Something By ID, Get Something By Key”, to pinpoint the specific set of information.

For example in the upcoming demo, we will develop an operation that will be able to return the Invoice Information based on Invoice Number. In real-life scenarios, it is a very common implementation that every endpoint should implement one way or the other.

Lets’ go back to the “InvoiceService” class in Visual Studio Code-

Step-23: Add another operation “getInvoiceByNumber” which takes an input parameter “invoiceNumber” representing a unique identifier for Invoices

Step-24: We have a variable of type “Invoice__c” that will hold the invoice information returned by the filtered SOQL query. Consumer Applications will pass on this filter value while invoking this endpoint

Step-25: This information will be returned to the consumer applications as part of the response

That is it for the code. Now deploy the updated version of the service as we did in Step-8

Invoke Custom SOAP API Endpoint using Postman

Launch Postman and start with new API Request.

The Request Object

Step-26: Since we have a new operation in place so we need to update the SOAP Envelope to point to the right operation of choice. Here is the new SOAP envelope for the new operation:

“<getInvoicesByNumber>

       <invoiceNumber>INV-000000006</invoiceNumber>

</getInvoicesByNumber>”

This envelope uses the same convention as explained in Step-15

Here we are passing “INV-000000006” as the value to “invoiceNumber” parameter, which means we want to retrieve the information of Invoice with the matching invoice number

Step-27: Click on the “Send” button to submit the HTTP request with the updated request body

 The Response Object

Step-28: Now it is time to analyze the Response Object returned by SOAP API Endpoint as a result of the request we made after updating the request body

This time we will see exactly 1 invoice coming in as part of the response matching the filter criteria as mention in our request body

Salesforce SOAP API Endpoint Limitations

You can have multiple operations in the Service class but consumer applications can only request data using “One Operations at a Time”, which means request body cannot have the call to multiple operations with in the same request.

So lets’ modify the body request and try to include both operations together in single request-

Step-29: Include both the operations to the request body

Step-30: Click “Send” to submit the request

Step-31: Now if we analyze the Respond Object, we would see an error coming up as the response body, explaining that “Only one operation within the same request is allowed”

So it is important to plan your SOAP API based solution with consideration to this known limitation.

Conclusion

Custom API Endpoints empowers to respond to the compelling business needs efficiently. It allows us to deal with requirements involving complex business logic without exposing the complexities to consumer applications.

Security

All the logic running inside API Endpoints is by default executing under System Context (highest privileges), so it is the responsibility of the API developers to make sure proper security restrictions are implemented as required.

API Limits

It is also worth pointing to understand and plan the enterprise solution based on the API Limits offered by Salesforce Org. Here is the Salesforce Cheat Sheet for understanding API Limits. It is recommended to plan your solutions in line with permissible API Limits for your Salesforce Org.


Hope you enjoyed this article. Please leave your comments to let me know how you do like the content and how you do find it helpful to learn the topic.

How to Develop Custom Salesforce SOAP API Endpoint – I

In this article we will discuss detailed steps on how to develop Custom SOAP APIs for Salesforce and how can we consume the SOAP API Endpoint using Postman API Client. In this article we will look for Service Operations return collection of records as part of Response.

Custom SOAP API Endpoints could be a very powerful capability to enhance Salesforce Integration offering to the external applications. In custom APIs, we can make full use of all available programming capabilities of Apex, SOQL and other programming artifacts.

In this article, we will discuss detailed steps on how to develop Custom SOAP APIs for Salesforce and how can we consume the SOAP API Endpoint using Postman API Client. In this article we will look for Service Operations return collection of records as part of Response.

Analyzing Salesforce Data Source

Step-1: We have a Custom Object “Invoices__c” that is holding the data for Customer Invoices. In this demo, we will develop a Custom SOAP API Endpoint to retrieve data from this custom object.

Code Development: Custom SOAP API Endpoint

Operation 1: Returns a Collection 

Launch Visual Studio Code and Create New Salesforce Project.

Step-2: Once the project is added successfully, right-click the project and add a new Apex Class to the project.

Step-3: Name the new Apex Class “InvoiceService.cls”

Step-4: This will be a “global” class and this global class will be acting as a SOAP API Endpoint later on

Step-5: In the class, we will define a new operation “getInvoicesByAmount” which takes a parameter “invoiceAmount” of type “integer”

Step-6: This operation will define a variable of list type that returns the collection of invoices matching the criteria specified in the SOQL statement. This SOQL statement will query all invoices where the Invoice Amount is greater than the Input Amount Value.

This is business logic and could be defined as it fits the best to our business needs. And the beauty of a custom solution lies in the fact that we can handle any complex business requirements within the Service definition without exposing the complexities to the external applications.

A Word of Caution

All the logic running inside API Endpoints is by default executing under System Context (highest privileges), so it is the responsibility of the API developers to make sure proper security restrictions are implemented as required.

Step-7: This operation will return the list of all invoices matching the criteria defined in the SOQL Query

Step-8: Now it is the time to deploy the SOAP Endpoint to Salesforce Org. Right-click the project, select the “Deploy Source to Org” option to deploy the endpoint to the Org

Invoke Custom SOAP API Endpoint using Postman

Launch Postman and start with new API Request

The Request Object

Step-9: Select “POST” as the request type

Step-10: Specify the Service Endpoint using the following convention:

“<Salesforce Instance>/services/Soap/class/<SOAP API Endpoint Global Class Name>”

And for this demo, the complete SOAP Endpoint URI would be:

https://bansalp-dev-ed.my.salesforce.com/services/Soap/class/InvoiceService

Step-11: Select body section

Step-12: Select request payload format as “raw”

Step-13: Select body content type as “XML”, since request body is in XML format

Step-14: Specify Session-Id within the Session Header. We can get this Session-Id from the Login Request

Step-15: We will specify the SOAP Envelope Body for the SOAP API Endpoint as per the following conventions:

“<SOAP API Endpoint Operation Name>

       <Input Parameter Name>[Parameter Value]</ Input Parameter Name>

</ SOAP API Endpoint Operation Name >”

For this demo the SOAP Body would look like as follows:

“<getInvoicesByAmount>

       <invoiceAmount>1000</invoiceAmount>

 </getInvoicesByAmount>”

Where the value of parameter “invoiceAmount” is “1000”, which means the SOAP Endpoint will return a list of Invoices for which “Invoice Amount is Greater Than 1000”

Step-16: Click on “Headers” Tab to add the required headers to the SOAP Request

Step-17: We have to add the following “Request Headers” to the request:

“Content-Type”: It will define that the request body will be in XML format

“SOAPAction”: It will define the intent of the request. It is mandatory to include this header to the SOAP POST Request even if the value empty

Step-18: Click on the “Send” button to submit the HTTP request

The Response Object

Step-19: Now it is time to analyze the Response Object returned by SOAP API Endpoint as a result of the request we made

19.a: Shows the number of result nodes returned based on the request. We can see there are 2 results or 2 Invoices returned where Invoice Amount is greater than 1000

19.b: Shows the Amount filter is working as expected and only those invoices are returned where the amount is greater than 1000

Round 2: Change Amount Filter

The Request Object

Step-20: Now changing the parameter value to 500, which mean we are requesting all the invoices where Invoice Amount is greater than 500

Step-21: Click on the “Send” button to submit the HTTP request with the updated request body

The Response Object

Step-22: Now it is time to analyze the Response Object returned by SOAP API Endpoint as a result of the request we made after updating the request body

This time we can see 3 invoices coming in as part of the response object and if we notice the amount value, we will find only those invoices are returned where amount value is greater than 500.

Conclusion

Custom API Endpoints empowers to respond to the compelling business needs efficiently. It allows us to deal with requirements involving complex business logic without exposing the complexities to consumer applications.

You can reach out to the next half of this post here: How to Develop Custom Salesforce SOAP API Endpoint – II


Hope you enjoyed this article. Please leave your comments to let me know how you do like the content and how you do find it helpful to learn the topic.

Salesforce SOAP API: POST Request with SOQL Query Envelope [Custom SObjects]

In this article, we will discuss the detailed steps on executing SOQL queries for Custom Salesforce SObjects using SOAP API. In this demo, we will look into how to query fields with lookup relationships. This article holds good both for Custom and Standard SObjects.

This article is in continuation of my Previous Article on executing SOQL Queries using SOAP API Requests.

In this article, we will discuss the detailed steps on executing SOQL queries for Custom Salesforce SObjects using SOAP API. In this demo, we will look into how to query fields with lookup relationships. This article holds good both for Custom and Standard SObjects.

Analyze Metadata & Data

To start with a demo lets’ add a custom object to the Org:

Step-1: Launch the Object Manager and add a custom object called “Invoice__c”

Step-2: We have added a couple of fields to this object, especially focusing on a lookup field called “Customer__c” which is a lookup field for the “Account” object.

Step-3: Add a new record to the “Invoice” object, choose a value from the “Account” lookup for the “Customer” field. Also, fill the rest of the fields as per need.

Step-4: Click “Save” to save the record

Step-5: After saving the record successfully, we can review the record and can see a new Invoice number added

Step-6: Similarly we can see the customer information saved

The Request Object

Now build the Request Object (For details refer to my Previous Article on this)

Step-7: Since this is going to be the Post request, select “POST” as the request type

Step-8: Specify the SOAP Endpoint submit this request to. Select “Body”/”raw”/”XML” options to specify that the body of this request contains XML data

Step-9: Get the updated Session-Id and update within the request envelope  

Step-10: Specify any valid SOQL query as a query string to this request envelope. It is important to note that in this query we are querying “Customer” lookup field (Customer__c) to see how it works with SOAP API

Step-11: Click “Send” to submit the request

The Response Object

Step-12: If we closely analyze the Response Object we can see it contains only Customer Id and does not contain the actual name of the customer.

This outcome is not user-friendly and makes not much sense if we present it to the end-users, probably they won’t be able to understand which Customer we are talking about. We can easily fix this issue by making some changes to the SOQL query as shown below-

Step-13: Before we make any changes to the SOQL query, we need to find out what should look for. Since we are querying the Account lookup, we need to analyze the “Account” Object in Salesforce Org

Step-14: Since we need to show the name of the customer which is going to be the “Account Name” Field of “Account”. In SOQL queries we need to use the field names and not the field labels. So we will use “Name” for the field label “Account Name”  

Modify Request Object

Step-15: Now based on information we have in Step-13 & Step-14, we change the query a little bit (from Customer__C to Customer__r.Name).

Customer__c represents the custom look column in the object definition, while Customer__r represents the relationship object instance of “Account” object itself which gives us the power to refer the Parent Object (Account) fields directly from within the SOQL query for the Child Object (Invoice)

  • Click “Send” to submit the request

Analyze Response Object

Step-16: If we analyze the response again, we can now see the Customer Name coming in instead of Customer Id.

Conclusion

POST Requests with SOQL Query Envelopes is a very powerful implementation offered by Salesforce SOAP APIs. It is recommended not to use very complex queries as that might increase the processing time and might lead to request timeout issues with SOAP API Endpoint. So be intelligent which choosing your tools to deal with the specific problem statement.

Hope you enjoyed this article. Please leave your comments to let me know how you do like the content and how you do find it helpful to learn the topic.

Salesforce SOAP API: POST Request with SOQL Query Envelope [Standard SObjects]

In this article, we will discuss the detailed steps on executing SOQL queries for Standard Salesforce SObjects using SOAP API Query Envelopes.

Executing SOQL Queries using SOAP API Requests possibly is one the most powerful implementation of Salesforce APIs and we can leverage it to customize database operations (CRUD) at the convenience of writing SOQL Queries.

In this article, we will discuss the detailed steps on executing SOQL queries for Standard Salesforce SObjects using SOAP API Query Envelopes.

To start with a demo, lets’ launch Postman API Client and follow the below steps-

The Request Object

Step-1: Select “POST” as the request type, since we are going provide the data to be submitted as part of the request so this is going to be a POST request to the Salesforce API Endpoint

Step-2: Specify the SOAP Service End Point as mentioned in my earlier articles also “https://<Domain Name>/services/Soap/c/<Version No.>”

Step-3: Select “raw” / “XML” as body content type. Specify the Session-Id for Request Authentication. You can receive this Id from the SOAP Login Request.

Step-4: Specify the SOQL Query to be executed to be part of the SOAP request. In this request, we are executing SOQL query to get details from the “Lead” (Standard Salesforce Object) and we specified “SELECT Id, Name FROM Lead”. We can specify any valid SOQL queries to execute and returned with results using the SOAP API.

Step-5: Next thing is to add Request Headers as we did in all other SOAP POST Requests.

  • “Content-Type”: It will define that the request body will be in XML format
  • “SOAPAction”: It will define the intent of the request. It is mandatory to include this header to the SOAP POST Request even if the value empty

With this, we are all set to submit the request.

The Response Object

Step-6: Click Send to submit the request and if no error encountered we should be able to see the response coming in

Step-7: If we analyze the Response Object carefully, we will notice a lot of important pieces of information. Like we can see the current consumption (Current = 38) of API Requests and total allowed limit (limit = 15000) of API Requests execution

Step-8: We can also the collection of records from the “Lead” object. We can see Id and Name of Lead coming in as part of the response object

Step-9: If we scroll down to the bottom we can see the size of the collection (size = 23) that gives us the count of records returned as a part of the response based on the SOQL query specified as a part of the SOAP Request.

As always it is a good idea to save the request for later reference. I generally do as it will help me during code development involving SOAP Request

Step-10: Specify the suitable name for the SOAP Request

Step-11: Select the Postman Collection to save it request to. We already have a collection “Salesforce API” 

Step-12: Click “Save to Salesforce APIs” to save the request to the collection

Conclusion

POST Requests with SOQL Query Envelopes is a very powerful implementation offered by Salesforce SOAP APIs. It is recommended not to use very complex queries as that might increase the processing time and might lead to request timeout issues with SOAP API Endpoint. So be intelligent which choosing your tools to deal with the specific problem statement.

Hope you enjoyed this article. Please leave your comments to let me know how you do like the content and how you do find it helpful to learn the topic.

Salesforce SOAP API Authentication: The Login Request

In this article, we will discuss the detailed steps on how to authenticate SOAP-based requests against Salesforce Org. We will explore the SOAP payloads for the Request & Response cycle for the request.

Integration is the constraining need of today’s IT landscape. More and more systems, platforms and technologies are coming closer through different integration techniques. Integration is where Source System may expose their data employing a data layer and the target system access that data layer to request data.

Technological progressions testified many amazing tools & technologies to ease the integration process. Web Service End Points are the most popular amongst them. Like most popular software platforms, salesforce also offers data access via Web Service Endpoints (APIs in common). 

Salesforce offers both SOAP and REST-based service endpoints to enable data access by a large variety of thin clients (Windows Applications, Sync Jobs, Web Applications, Mobile Applications and much more).

Prerequisites                                                   

This article is more focused on the Authentication mechanism for Salesforce SOAP-based services. If you have not already gone through my earlier articles on this, I would strongly recommend referring the article How to Prepare Environment for Salesforce SOAP API Development as this article is acting as a prerequisite for API Development scenarios. If you feel disengaged with any piece of content in this article that means you need to refer to the earlier article first.

In this article, we will discuss the detailed steps on how to authenticate SOAP-based requests against Salesforce Org. We will explore the SOAP payloads for the Request & Response cycle for the request.

Launch the Postman and run through the following steps-            

Preparing Request Object

Step-1: Select request type as “POST” since this going to be a request with user credentials submitted to the Salesforce Org

Step-2: Specify the Login Url as https://login.salesforce.com/services/Soap/c/<API Version>, in this case, I have the API Version as “47.0”

Step-3: Select the Request “Body” section 

Step-4: Select “raw” as the data input mean for the request data payloads 

Step-5: Select “XML” as the content type for the data payloads 

Step-6: Include the “SOAP envelope” as the request body. You can copy the XML Envelope from Salesforce documentation reference SOAP Envelope: Login Request and all you need is to change values for UserName & Password. 

  • User Name: It is the user name for the Salesforce Org              
  • Password: It is the combination of a password for the Salesforce Org and User

Security Token. (Refer Prerequisites section)

Step-7: Click on Request “Header” section              

 Step-8: Add the following headers-            

  • “Content-Type” as “text/xml”
  • “SOAPAction” as ‘ ’ (blank quotes). This is a mandatory header that detects the intents of the SOAP Request. So it is important to include this Header with blank quotes in the SOAP Request 

Step-9: Once all information is in place as required, click “Send” to the submit SOAP Request to Salesforce Org 

Step-10: We can see the Response Section where response payloads will be displayed with all the data returned as part of the response, even if it an error processing the request. 

Analyzing Response Object

Step-11: Once the request is completed and response is received, we can click on Response “Body” section 

Step-12: We can notice that the response is received as “XML” as specified by the Request Header “Content-Type” 

If we inspect the response object carefully, we can see “Status Code: 200” which means request executed successfully and we have received the data we are looking for.

Step-13: The response object provides us vital information on User & Request Authentication. Below the values that we need to focus on-

  • “serverUrl”: This is the instance Url that can we used to build any subsequent SOAP Request to the Salesforce Org
  • “sessionId”: This is short-lived authentication token that we need to use to authenticate the SOAP Request to the Salesforce Org
  • ”userId”: It shows the user Id, under whose security context this response object received, which means if this user doesn’t have access to any specific Salesforce resource, the subsequent SOAP request will still get exceptions if try to query the restricted resource.

Step-14: Shows the User contextual values which could be helpful in many cases, so it is always a good idea to keep it handy. 

Step-15: It is advisable to keep this request saved with Postman as we need to execute it one or more times to get the refreshed session-id (remember it is short-lived). Click on “Save” 

Step-16: Click on “Save As…” 

Step-17: Enter the suitable name for this request, to reuse later

Step-18: Search for the collection you want to add it to. (Refer Prerequisites section)      

Step-19: Select “Salesforce APIs” as the collection you want the request to add to                                                                                                                                 

Step-20: Click “Save to Salesforce APIs” button

Step-21: We can see the new request added to the collection 

This is a reusable request that we have to execute every time we need an updated Session-Id, so saving this query would save a lot of repetitive effort. This is true even if we executing the SOAP Requests using Visual Force Pages and Lightning Web Components instead of Postman API Client.

Conclusion

Authentication would always be the first step in the development and execution of APIs. In this article, we discussed how to build a login request for Salesforce SOAP APIs and the response object includes the “Session Id” which is required to Authenticate and subsequent SOAP API requests to Salesforce.

Hope you enjoyed this article. Please leave your comments to let me know how you do like the content and how you do find it helpful to learn the topic.

How to Prepare Environment for Salesforce SOAP API Development

In this article, we will discuss the detailed steps on how to set up the environment for API Development in Salesforce with all prerequisites tools & permissions.

Before starting with API development for Salesforce, we need to ensure that all prerequisites are properly installed and configured, this will save lots of significant development time by avoiding the environmental issue.

In this article, we will discuss the detailed steps on how to set up the environment for API Development in Salesforce with all prerequisites tools & permissions.

The very first tool that we would be needing is “Postman API Client”. It is the most important tool for API development as it is the collaboration platform that allows sending REST & SOAP Requests quickly & easily. It also provides features to inspect API status code, response object, response time and much more.

“Postman API Client” is a must to have tool for any developer targeting API development across any platform or technology stack. In this article, we will look into API development for Salesforce specifically.

Download & Install “Postman API Client”

We can follow the steps below to download & install the “Postman API Client”-

Step-1: Google “getPostman.com” or visit the link https://www.getpostman.com/

Step-2: Click on “Download the App”

Step-3: Click on “Windows 64 bit”, this selection depends on the type of machine you are running on

Step-4: Save the “.exe” file to the disk location

Step-5: Run the “.exe” with admin privileges

Step-6: Wait till the installation is over

Step-7: If you already have an account with Postman use it to sign in

Important Note: It is important to note that all the collections you created with Postman are saves to their cloud and can be accessed on any device across any part of the globe.

Step-8: OR you can create a new account to manage your collections

Step-9: Once Postman Client is launched, you can create a new collection for your API queries by clicking “New Collection”

Step-10: Give the name to the collection lets’ call it “Salesforce APIs”

Step-11: Click the “Create” button to add the collection to the Postman Client

Step-12: And we can see a new collection is added to the Postman Client

Enable Salesforce User Permissions for API Access

Step-1: Search for “Users” under Setup

Step-2: Click on “Users” under Users Menu

Step-3: Look for the user profile you would like to enable API access. Let’s pick up “Bansal Prashant” who is also a “System Administrator”. Since this the admin profile so the “API Enabled” permission would be already enabled but we can still the process on how we can reach it. Click “Edit” to edit the profile

Step-4: Now if you scroll down the edit profile screen till you find a section called “Administrative Permissions”. Under “Administrative Permissions” we need to locate “API Enabled” permission and check it if it not already checked. This permission will enable API access for this User Profile and after that API request to Salesforce will go under User Authentication for this User Profile.

Reset Security Token

This step is optional for those who already have their security tokens, but if you don’t have it, you can follow the steps below-

Step-1: Under User Profile Menu at the top, click “Settings” the get to the User Personal Information Menu

Step-2: Under “My Personal Information” menu, click “Reset My Security Token”

Step-3: On the “Reset Security Token” screen, click “Reset Security Token” button

Step-4: This will send the email to the user’s registered email id with security token details

Step-5: If we analyze the email received from Salesforce we can see the subject as shown

Step-6: The user will receive the security token email from support@salesforce.com, so make sure you keep this email id safe from spam

Step-7: In the email, we will see the security token details as shown

Generate Web Services Description Language (WSDL)

WSDL is important for API Developers as it gives a quick reference about the existing metadata regarding the Salesforce Org. This reference could be extremely helpful when building API Calls which may call body, input parameters, filters, SOQL queries and much more.

We will see the steps to generate the WSDL file from the Salesforce schema. Make you generate WSDL file every time the Salesforces Org Metadata for updated to keep an updated reference for the development-

Step-1: Search for “API” under Setup

Step-2: Click “API” under integration section

Step-3: Since we are going to work with Salesforce Org within my Organization so it is always a recommended approach to generate “Enterprise WSDL”. Click on “Generate Enterprise WSDL” link to launch “Generate Enterprise WSDL” screen

Step-4: Click on the “Generate” button to initiate the WSDL generation

Step-5: Soon enough you will see the WSDL launched in a browser window, where we can read the WSDL specifications & details

Step-6: You can save the WSDL detail in the file for the reference later

Step-7: It is a rather long file and get to the end in a couple of scrolls, scroll it down you would see the SObject metadata definitions for all Standard as well as Custom objects

Hope you enjoyed this article. Please leave your comments to let me know how you do like the content and how you do find it helpful to learn the topic.

How to Add Lightning Apps for Salesforce SObjects (No Code Approach)

In this article, we will discuss a no-code approach of adding a lightning app for our Salesforce Org. This approach is helpful to launch any Salesforce Object (Standard or Custom) as an application without using any code.

In this article, we will discuss a no-code approach of adding a lightning app for our Salesforce Org. This approach is helpful to launch any Salesforce Object (Standard or Custom) as an application without using any code.

This demo includes the following steps:

Create a Custom Object

We can add a new Custom Object “Students” as shown in the steps below-

Step-1: Click on “Object Manager”

Step-2: Click “Create” and select “Custom Object” to launch a “New Custom Object” screen

Step-3: Specify Label for the object, let’s call it “Students”

Step-4: Select “First Name” as a record identifier. This is just a demo so anything works just fine but in a more sensible solution I would rather choose “Student Id” an auto-generated number as a record identifier

Step-5: Select any “Optional Feature” you deemed fit for the Object

Step-6: Select any “Object Classification” feature as you deemed fit for the Object

Step-7: Click “Save” to submit the changes

Step-8: After step-7 we will see the details section of the newly created object

Step-9: We can see the API name for this newly created object, this API name will be helpful when we will write Apex code or other Declarative Solutions based on the “Students” object

Add a new Tab for “Students” Object

We can add & assign a new tab to the “Students” object as shown in steps below-

Step-10: Search for “Tabs” in Setup

Step-11: Select “Tabs” under “User Interface” navigation menu

Step-12: Under “Custom Object Tabs” section, click “New” to add a new tab for “Students” object

Step-13: Select the object you want to assign a tab to, in this case, we will choose “Students” object

Step-14: Click on the “Search” icon to select a style from “Tab Style Selector” screen

Step-15: Choose a suitable tab style from the “Tab Style Selector” and click “Next”

Step-16: Select all the profile you want this Tab available for, for this demo, I keep the defaults and click “Next”

Step-17: Select all the custom apps you want this Tab available for, for this demo, I keep the defaults and click “Next”

Step-18: Once the Tab is added successfully, it will be displayed in “Custom Object Tabs”

Create a Lightning App for “Students” Object

We can add a new Lightning App for the “Students” object as shown in the steps below-

Step-19: Search for “App Man” in Setup

Step-20: Click on “App Manager” under “Apps” navigation menu

Step-21: On the “Lightning Experience App Manager” screen, click on the “New Lightning App” button in the toolbar. This will launch the “App Details & Branding” screen

Step-22: Enter the app name as “Students App”

Step-23: Enter the developer name as “Student_App”, this will be helpful to locate the apps in Apex & Declarative Solutions

Step-24: Enter description as required

Step-25: Choose an Image for your app

Step-26: Select the color scheme as per branding directions from business

Step-27: Shows the preview of the Application look & feel

Step-28: Click “Next” to configure the options for the App

Step-29: Choose Navigation options as required, I will keep the defaults for this demo

Step-30: Choose Setup Experience options as required, I will keep the defaults for this demo

Step-31: Select the require utility items for the App, Utility Items are reusable components that can we with used with any app. We can add or modify items associated with the app later as well

Step-32: Click “Next” to configure navigation items

Step-34: Select the require navigation items for the App, in this case, will search for “Students” Tab

Step-35: Click “Students”

Step-36: Add “Students” Tab to the Selected Items section

Step-37: Click “Next” once you are done with the selection

Step-38: On the “User Profiles” screen, choose the user profiles that can access this App. For this demo, I want only system admins to have access to this app. Search for “Sys” to locate for “System Administrator”

Step-39: Select “System Administrator” profile that can have access to this app

Step-40: Click add icon to move “System Administrator” profile to “Selected Profiles”

Step-41: Click “Save & Finish” to finish configuring the App

Step-42: That is all to create and set up the new app for “Students” Object. Now if go to “App Launcher” screen

Step-43: We should be able to see the “Students App” Icon

Step-44: When we click on “Students App” Icon, it will take us to the List View form of the Student Object

Hope you enjoyed this article. Please leave your comments to let me know how you do like the content and how you do find it helpful to learn the topic.