Search: CRM+On+Demand

CRM Goes to School, Supports Enrollment Growth

by C.R. Matín on June 30, 2011

At Post University in Waterbury, CT, the focus is on the student. Generally, the first interaction from a potential student is a lead, which can come from a variety of sources. Any delay in following up with the interested student (the lead) affects the conversion success rate, i.e., the likelihood of enrollment. By implementing Oracle CRM On Demand, Post University automated the admissions process so the admissions counselors are in direct contact with the students and eliminated many manual steps. The admissions and marketing teams, as well as the students, benefit from the new streamlined process.

Up next, Post University, plans to increase the efficiency of the student retention processes with the expansion of Oracle CRM On Demand.

Take a look at the video to learn more about Post University's Oracle CRM On Demand implementation:

Congrats to Post University, and Apex IT, their implementation partner, on the successful implementation!

{ 0 comments }

Options: Plugin, Workflow or Dialog

by C.R. Matín on June 22, 2011

Our guest blogger today is Gonzalo Ruiz who is a CRM consultant for Avanade Canada.

This post is inspired by a popular article by my ex coworker Humberto Lezama G. regarding when to use plugins or workflows for implementing custom logic in Microsoft Dynamics CRM 2011. I have expanded the matrix to add additional criteria and more details about how each plugin vs. workflow handle different types of requirements. Additionally, I have added the new “dialogs” as an alternative in the chart.

Criteria
Use Plugin
Use Workflow
Use Dialog
Needs custom logic to execute synchronously.
Plugins support synchronous execution.
Dialogs always execute synchronously.
The logic needs to be executed while offline
Only plugins are supported offline.
Needs elevation of privileges (impersonation)
In the plugin step, you can select the user under which the plugin will execute by setting the impersonating user id in the plugin step.
In some cases you can control under which user the workflow will execute by assigning the workflow to that user. See more details here.
Needs to execute on events other than assign, create, update and set state
Can be registered on a large list of sdk messages. See more details here.
The process/logic may take a long time to complete or will be a persistent process (multiple long running steps)
Workflows have no limit on the length of time they can take to complete execution. They can also persist (pause) and resume at a later date. Plugins have a time limit of a couple of minutes to complete (even asynchronous plugins).
Needs to execute asynchronously
Plugins support asynchronous execution
Workflows support asynchronous execution
End users will need to modify the process logic
Processes can be modified using the CRM process designer in the application and does not require IT administrators to re-compile and deploy a plugin assembly.
Child sub processes will be triggered
CRM processes support executing child processes
Needs to read configuration parameters for execution
You can make use of the configuration and secure configuration settings in the plugin step. These values will be passed to the plugin constructor and can be easily updated.
Dialogs cannot be configured with configuration parameters but they can retrieve configuration information from user responses / interactions.
Need to execute logic on-demand
Workflows and dialogs can be executed on-demand. Plugins can only be triggered as a result of a specified action to which the plugin step is configured.
Needs to roll back transaction in case of error (useful for validation)
Plugins can be registered in-transaction so they are able to roll-back the main operation if the plugin fails. Workflows are executed post-transaction so they cannot roll back the main operation.
The plugin/workflow logic is not possible to implement by using the CRM process designer
Plugins are written in .NET and this supports any action that can be achieved using the CRM SDK.
You can extend workflows/dialogs by creating a custom workflow activity which is also written in .NET calling any method from the CRM SDK. However, this is not supported in CRM Online yet.
Interaction with user is required to execute the custom logic
CRM dialogs support the execution of a process which dynamically takes input from question asked to the user.
Need custom logic to execute before the main operation
Only plugins can be registered to execute pre- main operation.
Need to gather data from the entity pre-image (image of the entity before the main operation)
You can register pre-images for plugin steps.
Pre-image is available only from custom workflow activities (not supported in CRM Online)
Need to gather data from the entity post-image (image of the entity after the main operation)
You can register post-images for plugin steps.
Post image is available from the process designer in the CRM application.
Needs to be packaged into a solution
Plugins and processes are solution aware
Need to use variables to store temporary data
Use the SharedVariables collection to store variables that can be passed to other plugins.
Use the SharedVariables collection to store variables that can be passed to other workflow steps. These variables do not survive persistence and can only be used from custom workflow activities. Not supported in CRM Online.
Dialog support variables of type string, int and float that can be passed from one step to another. For other types, SharedVariables can be used from custom workflow activity.

Cheers,

Gonzalo Ruiz

{ 0 comments }

Oracle is #1 in CRM Applications Again!

June 10, 2011

We are happy to share some exciting news. We got word that IDC has just finalized it’s market share numbers for 2010, and that Oracle is once again in the number one spot for CRM applications.

Oracle had a share of 11.8% in 2010 which was s…

Read the full article →

Is Your Insurance Company Ready for Hurricane Season?

June 8, 2011

When I buy property & casualty insurance, I look for carriers that are easy to deal with. When trouble strikes, insurance carriers and agents need to work quickly with their clients.

Watch this new video dramatization of the Alamere Insuran…

Read the full article →

Live Webcast: Align Your Brand to What Consumers Demand

May 20, 2011

Complimentary 1to1 Webinar Tuesday, May 24th | 2:00PM Eastern
Consumers are a fickle bunch, often swayed by flashy promotions and discounts. Additionally, advances in social networking and mobility have fundamentally changed the way customers be…

Read the full article →

Buzzient Integrates Social Media Data into Oracle CRM On Demand

April 28, 2011

Do you remember Dave Carroll’s song "United Breaks Guitars" and all the bad publicity it gave United Airlines, but it did make Dave Carroll a celebrity. Everyone knows how powerful social media channels are today,and their influence on the buying…

