Friday, April 11, 2008

How To Define Your Needs Before Buying Crm

Like many other business trends, the pressure to keep up with the latest technology developments and hold on to your competitive edge can often lead to rushed and poorly researched decisions. Such is the case with Customer Relationship Management and its enormous industry growth and migration rates. Many CEO?s have been left scratching their head, wondering how to keep up and which CRM product is right for them?

The CRM market is packed with solutions that range from the simple contact management and tracking to the feature rich comprehensive solutions that can reach across you entire organization. However, the question for the interested buyer should remain, ?What can our organization/company/employees do with this CRM?? and not ?What can this CRM do for my company?? Approaching CRM vendors with this mindset will allow you to see past the over kill features and cumbersome processes inherent in most solutions. You need to see the value of their product as it relates to your business specific needs. Refining your company needs for a CRM solution based on your current business practices will help you find a suitable CRM solution!

By really analyzing your current processes and methods, flagging the procedures you want to enhance or areas you want to improve in efficiency, will better prepare you to test out CRM vendor platforms. As well as help you model your business processes to better benefit from a suitable CRM solution.

The majority of CRM software solutions are built on best practices in business, flowing from Marketing and Lead Management to Sales Automation; Account, Contact and Opportunity management to Sales tracking, reporting and forecasting capabilities. Furthermore, CRM vendors also offer simple customer service, support, and tracking features in the form of Case and Solution management. This base model is prevalent in many industry solutions and makes the first step on to a CRM platform relatively smooth.

However, the customer is left to do the drilling or the ?kicking of the tires? if you will, to really substantiate the value of the features embedded in the program and see if they will improve their current business processes, as well as enhance their employee productivity. In this case, finding the functions you need in a CRM will be just as important as the form it comes in. Acquiring a user friendly product will ensure your employees adopt the product quickly and continue to use it in the long run.

With step one accomplished, the goal should now be to review the extent of the product offered by the vendor. Can this CRM solution accommodate your growing company? Your need to manage key processes such as projects, billing and invoicing, contracts, quote management, product inventory, human resource management, etc. should all be met by the same CRM solution. There is nothing more disconcerting then having to procure services from multiple vendors to get close to the CRM functionality and organization you need.

By defining your needs in a CRM software solution, you will be better served when it comes to researching and evaluating the different products on the market, as well ensuring your company benefits from your decision on the whole. By knowing what you it is you need in a CRM, as well as what it is that will work for your particular organization, you will ensure your employees can adopt and use the solution you choose.

