Saturday 28 December 2019

Salesforce Admin Training | Become a Salesforce Administrator

We are glad that we did Free Salesforce Admin Training in 2019 at ApexHours. Good news is that we recorded all sessions and uploaded all Salesforce training videos on our YouTube Channel. We created this Training program for a Student and new System admin to becoming a Salesforce Administrator.
Salesforce Administrator

This Salesforce Administrator Training for Beginners covered the all below topics:-
  1. Introduction to Cloud Computing and Salesforce
  2. Modelling Data in Salesforce
  3. Customizing the User Interface
  4. Aggregating & Validating Salesforce Data
  5. Automating Business Processes - Part 1(Process Builder and Workflow)
  6. Automating Business Processes - Part 2 (Flow)
  7. Automating Business Processes - Part 3 (Approval process)
  8. Managing Data Access
  9. Who Sees What in Salesforce?
  10. Auditing & Troubleshooting Errors
  11. Data Management with Salesforce
  12. Making Sense of your Salesforce Data

Episode 1 – Introduction to Salesforce


In this episode we learned about what is Cloud computing and Introduction to Salesforce. In Episode 1, we covered the following topics :-
  1. Fundamentals of Cloud Computing
  2. Customer Relationship Management Basics
  3. Creating your first Salesforce org
  4. Salesforce Classic Vs Lightning Experience
  5. Q & A
Here is recording of "Introduction to Salesforce" episode recording.

Episode 2 – Model your Salesforce Data


In this episode we covered data model in Salesforce, Difference between Master-detail and Lookup fields. We also talk about depended picklist and schema builder. Here is agenda of session Episode 2.

  1. Conventional Database Tables Vs Objects
  2. Standard and Custom Objects
  3. Datatypes
  4. Relational Data Modelling
  5. Schema Builder
  6. Q & A
 Here is recording of "Salesforce Data Model" episode recording.

Episode 3 – Customize the Salesforce User Interface


In this episode we talk about customizing Salesforce user interface to improve user experience. After checking this recording you will learn how to create Application & Tab in Salesforce, What is record Types and App Builder. In Episode 3, we covered the following topics :-
  1. App Manager & Tabs
  2. Customizing Page Layouts using Record Types
  3. List Views & Related Lists
  4. Mini & Compact Page Layouts
  5. App Builder
  6. Q & A
 Here is recording of "Customize Salesforce User Interface" episode recording.

Episode 4 – Aggregating & Validating Data


Aggregating and validating data is fundamental for all Salesforce application. This episode talks about putting validations, Duplicate Rules within Salesforce to enforce data integrity and aggregating relational records. In Episode 4, We will cover the following topics :-
  1. Formula field
  2. Data Aggregation using Roll-up Summaries
  3. Validation Rules
  4. Duplicate Rules
  5. Q & A
 Here is recording of "Aggregating & Validating Data" episode recording.

Episode 5 – Automating Business Process with Workflow, Email Template and Process Builder.


In episode 5 we talks about the declarative tools available on Salesforce to automate business processes using workflow and process builder. In this episode we talk about what is the difference between Workflow and Process Builder. And when we should use Process Builder over the workflow. In Episode 5, we will cover the following topics :-
  1. What is a Business Process?
  2. Automating Processes using
    1. Workflow Rule
    2. Process Builder
    3. Email Templates
  3. Q & A

Here is recording of "Workflow, Email Template and Process Builder" episode recording.

Episode 6 – Automating Business Processes with Flow.


In this episode we talk about how to automate your business process with flow, Difference between Workflow Vs Process Builder Vs Lightning Flow, Know the Nomenclature between Lightning flow Vs Flow Builder Vs Flow Interview. In Episode 6, we will cover the following topics :-
  1. Declarative Tools for Business Process Automation
  2. Assignment Rules
  3. Flow Builder
  4. Q & A
Here is recording of "Basic of Lightning Flow and Assignment Rule in Salesforce" episode recording.


Episode 7 – Automating Business Processes with Approval Process.


In this episode we talk about how to setup the Approval process in Salesforce and what is delegated Approver in Salesforce. In Episode 7, we coverd the following topics :-
  1. Declarative Tools for Business Process Automation
  2. Approval Process
  3. Q & A
Here is recording of "Setup Approval process in Salesforce" episode recording.

Episode 8 – Managing Data Access in Salesforce


In this episode we talk about what is the difference between Profiles and role and Permission Sets. How to enforce field level security and User Management. In Episode 8, we covered the following topics :-
  1. Profiles & Permission Sets
  2. Enforcing Field Level Security
  3. User Management
  4. Q & A
