22
SCRIBE SOFTWARE CORPORATION THREE BEDFORD FARMS DRIVE BEDFORD, NH 03110 USA T 1.603.622.5109 F 1.603.622.3862 Scribe ERP Integration for Salesforce BRIDGING THE GAP BETWEEN ON DEMAND CRM AND ON DEMAND ERP SEPTEMBER 2007 WRITTEN BY PETER R. CHASE EXECUTIVE VICE PRESIDENT, SCRIBE SOFTWARE CORPORATION PUBLISHED BY SCRIBE SOFTWARE CORPORATION 2007 ©. ALL RIGHTS RESERVED. REPRODUCTION WITHOUT PRIOR WRITTEN PERMISSION IS STRICTLY PROHIBITED.

Scribe ERP Integration for Salesforce

Embed Size (px)

Citation preview

Page 1: Scribe ERP Integration for Salesforce

SCRIBE SOFTWARE CORPORATION THREE BEDFORD FARMS DRIVE BEDFORD, NH 03110 USA T 1.603.622.5109 F 1.603.622.3862

Scribe ERP Integration for Salesforce

BRIDGING THE GAP BETWEEN ON DEMAND CRM AND ON DEMAND ERP

SEPTEMBER 2007

WRITTEN BY PETER R. CHASE EXECUTIVE VICE PRESIDENT, SCRIBE SOFTWARE CORPORATION

PUBLISHED BY SCRIBE SOFTWARE CORPORATION 2007 ©. ALL RIGHTS RESERVED. REPRODUCTION WITHOUT PRIOR WRITTEN PERMISSION IS STRICTLY PROHIBITED.

Page 2: Scribe ERP Integration for Salesforce

SCRIBE SOFTWARE CORPORATION SCRIBE ERP INTEGRATION FOR SALESFORCE 2

Scribe ERP Integration for Salesforce

TECHNICAL BRIEF

Over the past 10 years and across thousands of customers in the volume CRM market, Scribe has developed an approach to integration that solves the seemingly unsolvable dilemma posed by front to back office integration; how to deliver a highly functional, real-time integration solution that can be quickly customized to meet the needs of each and every customer. This paper will discuss the challenges posed by alternative integration approaches and present the Scribe template model, and its inherent advantages, in detail. Traditional Alternatives In the past, customers and partners have been forced to compromise with two inadequate approaches to their front office to back office integration needs:

Custom developed solutions – This is where the customer or implementation partner hard-codes the integration. Because all of the data mappings and business logic have to be built from scratch, customers are typically forced by money and time to dramatically compromise on functionality. These solutions typically are expensive to maintain since they have little or no error detection and management built in and are very difficult to troubleshoot. And what happens when you change or upgrade either your back office or front office systems? You will likely need to rip it out and start over again.

Packaged, point solutions – This is where either the application vendor or a niche

software developer creates an integration solution between one front office product and one back office product. On the surface, these solutions appear to be a good option since they have compelling functionality “out of the box.” The challenges typically arise at implementation when the customer requires customizations to the integration solution to meet their unique business requirements. “Out of the box” with these solutions typically means “black box.” To open up that “black box” requires extensive and expensive consulting services that typically can only be provided by a small, finite group of individuals. The customer along with their implementation partner is not only locked in up front, but is locked in to high costs down the road when they change their processes or upgrade their systems.

The Scribe Advantage This is where Scribe Insight platform and the Scribe ERP integration templates provide an advantage. Scribe’s unique template model provides “out of the box” functionality, built over its industry leading integration platform that can be quickly implemented within a customer’s specific ERP environment. The templates can be quickly extended and customized utilizing the GUI-based mapping and development environment to deliver a solution that meets the unique needs of each and every customer, within days, regardless of their back office system. With Scribe’s component architecture, when a new version of Salesforce is released, your existing integration continues to function with no disruption. If new field mappings or business rules need to be applied to take advantage of new capabilities, you can quickly make them in

Page 3: Scribe ERP Integration for Salesforce

SCRIBE SOFTWARE CORPORATION SCRIBE ERP INTEGRATION FOR SALESFORCE 3

