Blog Right Sidebar

  •   Introduction to Slack : Slack is the #1 communication platform for business thanks to how intuitive and seamless it is to connect team members in every industry. Features like search, shared channels, apps and integrations, and pinned items make it the go-to option for teams around the world.The Slackforce integration is not new, there […]

    Read More

  • Lightning Message Service

    In this blog post, we would be creating Visualforce, Aura Component and Lightning Message Service and exchanging messages between all of them using Lightning Message Service.

    Introduction to Lightning Message Service

    • Introduced in the Winter ’20 release by Salesforce, Lightning Message Service is the out-of-the-box functionality that empowers you to communicate between Visualforce and Lightning Components, including Aura web components (AWC) and Lightning web components (LWC).
    • For an organization hesitant to migrate to Lightning Experience and its newer technologies, Aura Components and Lightning Web Components.
    • LMS may make the migration palatable. With LMS’s ability to communicate between Visualforce pages and lighting components, you can take a more disciplined approach to upgrading.
    • Instead of scraping existing Visualforce pages and creating new Lightning components, you can update existing Visualforce pages to interact with new Lightning components to provide new functionality.

    What is a Lightning Message Service?

    • LMS is defined as the standard publish-subscribe library that enables communication quickly and seamlessly with DOM across the Salesforce UI tech stack, including Visualforce Pages, Aura components, and Lightning Web Components (LWC) using simple API.
    • With this unique feature of Salesforce, you can publish messages and subscribe to them anywhere within the lightning page.
    • Lightning Message Service feature is similar to Aura application events that enable seamless communication between components.
    • Lightning Message Service is based on Lightning Message Channels, a new metadata type. 
    • Lightning Message Channel is used to access the Lightning Message Service API and Lightning Message Channel in LWC via scoped module @salesforce/messageChannel. When it comes to Visualforce, you can use the global variable $MessageChannel.
    • In Aura, you can use lightning:messageChannel in your component.

    Uses Of Lightning Message Service :

    • To enable communication between Visualforce page, Lightning web components, and Aura components, 
    • To access Lightning Message Service API for publishing messages throughout Lightning Experience.
    • It helps in subscribing to messages that originated from anywhere within Lightning Experience via Lightning Message Channel. 
    • A specific namespace is associated with Lightning Message Channel. Developers can choose whether they want their message channel to be available to other namespaces or not, ensuring the security of communication on Lightning Message Service.

    Lightning Message Channel :

    • It’s basically the name of Schema which will hold the actual message.
    • create file LMSDemoWin.messageChannel-meta.xml in folder messageChannels.

    <?xml version=”1.0″ encoding=”UTF-8″?>
    <LightningMessageChannel xmlns=””>
       <masterLabel>LMS Demo</masterLabel>
       <description>Winter 20 – LMS Demo.</description> 

    Deploy Lightning Message Channel :

    • Run below SFDX command to deploy this message channel on your Salesforce Org.
    • Run push command to deploy message channel on Orgs.
    • Once, Lightning Message Channel is created, let’s start by creating components and first we will create below Visualforce Page.

        <!– Begin Default Content REMOVE THIS –>
        <h1>Lightning Message Services – Demo – Winter 20</h1>
            <p>Message To Send</p>
            <input type=”text” id=”vfMessage” />
            <button onclick=”publishMessage()”>Publish</button> 
            <button onclick=”subscribeMC()”>Subscribe</button> 
            <button onclick=”unsubscribeMC()”>Unsubscribe</button> 
            <p>Messages Received:</p>
            <textarea id=”txtMessages” rows=”2″ style=” width:100%;” />
            // Load the MessageChannel token in a variable
            var lmsDemoChannel = “{!$MessageChannel.LMSDemoWin__c}”;
            var subscriptionToMC;
           function publishMessage() {
                const payload = {
                    source: “Visualforce”,
                    messageBody: document.getElementById(‘vfMessage’).value
      , payload);
            function subscribeMC() {
                if (!subscriptionToMC) {
                    subscriptionToMC =, onMCPublished);
            function unsubscribeMC() {
                if (subscriptionToMC) {
                    subscriptionToMC = null;
            function onMCPublished(message) {
                var textArea = document.querySelector(“#txtMessages”);
                textArea.innerHTML = message ? ‘Message: ‘ + message.messageBody + ‘ From: ‘ + message.source : ‘no message payload’;
    • Next component we would build would be the Aura Component.

    <aura:component description=”testMessageAura” implements=”flexipage:availableForAllPageTypes” access=”global”>
        <aura:attribute type=”String” name=”myMessage”/>
        <aura:attribute type=”String” name=”receivedMessage”/>
        <lightning:messageChannel type=”LMSDemoWin__c” aura:id=”lmsDemohannel” onMessage=”{!c.handleReceiveMessage}”/>
        <lightning:card title=”Aura Component” iconName=”custom:custom18″>
            <div class=”slds-m-around_medium”>
                <lightning:input type=”text” value=”{!v.myMessage}” label=”Message To Send”/>
                <lightning:button label=”Publish” onclick=”{! c.handleClick}”/>
                <p>Latest Received Message</p>
                <lightning:formattedText value=”{!v.receivedMessage}”/>

    • Controller of Aura Component

        handleClick: function(component, event, helper) {
            let myMessage = component.get(“v.myMessage”);
            const payload = {
                source: “Aura Component”,
                messageBody: myMessage
        handleReceiveMessage: function (component, event, helper) {
            if (event != null) {
                const message = event.getParam(‘messageBody’);
                const source = event.getParam(‘source’);
                component.set(“v.receivedMessage”, ‘Message: ‘ + message + ‘. Sent From: ‘ + source);

    • Aura Component by default handles those operations once we declare them.
    • Last component we would be creating is the Lightning Web Component.

        <lightning-card title=”LWC” icon-name=”custom:custom18″>
            <div class=”slds-m-around_medium”>
                <lightning-input label=”Message To Send” type=”text” value={_msg} onchange={handleChange}></lightning-input>
                <lightning-button label=”Publish” onclick={handleClick}></lightning-button>
                <lightning-button label=”Subscribe” onclick={handleSubscribe}></lightning-button>
                <lightning-button label=”Unsubscribe” onclick={handleUnsubscribe}></lightning-button>
                <p> Message Received</p>
                <lightning-formatted-text value={receivedMessage}></lightning-formatted-text>
    • Javascript of LWC

    import { LightningElement, track} from ‘lwc’;
    import { publish,createMessageContext,releaseMessageContext, subscribe, unsubscribe } from ‘lightning/messageService’;
    import lmsDemoMC from “@salesforce/messageChannel/LMSDemoWin__c”;
    export default class LMS_MessageSenderReceiverLWC extends LightningElement {
        @track _msg = ”;
        @track receivedMessage = ”;
        context = createMessageContext();
        constructor() {
        handleSubscribe() {
            const parentPage = this;
   = subscribe(this.context, lmsDemoMC, function (event){
                if (event != null) {
                    const message = event.messageBody;
                    const source = event.source;
                    parentPage.receivedMessage = ‘Message: ‘ + message + ‘. Sent From: ‘ + source;
        handleUnsubscribe() {
        handleChange(event) { 
            this._msg =;
        handleClick() {  
            const payload = {
                source: “Lightnign Web Component”,
                messageBody: this._msg
            publish(this.context, lmsDemoMC, payload);
        disconnectedCallback() {

    • Once we embed all three components (Visualforce, Aura and Lightning Web Components), we would be able to see Lightning Message Service in action as shown in below image.

    Advantage of Lightning Message Service :

    • One of the significant benefits is increased development time. For instance, if a Visualforce Page or Lightning component tries to reference a message channel that is non-available and that message channel is not exposed, then the code would not compile. 
    • This messaging service offers referential integrity between the code that references them and the message channel.
    • It restricts the deletion of message channels, which are referenced by other codes. Further, Lightning Message Service supports auto-adding message channels to packages.
    • As the metadata type is packageable, you can associate a message channel to a particular namespace and make it available/unavailable to other namespaces.
  • Introduction to Surveys in Salesforce : Every business small or big wants to satisfy its customers’ needs since customers are the lifeblood of any business. If you do not know what customers think about your service, you will never be able to give them the best customer experience. so any contact with a customer is […]

    Read More

  • The spring’21 release is available under the pre-release program  In this release, you will find new enhancements related to: Lightning Experience Salesforce Flow Lightning Web Component Apex Experience Cloud Pardot Quip Tableau CRM And APIs Sales Features : Flexibility to track information on opportunity products and more options for lead conversion. Package providers get more […]

    Read More

  • Salesforce Spring ’19 Release Features The Salesforce Spring ’19 Release is here, and you’ll now be able to explore the exciting new features and upgrades of the newest release. Here is a quick overview of Salesforce Spring ‘19 release date, our most loved features in the Salesforce Spring ’19 Release, like the advanced Lightning Experience […]

    Read More

  • Integration Zapier into Prodsmart

    In this Post we see about Zapier to Prodsmart Integration and in short What is zapier and Prodsmart works.

    What Is Zapier Integration

    When you want to get more done and have more impact at work, automation can be the helping hand you need. Zapier takes the manual effort out of busywork, helping you accomplish routine and repetitive tasks automatically, giving you time back to focus on your most important work. zapier offers integrations between thousands of application APIs and allows users to create workflows to optimize nearly any aspect of their business. In zapier, workflows are called “Zaps” and consist of two parts: a Trigger, which is the first event, and one or more actions, which occur in other applications when the trigger happens. 

    What Is Prodsmart

    Prodsmart is a manufacturing execution system(MES) and manufacturing resource planning(MRP) software developed. use of an MES solution should provide the ability to manage directly from the warehouse or production floor, and this is precisely what prodsmart software provides. Prodsmart is intended to be used as a production data tracking software as well as an enterprise resource planning solution. Small, Medium, and large companies engaged in the manufacturing of auto parts, Plastics, friberglass, electronics, textiles, apparel, packaged foods, paper products, and others use this software. Smaller shops use prodsamrt solely for production floor tracking purposes, large manufacturing facilities use it as a production module to .augment their MRP and ERP solutions can use prodsmart.

    Integration Of Zapier To Prodsmart

    As we know now zapier is used for integrations between thousands of application APIs and allows users to create workflows. we create a new workflow and its called “zap”. In zap there are two Parts: First one is Trigger and second one is Action.

    Poll for New Data With a Trigger

    Zapier triggers get new data from your API, parse individual data fields, and let users include that data in subsequent Zap action steps. Triggers can run every time something new is added to an API endpoint or pushed to Zapier via a Webhook, or they can use filters to watch for specific items. In Zapier Trigger First we select our API that is Salesforce after that select Trigger Event that start your zap and we select our trigger event is Update Field on Record. In zap there is different type of trigger events. 

    After selecting Choose API account and give access to records.

    After giving Access a Trigger  like Selecting object, field in Salesforce then only our zap is working.

    Example: We selected a Salesforce object like Order and for Field selected Prodsmart  Order  and set trigger if when Prodsmart order field is true the only zap will run.

    When In salesforce order record whose prodsmart order field is true this record will trigger and come automatically in zap and then our trigger process is completed.

     Zapier Action  

    Till now we see about Zapier Trigger but now Late see about the second part of zap that is Actions. Zapier actions push or put new data into apps through API calls that pass data from user customized input fields. Action steps in Zaps can create new items in an app or update existing items with a create action, or find existing items in an app with search actions. Search actions can optionally be paired with create actions to add a new item if the search does not return a result. 

    Actions should also return output fields detailing what was created (or found), so that data can be used in subsequent steps to build detailed workflows. Webhooks typically are used to connect two different applications. When an event happens on the trigger application, it serializes data about that event and sends it to a webhook URL from the action application—the one you want to do something based on the data from the first application. The action application can then send a callback message, often with an HTTP status code like 302 to let the trigger application know if the data was received successfully or 404 if not. By using Webhooks we send different types of requests.

    Example: We select in Action webhooks by zapier and as an event we select Post request. and POST requests are  used to send data to the API server to create or update a resource. In this example we get the access token of the salesforce account.

    To set up action In URL we give a standard URL to access Token (It’s used for Production if you want to use sandbox make sure Instead of login use Test) And Data set Username, Password, Client Id, client secret, Grant type. then we get our result in Test action. We can add multiple Action in one Zap. In Zap for add a new Action client on “+” (Plus) . 

    Let’s see another Webhook Action using another event like custom Request. In Custom Request firstly we need to select which type of method we used like POST, GET, DELETE etc. In this example we selected GET request. GET is used to request data from a specified resource. Custom request Have URL we use SQL stands for Structured Query Language. SQL lets you access and manipulate databases. In this Query we access Order related Account detail and also using sub Query get details of Order product. For get this details in Header use access  token which we get above using Post method.

    we use Utilities in formatter by Zapier for Separated of Order Product. Utilities are mostly focused on working with lists or list items; they’ll let you split up lists, put them together, pick a single item from a list, and more. They’ll also let you build a simple lookup table, giving your automations the ability to handle several different scenarios with a single step. Add a Formatter step to your Zap, select the Text action, then choose the Split Text transform option. Add the text you want to split to the Input field, and the delimiter that’s splitting up the text to the Separator field  


     Let check List of client Prodsmart, In above first step we get Account detail using GET Method. To get List of client we use Account Name as code . In Prodsmart Code is Unique.

    Let’s see about Path in zapier.

    Zapier Paths tool is built to navigate those twists and turns with conditional workflows. Building on multi-step Zaps, Paths let one Zap (our word for automated workflows) do different tasks depending on the data you provide. It’s a choose-your-own-adventure story for your work. At first, it might look like you’d need to build multiple Zaps to achieve this. Instead, you can use Paths to do it in one Zap. Paths let you split your Zap into the different outcomes your data needs. Your Zap starts with a trigger app that tells Zapier something happened: Someone bought your product, emailed your team, created a new project, or found a bug to fix. 

    Example: In above we get List of Client now using Paths we check first that client is exist of not. we need to set path Rule first. If Client is Exist in Prodsmart then only this path is run.

    If Client is exist then run this path and goes to next step we use Code by Zapier using this action and selecting action Run Javascript, Separated out Billing address and shipping address in Prodsmart format. After Separating Addresses Using Update Client Event We Update Existing Client Addresses.


    Now Create a new Sales Order in Prodsmart related to the Client Order. For this we need to use create sales order event.



    Need to set up the create sales order action for this we use Order Number as Code. code is required to create sales order  time of creating sales order make sure that Billing Address of client and Shipping address of client is exactly match with sales order Address. If it’s not match its clause error in zapier. creating sales order Product and Quantity are required.

    After set up the action our sales order is created in Prodsmart.

    And the last Update These detail in Salesforce record. for this need to add a new action and  select Update record event  and to set up this action with Order Id and in Prodsmart field update all detail which we get in above steps means sales order details.

    above Path is work when a client exists in Prodsmart .

    add a second Path and set up Path rules if Client is not Exist in Prodsmart.

    After Set up the path rule if the client does not exist then next step we create a new client. For new clients in Prodsmart we select create client events.

    for this Code and Client Name is required. We also create contact related to this client and set up Addresses.

    below are the Required field in prodsamrt to create Client

    “Code”: Number that identifies the client.
    “Name” : Name and surname of the client
    “VAT Number”: VAT identification number of the client.
    “Address”: Address of the person or business.
    “Phone Number”: Phone number of the person or business.
    “Email”: E-mail of the person or business.


    After Creating a New client in Prodsmart. We create Sales orders related to that new client and  Update sales order details in Salesforce as we did for our first path.

  • Dynamic Related List

    What are Dynamic Related Lists?

    Dynamic related lists are a type of related list in Salesforce that display related records from one object to another based on a specific criteria. For example, you might have a dynamic related list that displays all the accounts associated with a particular contact. The related list is dynamic because it automatically updates as the underlying data changes, so you always have access to the most up-to-date information.

    Dynamic related lists can be used to display records from any object in Salesforce, including custom objects that you create yourself. This means that you can use dynamic related lists to display information from objects such as contacts, leads, opportunities, cases, and more.

    How do Dynamic Related Lists Work?

    Dynamic related lists work by using a filter to determine which records should be displayed. For a dynamic related list to display records, the criteria that must be met must be specified. For example, you might specify that only accounts that have a particular industry should be displayed.

    Once you have created a dynamic related list, it will automatically display the related records that meet the criteria that you have specified. The dynamic related list will be updated in real-time as the underlying data changes, so you always have access to the most up-to-date information.

    How can Dynamic Related Lists be Used?

    Dynamic related lists can be used to enhance the functionality of your Salesforce instance in a number of ways. Here are just a few examples of how you might use dynamic related lists in your organization:

    -Displaying all the contacts associated with a particular account
    -Displaying all the opportunities associated with a particular lead
    -Displaying all the cases associated with a particular customer
    -Displaying all the custom objects associated with a particular record

    Accessing information with dynamic related lists simplifies the process of accessing it quickly and easily, without having to go to other parts of Salesforce. This can help you to work more efficiently and make better decisions, as you have access to all the information you need in one place.

    How to Add Dynamic Related List:

    -Click Setup > Object Manager > Account.
    -Click on Page Layout and select Layout which you want.

    -Click on the Edit.
    -Drag and drop Dynamic Related List – Single under Related tab.

    -After added the Dynamic Related List, confirm all below property.

    -Click save and Activate.


    Dynamic related lists are a powerful tool in Salesforce that can help you to display related records from one object to another based on a specific criteria. When you use dynamic related lists, you don’t have to navigate to other sections of Salesforce to find the information you need. Whether you’re working with contacts, leads, opportunities, cases, or custom objects, dynamic related lists can help you to work more efficiently and make better decisions.

  • Flow Orchestrator

    Flow orchestrators are especially useful for organizations that need to manage a large number of processes, as they help to streamline operations, reduce manual errors, and increase efficiency. By automating repetitive tasks, flow orchestrators free up time for employees to focus on higher-value activities that require human decision making and problem-solving.

    One of the key benefits of flow orchestrators is their ability to integrate with a wide range of applications and services. This allows organizations to automate processes that involve multiple systems, making it easier to manage workflows that span multiple departments and teams. For example, a flow orchestrator could be used to automate a process that involves extracting data from a database, transforming it into a specific format, and then uploading it to a cloud storage service.

    Another advantage of flow orchestrators is their ability to provide real-time visibility into the status of processes. This allows organizations to monitor the progress of workflows, identify bottlenecks and issues, and make adjustments as needed. This is particularly useful for organizations that need to comply with regulations or standards, as it helps to ensure that processes are being executed as intended and that any deviations are quickly identified and addressed.

    Flow orchestrators are also highly scalable, making them suitable for organizations of all sizes, from small startups to large enterprises. They can be used to manage simple processes, such as approvals, or complex workflows that involve multiple systems and teams. This versatility makes flow orchestrators a valuable tool for organizations that are looking to streamline operations and improve efficiency.

    Critical Benefits of Salesforce Flow Orchestrator
    With Salesforce flow orchestrator, your business will get the following benefits:

    Increase your productivity while saving time:
    A shocking quarter of IT executives believe that the technology they currently use is not achieving the highest possible levels of staff productivity, according to Salesforce. Since this is such an alarming revelation, it has become essential for businesses to deploy new automation technology to help enhance productivity. Flow Orchestrator is the answer to this problem. It gives teams the resources to help streamline intricate and multi-layered processes and permissions, ultimately saving time on projects. With this, personnel will have more time to work on activities that will be advantageous for the organization as a whole.

    Anything can be easily automated (employee or customer workflows – and so on):
    A large number of people can list out a series of activities that are either extremely monotonous or need manual labor. Yet, these should not be the case. These manual processes can lead to delays, where mistakes can be made and are tricky to control, which may result in discontent among employees and customers. The issue is that for the majority, automation has been out of reach. Flow Orchestrator is the solution as it enables Salesforce users to automate anything, both for their internal staff and external customers. This is possible as it provides visibility into the workflows and allows users to implement automation with a few clicks, without any coding knowledge.

    It is not necessary to use multiple frameworks or write custom code:
    People are often hesitant to reveal the number of browser tabs they have open on their computer. But this issue is actually more serious than it seems. People have to jump between various frameworks to get the data they need and process it in another collection of frameworks. Flow Orchestrator can help with this problem by bringing all the data and operations into a single flow. For example, it can manage a statement endorsement process that requires input from sales, finance, and professional services departments. The best part is that this low-code approach eliminates the requirement for custom coding and monitoring specific assets.

    Types of Flow Orchestrator

    Flow orchestrators are divided into two types:

    Orchestration that starts on its own:

    one can use either the REST API or an Apex class. It needs to be tied to a particular record ID in order to show up on a Salesforce page.

    Orchestration Triggered by a Record:

    when a new, updated, or deleted record is created, Salesforce will automatically trigger an orchestration. The user has the choice to start the timer either before or after the record is stored.

    The following are the steps to create new Flow Orchestrator in Salesforce:

    To create a new flow, navigate to Setup > Process Automation > Flows. From there, click on the “New Flow” button

    -Then click on All+Template > Flow Orchestration
    Select Template type which you want

    Flow Orchestrator’s main structure

    Setting up a new Flow Orchestration is quite easy (using the templates listed in the menus). But, in order to add features to it, you need to understand two concepts: Stages and Steps.

    Stages represent a set of Steps which will be executed in sequence.

    Steps are needed to determine which Flow or Flows should be run, who should be assigned for that step, notifications needed, and where the Flow will appear. Steps can be set to run sequentially or side-by-side.

    The image illustrates a number of blue arrows that have labels beneath them (Awaiting Approval, Ready, Closed Complete). These are referred to as Stages – a grouping of individual Steps that may be completed either concurrently or one after the other, depending on the needs of the specific business process. When configuring each Stage, it is necessary to establish Exit Conditions in the form of either all Steps being completed or a determined Automated Flow giving a TRUE result.

    Flow Orchestrator Work Guide:

    When a User has been designated a Screen Flow, they can access it by going to the Work Guide Component. The Lightning Page will need to include the ‘Flow Orchestrator Work Guide’ component in order for Users to be able to access their assigned Screen Flows.

    When should Flow Orchestrator be used?

    Flow Orchestrator can provide a number of advantages to businesses. Some of the applications include Service Delivery Orchestration (where multiple teams must adhere to a certain sequence of events to complete a client delivery process) and a multi-individual approval or expediting process (where a document has to be submitted to various team members according to the conditions under which it enters the Orchestration).

    Conclusion :

    Flow orchestrators provide organizations with a flexible and scalable solution for automating and managing complex business processes. They are easy to use, integrate with a wide range of applications and services, and provide real-time visibility into the status of processes. Whether you’re looking to streamline operations, reduce manual errors, or increase efficiency, a flow orchestrator can help you achieve your goals.

  • REST API Integration

    Salesforce is a leading Customer Relationship Management (CRM) platform that provides a comprehensive set of tools and features to manage customer data, interactions, and business processes. REST API integration in Salesforce is a common requirement for organizations that want to integrate their Salesforce instance with external systems and applications.

    What is REST API?
    REST stands for Representational State Transfer and is a popular web standard for exchanging data between systems. REST APIs use HTTP requests (GET, POST, PUT, DELETE, etc.) to interact with resources and exchange data in a standardized format, typically JSON or XML.

    Why integrate REST API with Salesforce?
    Integrating REST APIs with Salesforce opens up a wealth of possibilities for organizations. Some of the benefits of integrating REST APIs with Salesforce include:
    Data exchange: You can use REST APIs to exchange data between Salesforce and other systems, such as databases, web services, and cloud applications.
    Customization: You can customize Salesforce to meet the specific needs of your organization by integrating it with other systems and applications.
    Automation: You can automate tasks and processes by integrating Salesforce with other systems and applications. For example, you can automate the transfer of data between systems or trigger actions based on events in Salesforce.
    Enhanced functionality: You can enhance the functionality of Salesforce by integrating it with other systems and applications. For example, you can integrate Salesforce with a mapping tool to display customer locations on a map or integrate it with a payment gateway to process online payments.

    How to integrate REST API with Salesforce?
    Integrating REST APIs with Salesforce involves several steps:
    Obtain an API key or authentication token from the external system that you want to integrate with.
    Use the Salesforce REST API to make HTTP requests to the external system. You can use the Salesforce REST API to access data, create records, update records, delete records, and perform other operations.
    Use the Salesforce Apex code to write custom logic that integrates with the external system. The Apex code can be used to process the data returned by the REST API and to trigger actions in Salesforce based on the data.
    Use Salesforce Lightning Connect or Salesforce External Objects to display data from the external system in Salesforce.

    Here are the steps to integrate a REST API:

    1. Create your REST API endpoints
    To begin with, I created a REST API to GET, DELETE and POST account records. I have provided the Apex code below.

    2. Create a Salesforce Connected App
    The next step is to establish a Connected App. On your organisation, go to the Setup > App Manager > New Connected App section.

     Add new Connected App

    Make sure you are using the same organisation which contains the endpoint established in the initial step!
    -Choose a name for your app
    -Make sure to check the Enable OAuth Settings box.
    -The Callback URL requires a placeholder URL and for this particular purpose, we can use
    -Make sure to adjust the Selected OAuth Scope to match the purpose of your app.

    Configure Connected App

    -Click on Manage Consumer Details button.

    Manage Consumer Details Button

    -Copy Consumer Key and Consumer Secret. Those two keys will be required to connect with our app.

    Copy Consumer Key and Consumer Secret

    3. Create Auth. Provider
    To make callouts, you must set up an Authentication Provider.
    This is done by going to Setup > Authentication Provider > New.

    Select Salesforce

    -Select “Salesforce” from the provided type.
    -Enter the Customer Key and Customer Secret Values, which come from the Connected App.
    -Enter the Authorize URL, which is “” and Token Endpoint URL “” .

    Fill fields
    Check Test-Only Initialization URL and Callback URL
    • Remember to copy the Callback URL and paste it into the Connected App in the org that was defined. This can be found under Setup > App Manager > Select Your App > Edit. Finally, save the changes.
    Paste CallbackURL

    It may take from two to ten minutes for the alterations you have made to take effect on the server before using the app associated with it. To test the connection, go back to Auth. Provider and open the Test-Only Initialization URL which can be found in the Salesforce Configuration section.
    Note:If you encounter an error that says “error=redirect_uri_mismatch&error_description=redirect_uri%20must%20match%20configuration,” it is likely that you have not modified the Callback URL in your app or you need to wait a few minutes.
    If everything is correct, you should be able to see a Salesforce login popup. Log in with your credentials, preferably with an integration user.

    4. Create Named Credentials

    The fourth step involves utilizing Named Credentials to assist with authorization. Salesforce will oversee any authentication for Apex callouts that identify a Named Credential as its endpoint, thus eliminating the necessity for code to perform this task.

    Setup > Named Credentials > New

    Create new Named Credentials

    1.Label – Select your API Name.
    2.Name – This name will used in Apex
    3.URL – Enter the Salesforce org URL, which is the same one where you created the Connected App.
    4.Authentication Protocol – Select OAuth 2.0
    5.Authentication Provider – Select the provider you have created before.
    6.Scope – Select the scope you need.The scope has to be linked to the Connected App and must be separated by a space.
    7.Start Authentication Flow on Save – choose to “Start Authentication Flow on Save”, you will be prompted to log into Salesforce.

    -After clicking the ‘Save’ button, log into the Salesforce org that contains the Connected App and assess the Authentication Status.
    Ideally, you should be authorized as an Integration User.

    Test authrization

    5. Remote Site Settings (Optional)
    Before testing, we need to add the endpoint URL to the Remote Site Settings, or else, Salesforce will not enable us to make a callout (when we lack Named Credentials).
    To do this, go to Setup > Remote Site Settings > New Remote Site. The Remote Site URL has to be the same as the salesforce instance containing the endpoints.

    Remote site Settings

    Once completed, we can now test the app!

    Create a new Apex class on the Salesforce org where you have previously established the Auth. Provider, Named Credentials, and Remote Site Setting.
    For reference, you can use the Salesforce Authorization Endpoints, Connected App, and Code Example.

    Open anonymous window to invoke apex methods.

    Invoke method in Anonymous

    Integrating REST APIs with Salesforce can bring a wealth of benefits to your organization, including improved data exchange, customization, automation, and enhanced functionality. By following the steps outlined in this article, you can integrate REST APIs with Salesforce to achieve your business objectives.

  • Hubspot Features

    This year has seen major updates to HubSpot’s  platform, which have made it even more efficient and effective! We’re expecting even more improvements in 2023, so it’s important to be aware of all the features available.

    Marketing Hub

    1.Scheduled Workflows
    Workflows could automate everything… But themselves! The only way to turn a workflow on was to get someone to do it. But that changed in January, as Operations Hub Professional and Enterprise users were able to schedule their workflows. When creating a new workflow, users can now choose to build a workflow that runs on a schedule and configure their schedule.

    2.Contact Create Attribution For Campaigns

    This update allowed for marketing departments to start taking credit for their wins. It allowed them to see which elements contributed towards a contact getting into the database, particularly when it came to campaigns! Marketers can now see which asset type created more contacts, as well as which interaction time and source was most efficient!

    3.Marketing Automation Available For Starter Users

    Automation is one of the big features that HubSpot has available. Yet, you had to be at a Professional tier, at least, to enjoy this tool. In April, HubSpot started offering simple to users of Marketing Starter. These simple workflows have allowed users to automate small tasks and create short workflows that could give them better insights into the valuable role nurturing can have in their marketing strategy. 
    4.Collaboration Tools
    This feature became available in May as part of Marketing Hub Professional and Enterprise and can be accessed within Forms, Campaigns, and Workflows, and was recently added to emails. And, simply, it gave users the option to leave a comment on a particular asset, so a colleague could review it and action it. You can drop a comment anywhere on the page and you would also be able to view it within the sidebar. You can choose if you want to show or hide the comment bubbles, so you can better focus.

    5.Report On Customer Journey

    This feature allows for detailed reports on the marketing interactions your contacts are engaging with, depending on the stage of the customer journey they find themselves at. his will help to ensure that your flywheel stays spinning more consistently and drives more customer engagement. This feature also made it easy to report on, understand, and optimize any part of the customer journey.