Here is recording of "Difference between Profiles and Role and Permission Sets" episode recording.


Episode 9 – Who Sees What in Salesforce


In this session we talk about Organization Wide Defaults(OWD) in salesforce and Sharing Setting. Difference between Record Ownership and Record Sharing and Profile Vs Roles. In Episode 9, we will cover the following topics :-
  1. OWD & Sharing Settings
  2. Record Ownership
  3. Record Sharing
  4. Profiles Vs Roles
  5. Q & A
Here is recording of "OWD & Sharing Setting" episode recording.

Episode 10 – Audit & Troubleshoot Salesforce Data


In this session we talk about audit logs and field history Tracking include debug logs. In Episode 10, we will cover the following topics
  1. Audit Logs & Field History Tracking
  2. Debug Logs
  3. Email Logs
  4. Login History & IP Whitelisting
  5. Q & A
Here is recording of "Audit & Troubleshooting of Salesforce Data" episode recording.


Episode 11 – Data Management in Salesforce


In Episode 11, we will cover the following topics :-
  1. Data Loader
  2. Uploading Relational Data in Salesforce
  3. Best Practices for Data Management
  4. Q & A

Here is recording of "Data Loader & Import Wizard" episode recording.

Episode 12 – Reports & Dashboards.


This episode talks about the tools available to effectively report on the data within Salesforce to measure performance in Key Business Areas. In Episode 12, we will cover the following topics :-
  1. Report Types
  2. Standard & Custom Report Types
  3. Dashboards
  4. Share and Schedule Report/Dashboard
  5. Q & A
Here is recording of "Lightning Report and Dashboards" episode recording.









All the best for your Salesforce certifications.


We did 12+ sessions with our 5 speakers ( Jigar Shah, Amit Singh, Atul Rajguru and Purushottam Bhaigade , Jayesh) and we got 1300+ registration.

Thank you so much for all our Apex Hours Speaker to help all Student.

Here is some more useful playlist for New Salesforce Developer or Admin.
1) Setup Salesforce Community
2) Basic of Java Script.
3) Marketing Cloud.




Thanks,
Amit Chaudhary

Saturday 14 December 2019

Introduction to Salesforce Marketing Cloud

In this post we will talk about what is Salesforce marketing cloud and how to get started with Marketing cloud email Studio. Salesforce Marketing Cloud is a provider of digital marketing automation and analytics software and services. Marketing cloud is the platform for delivering relevant, personalized journeys across channels and devices – enabling marketers to deliver the right messages to the right people via the right channel

Introduction to Salesforce Marketing Cloud

What is Marketing Cloud ?

  1. Marketing Cloud is comprised of a suite of studios and builders (Email Studio, Journey Builder, etc.).
  2. The platform lets you manage messaging through multiple channels: email, sms, ads, and push.
  3. Automation Studio and Journey Builder allow customers to automate their marketing programs to increase reach and efficiency.
  4. Tracking and reports provide analytics that allow customers to measure and improve their programs.
  5. The API and SFTP enable integration with any external system. Customers use these to integrate with web analytics, data warehouses, CRM systems, POS systems, custom apps, and more.



Product
Description
Audience Studio
Capture data from any source and device, then unify, segment, and activate audiences to create valuable customer experiences
Data Studio
Expand your reach with a data sharing platform where publishers can share 2nd party data with marketers in a trusted and transparent way
Google Analytics 360 Gain cross-channel insights for seamless customer journeys with Google Analytics 360 + Marketing Cloud.
Social Studio
Listen, publish, and engage to create customer advocates. Connect social to marketing, sales, and service in one platform powered by AI.
Journey Builder
Deliver cross-channel personalized experiences at every step of the customer lifecycle with campaign
Interaction Studio
Visualize, track, and manage customer experiences with real-time interaction management—driving valuable engagement at the right moment
Email Studio
Use data from every department to build smarter email—from basic marketing campaigns to sophisticated 1-to-1 messages
Mobile Studio
Send consistent SMS, push, and chat app messages in real-time
Advertising Studio
Use CRM to securely power 1-to-1 advertising across Google, Facebook, LinkedIn, Twitter, Pinterest, and Display at scale




Check this recording to learn about basic of Marketing Cloud. We did the session in ApexHours. The aim of this session was to conduct a basic introduction of the different studios and builders in Marketing Cloud and demonstrate a live walkthrough of setting up a campaign which will touch on data design and automation best practices.


Development Process




Marketing Cloud – Email Studio

