Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
DRUPAL SPOTLIGHT:
AUTOMATE
SALESFORCE.COM WITH
A DRUPAL INTEGRATION
FUNCTIONALITY GAPS
SOLVED THROUGH
CONTINUOUS
SYNCHRONIZATION
by: Dagoberto Aceves
Senior Engineer
Dagoberto Aceves
//"page"1"
//"page"2"
Achieve at a Glance
Achieve Internet has been developing websites using Drupal since 2005.
We have been using Drupal as our primary toolset and have one singular
goal that we strive to accomplish on every project and that is to help our
clients launch their advanced digital platforms with confidence. We have
been doing this for a great number of clients in an array of market verticals,
from Media, Entertainment, Publishing and most recently Healthcare. Our
growth strategy is always evolving and our influences are always changing.
However, the one thing that has remained constant is our talent and
innovative development methodology. Additionally, our team of in-house
engineers has over 90,000 Drupal development hours and counting and
through our meticulous and forthright development process we
consistently exceed client expectations.
This level of excellence has allowed us to venture into areas of great
uncertainty, from development challenges to new verticals with unique
opportunities. Our development team revels in the challenges of new
projects and unique integrations and customizations that our clients ask
from us. We have performed numerous Salesforce.com integrations for
many of our clients and have become experts in the custom integration
steps necessary and we wanted to share the knowledge with the rest of the
Open Source Community.
In this paper, we focus on one specific area of integration:
successfully bridging functionality gaps in Salesforce.com through
continuous synchronization with a Drupal environment.
//"page"3"
//"page"4"
//"page"5"
//"page"6"
Once the wsdl file is installed, the user can then define how the data
from Salesforce should be mapped to Drupal through object mappings.
!
!
The wsdl file is a description of the all the Salesforce Objects, the Salesforce
Object fields, the field data types and several other layers of descriptive
details necessary for implementing the web service. The wsdl file is the
primary method used by Salesforce to communicate object structures to
Drupal.
The wsdl file can be downloaded multiple times, allowing for continuous
development long after the initial implementation. Any time a modification
occurs to a Salesforce data structure, if that change is to be leveraged by
Drupal, the change must be communicated to Drupal by uploading the latest
Salesforce wsdl to Drupal.
//"page"7"
1.
//"page"8"
Data objects between Drupal and Salesforce know very little about one
another aside from their unique IDs. The two IDs from Drupal (object ID and
user ID) and the single Salesforce entity ID are stored in the Drupal
database.
Mapping data structure objects and fields can be accomplished through
using the wsdl file that exposes the Salesforce architecture to Drupal. This
facilitates the means to effectively communicate field data between the two
endpoints.
Mappings are manually created via the Salesforce Suites
administrative screens.
The mappings are created per object type and that object types fields,
correlating the Drupal object and its counterpart on Salesforce at a
granular level.
//"page"9"
A typical mapping would be to match the fields from your Drupal Opportunity
node to a Salesforce Opportunity object.
Another example would be to map the fields from a Drupal Account Node to a
Salesforce Account object, though a more desirable implementation might be
mapping a Drupal User to a Salesforce Account object.
!
The latter allows for a Salesforce team member to receive data from existing Drupal
members through their Salesforce environment, avoiding the need to log into the
Drupal site. This type of mapping also allows for rudimentary administration of users
from the Salesforce endpoint.
//"page"10"
The field mapping allows for proper communication between the two
endpoints, but it must be manually updated when field changes occur. This
type of manual field mapping maintenance is an important facet to
maintaining a working status between Drupal and Salesforce. It also
allows for the two systems to grow and change independently of each
other.
Drupal implements three basic operations - Create, Update and Delete between the two endpoints using the same workflow. When an operation
occurs, e.g., creating a user, Drupal makes the corresponding call to
Salesforce. Each operation has its own subtle difference:
!
Create Drupal creates the object locally, creates the corresponding object on
Salesforce, then saves the local object node and the remote Salesforce ID to the
Salesforce Suites object mapping table.
Update After updating the object locally, Drupal looks up the corresponding
Salesforce object from the object-mapping table. Using the Salesforce ID, Drupal
calls for Salesforce to update its record using the updated data from Drupal.
Delete Similar to create with the exception that Salesforce will delete its record,
and the entry from the object-mapping table is also removed.
//"page"11"
Continuous synchronization
gives your business the most
up to date customer data
and allows you to make
decisions based on
OBJECTIVE information.
//"page"12"
The Salesforce Suite modules use the object-mapping table and the incoming
Salesforce ID to determine the corresponding Drupal object. This process also
determines the corresponding Drupal module to complete the change request on
Drupal.
The existence of the mapping between the Salesforce ID and the Drupal entity ID
determines if the incoming change request should be created or updated.
!
If the relationship did not exist, the corresponding Drupal entity is created and
the new relationship is stored in the database.
The field mappings are used to save the incoming data from the Salesforce
Object fields to the appropriate Drupal fields.
//"page"13"
Continuous Synchronization
Two Way Communication
//"page"14"
//"page"15"
Benefits
With a successful integration between Drupal and Salesforce in place the
benefits can be immediately felt by your entire staff, not just the sales
department. By connecting the two points your Salesforce data will
automatically update when new leads, prospects, or clients come to your
website and enter their data, fill out a webform, or order a new product.
This synchronization will drastically streamline your workflow by cutting out
redundant steps and unnecessary data entry.
How many times has your sales team used bad data as an excuse to why
sales arent growing?
! The phone number was wrong.
! The contact person left 2 years ago.
! I simply dont trust the data in Salesforce!
What if you could put that all behind you with the knowledge that 100% of
your Salesforce data was correct? Make your staff more effective and
efficient with a continuous synchronization between Salesforce and your
Drupal CMS.
This is true Web Experience Management and no other product on the
market can deliver this truly adaptable experience like Drupal.
//"page"16"
Conclusion
Drupals modular design has a proven track record for third-party
integration, with Salesforce being one of the many services readily
available. As an Open Source project written in PHP, Drupal has a solid
foundation to keep up with the changing technological topography.
Third-party service modules like the Salesforce Suite are a great baseline
for most enterprise solutions. In some cases, their generic services and
basic routines fulfill all primary business needs without any customization;
however, most implementations typically require further customization
through additional modules or extensions of existing functionality, both of
which are supported and encouraged by Drupal.
With expert guidance, Drupal is a strong contender as an enterprise
integration solution with Salesforce.com (and other third party tools).
Our development team has extensive work integrating Drupal and
Salesforce, as well as over 75 other third-party platforms, and we have
the experience to optimize your website and help you get more from
your existing software.
//"page"17"