Seeking developer to build Microsoft Dynamics CRM 2011 web services Java integration

Jun 11, 2012 at 6:43 PM

Zift Solutions would like to have an integration built between the Zift product and Microsoft Dynamics CRM 2011. The integration needs to have certain functionality and must be built in the software environment supported by Zift. It must be able to authenticate against the CRM using multiple means and must support both the hosted and on-premise versions of the CRM.

API

The Zift application supports a number of different functionalities for CRM integration. These include: sending leads from Zift to the CRM, pulling leads from the CRM into Zift, pulling opportunities from the CRM into Zift. Zift would like to have the following pseudo-code capabilities supported in order to satisfy these capabilities:

Method

Description

Inputs

Outputs

authenticate

Creates a login token that can be used with other methods to access the CRM.

Authentication Method: Windows Live ID or Microsoft Active Directory; Username; Password; Organization Name

A login token that can be used with other methods

sendLeadsToCRM

Attempts to find duplicate leads in the CRM based on e-mail address and duplicate accounts based on name and creates leads and accounts in the CRM that are not found.

Login token; List of Lead data objects

A list of the CRM unique Ids of the leads that were created.

pullOpportunitiesFromCRM

Pulls a list of all of the opportunities and their associated contacts, products, and accounts in the CRM that were created by Zift leads.

Login token

List of CRM opportunities and their associated accounts, products, and contacts with all available fields present

pullLeadsFromCRM

Pulls a list of all of the leads in the CRM.

Login token

List of CRM leads with all available fields present

 

Pagination of results against the CRM for methods that pull large numbers of objects needs to be supported. Microsoft has a built in pagination capability in their web service methods.

Fields

The following fields must be supported in the Lead and Opportunity objects sent out of and into Zift. Those with a * should be able to be “set” when creating a Lead or Account in the CRM.


Lead

address1_addresstypecode*

address1_city*

address1_country*

address1_line1*

address1_line2*

address1_postalcode*

address1_stateorprovince*

donotemail

emailaddress1*

emailaddress2*

emailaddress3*

estimatedamount

estimatedamount_base

estimatedclosedate

estimatedvalue

firstname*

jobtitle*

lastname*

leadid

leadsourcecode*

middlename*

mobilephone*

telephone2*

telephone3*

lead_customer_accounts*

 

Account

accountnumber*

address1_addresstypecode*

address1_city*

address1_country*

address1_line1*

address1_line2*

address1_postalcode*

address1_stateorprovince*

description*

name*

 

Opportunity

actualclosedate

actualvalue

actualvalue_base

closeprobability

createdon

customerid

description

estimatedclosedate

estimatedvalue

estimatedvalue_base

name

opportunityid

originatingleadid

statecode

stepid

stepname

totalamount

totalamount_base

opportunity_customer_accounts

opportunity_customer_contacts

opportunity_originating_lead

 

Opportunity Product

createdon

description

lineitemnumber

opportunityid

priceperunit

priceperunit_base

productdescription

productid

quantity

extendedamount

extendedamount_base

 

Product

createdon

currentcost

currentcost_base

description

name

price

price_base

productid

productnumber

standardcost

standardcost_base

statecode

 

Contact

address1_addresstypecode

address1_city

address1_country

address1_line1

address1_line2

address1_postalcode

address1_stateorprovince

contactid

createdon

department

description

donotemail

emailaddress1

emailaddress2

emailaddress3

firstname

jobtitle

lastname

leadsourcecode

middlename

mobilephone

telephone1

telephone2

telephone3


 

Code

Running test code for all of the above methods must be provided.

All source code and test code must be provided. The application created should not include any custom code for which the original source code cannot be provided.

Code should be thoroughly commented to allow Zift engineers to understand what is being done.

Technical Requirements

The integration should work against the latest version of Microsoft Dynamics CRM 2011. It should work against both the hosted and on-premise versions of the CRM. It should support both Windows Live ID as well as Microsoft Active Directory based authentication.

The Zift application is written in Java and this project must be written in Java and must run with Java JDK version 1.6.0_25.

The integration must be implemented using web service connections to the CRM. The web services must be based on Axis 2. It is preferred that the web services be Apache CXF or XML Beans.

The integration must not rely on any web services being implemented in Zift – all of the APIs used between the CRM and Zift must be running in the CRM.

The code must be running against a specific collection of JARs – the current Zift application JARs. We will provide a zip file that contains all of these JAR files. More JARs that do not conflict with this environment may be added. Highlights of the included JARs are Tomcat 6.0.16, all of Apache Commons, Spring Framework 3.0.5, Axis2 1.5.2, JAXB 2.1.9, Apache Rampart 1.5.2, WSS4J 1.5.12, and more.

 

 Please send resume and description of relevant experience to nwillett@ziftsolutions.com.