Email Studio Create 1-to-1 customer journeys with personalized email marketing at scale. Email studio is great channel for reaching customers, email is better in conversions, Customers trust email It’s easy to track customer behavior —like which emails they open, which links they click, which offers they redeem, and on which devices. With Email Studio you can build great emails, segment and target your audience, and send with confidence—all without any coding. Share content development across channels: Easily tag, search, and share content across distribution channels—including email, social, and mobile using Content Builder—for content creation and management at scale.

Subscriber

A subscriber List is a Collection Of Subscribers Who Opted-in to receive email communication from marketing cloud. Subscriber automatically belong the standard all subscriber list, and additional subscriber list an be created to segment subscriber for targeted email communication.


Data Modeling & Segmentation

 

List

  1. Lists are the default method of storing subscriber data in the Email application.
  2. They require minimal configuration and setup.
  3. They are used for sending. You send to a list in your account.
  4. Lists use the standard profile and subscription centers.
  5. Email address and Subscriber Key attributes are required.
  6. Limited Field Types
  7. Less than 500,000 Subscribers

Data Extension

  1. A data extension is a flat file of data that you can relate to another data extension via AMPscript.
  2. All data extensions are custom tables. They provide a flexible data model, and they tend to run faster and handle larger loads of data.
  3. Data extensions can contain subscriber data, just like a list. If they contain data about subscribers and are marked as used for sending, they are called Sendable Data Extensions.
  4. Data extensions can also contain other data, like purchases, web analytics, and even URLs to images that you want to display. These are called Non-Sendable Data Extensions.
  5. More than 500,000 Subscribers
  6. Complex Relationships
  7. Triggered Sends
  8. SOAP and REST APIs
  9. More Field Types

 

Tracking

Tracking is a result of your email send. Within tracking, you can view critical elements, such as email opens, clicks, and other metrics online.

 

Send Flow

  1. Properties: Email, Subject Line, Send Classification, etc.
  2. Audience: Target, Exclusion, Suppression, etc.
  3. Delivery: Schedule, Send Throttling, Advanced Properties
  4. Review: Check and correct errors before sending
  5. Increase Confidence: See what you’re sending and reduce errors.

 

A/B Testing

  1. Simple tool used to optimize email campaigns.
  2. Used to market test two versions of an email to two audiences.
  3. Automatically splits audience, calculates winner, and can send winner to remainder.
  4. Uses the email's engagement data to automatically determine and distribute the winning email.
  5. Perform A/B Testing on:
  6. Subject Lines, Emails, Content Areas, From Names, Send Dates and Times, Preheaders

Please check this apex hours session to learn about marketing cloud email studio.



Please share your feedback if you like this post.

Thanks,
Amit Chaudhary




Friday 15 November 2019

Salesforce Virtual Dreamin

Virtual Dreamin

We are glad to announce the world first Salesforce Virtual Dreamin after a great success of Apex Hours, Automation Champion and Path To Code virtual program. All these events got fantastic response from various part of globe because it can be attended by anyone from anywhere.

This Idea and huge response from audience, on how convenient it is to join conference or remote meetings inspired the idea of First Salesforce Virtual Dreamin.

"Geographical location is not an obstacle anymore. Join Dreamin from anywhere on planet"

Virtual Dreamin would be running for 24 hours for 2 days, so that everyone would get chance to join sessions in their timezone. Save the date MAY 16-17 2020 and follow us on Virtual Dreamin Website for more detail.

Virtual Dreamin is focused for all audiences who wants to start or advance their career in Salesforce. All the session will focus on all below track
  1. System Admin
  2. Salesforce Developer
  3. Architect

FAQ
  1. What is Virtual Dreamin ?
    This is a community driven event for community. Where we will joins lots of Virtual Salesforce sessions.
  2. Who Can Attend?
    Any one who want to become Salesforce Admin, Salesforce Developer or Salesforce Architect.
  3. Why Should I Attend ?
    You get to witness inspiring keynotes and sessions by some of the best from Salesforce.
  4. How to register ?
  5. What is the registration fee ?
    Free, Yes this is free event which you can join from your home or office. You only need one good Internet Speed.

Follow us
  1. Facebook
  2. Twitter

Please share your feedback and let us know what you want to learn in Virtual Dreamin


Thanks,
Amit Chaudhary
Founder of ApexHours and Virtual Dreamin.
Salesforce MVP

Friday 8 November 2019

Import and Export Data using SalesforceDX (SFDX)

Import and Export Data using SalesforceDX (SFDX)