the Scribe Workbench. This capability is particularly important with on demand applications such as Salesforce, where upgrading to the new version is not an option…it happens whether your integration is ready, or not. This component architecture also enables customers to implement integration functionality in phases or pick and choose the elements of capability that they require. For example, a customer may not wish to implement order integration initially (or in some cases never) but can still synchronize customer activity (accounts, contacts, invoices) between their ERP system and Salesforce. This modularity enables customers to implement an integration solution “right-sized” to their exact needs. In addition, since the Scribe Insight product represents the general integration platform for hundreds of top ERP and Salesforce implementation partners, there is no shortage of resources to help customers customize the Solution for their business. Scribe’s on-line training curriculum and Web Community containing documented best practices resources, enable customers and partners to take full control of their implementations, now and in the future.

Page 4: Scribe ERP Integration for Salesforce

SCRIBE SOFTWARE CORPORATION SCRIBE ERP INTEGRATION FOR SALESFORCE 4

The Scribe Solution Architecture The following diagram represents the components of an integration solution between a premise-based ERP system and Salesforce utilizing the Scribe Insight platform.

Scribe Server

Developer/Designer

`

Scribe Workbench

ERP Application

Administrator

`

Scribe Console

Templates

Salesforce

Salesforce Adapter

Scribe Connectivity Adapter

AppExchange Entry –

Customizations to Salesforce

The Scribe technology platform is represented by the blue text in the diagram. This includes the Scribe Insight product with its two graphical components, the Workbench and the Console along with the specific application Adapters.

Scribe Adapters – These components enable the Scribe Insight product to easily read data from and write data to a particular business application. Adapters give each application a consistent look within the Scribe Workbench, shielding the user from having to deal with the particular processing rules of the application. For example, a Scribe Adapter would typically take care of things like primary key generation and standard default values that will not change from implementation to implementation. The specific data mappings and processing rules of the integration that may change are part of the template. Scribe Workbench - The Workbench is the design environment where all the business rules and data mappings are established, at both the object and field level. These mappings and business rules are then saved as metadata in a portable template file that drives the integration process at run time. Scribe Console - The Console is the SOAP-based automation and management environment where the events that initiate an integration process (as defined in the template file) are established. These events can be established in real-time, via queuing or polling, or in batch, via a schedule or file transfer, depending on the needs of the customer. The Salesforce Integration for ERP operates in a real-time mode. In addition, the Console is where errors are reported and corrected, system monitors and alerts are established for

Page 5: Scribe ERP Integration for Salesforce

SCRIBE SOFTWARE CORPORATION SCRIBE ERP INTEGRATION FOR SALESFORCE 5

proactive integration management, and business activity monitors that enhance the effectiveness of the business applications are set up. ERP Integration to Salesforce Template - The elements created and set up by the Workbench and Console represent the ERP Integration to Salesforce Template. Scribe provides the Template as a highly functional “starting point” that then can be extended and customized via the Workbench and Console to meet each customer’s needs. Scribe regularly updates its Templates and posts them to its Web community for download, at no additional cost, for its customers and partners. Salesforce Sales Order Module - AppExchange Entry – This item represents the customizations made to Salesforce to support the information and process requirements of an integrated back office system. These customizations include the creation of custom objects, custom tabs, S-Controls to support Salesforce-bound processes, and a dashboard.

The Scribe Solution Architecture Advantage To support their integration needs, a customer purchases the Scribe Solution, they receive the Scribe Insight product (that includes the Connectivity Adapter required to support their ERP application) along with the Adapter for Salesforce. They also purchase first year maintenance and support for the aforementioned platform products. In addition, they receive full access at no charge to the Scribe Web Community where they can download the latest Scribe templates that they need. Online training, delivered via the Web Community is also available for purchase. The customer or partner simply imports the AppExchange customizations, installs the Scribe Insight product and required adapters, and installs the appropriate Scribe template(s). They can immediately begin configuring the Template to meet their particular needs. Customers receive another significant benefit from this approach. Since Scribe templates are built on the full Scribe Insight migration and integration platform, customers can use the product to integrate Salesforce or their ERP application with other in-house systems, import leads from their Web site in real-time, load marketing lists, and migrate data from previous customer systems. Scribe provides many templates for download on the Web Community at no additional charge including ACT!, Goldmine, and Quickbooks Migrations, automatic update from the donotcall.gov Web service, the Web Leads to Salesforce template, the eCommerce to ERP template, and more. With Scribe, one investment supports all of your CRM and ERP data integration needs.

Page 6: Scribe ERP Integration for Salesforce

