Over the course of the year and particularly during the holiday season, many companies are hastily fulfilling their customer orders. These orders include packages that are shipped by carriers from all over the world to their final destinations. A critical component within the overall supply chain process is that companies need to have available up-to-the-minute delivery tracking information of their shipped product so as to effectively communicate accurate information to their customers. In this blog post, it is my attempt to share with you how I was able to leverage Scribe Insight technology so as to integrate UPS tracking information directly into Microsoft Dynamics CRM 2011. I used the publically available UPS SOAP based web service to get to the tracking information. Theoretically, you could build a similar integration with an alternative shipping company provided that they offered a SOAP based web service endpoint.
Setup Requirements:
1. Learn About Integrating UPS Developer Kit APIs
http://www.ups.com/content/us/en/resources/techsupport/integrating_apis.html
This link will provide a starting point to better understanding the UPS technology API's that are available for integration.
2. UPS Developer Kit
https://www.ups.com/upsdeveloperkit?loc=en_US
This link provides a "How to Get Started" section from which you will need to register for a UPS account. Below the "Developer API" section on the web page, you will find a link to the "Tracking" API, the one that I had used in my testing and being discussed in this post. You will also notice, there are many other API's that are obtainable should your interest stand elsewhere. Please note that you will not be able to download the API until after you have created a UPS account.
3. A valid UPS tracking number that you can use in your testing. I just happen to have one because of recent holiday shopping.
4. Scribe Insight (most current release, as of this post - 7.5.2), Web Services Adapter, and Scribe Adapter for Dynamics CRM 2011.
5. Let's not forget relevant Scribe Insight and web service experience as well!
Testing Steps Detail:
1. With your UPS account created and logged in, download the "Tracking" API. Via the "Support" tab and under the "Tools and Resources" section, click on "UPS Developer Kit". Remember this page because you will need to reference it later in step #3 below.
2. On the presented page, you should see a section labeled "How to Get Started". Click on step #5 and follow the instructions to request your access key. This will be needed later on.
3. Navigate back to the "UPS Developer Kit" page that you were on in step #1 above. In the "Developer APIs" section, click on the "Tracking" link. On the presented page, you will find a description of this API and how to download it.
4. Click on "Tracking.zip" link to download the API to your PC. It will be approximately 9.8KB in size.
5. Opening the "Tracking.zip" file, you will see 3 folders (Common and General, Developers Guide, and TrackingPACKAGE). Certainly take time to familiarize yourself with the zip file's entire content however the folder and specific content of interest regarding this post may be located within \TrackingPACKAGE\TRACKINGWebServices\SCHEMAS-WSDLs. I would recommend that you extract all the files (5 of them) to a local folder from which you will reference when building out your Scribe Insight integration.
6. Unfortunately all is not easy and you will need to perform a few edits to the extracted Track.wsdl and TrackWebServiceSchema.xsd files. Reason being is that the WSDL makes reference to the schema files (TrackWebServiceSchema, common, Error1.1, and UPSSecurity) however the referenced pathname does not reflect where you just saved your files in step #5 above.
7. Beginning with the Track.wsdl file, here are the edits (highlighted) that need to be made:
8. Next you will need to edit the TrackWebServiceSchema. See below:
9. With the above edits in place and the files saved, you are now ready to launch the Insight Workbench application and create a web service connection to the Track.wsdl file. Note the 3 sequential steps highlighted below that you will need to perform to use Track web service endpoint. In step 1, make sure that you path out to your Track.wsdl location on your PC.
10. With the "Validate" operation successful, on the "Configuration" tab, set the SOAP Header values with your provided UPS credentials.
11. Shown below is where you can set a static value with your genuine UPS tracking number.
12. At this point you are now ready to build out your integration design, using Scribe Insight. Appreciating that integration designs can come in many flavors, I have shared my process flow diagram of the automated steps that I had put together to integrate data from UPS into Dynamics CRM. I have also provided some additional detail of my Insight design.
13. Associated to a Scribe Console queue-based integration process, my Workbench DTS step logic is shown below. This logic is initialized at step #3 shown in above process flow diagram.
14. The web service call (Step 1 of Workbench logic) executes a request to UPS tracking WSDL based on the XML message automatically published from the user's initial sales-order update within Dynamics CRM. The XML contains the sales-order update information such as tracking number, account information, etc. The web service request immediately provides a return response with various tracking number related information which is then captured as target variables to be used later on within design step 3.
Step 2 of the Workbench logic performs a seek into Dynamics CRM so as to identify the proper account that has the matching UPS tracking number. You will note that I am using multi-target functionality within my Workbench design.
Step 3 then performs an update to the identified Dynamics CRM account to include tracking information such as UPS Activity Date, UPS Activity Status Description, UPS Reference Number Value, etc. Although there are many more values provided in the returned web service response, these are the values that I used to update my custom fields within the Dynamics CRM sales-order entity.
See snapshot below containing the Scribe Insight integration results within Dynamics CRM.
I hope that this information is useful to you and demonstrates the power that Scribe Insight can bring to your unique integration use case scenarios.