In this post we will talk about Data migration using SalesforceDX. We have a vary simple use case to Import and Export data from one Salesforce Org to another Salesforce Org. We know we can do the same with dataloader or some other custom tool. But in this post we will talk about how to import and export with SalesforceDX (SFDX). If you are new to SalesforceDx please check this ApexHours Session Recording by Jitender Zaa.


How to export records with SFDX


 Step 1) First Login to your Salesforce Org from where you want to export data

sfdx force:auth:web:login --setalias myDev1

Step 2) Use below command to export the data

To Export the data we need to use "sfdx force:data:tree:export" command and we need to pass one Soql query. You can also pass the path of SOQL query file with the help of -q. Lets export the Account and its all related contacts records.

sfdx force:data:tree:export -q "SELECT Id,Name,(Select FirstName,LastName from Contacts) FROM Account limit 2" -d ./data -p -u myDev1

Here
-q : SOQL query or file path of soql query.
-d : directory, where exported json file can be saved
-u : Salesforce user to perform operation
-p : generate multiple sobject tree files and a plan definition file for aggregated import


Once you execute above command it will create three file for you in Data Folder.
  • Accounts.json
  • Contacts.json
  • Account-Contact-plan.json

How to Import data using Salesforce DX


First login to salesforce org in which you want to import the data. Then use below command to Import records in Salesforce instance, which we just exported in previous step

sfdx force:data:tree:import -p data/Account-Contact-plan.json -u myDev1

Where
-f : JSON file to be imported
-p : plan file
-u : Salesforce user to perform operation

The query for export can return a maximum of 2,000 records. For more information, see the REST API Developer Guide:
 

NOTE: For above use case you don't need any scratch org. You can simply login in any sandbox and migrate your data between two org's.


There is another Use case where we can use SalesforceDx for Import and Export Data.

Use Case: If you are implementing Continuous Integration (CI/CD) solution built for Salesforce, Some time you need to upload sample data into Salesforce.

Solution: For that you need to use command line dataloader or custom tool built to import export data automatically. We can use SalesforceDX for data import and export as well for this requirement.


Related Post :



Further Reading:

Thanks,
Amit Chaudhary

Friday 18 October 2019

Lightning Message Service (LMS) | MessageChannel

In Winter 20 Salesforce Introduce the new feature Lightning Message Service and it is generally available in Summer 20. Lightning Message Service (LMS) allow you to communicate between Visualforce and Lightning Components (Aura and LWC both) on any Lightning page. LMS API allow you to publish message throughout the lightning experience and subscribe the same message anywhere with in lightning page. It is similar to Aura Application Events to communication happens between components.


Lightning Message Service is based on a new metadata type: Lightning Message Channels. We need to use Lightning Message Channel to access the Lightning Message Service API.
  1. In LWC we can access Lightning Message Channel with the scoped module @salesforce/messageChannel
  2. In Visualforce, we can use global variable $MessageChannel
  3. In Aura, use lightning:messageChannel in your component

 

When to use Lightning Message Service. 

In Lightning Experience, if we want a Visualforce page to communicate with a Lightning web component then we have to implement a custom publish-subscribe solution because this is currently not possible with LWC Event. Now, we can use the Lightning Message Service API to handle this communication.
Lightning Message Service LMS and Message Channel


Let see how we can implements this

Create Lightning Message Channel :-

Currently we can create Lightning Message channel with Metadata API. You can create the same with the help of VsCode. I hope you have VsCode installed in your machine if not please check this post. You need to create one DX project then you need to place your message channel definition with the suffix .messageChannel-meta.xml in the force-app/main/default/messageChannels directory. like below folder structure.

MyMessageChannel.messageChannel-meta.xml
<?xml version="1.0" encoding="UTF-8"?>
<LightningMessageChannel xmlns="http://soap.sforce.com/2006/04/metadata">
   <masterLabel>MyMessageChannel</masterLabel>
   <isExposed>true</isExposed>
   <description>This Lightning Message Channel sends information from VF to LWC</description>

   <lightningMessageFields>
       <fieldName>messageToSend</fieldName>
       <description>message To Send</description>
   </lightningMessageFields>

   <lightningMessageFields>
       <fieldName>sourceSystem</fieldName>
       <description>My source?</description>
   </lightningMessageFields>

</LightningMessageChannel>

And Package.xml should be like below
package.xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types>
       <members>*</members>
       <name>LightningMessageChannel</name>
    </types>
    <version>47.0</version>
</Package>
Right click on LightningMessageChannel file and Deploy in Org.

 

Create Visualforce page and LWC

 

1) LMS with Visualforce page

Salesforce introduced new sforce.one APIs — publish, subscribe, and unsubscribe — in Visualforce to interact with LMS (only available in Lightning).