Colin Duffy enjoys writing about CRM subjects and on demand CRM and ERP software vendors such as Salesboom ( http://www.salesboom.com )

Labels: , , , , , ,

Thursday, March 20, 2008

Customer relationship management (CRM)

Customer relationship management (CRM) helps businesses build profitable customer relationships.The general purpose of CRM is to enable organizations to better manage their customers through the introduction of reliable systems, processes and procedures for interacting with those customers.

Implementing CRM :

A good CRM program needs to

  • Identify customer success factor
  • Create a customer-based culture
  • Adopt customer-based measures
  • Develop an end-to-end process to serve customers
  • Recommend what questions to ask to help a customer solve a problem
  • Recommend what to tell a customer with a complaint about a purchase
  • Track all aspects of selling to customers and prospects as well as customer support.
Purposes of Customer Relationship Management :

A good CRM program can improve customer service by facilitating communication in several ways:

  • Provide product information, product use information, and technical assistance on web sites that are accessible 24 hours a day, 7 days a week.
  • Identify how each individual customer defines quality, and then design a service strategy for each customer based on these individual requirements and expectations.
  • Provide a fast mechanism for managing and scheduling follow-up sales calls to assess post-purchase cognitive dissonance, repurchase probabilities, repurchase times, and repurchase frequencies.
  • Provide a mechanism to track all points of contact between a customer and the company, and do it in an integrated way so that all sources and types of contact are included, and all users of the system see the same view of the customer.
  • Help to identify potential problems quickly, before they occur.
  • Provide a user-friendly mechanism for registering customer complaints.
  • Provide a fast mechanism for handling problems and complaints.
  • Provide a fast mechanism for correcting service deficiencies.
  • Use internet cookies to track customer interests and personalize product offerings accordingly.
  • Use the Internet to engage in collaborative customization or real-time customization.

Microsoft Dynamics CRM :

Microsoft Dynamics CRM will help you:

  • Provide your employees with easier and quicker access to the customer data they need to do their jobs.
  • Link all of your customer records together in one place.
  • Help your marketing, sales, and customer service teams work better, together.
  • Make it easier for your customers to contact you and get the information they need about their account, order, or shipment.
  • Make your customers feel that they are indeed your most valuable asset

For Computer Books visit:
Halfvalue.com
[Buy Cheapest Books]

Other useful websites:
Halfvalue.co.uk
Lookbookstores.com

Ekta Verma

Labels: , , , , ,

Tuesday, November 27, 2007

Microsoft CRM Programming Secrets tips for developer

This article is for advanced Microsoft CRM SDK C# developers. It describes the technique of direct SQL programming, when SDK doesn't have the functionality to do the job.

Introduction. Looks like Microsoft CRM becomes more and more popular, partly because of Microsoft muscles behind it. Now it is targeted to the whole spectrum of horizontal and vertical market clientele. It is tightly integrated with other Microsoft Business Solutions products such as Microsoft Great Plains, Solomon, Navision (the last two in progress).

Here we describe the technique of creating closed activity-email using MS CRM SDK and direct SQL programming.

Imaging something like this. You need to handle incoming email before it is committed to MS Exchange database. You need to analyze if incoming email doesn't have GUID in its Subject (GUID will allow MS CRM Exchange Connector to move email to Microsoft CRM and attach it to the Contact, Account or Lead) - then you still need to lookup MS CRM in case if one of the accounts, contacts or leads has email address that matches with sender email address - then you need to create closed activity-email in MS CRM, attached to the object and placed into general queue.

How to create MS Exchange handler is outside of the scope, please see this article:


http://www.albaspectrum.com/Customizations_Whitepapers/Dexterity_SQL_VBA_Crystal/ExchangeHandlerExample.htm

Now the code below is classical MS CRM SDK and it will create activity email:


public Guid CreateEmailActivity(Guid userId, int objectType, Guid objectId, string mailFrom, CRMUser crmUser, string subject, string body) {

try {

log.Debug("Prepare for Mail Activity Creating");

// BizUser proxy object

Microsoft.Crm.Platform.Proxy.BizUser bizUser = new Microsoft.Crm.Platform.Proxy.BizUser();

ICredentials credentials = new NetworkCredential(sysUserId, sysPassword, sysDomain);

bizUser.Url = crmDir + "BizUser.srf";

bizUser.Credentials = credentials;

Microsoft.Crm.Platform.Proxy.CUserAuth userAuth = bizUser.WhoAmI();

// CRMEmail proxy object

Microsoft.Crm.Platform.Proxy.CRMEmail email = new Microsoft.Crm.Platform.Proxy.CRMEmail();

email.Credentials = credentials;

email.Url = crmDir + "CRMEmail.srf";

// Set up the XML string for the activity

string strActivityXml = "";

strActivityXml += "";

strActivityXml += "") + "]]>";

strActivityXml += "";

strActivityXml += userId.ToString("B") + "";

strActivityXml += "";

// Set up the XML string for the activity parties

string strPartiesXml = "";

strPartiesXml += "";

strPartiesXml += "" + crmUser.GetEmailAddress() + "";

strPartiesXml += "" + Microsoft.Crm.Platform.Types.ObjectType.otSystemUser.ToString() + "";

strPartiesXml += ""+ crmUser.GetId().ToString("B") + "";

strPartiesXml += "";

strPartiesXml += Microsoft.Crm.Platform.Types.ACTIVITY_PARTY_TYPE.ACTIVITY_PARTY_TO_RECIPIENT.ToString();

strPartiesXml += "";

strPartiesXml += "";

strPartiesXml += "";

strPartiesXml += "" + mailFrom + "";

if (objectType == Microsoft.Crm.Platform.Types.ObjectType.otAccount) {

strPartiesXml += "" + Microsoft.Crm.Platform.Types.ObjectType.otAccount.ToString() + "";

}

else if (objectType == Microsoft.Crm.Platform.Types.ObjectType.otContact) {

strPartiesXml += "" + Microsoft.Crm.Platform.Types.ObjectType.otContact.ToString() + "";

}

else if (objectType == Microsoft.Crm.Platform.Types.ObjectType.otLead) {

strPartiesXml += "" + Microsoft.Crm.Platform.Types.ObjectType.otLead.ToString() + "";

}

strPartiesXml += ""+ objectId.ToString("B") + "";

strPartiesXml += "";

strPartiesXml += Microsoft.Crm.Platform.Types.ACTIVITY_PARTY_TYPE.ACTIVITY_PARTY_SENDER.ToString();

strPartiesXml += "";

strPartiesXml += "";

strPartiesXml += "";

log.Debug(strPartiesXml);

// Create the e-mail object

Guid emailId = new Guid(email.Create(userAuth, strActivityXml, strPartiesXml));

return emailId;

}

catch (System.Web.Services.Protocols.SoapException e) {

log.Debug("ErrorMessage: " + e.Message + " " + e.Detail.OuterXml + " Source: " + e.Source);

}

catch (Exception e) {

log.Debug(e.Message + "" + e.StackTrace);

}

return new Guid();

}


