Our Salesforce Consulting Team steps through a simple MuleSoft Integration
At Girikon, a Salesforce Consulting Company we believe Salesforce is the world’s no. 1 cloud platform based on CRM (Customer Relationship Management) capabilities. Early last year Salesforce agreed to acquire MuleSoft for a mutli-million-dollar cash and stock deal. MuleSoft, a software company that provides integration software for connecting applications, data and devices.
Girikon’s Salesforce Consultants specialise in many Salesforce products and after the announcement our consulting team gained certifications in MuleSoft. Girikon is commitment to keeping ahead of the pack with knowledge and certifications for leading technologies.
In this blog we are focusing on Salesforce integration with MuleSoft.
Firstly, we will need a Salesforce developer account by clicking on the following link:
https://developer.salesforce.com/signup.
Then a MuleSoft account by clicking the following link:
https://anypoint.mulesoft.com/login/signup.
In this first example we can send a couple of contact records to Salesforce with the help of MuleSoft. For this we have to download any point studio which is a MuleSoft IDE by clicking on this link https://www.mulesoft.com/lp/dl/studio.
We are going to use any point studio for this data transfer. First download the any point studio. Then extract the zip file in your directory and the click on the application to install it. After installation is finished click on the any point studio icon it will launch a wizard like shown in the figure below.
Fig: – Launch Wizard of Any point Studio
Click on the launch button after selecting the directory of your workspace. It will then open the any point studio as shown in the figure below.
Fig: – Any point Studio
Open the example project in Any point Studio from Any point Exchange by logging into your MuleSoft account.
Download Import Contacts into Salesforce application. Note: do not run the application.
Login to your Salesforce account.
In the left navigation bar, open My Settings under the Personal Setup heading, click to expand the My Personal Information.
Click Reset My Security Token. Salesforce resets the token and emails.
Open your mail account where the security token is sent and copy the token onto your local clipboard.
Now open your Any point Studio after downloading and opening the application it will look like as shown in the given fig.
Fig: – Any point Studio with application
In your application in Studio, click the Global Elements tab. Double-click the Salesforce SFDC config global element to open its Global Element Properties panel.
In the Security Token field, paste the Salesforce token that you copied from your mail.
Alternatively, configure the global element in the XML Editor.
Change the contents of the Username and Password fields to your account-specific values, then click OK to save your changes.
This application project includes a sample CSV file, contacts.csv, that you can use to view the end-to-end functionality of this application. The CSV file will look like this.
Fig: – contacts.csv
In the Package Explorer, click the src/main/resources folder to expand it, then find the contacts.csv file inside this folder. Double-click the File config tab in the Global Elements tab and set the Working Directory field to point to the src/main/resources folder. In the Package Explorer, right-click the import-contacts-into-salesforce project, then select Run As > Mule Application.
Studio runs the application on the embedded server. After the application runs successfully it will create two contacts records in salesforce which the csv file contains. Open your salesforce account, then navigate to the Contacts tab. It will show you two new entries: John Doe and Jane Doe.
Fig: – Two new contacts created
About Girikon
Are you looking for a Salesforce Integration expert? At Girikon it is where the search ends. Girikon is a Salesforce Consulting Partner and has the required set of tools, skilled resources and technical knowledge to understand the platforms an organisation uses and transforms your existing systems to a truly interoperable solution.
Girikon’s Certified Salesforce Consultants understand the rapid increase of mobile, cloud and social platforms. They are here to assist customers who are left to their own devices to develop a solution for their organisation. Girikon Salesforce Consulting Services team made up of Architects, Developers, Business Analysts, QA experts have the required knowledge and are certified to design and delivery integrations to suit your needs.
Our Service team are cost-effective, and our Consultants will develop a strategy to bring together a quality solution which can be across multiple applications and technology platforms such as Salesforce, Microsoft, Oracle, Abode, SAP etc.
Girikon’s Salesforce support team are regularly asked questions about WalkMe interfacing with Salesforce where they initially need to highlight capabilities and benefits once integrated. Girikon, a Salesforce Implementation Partner is proactive and with the assistance of their Salesforce Support consultants outline WalkMe’s benefits such as acceleration time to competency during training, improvement of data integrity, promotion of new Salesforce features and productivity gains. Girikon’s team work closely with existing clients to integrate Salesforce to WalkMe with the knowledge that as a Salesforce Implementation Partner there is a high probability that these type of integrations will be within project scope for new clients.
WalkMe is a cloud platform that assists product managers and customer success managers to create product tours and manage in-app experiences. Without a doubt, WalkMe is one of the first in the user onboarding market. Because of its huge and recognisable brand, it is probably the first choice for many companies. It helps you to onboard and adopt more users by creating different walkthroughs inside your application. Through WalkMe’s dashboard, you can easily see all your user onboarding data and analytics. Because of its strengths and powers, WalkMe is a great tool for larger enterprises. But because of its pricing and hard to use, it isn’t the best option for start-ups, SaaS or small and medium businesses.
Using the Salesforce integration, you can push WalkMe Insights data to Salesforce objects to enhance your understanding of end-user behaviour. Girikon’s Salesforce Consultant Deepanshi takes us through a step by step guide to set up WalkMe and Salesforce integration below.
Requirements
The following items are required before attempting to setup WalkMe:
You must be a Salesforce admin or contact your Salesforce admin in order to add custom fields to your targeted Salesforce object(s)
You must have a Salesforce user that either has Salesforce admin access or ModifyAllData permissions to grant WalkMe access to OAuth 2.0 authorization to read and update the metadata of Salesforce objects (this access can be revoked by the Salesforce Admin at any time)
Walkme is an on-premise solution – so for different purpose you must install it before using it. This can become a little bit messy, since installing Walkme inside your system requires a lot of technical knowledge. So, you need to put a lot of effort just to see how Walkme works.
Salesforce is one if the leading CRM platforms used across the globe. According to Girikon’s Salesforce Consultants it is one of the largest and widely used CRM software in the market. Salesforce has two types of storage i.e. Data storage and File storage. File storage includes attachments, items a user has uploaded into the Documents tab, and Salesforce CRM Content. Contact Manager, Group, Professional, Enterprise, Performance, and Unlimited Editions are allocated 10 GB of file storage per org. Essentials edition is allocated 1 GB of file storage per org. All other data, including activities is considered a record and counts towards your Data Storage allocation. Data Storage limits for every Contact Manager, Group, Enterprise, Professional and as well Performance editions are calculated at either 1 GB or on a per user limit (20 MB per user) whichever is required for production orgs. For a business keeping their expenses in check keeping an eye on storage limits is the main goal.
We all agree that Salesforce is a great CRM but when it comes to licence pricing it can get very expensive when you consider licence per users etc. If the organisation’s concern is storage cost and the users are continually uploading data at an alarming rate, then it is important to apply Girikon’s strategy for managing the orgs data. Emails and Cases are very crucial pieces of information and they can take up a lot of space. Each email takes around 2Kb – 10Kb data (it varies on a case by case basis depending on the email content) and each attachment sent alongside the email can be up to 20Mb. Management of the orgs data can be more effective by managing by archiving and then restoring the emails when needed.
The Archiving strategy is very simple, and it has proved to be very effective. Our Salesforce Consultancy Services team often advise users to use the two custom buttons which are Archive and Retrieve which does all the work for the users. When clicking on archive, the emails in the related list gets archived or gets stored as an attachment.
Before sending or receiving the email.
After sending the email. The email is showed in the email related list and the data storage is increased.
When the archive button is clicked.
A visual force page pops up to ask you that “Are you sure you want to archive?”
After archive the email gets into the attachments and the data storage is decreased.
Let us explore the backend logic behind the storage when an email is sent or received, it creates a record in emailMessage object and the attachments along with that email creates a record in attachment object in salesforce. The record that is created has a parent Id equals to the case Id and the attachments that were sent along with that email have their parent Id equal to the email record Id. So, when we hit on archive button the code runs in the background which creates a new record or file i.e. email(emailId).txt in the attachment object which have the email and its details such as: – BccAddress, CcAddress, TextBody/HTML body etc. And for the attachments that were delivery with the email, the parent Id of those gets re-parented and now is equal to the caseId. After that the email record in the emailMessage Object gets deleted which reduces the Data Storage.
Email retrieving is also necessary after the user has archived as per the step above to be viewed at a future date. There is also an opportunity for the user to delete the emails.
Click on retrieve button.
A visual force page pops up and asks, “are you sure you want to retrieve?”
The email is retrieved. And the data storage is increased.
Let us explore the backend logic behind the storage when an email is retrieved. Code is written in such a way that it reads body of email(emailId).txt and then creates a new record in the emailMessage object from it. For the email attachments, they are again re-parented back to the email with the help of a custom field which the system created in the emailMessage Object to retrieve the attachments. The custom field contains the old Id of the email when it was not archived. After all this is done the code deletes the email(emailId).txt file from the attachments.
About Girikon
Girikon is a Salesforce Consulting, Oracle Gold, Microsoft Application, Adobe Bronze Technology Partners. We are also ISO 9001 Quality Management and ISO 27001 Data Management system certified. Girikon’s Headquarters are in the US, with offices in AUS and Technology centre in Noida India with over 150 employees across the three offices. Girikon is a Salesforce Consulting Company that provides cost effective services through a hybrid offshore/onshore model, quality delivery and great testimonials.
Girikon’s Salesforce Consulting Services team are certified and experienced with both Pardot and Salesforce Marketing Cloud. They have a depth of knowledge about both automated marketing solutions and have many insights to share.
Pardot and Salesforce Marketing Cloud are both marketing automation solutions where Pardot can be seen as a tool, Salesforce Marketing Cloud is seen a comprehensive toolkit for Marketeers. Both Pardot and Salesforce Marketing Cloud both allow for a level of social media sharing through their tool/toolkit and both also grant a user access for building custom email campaigns.
Despite these similarities, Pardot and Salesforce Marketing Cloud have some differences including the Lead Scoring Model. does not include a lead scoring model however Pardot has default scoring functionality and model that allows for various prospect activities to be scored.
In this Blog our Salesforce Consultant will endeavor to show a user how to generate lead scoring from Email based on [_Sent], [_Open] & [_Click] Data Views.
Data from [ _sent ] , [ _open ] & [ _click ] by join operation in query to be saved in Data Extension ‘ DE_1’ :
Simple perform a Query and join these data view in a separate Data Extension based on
your JobID.
Ex:
from [ _sent ] as a full JOIN [ _open ] as b on
a.[subscriberkey]= b.[subscriberkey] full join [ _click ] as c
on b.[ subscriberkey ] = c.[ subscriberkey ]
Where a.[ JobId ] = < JobID >.
For your reference: join syntax: https://www.w3schools.com/sql/sql_join.asp.
Create a Data Extension with default score value and save it in Data Extension ‘DE_2’:
Import a file containing subscriber key & Initial Score using Import wizard and save these records in separate Data Extension.
Note: At least match a few SubscriberKey with ‘DE_1’ while creating import file.
Join the two Data (DE_1 & DE_2) Extensions and save it to third Data Extension (DE_3):
Using case Statement in Query increment or decrement your Initial Score and save it in ‘Updated Score’ field in the target Data Extension which I have mentioned below in figure (3.2). Along with join these two Data Extension and save it to the Third Data Extension using Query based on SubscriberKey.
Ex:
CASE
WHEN a.[ < Column name > ] IS NOT NULL
THEN [ Initial Score ] +
ELSE [ Initial Score ]
END AS [ Updated Score ]
For reference: Case Statement : https://www.w3schools.com/sql/sql_case.asp.
Create an Automation and Run the following Activities:
After Running these Activities in Automation your records will be updated in Data Extension with updated score:
About Girikon
Girikon is a Salesforce Consultancy Partner, IT consulting and development company, headquartered in the US with development centre in India and office in Australia. Our Global network allows Girikon to quickly respond to customer’s requirements effectively delivering quality outcomes.
Girikon’s team of experienced and certified Salesforce Consultantsincluding Architects, Developers, Consultants, and Administrators.
Our MEAN Stack, Atlassian APP, Microsoft Dynamics CRM, Mobile APPs, JAVA, PHP, ASP, .NET and AI consultants and professionals also provide services which are second to none.
Our customers and services are many and varied from large multinational companies implementing large programs to small-medium enterprises implementing solutions to improve their competitiveness.
Girikon also supports its customers on all leading technology platforms and Girikon’s team of dynamic, seasoned and qualified professionals have a vast experience in IT across many verticals, Product development including design, testing, support and supported by resourcing / staffing models to suit any type of business.
Our Vision is to develop scalable & simplified solution for our clients.
Salesforce is a cloud-based CRM (Customer Relationship Management) software. It offers which offers great products in almost every field such as Sales, Support, Marketing, etc., and aids all kind of businesses (big or small) in their day to day activities.
Girikon’s Girikon’s Salesforce Consulting Services Team member Nirupuma Shree discusses some of the key features of Salesforce which have aided business’ in their everyday activities:
Contact Management-
In the Salesforce, the sales rep can record the contact details and then track their progress against a company (Account) which is linked and opportunities they are tagged. The tracking is seamless and with teeny-weeny human effort.
As Salesforce is a cloud-based CRM, it gives freedom to the user to add or edit contact’s information anywhere and at any point of time and the users will have the updated contact details available to them instantly.
By integrating Social CRM with Salesforce CRM, the sales rep can also view and examine the conversation (with salespeople) that contacts are having on social networks.
Opportunity Pipeline Management-
With Salesforce Opportunity Management, the sales rep can focus more on closing a deal. Track minute details on the opportunity detail page without missing out on any of it. The sales rep can track the products tagged to an opportunity and its price, quantity and product type
The user can set up payment terms, special instructions or any other details. The user can generate quotes & contracts automatically by setting up workflows and on the selected templates.
Analytics and Forecasting-
With the help of Einstein Analytics, the sales rep can view business data at a glance. Salesforce offers customizable dashboards and reporting tools which provide key performance data and much more to boost sales.
Through Salesforce Forecasting, the sales rep can get an expected sales revenue based on the roll-up of a set of opportunities.
Marketing Campaigns-
Salesforce Marketing Campaigns can benefit the users in several ways like assisting in setting up Google AdWords, sending campaigns across multiple channels and getting leads to the CRM from the campaigns sent.
Let us also discuss some of the key benefits which sales rep receive by using Salesforce CRM:
Integrations with the 3rd Party Applications-
The user has the liberty to install Salesforce apps such as the Smart SMS from Girikon into the Salesforce Org without the need of programming. Most of the applications have some basic steps for installation which helps in installation.
Easily Accessible-
The Sales rep can access their data, records anytime and anywhere on Salesforce CRM, thanks to its mobile app. It is a perfect tool for users who want to get connected to their sales members and to the sales rep who wants to get updated with the progress of their opportunities.
Setting up Activities-
Salesforce offers a wide range of features which can be used by the Sales Managers to keep things moving. They can create a task or tasks and assign to their team members, send mail to the client from the record detail page.
With this, I am ending today’s article on Salesforce CRM – Key Features & Benefits. Apart from the above-mentioned features & benefits, there are abundant of features which help sales reps to close deals. If you have any query related to this article or want to know more about Salesforce CRM or if you require Salesforce Consulting Services, then do contact us at sales@girikon.com
About Girikon
Girikon a Salesforce Consulting Partner has a collaborative approach to assist with the development of a pragmatic roadmap Salesforce Adoption. Girikon’s clearly defined Roadmap, Strategy and Change Management methods will bring you success and ensures a positive engagement with leads, prospects and customers. This can be extended to an organization’s employees and ensures the transformation is adopted by all in your business. Girikon’s Salesforce Consulting Services apply best of breed methodologies which will assist you to fine-tune your business processes to meet your objectives.
Girikon will not be matched in Salesforce Consulting Expertise and have proven experience in implementing Salesforce solutions across all industries.
If you are looking for Salesforce Development Services Girikon will translate your requirements into real business outcomes and real solutions which will push the boundaries of the possible to positive outcomes.
According to Girikon’s Salesforce Consulting Services Team JavaScript has progressed very rapidly in recent years and is still a very powerful programming language that runs on various platforms. If you’re learning JavaScript in 2017 and you haven’t touched ES6, you’re missing out on an easier way to read and write JavaScript.
ES6 refers to version 6 of the ECMA script programming language. ECMA script is the standardized name for JavaScript and version 6 is the next version coming after version 5 which is a major enhancement of JavaScript.
Let’s start
Before ES6, the only way that we could declare a Variable in JavaScript was using the var keyword. When we declared a variable using var Keyword inside a Function. This means that the Scope of that variable would exist only within the Function in which it was declared. And it still makes sense if we declared global variable (outside of a function).
Let’s see this example:
What do you think it will print? 1 or 2?
It will print both value (1 and 2) in the function, firstly 2 and then 1. This is because function scope 2 is printed when the function is called and because of the global scope, 1 is displayed the second time.
Most of you would have get this easily and everything is great until we encounter code inside an if Statement like the example below:
The code print 2, twice because the var keyword does not support block scope. This example makes no sense to you. A block is any code within curly braces. Block scoping ensures that any variable defined within those braces don’t become global instead they have local scope this type of control prevent you from unexpected behaviour in your code.
“Let” Is the new Var
The lack of block scoping has caused many headaches for JavaScript developers especially during variable declaration in for loops. So, for this ES6 introduced Let Keyword any Variable assigned with let always have block scope and cannot be hoisted. If we will use let keyword instead of var then it will be less error prone and avoid all the confusing bugs.
Const
ES6 also introduced another keyword const this can be useful when you need to declare a variable that cannot be redeclared. Const keyword are also blocked scope and cannot be hoisted. However, there are couple of things to be aware of when using the const keyword since const value cannot be reassigned, they must be initialized at the time they are declared.
Just don’t forget that constants are immutable so when dealing with objects or arrays, only the object itself cannot be reassigned. Property within that object or array can be changed example:
We can execute the following code and the name property will be reassigned without throwing an error.
Why type the same thing twice?
Developers are always trying to get data in and out of arrays or objects so for this they use code where the property of an object are initialized using variables like:
In ES6 you no longer must repeat yourself if the variables and object property names are the same. This code accomplishes the same thing:
All we did here was remove the repeating variable name and colon (:). This is very useful when we have objects containing many fields.
ES6 also provide a simpler way of getting out of array or objects. This helps reduce repetitive lines of code example:
You can now access the data through the variable names. So here the number 1 would be Printed to the console. But instead of this you can use another shortened method known as array DE structuring.
The bracket on the left side of the assignment are part of the new DE structuring syntax. So, this is something like four variables named one, two, three, and four and assign the first value in the numbers array to variable one, the second value to variable two, and so on. Shorter, sweeter, great.
We think that once you start working with ES6, you will come to love them as much as we do.
About Girikon
Girikon are IT Development and Salesforce Consulting Company. An excellent choice to be an organisation’s Salesforce Development Partner.
As a Software Development Company, we will take the time to meet your requirements. We have a variety of
INTRODUCTION
When working on any object in Salesforce and with records we want to edit we can do it however when another user is also editing the same record at the same time in same Salesforce org then both users will have the previous save details to edit. Here is the detail of the problem, the user who saves the record first will change the details then the other user editing the same record is still editing the previously saved record. This causes issues when the second user doesn’t know the first record has changes and they are just about to change an old record.
As a Salesforce Consultant I have had the QA team reject a piece of functionality due to changes to multiple changes to the same Salesforce object where I am either first, second or even the third user to make the changes to the same object. Girikon’s Salesforce Consulting services team is made up of hundreds of Salesforce consultants and as many as 10+ could be working on the same project at one time which sometimes makes it difficult for all consultants to know which objects the other consultants are editing.
THE SOLUTION IS EASIER THAN YOU THINK…
Now let’s think about the solution. We could lock the record for other users. This is a great feature so that second and third users must refresh in order to get the new details.
Whenever two or more users open the Salesforce object record to edit then the user who triggers the first save event has priority and will be able to save the record. When the second user saves the changes then user will get locked and the record will not get saved. To remove the lock, the second user will need to refresh and re-open the editing Window for that particular record. Now the user will be presented the new details which were saved by the first user. I have developed a practical guide below to assist with eliminating the problem.
FOLLOW THE STEP BY STEP SOLUTION BELOW…
First, the records of the object (that you want to edit) should be displayed on the screen through visual force page or lightning.
Now select a record whose details you want to edit .
If two or more users are editing the same record at the same time, then the user who will click on the save button on priority will only be able to save the record.
If other users click on the save button the they will get directed to a new page which will show the message to refresh the page.
For creating this you must add the below mentioned Visual Force code in your VF page.
<apex:page controller="lockingMachenismForAnyObject" sidebar="false">
<apex:form >
<apex:pageBlock >
<apex:pageBlockSection>
<apex:inputText value="{!searchName}" label="ENTER THE NAME TO EDIT"/>
</apex:pageBlockSection>
<apex:commandButton value="search" action="{!search}">
</apex:commandButton>
<apex:pageBlockTable value="{!ReturningList}" var="v">
<apex:column headerValue="USER NAME" title="NAME">
<apex:outputField value="{!v.name}"/>
</apex:column
<apex:column headerValue="USER PHONE NUMBER" title="PHONE NO">
<apex:outputField value="{!v.phone}"/>
</apex:column
< apex:column headerValue="USER FAX NUMBER" title="FAX NO">
<apex:outputField value="{!v.fax}"/>
< /apex:column>
< apex:column headerValue="USER ID" title="ID">
< apex:outputField value="{!v.id}" />
</apex:column>
<apex:inlineEditSupport event="ondblClick">
< showOnEdit="saveButton,cancelButton"/>
</apex:pageBlockTable>
<apex:pageBlockButtons>
<apex:commandButton value="Save" action="{!save}" id="saveButton"/>
< apex:commandButton value="Cancel" action="{!cancel}" id="cancelButton"/>
</apex:pageBlockButtons>
< apex:pageBlockSection >
<apex:inputText value="{!newName}" label="Enter New NAME"/>
</apex:pageBlockSection>
<apex:pageBlockSection>
<apex:inputText value="{!newPhone}" label="Enter New PHONE"/>
</apex:pageBlockSection>
<apex:pageBlockSection >
< apex:inputText value="{!newFax}" label="Enter New FAX"/>
</apex:pageBlockSectio >
< /apex:pageBlock>
</apex:form>
For the above VF code below one is the apex code.
public without sharing class lockingMachenismForAnyObject
{
//Describing all the variables.
public string searchName{get;set;}
public string idOfSearchedName{get;set;}
public string newName{get;set;}
public string newPhone{get;set;}
public string newFax{get;set;}
// Fetching the list of Account records.
public List ob= new List([select name,phone,fax, id from account ]);
//initialising Method.
public list getReturningList() {
return ob;
}
//initialising Method.
public void search()
{
//Modifying the above list according to the name of the record which we want to edit.
ob= new List([select id,name,phone,fax from account where name = : searchName limit 1]);
idOfSearchedName = ob[0].id;
Account[] accountObject = [SELECT Id FROM Account where name = : searchName];
//Checking the locking condition.
if(Approval.isLocked(accountObject[0].id))
{
Approval.unLock(accountObject);
}
}
//initialising Method.
public pageReference save()
{
if(Approval.isLocked(idOfSearchedName))
{
//Sending the user to the locked page if the locking condition is satisfied.
pageReference pr=Name of the connected page to display.
return pr;
}
else
{
//Else saving the record and locking the same record for the other user.
List ob=new List();
Account updateObject=[select id,name,phone,fax from account where id = : idOfSearchedName];
updateObject.name=newName;
updateObject.phone=newPhone;
updateObject.fax=newFax;
ob.add(updateObject);
update ob;
Account[] accountObject = [SELECT Id FROM Account where name = : searchName];
Approval.lock(accountObject);
return null;
}
}
//initialising Method.
public pageReference cancel()
{
pageReference pr=page.pramodSirVF2;
return pr;
}
}
About Girikon
Girikon is a Salesforce consulting company,development team are based in the USA, in Noida, India and offices in Australia. Girikon’s global team in the USA, India and Australia, allows Girikon to respond at Lightning speed to customers across the globe and is known for its effective delivering and quality service. Girikon is made up of a team of certified Salesforce Consultants with experienced Project Managers, Business Analysts, Salesforce Architects, IT Developers, Consultants, and Administrators.
Girikon’s team of dynamic professionals are experienced in IT across many industries and business, their specialities include software development which includes design, QA testing (Manual and Automated, Support and Maintenance and have many resource model options. Our vision is to develop scalable and simplified solutions for our customers.