LMSVisualforcePage.page
<apex:page>
  
    <div>
        <p>Enter Your Message Here:</p>
        <input type="text" id="theMessage" />
        <button onclick="publishMC()"> Publish Msg</button>
        <br/><br/>
            <button onclick="subscribeMC()">Subscribe</button>
            <button onclick="unsubscribeMC()">Unsubscribe</button>
        <br/>
        <br/>
        <p>Received message:</p>
        <label id="MCMessageText"/>
    </div>
  
    <script>
      
        // Load the MessageChannel token in a variable
        var SAMPLEMC = "{!$MessageChannel.MyMessageChannel__c}";
        var subscriptionToMC;

        function publishMC() {
            const message = {
                messageToSend: document.getElementById('theMessage').value,
                sourceSystem: "From VisualForce Page"
            };
            sforce.one.publish(SAMPLEMC, message);
        }
      
        // Display message in the textarea field
        function displayMessage(message) {
            var textLabel = document.querySelector("#MCMessageText");
            textLabel.innerHTML = message ? JSON.stringify(message, null, '\t') : 'no message payload';
        }

        function subscribeMC() {
            if (!subscriptionToMC) {
                subscriptionToMC = sforce.one.subscribe(SAMPLEMC, displayMessage);
            }
        }

        function unsubscribeMC() {
            if (subscriptionToMC) {
                sforce.one.unsubscribe(subscriptionToMC);
                subscriptionToMC = null;
            }
        }

    </script>

</apex:page>

  • "subscribeMC" method is used to subscribe the Message Channel with "sforce.one.subscribe(SAMPLEMC, displayMessage);"
  • "unsubscribeMC" method to unsubscribe the Message Channel with "sforce.one.unsubscribe(subscriptionToMC);"
  • "publishMC" to publish the message withe the help of "sforce.one.publish(SAMPLEMC, message);"

2) LMS with Lightning Web Components

lMCWebComponentDemo.js
import { LightningElement,track } from 'lwc';
import { publish,subscribe,unsubscribe,createMessageContext,releaseMessageContext } from 'lightning/messageService';
import SAMPLEMC from "@salesforce/messageChannel/MyMessageChannel__c";

export default class LMCWebComponentDemo extends LightningElement {
    @track receivedMessage = '';
    @track myMessage = '';
    subscription = null;
    context = createMessageContext();

    constructor() {
        super();
    }

    handleChange(event) {
        this.myMessage = event.target.value;
    }

    publishMC() {
        const message = {
            messageToSend: this.myMessage,
            sourceSystem: "From LWC"
        };
        publish(this.context, SAMPLEMC, message);
    }

    subscribeMC() {
        if (this.subscription) {
            return;
        }
        this.subscription = subscribe(this.context, SAMPLEMC, (message) => {
            this.displayMessage(message);
        });
     }
 
     unsubscribeMC() {
         unsubscribe(this.subscription);
         this.subscription = null;
     }

     displayMessage(message) {
         this.receivedMessage = message ? JSON.stringify(message, null, '\t') : 'no message payload';
     }

     disconnectedCallback() {
         releaseMessageContext(this.context);
     }

}
  • First, we have to ensure that we import both the methods to interact with LMS
    import { publish,subscribe,unsubscribe,createMessageContext,releaseMessageContext } from 'lightning/messageService';
    import SAMPLEMC from "@salesforce/messageChannel/MyMessageChannel__c";

lMCWebComponentDemo.html
<template>
    <lightning-card title="LMC Web Component" icon-name="custom:custom14">
        <div class="slds-m-around_medium">
            <p>MessageChannel: MyMessageChannel__c</p>
            <br>
        </div>
        <!-- Default/basic -->
        <div class="slds-p-around_medium lgc-bg">
            <lightning-input type="text" label="Enter some text" value={myMessage} onchange={handleChange}></lightning-input>
            <lightning-button label="Publish" onclick={publishMC}></lightning-button>
        </div>

        <div class="slds-p-around_medium lgc-bg">
            <lightning-button label="Subscribe" onclick={subscribeMC}></lightning-button>
            <lightning-button label="Unsubscribe" onclick={unsubscribeMC}></lightning-button>
            <p>Latest Message Received</p>
            <lightning-formatted-text value={receivedMessage}></lightning-formatted-text>
        </div>

    </lightning-card>
</template>


Reference:

Some other related post:
  1. Event Communication in Lightning Web Components
  2. Event Communication in Lightning Components
  3. Setup VsCode for Salesforce
  4. Lightning We Components

Thanks
Amit Chaudhary