Read the full article →

Buzzient Integrates Social Media Data into Oracle CRM On Demand

April 28, 2011

Do you remember Dave Carroll’s song "United Breaks Guitars" and all the bad publicity it gave United Airlines, but it did make Dave Carroll a celebrity.
Everyone knows how powerful social media channels are today,and their influence on the…

Read the full article →

Communication Service Providers: Accelerate Order Delivery Aircel Podcast

April 26, 2011

Learn how world class communication organizations are realizing competitive advantage now with Oracle’s Rapid Offer Design and Order Delivery solution. With fierce competition in voice, data, mobile, video, IPTV and On-demand services, it is a competitive necessity to provide…

Read the full article →

Communication Service Providers: Accelerate Order Delivery Aircel Podcast

April 26, 2011

Learn how world class communication organizations are realizing competitive advantage now with Oracle’s Rapid Offer Design and Order Delivery solution.With fierce competition in voice, data, mobile, video, IPTV and On-demand services, it is …

Read the full article →

SilverCrmSoap: A CRM Soap Library for CRM 2011

April 26, 2011

SilverCrmSoap is a library built using the methods in Walkthrough: Use the SOAP Endpoint for Web Resources with Silverlight. The SilverCrmSoap library simplifies SOAP Silverlight development for CRM 2011 by providing a class that does a lot of the heavy lifting right out of the box.

clip_image001Why use SilverCrmSoap?

If you are using the SOAP End Point, then the library will help simplify your project by removing the complexities of connecting to the SOAP End Point in Silverlight while providing additional tools to assist with your Silverlight project.  In the end, it really boils down to where do you use SOAP instead of REST?  You use SOAP when:

  • You need to use late binding to create a dynamic Silverlight application that works with any (or multiple) entities.
  • You need to execute a message.
  • You need to assign records.
  • You need to retrieve metadata.

There are benefits to using the REST endpoint too, and being able to quickly leverage both end points in a project can be extremely helpful.  You should use the REST End Point when:

  • You need to early bind to objects.
  • You want to leverage LINQ with the early bound objects.
  • You want compile time type support and IntelliSense.

You can find more information on the SOAP and REST End Points in the MSDN Article: Use Web Service Data in Web Resources (REST and SOAP Endpoint).

clip_image001[1]Using SilverCrmSoap

The SilverCrmSoap library is built to be added as a compiled DLL reference in a Silverlight projects.  It facilitates making calls to CRM when used in a Silverlight Web-Resource. 

Inside your Silverlight application solution in Visual Studio, add a reference to the compiled SilverCrmSoap.dll

clip_image002

Once referenced, there are three namespaces that assist with Silverlight development for CRM:

  • SilverCrmSoap.CrmSdk
  • SilverCrmSoap.FetchXml
  • SilverCrmSoap.Helpers

clip_image001[2]SilverCrmSoap.CrmSdk

Built following the steps in Walkthrough: Use the SOAP Endpoint for Web Resources with Silverlight, this namespace provides access to the SOAP Endpoint.  The SilverCrmSoap.CrmSdk also contains some examples for extending the base Entity class.  In the SilverCrmSoap project a UserOwnedEntitiy class has been added that extends the Entity class and raises the appropriate event when a field is changed.  By default the SOAP Entity object only raises a property changed event if the Attributes object itself is changed.  In addition to the UserOwnedEntity class which specifies the default fields for user owned entities, an Annotation class has been added that inherits from the UserOwnedEntity, adding the specific fields for notes.  This type of extension becomes important when you are attempting to facilitate data-binding.

clip_image001[3]SilverCrmSoap.FetchXml

The FetchXml namespace provides a set of classes built according to the FetchXml schema to allow deserialization of FetchXml to support the modifying parameters through code, i.e. objectifying FetchXml.  You will want to do this because a query expression does not return column values from another entity, and yet the reason why QueryExpressions are used so widely is because of their ability to easily be modified through code.  By de-serializing the FetchXml query string, you will be able to edit it’s values using objects, then serialize it to use in your queries

clip_image001[4]SilverCrmSoap.Helpers

The SilverCrmSoap Library contains 3 helpers, the Xrmhelper, the FormHelper, and the SoapHelper.

clip_image004

XrmHelper

The XrmHelper provides on-demand access to the JScript objects that are commonly used such as the Xrm.Page, context, etc.  It is also able to determine if the control was loaded as a web-resource on a form or if it was loaded outside a form.  When using this helper, it is important to either put the web-resource on the form or put it on an html page that provides access to the GlobalContext.

FormHelper

FormHelper takes the XrmHelper and provides a couple of additional quick access methods that utilize the JScript objects XrmHelper provides:

  • GetUserPrivilege: Get the privileges for an attribute and determines if the user can read, update, or create.
  • GetEntityValue: Gets a value from the form using the Xrm.Page.data.entity.attributes JScript Object.
  • SetEntityValue: Sets a value from the form using the Xrm.Page.data.entity.attributes JScript Object.
SoapHelper

The SoapHelper was built to leverage the walkthrough for interfacing the SOAP End Point and provide a set of methods to launch the proper asynchronous call, simplifying access.  One of the great things about these helpers is that you don’t need to specify the URL to use them.  They leverage the context to correctly set the service URL.  The SoapHelper provides a way to quickly connect to the SOAP End Point and a set of methods to jumpstart the begin statements of asynchronous SOAP calls:

  • BeginAssociate
  • BeginCreate
  • BeginUpdate
  • BeginDelete
  • BeginDisassociate
  • BeginExecute
  • BeginExecuteFetch
  • BeginExecuteRetrieveAllEntities
  • BeginExecuteRetrieveEntity

Cheers,

Carlton Colter

Read the full article →