Now I would like to share the trick with you - there is no method to make this activity closed in MS CRM SDK 1.2 (if somebody knows the one - I owe you small pocket aquarium - smile!). Obviously Microsoft doesn't support if you do direct SQL programming bypassing SDK. However I would say this is not direct objects creation - this is rather flags correction. So here is what we have - this procedure will do the job and make activity closed:


public void UpdateActivityCodes(Guid emailId) {

try {

OleDbCommand command = conn.CreateCommand();

command.CommandText = "UPDATE ActivityBase SET DirectionCode = (?), StateCode = (?), PriorityCode = (?) WHERE ActivityId = (?)";

command.Prepare();

command.Parameters.Add(new OleDbParameter("DirectionCode", Microsoft.Crm.Platform.Types.EVENT_DIRECTION.ED_INCOMING));

command.Parameters.Add(new OleDbParameter("StateCode", Microsoft.Crm.Platform.Types.ACTIVITY_STATE.ACTS_CLOSED));

command.Parameters.Add(new OleDbParameter("PriorityCode", Microsoft.Crm.Platform.Types.PRIORITY_CODE.PC_MEDIUM));

command.Parameters.Add(new OleDbParameter("ActivityId", emailId));

log.Debug("Prepare to update activity code " + emailId.ToString("B") + " in ActivityBase");

command.ExecuteNonQuery();

}

catch(Exception e) {

log.Debug(e.Message + "" + e.StackTrace);

}

}


Happy customizing! if you want us to do the job - give us a call 1-866-528-0577! help@albaspectrum.com

Andrew Karasev is Chief Technology Officer in Alba Spectrum Technologies USA nationwide Microsoft CRM, Microsoft Great Plains customization company, based in Chicago, California, Colorado, Texas, New York, Georgia and Florida, Canada, UK, Australia and having locations in multiple states and internationally (www.albaspectrum.com), he is Dexterity, SQL, C#.Net, Crystal Reports and Microsoft CRM SDK developer.


akarasev@albaspectrum.com

Labels: , , , , , , , ,