You are on page 1of 5

SalesForce CRM Integration in EPiServer

The CRM system and CRM integration in the EPiServer works through a
relational data that has a control panel on top. There are many popular CRM
suites available in the market starting from enterprise scale like Salesforce,
Oracle Sales cloud, MS CRM or Dynamics CRM; to NetSuite, Insightly and
SugarCRM. However, in this article we will mainly focus on Salesforce
enterprise scale.
Sales Force CRM
The SalesForce CRM is designed as a Web application, so that it can be
published on a special site along with the CRM functionality. It is a system
that is based on the internal database along with customized interfaces.
Client layer
The client layer is composed of a Web user control, for the registration of a
new user for the CRM application. Additional user controls or custom controls
are easily added to this particular layer. Other than the UI controls, the layer
has a profile, along with a virtual role provider implementation. The
EPiServer resources use it and the profile provider gets information from the
CRM application. The CRM application remains not accessible for some
reason. It needs a special fallback mechanism for its usage. This mechanism
works to retrieve settings from a reserve profile provider in the read only
mode.
The virtual role provider allows use of a CRM role schema. Creating a custom
setting is possible in the contract table, for the CRM application. If an user

logs into the website with appropriate ID, then role settings are retrieved
from the table of contacts of the CRM application. The site content along
with the information can be controlled like whether to be shown or hidden.
Business layer
This layer contains a set of interfaces for business entities of the CRM
applications. The present implementation of the layer contains interfaces for
Contact and Account business entities. Its primary function is to conceal the
differences between the CRM applications and Salesforce.
Therefore, the developer can use business interfaces along with client layer
without giving much on the differences. Each and every account contains
information about company name, addresses as well as other attributes.
Database layer
This layer has in itself, Web service proxy classes and cache management
classes for each CRM application. It comes with a helper class for
simplification of the work with proxy wrappers.
How to collect information from the CRM application?

Configuring an application-setting file is very important and must be


done correctly. The CRM system is a free application and can be used
to set security changes affecting the setup without any prior
notification.

Verification of the connection is a must. Each call to the CRM system


affects the application performances, so the developer can use a cache
mechanism.

The CRMBase Factory class can be used to create instances of


business entities, according to the settings files. This Factory calls for
an appropriate Web service method, to return the instance that is
initialized with CRM values.

An indexer can access the values of the business entity instance and
the parameter for the indexer should be the name of the field from the
application setting file.

Few code examples for Installation instruction for EPiServer CRM Connector
1.

Configure the Web.config/App.config file.


<crmConnector current="MSCRM">
<crms>
<add name="MSCRM"
webServiceUrl="http://172.16.16.139:5555/mscrmservices/
2006/crmservice.asmx"
metadataServiceUrl="http://172.16.16.139:5555/mscrmservices/2006/
metadataservice.asmx"
interfaceUrl="http://172.16.16.139:5555/EPiServer"
userName="administrator" password="" domain=""
timeout="30000">
<entities>
<add name="Contact" crmName="contact"
idAttribute="contactid" linkName="conts">
<attributes>
<add name="UserName" crmName="new_username" />
<add name="Email" crmName="emailaddress1" />
</attributes>
</add>
</entities>
</add>
</crms>
</crmConnector>

2. To create a special class UserEmail with logic for user emails,


public class EmailUser
public class EmailUser
{
private string _userName;
private string _emailUser;
public EmailUser(string userName)
{
this._userName = userName;
}
public string Email
{
get
{
if(this._emailUser == null)
{

this.InitEmailProperty();
}
}
}
}
3. A factory test connection is important to verify that the settings
inside the method of UserEmail are correct.
private void InitEmailProperty()
{
if(CRMBaseFactory.Current.TestConnection())
{
this._emailUser = this.GetUserEmail();
}
}
4.

A new method to UserEmail class, to get an email for User1


private string GetEmailFromCRM()
{
List<ICRMContact> contactsbyName =
CRMBaseFactory.Current.LoadContactsByName(this._userName);
if(contactsbyName.Count == 0)
{
throw new ArgumentException(string.Format("Incorrect user
name {0}", this._userName));
}
return contactsbyName[0]["Email"];
}

EPiServer Connect with CRM, through Salesforce


Through EPiServer Connection with CRM, you can easily connect with your
Salesforce solution, for your website in creating a personalized customer
experience.
The EPiServer CRM connection is an add on that integrates with EPiServer
CMS with the Salesforce. Ensure your sales team receives all your lead The
EPiServer connection for CRM automates the process of capturing leads for
your website, to create matching contacts in Salesforce. Therefore, the sales
team gets immediate access to the latest leads, by spending less time while
updating your CRM.

To integrate the External CRM Systems & User Profile Stores,


through Salesforce
The EPiServer CMS, has user profiles and roles that can be stored as well as
managed in virtually with several external profile stores. EPiServer CMS
therefore implements a standard ASP.NET membership, role and profile
providers. It offers multiple store providers that can be used simultaneously.
The internal users can be managed in active directory and the external users
are managed in the CRM system. It is the EPiServer CMS that supports the
Windows, SQL Server, Oracle, Active Directory and also the Membership
providers out of the box. The EPiServer then connects to the Salesforce along
with the Microsoft Dynamics CRM modules. It provides integration with the
Salesforce and connects to modules that are automated with the processes,
for integration with the CRM in EPiServer.
These connector modules automate the process of capturing new users from
the site and then create new accounts and contacts in the CRM system.
Thus, the CRM system is also used to manage roles and permissions.

Original Source:
http://cogzie.kinja.com/salesforce-crm-integration-inepiserver-1707251264

You might also like