SCRIBE SOFTWARE CORPORATION SCRIBE ERP INTEGRATION FOR SALESFORCE 6

Functionality of the Scribe Solution The Scribe Salesforce Integration for ERP is comprised of Scribe Insight, the Scribe Adapter for Salesforce, and the Scribe ERP Integration Template for Salesforce (herinafter referred to as the “Template,” which is available for download on the Scribe Web Community. The following diagram depicts the functionality of the Template at a high-level: The processes depicted as dashed lines are not available in the current version of the Template and are planned in a future update. Customers wishing to support a two-way integration with their ERP application can add that functionality using the Scribe Insight configurable integration platform. Typically each of these processes will add 1 to 3 days of effort to the project. For a rich and highly functional example of these processes, customers can reference the Scribe Integration Template for Great Plains that is available via the Scribe Web Community at no charge.

Customer and Address– This data can be created or modified in ERP and the additions or changes are synchronized with the other application. Scribe’s match component provides fuzzy account matching to avoid the creation of duplicate accounts and to facilitate an initial synchronization of existing ERP and Salesforce environments. Master Product Schedule and Price List – This data is mastered in ERP and replicated to Salesforce to support the order process needs in Salesforce. Orders – New orders are integrated in real-time into the appropriate account record within Salesforce and set as read only. As changes occur to the order records in ERP, they are updated in real-time in Salesforce. Invoices – Invoices that are created in ERP are integrated in real-time into the appropriate account record in Salesforce and set as read only. The order record that relates to the invoice is also updated to reflect the relationship. As changes occur in the invoice records in ERP, they are updated in real-time in Salesforce.

For more detailed information regarding the integration, please see the detailed object and process mappings outlined in Appendix A. In addition to the integration processes themselves, customizations to Salesforce via the AppExchange are required to support the data and processing requirements of the integrated solution. These customizations are detailed in Appendix B.

Customer, Address (ERP primary to SF billing only)

Master Product Schedule / Price Lists

Orders (Header and Detail)

Invoices (Header and Detail)

Salesforce Sample ERP Application

New/Update New/Update

New/Update/Del

New / Cancel

New/Update

New/Update

Page 7: Scribe ERP Integration for Salesforce

SCRIBE SOFTWARE CORPORATION SCRIBE ERP INTEGRATION FOR SALESFORCE 7

Exhibit A:

ERP Integration Template for Salesforce Functional Specification

ERP Integration Template for Salesforce The ERP Integration Template for Salesforce (herinafter referred to as the “Template”) represents a set of rich integration processes between Salesforce and a sample ERP application. These integration processes can quickly be configured to work with a variety of ERP applications in a matter of days.

Primary Objectives The primary objectives of the Template are to:

• Deliver efficiency for the sales and accounting teams by minimizing redundant data entry and processes.

• Provide the Salesforce user with a complete order and invoice history for each customer including product line item details.

• Provide for the creation of reports that key off of the relationship between products ordered and/or invoiced and customers. Customers can then report on product purchase trends for all customers or groups of customers, such as region/territory and rep.

• Provide business activity monitors that notify key business users of events related to their customers purchase of the company’s products (i.e. order over certain $, order shipping late, etc.)

Page 8: Scribe ERP Integration for Salesforce

SCRIBE SOFTWARE CORPORATION SCRIBE ERP INTEGRATION FOR SALESFORCE 8

Integration overview The following flow chart illustrates the process that the Scribe Template will use to replicate data from the back office system into Salesforce. The scope of this process flow has been minimized to only include those elements necessary to achieve the primary objectives for the Template. At its core, the key functionality is the population of invoices and orders by customer in Salesforce, including the line item detail that supports product-based reporting in Salesforce.

Insert Product and Price Book Entry

New or Changed Product Catalog

Entry in BO

Does Product exist in CRM?

Update Product and Price Book

Entry

Stop

New or Changed Account in BO

Does Account exist in CRM?

Insert Account w/ primary address

Add entry to Account cross

reference table if necessary

New or changed Order or Invoice

in BO

Insert Order/Invoice Header

record

Add entry to Invoice/Order

cross reference table

Insert Order/Invoice detail

items

Delete all detail items for Order/

Invoice

Start

No

Yes

NoYes

No

Does Order or Invoice exist in

CRM?Yes

Update Account (BO owned fields

only)

Update Order /Invoice Header

record

Page 9: Scribe ERP Integration for Salesforce

SCRIBE SOFTWARE CORPORATION SCRIBE ERP INTEGRATION FOR SALESFORCE 9

ERP Interface Methods Connectivity Adapters are included in the core Insight Platform. They are designed to provide a wide variety of integration options to support connectivity to a varied number of ERP applications. These Connectivity Adapters enable Scribe Insight to communicate with other ERP applications in the following ways:

Direct communication with database tables, views, and stored procedures through ODBC 3.0 or higher and natively to SQL Server. Scribe leverages all of the filtering and querying capability of these databases when employing this approach.

The exchange of flat files or XML documents via a directory or FTP/HTTP location. The asynchronous exchange of XML messages via an industry standard message queue,

email, or integration broker. These Connectivity Adapters support a number of approaches to integrating with various applications, depending on the business requirements and available technical resources including, but not limited to, the following:

1. Directly to the database – This is a simple, straightforward approach if you are migrating from an application or your project is limited to a one-way feed of data from that application. Scribe Insight provides a number of methods to extract “net change” data from the application utilizing this approach.

2. Via interface tables – Many applications support a set of interface or staging tables that provide for a safe way to integrate data into that application. For applications that do not support interface tables out of the box, customers can create and populate them via programming or stored procedures. After data is passed into the interface tables an application process is initiated that validates the data and applies appropriate application rules. With Scribe Insight, you can write to these tables and initiate the application process automatically.

3. Via an XML/messaging interface– Many enterprise applications provides an XML interface that is incorporated into the workflow engine within the application. Using this method, Scribe Insight can publish XML messages into a message queue for real-time integration with the other application. Scribe Insight can also receive XML transactions published by the application’s workflow engine into a message queue in real-time. For applications that do not have a workflow engine that publishes or consumes transaction messages, customers can support this via programming or stored procedures.

4. Via the applications API – Many applications expose a Web Services or COM-based API where transactions can be passed to the application. Data can also be queried via this API. Out of the box, Scribe Insight cannot “natively” integrate with this API, however customers can programmatically convert these calls into an intermediate format. This intermediate format can be an XML message, a flat file, or a record in a database staging table.

The Template utilizes the XML/Messaging interface approach to publish changes out of the Scribe Sample ERP application. Samples and examples for the other approaches are available for review on the Scribe Web Community.

Page 10: Scribe ERP Integration for Salesforce

SCRIBE SOFTWARE CORPORATION SCRIBE ERP INTEGRATION FOR SALESFORCE 10

Integration Touch Points – Salesforce The following objects in Salesforce are populated in the Template:

* I = Insert, U = Update, D = Delete ** Frequency can be modified during implementation

Account All active customers in the ERP system are replicated to Salesforce. If a match is found in Salesforce, a cross reference is established between the ERP and Salesforce primary keys, and some of the Salesforce fields are updated. Otherwise, a new account is added to Salesforce and the cross reference is created. Note that if a match is found, only the fields “owned” by ERP are updated within Salesforce. This is due to the nature of one-way integrations. If all fields updates were included, then changes made by a user in the Salesforce application would be overwritten the next time that record is updated from ERP. Since the integration is one-way, the changes never make it down to ERP to get preserved. The customer can determine which fields should be “owned” by ERP, but likely candidates are Account Number (from ERP), Credit Hold, Credit Limit, Payment Terms and default Price List. Customization option: The Template can be modified to reject the record if the account is not found in Salesforce. The assumption in this case is that all customers should already be in Salesforce and the integration should not add a duplicate. The primary address from ERP is replicated to Salesforce when the integration adds a new account in Salesforce. Contact and alternate address records are not replicated. The bill to/ship to contact names and addresses are included in the order and invoice data that is replicated.

Product Products and product prices are replicated to Salesforce from the ERP system. Both new products added and changes to the existing product catalog are replicated. Price book categories are manually maintained between the two systems. One of the implementation steps is to manually add price book names in Salesforce. The Template requires that price books match exactly between ERP and Salesforce. If they do not, a cross reference will need to be created and the integration will need to be modified to translate the values.

SalesOrder Order header and detail for all active accounts are replicated to Salesforce from the ERP system. Both new orders added and changes to existing orders are replicated. The seek step on the order header object in Salesforce is executed based on the entries in the order cross reference table. If the order exists, the order header will be updated, all existing order detail items related

Process ERP Objects Salesforce Object(s) Operations* Default Frequency**

Sharing/Filters Pre-requisite Process

1 Account, Primary Address

Account

I / U Hourly All active customers

None

2 Product Product2 PricebookEntry

I / U Nightly All products None

3 Addresses (bill to) SalesOrders SalesOrderDetails

SCRB_SalesOrder_c SCRB_SalesOrderLineItem_c

I / U (D for details)

Hourly All posted invoices and returns

1,2

Page 11: Scribe ERP Integration for Salesforce

SCRIBE SOFTWARE CORPORATION SCRIBE ERP INTEGRATION FOR SALESFORCE 11

to the order header will be deleted, and all new related order detail items will be added. If the order does not exist, order header and detail line items will be inserted and linked to the appropriate account based on a lookup in the key cross reference table for accounts. If the account can not be found in CRM, the transaction will error and entries into exception tables for the order header and detail items will be added. Upon a successful insert of the order, an entry into the cross reference table for orders will be made. Orders in Salesforce have a status of Submitted in Salesforce. The initial migration of order history can be filtered by date as needed. Orders created by the integration are not linked to existing opportunities.

Invoice New posted invoices (header and detail) for all active accounts are replicated to Salesforce. Invoices do not typically change in ERP after they are posted, but changes regarding returned items will cause updates to invoices in Salesforce. A foreign key relationship between the invoice header and the account, as determined by a lookup in the key cross reference table for accounts will be established. If the account can not be found in Salesforce, the transaction will error and entries into exception tables for the invoice header and detail items will be added. Invoices are read only in Salesforce. The initial migration of invoice history can be filtered by date as needed.

Page 12: Scribe ERP Integration for Salesforce

SCRIBE SOFTWARE CORPORATION SCRIBE ERP INTEGRATION FOR SALESFORCE 12

Monitors & Views The following list of out-of-the-box monitors and views are included with the Template. All monitors and views that are keyed off product line item detail will be based on Invoices versus Orders, since Invoices should represent a more complete and accurate measure of products purchased for each customer. Additional monitors and views can be created by the partner at implementation time based on customer requirements. Description Monitor/View Recipient Based on

Order or Invoice?

Default Frequency

Open Orders: Current Date >= Requested Delivery Date

Monitor Account Owner

Order Daily

Large Orders Monitor VP Sales Order Daily Follow up on promotion for targeted purchases

Monitor Account Owner

Invoices Daily

Notification of new customer order Monitor Account Owner

Order Daily

Notification of VIP customer order Monitor VP Sales Order Daily Reminder to call and verify product receipt and satisfaction of transaction

Monitor Account Owner

Invoices Daily

Notification of New Customer(s) from BO

Monitor

Order Rate Low Monitor Order Rate High Monitor Accounts Placed on Credit Hold Monitor Accounts with No Recent Orders Monitor Order Rate by Day View Sales of products by region View N/A Invoices Ad-hoc Sales of products by rep View N/A Invoices Ad-hoc Product up-sell View N/A Invoices Ad-hoc Product cross-sell View N/A Invoices Ad-hoc Seasonal trend analysis View N/A Invoices Ad-hoc Maintenance service contract renewal

View N/A Invoices Ad-hoc

Page 13: Scribe ERP Integration for Salesforce

SCRIBE SOFTWARE CORPORATION SCRIBE ERP INTEGRATION FOR SALESFORCE 13

Technical Overview

System Requirements Scribe Insight, version 6.0.7 or later Salesforce Unlimited, Enterprise or Professional Product Editions Windows 2000, XP or 2003 Scribe Insight must be installed at the BO location (generally on the customer premises)

Salesforce Customizations Required The Template is designed to work with the Scribe Sales Order Component which is located on AppExchange.

General • Scribe Adapter for Salesforce is used to connect to Salesforce for data replication and

monitors and views • KeyCrossReference table in the Scribe Internal database is used to maintain the links

between the BO and Salesforce • Company matching on StripCompany Suffix (account name) and first 3 digits of postal

code • The template will default the object owner to the user login utilized by the Scribe

process. User mapping will be left to implementation.

Initial Migration and Replication The initial migration for products, orders and invoices, as well as the initial replication for accounts, are part of the “go live” process. Some consideration should be given to this process when planning the implementation timeline. Processing times for large data sets could impact how long it takes to get the Template running in a live environment.

Page 14: Scribe ERP Integration for Salesforce

SCRIBE SOFTWARE CORPORATION SCRIBE ERP INTEGRATION FOR SALESFORCE 14

Salesforce Objects and Fields This section lists the field mappings from Scribe ERP to Salesforce organized by the Salesforce target object.

Account Object

ScribeERP object ScribeERP field Salesforce field Account CustomerNumber AccountNumber Account Active Active__C Account City BillingCity Account Country BillingCountry Account PostalCode BillingPostalCode Account State BillingState Account AddressLine1, AddressLine2 BillingStreet Account Fax Fax Account CompanyName Name Account Phone Phone Account City ShippingCity Account Country ShippingCountry Account PostalCode ShippingPostalCode Account State ShippingState Account AddressLine1, AddressLine2 ShippingStreet Account PrimaryAddrName Site Account Type (set to "Customer") Account WebSiteURL Website

Product2 Object ScribeERP object ScribeERP field Salesforce field Product Type Family

Product Discontinued IsActive Product ProductName Name Product ProductNumber ProductCode

PriceBookEntry Object

ScribeERP object ScribeERP field Salesforce field Product Discontinued IsActive Product PriceList Pricebook2Id

Product ListPrice, UnitPrice UnitPrice

Product UseStandardPrice (set to FALSE)

Page 15: Scribe ERP Integration for Salesforce

SCRIBE SOFTWARE CORPORATION SCRIBE ERP INTEGRATION FOR SALESFORCE 15

SCRB_SalesOrder_c Object

ScribeERP object ScribeERP field Salesforce field Addresses (bill to) AddressLine1, AddressLine2 BillingStreet__c Addresses (bill to) City BillingCity__c Addresses (bill to) State BillingState__c Addresses (bill to) PostalCode BillingPostalCode__c Addresses (bill to) Country BillingCountry__c Addresses (bill to) Phone BillingPhone__c Addresses (bill to) Fax BillingFax__c SalesOrders Type Type__c SalesOrders OrderNumber DocumentNumber__c SalesOrders OrderNumber Name SalesOrders Type, Status StatusCode__c SalesOrders OrderDate DocumentDate__c SalesOrders ShippingMethod ShippingMethod__c SalesOrders PriceList Pricebook__c SalesOrders PaymentTerms PaymentTerms__c SalesOrders TotalAmount - Tax - Freight +

Discount LineItemAmount__c

SalesOrders Freight FreightAmount__c SalesOrders Discount DiscountAmount__c SalesOrders Tax Tax__c SalesOrders TotalAmount Amount__c SalesOrders RequestedShipDate RequestedShipmentOn__c SalesOrders ShipAddressLine1,

ShipAddressLine2 ShippingStreet__c

SalesOrders ShipCity ShippingCity__c SalesOrders ShipState ShippingState__c SalesOrders ShipPostalCode ShippingPostalCode__c SalesOrders ShipCountry ShippingCountry__c SalesOrders ShipPhone ShippingPhone__c SalesOrders ShipContact ShippingContact__c SalesOrders OriginalOrderNumber OriginatingDocument__c

SCRB_SalesOrderLineItem_c Object

ScribeERP object ScribeERP field Salesforce field SalesOrderDetails LineNumber SortOrder__c SalesOrderDetails ProductNumber,

UnitOfMeasure ProductId__c

SalesOrderDetails Description Name SalesOrderDetails UnitPrice + ItemDiscount ListPrice__c SalesOrderDetails UnitPrice SalesPrice__c SalesOrderDetails ItemTax Tax__c SalesOrderDetails ExtendedPrice TotalPrice__c SalesOrderDetails Quantity Quantity__c

Page 16: Scribe ERP Integration for Salesforce

SCRIBE SOFTWARE CORPORATION SCRIBE ERP INTEGRATION FOR SALESFORCE 16

SalesOrderDetails QuantityCancelled QuantityCanceled__c SalesOrderDetails QuantityShipped QuantityShipped__c SalesOrderDetails RequestedShipDate RequestedShipmentOn__c SalesOrders ShippingMethod ShippingMethod__c

Page 17: Scribe ERP Integration for Salesforce

SCRIBE SOFTWARE CORPORATION SCRIBE ERP INTEGRATION FOR SALESFORCE 17

Appendix B – Salesforce Sales Order Module, AppExchange Entry This section details the Salesforce Sales Order Module designed to support the integration requirements with ERP systems. The Sales Order Module represents a set of Salesforce customizations, S-Controls, and a Dashboard that are easily installed via the AppExchange. The Sales Order Module is designed to support two modes of operation:

1. One-way: Order and invoice history/status information is populated one-way from an ERP system into Salesforce. In this scenario, orders are never originated from Salesforce. The primary purpose of a one-way solution is to provide visibility to users of Salesforce to information about customers that is “locked up” in the back office system.

2. Two-way: This extends the one-way solution to also include the ability for users within Salesforce to place customer orders. This extended capability provides greater levels of efficiency and accuracy, particularly for customers with high-volume order transaction requirements. This functionality is not included in the Template.

The remainder of this section describes the customizations made to Salesforce in further detail. Two custom objects have been added to Salesforce (SalesOrder & SalesOrderLineItem). These objects are used to contain/present the order & invoice history from the ERP system. See Appendix C for a detailed field list. One set of header/detail objects can have a type field to indicate: order, invoice or quote (quote integration is not included in the default template). The ability to relate entries within the same order header object is included. For example, invoices can be related to the corresponding order for easy reference. The use of one object simplifies the deployment and customization of the integration since changes to the behavior of objects only need to be made once. The standard Opportunity and OpportunityLineItem objects are leveraged to provide most of the “order entry” user interface and special business logic. This enables the solution to take advantage of the price book within Salesforce, which is only available to the OpportunityLineItem object within Salesforce. The majority of the data required to create an order is initially entered as an Opportunity with associated Products (line items). Standard Opportunity behavior provides an approximate price (without taxes, freight, etc.) using the appropriate/selected pricebook. Once the user is ready to convert an opportunity to an order, they can click the Create and Submit Order link contained in the Opportunity screen.

Page 18: Scribe ERP Integration for Salesforce

SCRIBE SOFTWARE CORPORATION SCRIBE ERP INTEGRATION FOR SALESFORCE 18

By selecting the Create and Submit Order link, an S-control is launched that enables the user to create an order. From this originating Opportunity, a Sales Order is created/cloned into custom Order Header and Detail objects and submitted to the ERP system in one user-driven step. A simple page to collect additional important data, including requested ship date and shipping address, is presented before the Sales Order is created and subsequently submitted to the ERP system.

Page 19: Scribe ERP Integration for Salesforce

SCRIBE SOFTWARE CORPORATION SCRIBE ERP INTEGRATION FOR SALESFORCE 19

The SalesOrder and SalesOrderLineItem objects are accessible on a custom Sales Order tab. These objects are added as related lists on the Accounts tab and the Opportunities tab. Regardless of how the SalesOrder header and SalesOrderLineItem records are accessed, the data in these objects will always be a read-only view of the data “mastered” in the ERP system. Orders created from an Opportunity round trip to ERP, get re-priced with taxes, shipping, etc., and then show as read-only orders from these tabs. There is one exception to the read-only rule for orders. A custom link is shown on the SalesOrder page to enable a user to cancel an order. This link displays an s-control page with a confirmation button. This order cancellation is picked up and applied to the ERP system via an integration process.

Page 20: Scribe ERP Integration for Salesforce

SCRIBE SOFTWARE CORPORATION SCRIBE ERP INTEGRATION FOR SALESFORCE 20

The Sales Order Module also includes a number of standard reports presented in a dashboard within Salesforce. These reports are primarily focused on providing real-time insight into sales activity sliced by product, time, sales rep, and geography.

Page 21: Scribe ERP Integration for Salesforce

SCRIBE SOFTWARE CORPORATION SCRIBE ERP INTEGRATION FOR SALESFORCE 21

Appendix C – Detailed Field List for Custom Salesforce Objects

Source Name Type Req'd Default Sample Values Notes

SCRB_SalesOrders Id char(18) Yo AccountId char(18) - lookup Yo OpportunityId char(18) - lookup No OwnerId char(18) - lookup Nd Type char(10) - picklist Y Order Order, Invoice, Quoteu DocumentNumber char(15) - externalid N ABC123 not req'd, can be assigned by GPd DocumentDate date N today( ) 1/1/2006e OriginatingDocument char(15) N ABC456o/u Name char(80) Y New monitors the "record name" fieldu Description long varchar(32000) No Pricebook char(40) N Retailu PaymentTerms char(12) - picklist N Net 30, Net 60 show picklist, match to GPu ShippingMethod char(12) - picklist N UPS, FedEx, etc. show picklist, match to GPu RequestedShipmentOn date N null 1/5/2006 calendar pop-upe Amount decimal - currency N 1,500.00e LineItemAmount decimal - currency N 1,450.00u DiscountAmount decimal - currency N 10.00 discount for headere TotalDiscountAmount decimal - currency N 30.00 total of lines + header discountsu FreightAmount decimal - currency N 50.00e Tax decimal - currency N 10.00e TrackingNumber char(30) N 34A34BD3322e StatusCode char(12) - picklist N null New, Submitted, Billed business status, null in mid transaction

Canceled, Invoiced, Paid (header, lines, update header with "New")e Failed boolean N null 1 if failing adding to ERP, 0 if submitted/sharede SubmitMessage char(255) N Error creating in ERPa BillingStreet char(255) Na BillingCity char(40) Na BillingState char(20) Na BillingPostalCode char(20) Na BillingCountry char(40) Na BillingPhone char(40) - phone Na BillingFax char(40) - phone Nu ShippingLocation char(15) N warehouseu ShippingContact char(40) N Bill Jonesa/u ShippingStreet char(255) Na/u ShippingCity char(40) Na/u ShippingState char(20) Na/u ShippingPostalCode char(20) Na/u ShippingCountry char(40) Na/u ShippingPhone char(40) - phone Na/u ShippingFax char(40) - phone Ns CreatedDate datetime Ys CreatedById char(18) Ys LastModifiedDate datetime Ys LastModifiedById char(18) Ys SystemModstamp datetime Y

SCRB_SalesOrderLineItems Id char(18) Yo SalesOrderId char(18) - master Yo SortOrder integer - number Y 1, 2, 3o ProductId char(18) - lookup Yo Description char(255) N the "record name" fieldo Quantity float - number N 5.00e QuantityShipped float - number N 3.00e QuantityCancelled float - number N 2.00o ListPrice decimal - currency N list price for this pricebooko SalesPrice decimal - currency N unit price on this order (list - unit = item discount)e Tax decimal - currency Ne TotalPrice decimal - currency N unit * qty + taxu RequestedShipmentOn date Nu ShippingMethod char(12) - picklist N UPS, FedEx, etc. show picklist, match to GPs CreatedDate datetime Ys CreatedById char(18) Ys LastModifiedDate datetime Ys LastModifiedById char(18) Ys SystemModstamp datetime Y

The Record Name appears in page layouts, key lists, related lists, lookups, and search results. For example, the Record Name for Account is "Account Name" and for Case it is "Case Number". Note that the Record Name field is always called "Name" when referenced via the API.

The Record Name field can be of type Text or Auto-Number (like an order #, case #, etc.). It is always char(80) and is not updatable if it is an auto-number. It must be included and come first on the related list view.

Source Keys = standard/generated fieldo = copied from Opportunityu = entered by usera = copied from Accounte = only from ERP systemd = default/constant

Page 22: Scribe ERP Integration for Salesforce

SCRIBE SOFTWARE CORPORATION SCRIBE ERP INTEGRATION FOR SALESFORCE 22

About Scribe Software Corporation Scribe Software Corporation provides data integration and migration software solutions to help people within an organization share customer data, to better focus - and take action - on critical business events. By helping everybody within an organization work as one, Scribe helps its customers sell more and provide better customer service. Scribe Software, founded in 1996, is a privately held corporation headquartered in Bedford, New Hampshire, USA. Scribe Software Corporation Three Bedford Farms Drive Bedford, NH 03110 USA Tel: 1.603.622.5109 Fax: 1.603.622.3862 Email: [email protected] www.scribesoftware.com About the author Peter R. Chase is Executive Vice President and founder of Scribe Software Corporation. With over 7,500 customers, Scribe is the leading provider of mid-market integration solutions. In his capacity at Scribe, Mr. Chase has advised numerous CRM vendors as they formulated their strategic integration strategies. He has also worked with many of Scribe’s customers to ensure a successful rollout of their enterprise integration solutions.