Wednesday, March 19, 2008

What You Need To Know To Negotiate A Great CRM Software Deal

Small and midsize businesses (SMBs) are a growing source of revenue for software vendors of all sizes. Many enterprise software vendors have found that the market for enterprise software has become saturated. At the same time, SMB?s have increased their investment in technology to satisfy customer demands, control costs, and meet new government regulations.

These market dynamics have resulted in CRM vendors offering CRM software solutions that are better suited and priced for the SMB market.

While SMB?s today have the opportunity to improve their competitive edge with top notch CRM software, they also encounter complex software evaluations and sophisticated contract negotiations.

Outlined below are ten insider tips to negotiating a better deal with your CRM software vendor.

1) Do an RFP - Protect Yourself from Overbuying

2) Workd with atleast 2 Credible Vendors - Don?t Narrow Contenders too Fast

3) Consider the Entire Package - Hardware, Software, Maintenance, and More

4) Negotiate Future Expenses - Limit Fee Increases

5) Clarify the Fine Print - Define Usage Rights

6) Do Your Research - Use all the Available Free Research Tools

7) Serve as a Reference - Your Endorsement is Gold

8) Beef-up Your Deal Negotiation Skills - Win Against Polished Sales Pros

9) Negotiate the Hidden Costs of Hosted CRM Solutions - Uncover the True Cost

10) Think Ahead - Lock in Price Discounts

You should know your advantages before negotiating with a CRM software vendor. Market dynamics have created an ideal CRM software buying opportunity for small and mid-size businesses. SMB?s have access to better software solutions, at better prices, than ever before.

In today?s competitive market, CRM vendors are willing to negotiate. As you enter into negotiations use the tips and don?t forget?your vendor?s sales plan depends on revenue from companies just like yours.

To download the entire white paper, please visit our site using the link below.

CRM-Software-Evaluation.com is a FREE resource that helps you with CRM Software Evaluation. Please visit CRM Software Negotiation to download the complete white paper

Labels: , , ,

Tuesday, March 18, 2008

CRM: The Customer is the Only Boss

CRM: The Customer is the Only Boss

Publishing Guidelines: You may publish my article in your newsletter, on your website or in your print publication provided you include the resource box at the end. Notification would be appreciated but is not required.

By S. Maurer

Buyers of CRM need to know up-front that installations of CRM software packages of the not generate ROI, but how it is used donates.

Too many vendors and buyers focus on tangibles that plows very difficult to measure, especially over the short term.

There is only one boss: the Customer.

And he can fire everybody in the enterprise, from the chairman on down, simply by spending his money somewhere else.

Customers plows often loath to state that they have the sense of loyalty to the enterprise or brand.

Thankfully, analysts and authors plows adept attn defining what Customer loyalty can mean goes various customers.

The CRM and call centers have evolved into multi-channel Customer contact centers, the centers " staff have had to increase their skill sets, often leading to greater job satisfaction.

Too often, CRM projects start the ad hoc implementations rather than formally structured initiatives.

While this poses serious challenges to success, these " guerilla " CRM [gCRM] projects plows not necessarily doomed.

It is difficult to state precisely what Customer Relationship Management CRM means to everyone.

Ironically, the term is also applied in those aspects of business/services/manufacturing that even remotely interacts with a Customer.

Understanding the concept of CRM will help in decisions relating Customer Relationship Management product, CRM software and CRM solutions.

Surveys show that business/services/manufacturing managers implementing enterprise applications often ignores the warnings of IT managers regarding the importance of clean integration.

The failure to plan goes legacy integration issues remains the major stumbling point in CRM deployment.

Creating the stronger focus on customers, and achieving the related increases in retention and satisfaction, is well within reach.

Who are your best customers? What can you do to retain them? How can you attract others like them? How can you improve the profitability of all your customers? With tight budgets and demanding revenue targets, questions like these are increasingly urgent.

S. Maurer is a 53-years old college graduated IT professional, with 30 years of experience in the computer & technology business. Now is the Correspondence Courses Director of the Abet Open University: http://distance-learning-mba-online-mba-program-executive-jobs.net and http://mba-library.com

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: , , , , , , , ,