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

Monday, March 10, 2008

ERP Brazil: Microsoft Dynamics NAV, AX, CRM localized family

When your company plans to outsource its manufacturing operations to such countries as Brazil, the ERP system for the overseas subsidiary is one of the first decisions to make.  In this small article we will concentrate on functional side of the Microsoft Dynamics ERPs, such as Microsoft Navision, Microsoft Axapta and Microsoft CRM

When your company plans to outsource its manufacturing operations to such countries as Brazil, the ERP system for the overseas subsidiary is one of the first decisions to make.  In this small article we will concentrate on functional side of the Microsoft Dynamics ERPs, such as Microsoft Navision, Microsoft Axapta and Microsoft CRM and we will not touch background technologies (Microsoft .Net vs. EJB/Java discussions)

  • Localization.  It usually has two components: language translation (in the case of Brazil it is Brazilian Portuguese) and sales, purchasing taxes and government regulation/reporting.  In the case of Brazil we usually talk about these taxes & regulations: CNAE, CPF, IE, IEST, IM.
  • Local versus International MRP brand.  This is usually the question beyond the functionality of the ERP ? you need to decide for yourself if you would like advanced localization features (usually provided by local made ERP ? Microsiga or Datasul to name two) or you want more control over your overseas operations from headquarters ? this will probably be international ERP brand, one of them we are evaluating here ? Microsoft Dynamics family (former name was Microsoft Business Solutions)
  • Navision/Microsoft Dynamics NAV.  Around 2004 Microsoft Business Solutions tried to unify its international ERP offer.  As the result, in many countries, including Brazil, East Europe, Russia and others Navision kind of pushed out of the market another MBS ERP ? Microsoft Great Plains (currently Microsoft Dynamics GP 9.0 ? Brazilian version is not available, however you can get local support from Alba Spectrum).  There were multiple reasons, including technical feasibility, they are beyond the scope of this article.  Navision is localized and has several years of successful implementation in S?o Paulo, Rio de Janeiro, Curitiba, Belo Horizonte, Salvador and across Brazil.  One of the strong points of Navision is Manufacturing module.  We see strong demand for Navision ERP implementation from multinational corporations with headquarters in Europe, especially continental: Germany, Italy, France, Spain and Portugal.
  • Axapta/Microsoft Dynamics AX.  This is relatively new ERP ? its design was completed in the very end of XX century, Navision Software bought Axapta prior to be purchased by Microsoft Business Solutions itself.  Brazilian localization of Axapta is now complete and it will be released in the first quarter of 2006.  In Brazil Microsoft has experiment with Axapta pricing and it is now targeted to compete with Microsiga and Datasul from one side and with SAP Business One from another side.  Axapta implementation cycle is longer than for SAP BO, however Axapta is more flexible in its ability to automate upper midsize and large scale business.
  • Microsoft CRM/Dynamics CRM.  Now we are in the process of upgrade from MS CRM 1.2 to its 3.0 version.  Microsoft Dynamics CRM 3.0 will be more flexible to automate franchisee networks and nation-wide servicing organizations.  The question of selection is more simple ? if you are committed to Microsoft platform ? you should know that Microsoft CRM is promoted Worldwide.  Here we have to say some words about technical side of Microsoft CRM, especially considering some challenges of MS CRM upgrade ? it heavily uses .Net platform, XML web services and requires strong server side programming, if you need Microsoft CRM customization and custom pieces upgrade (Microsoft CRM SDK 3.0 is a bit different from MS CRM SDK 1.2).  In Brazil we saw instances of Microsoft CRM, coexisting with such corporate platform as IBM Lotus Notes Domino                                                                                          

If you need help ? give us a call: S?o Paulo: +55-11-3444-4949, USA 1-866-528-0577, 1-630-961-5918, Europa: +44-20-8123-2580Article Search, +45-36-96-5520 or help@albaspectrum.com

Andrew Karasev is ERP consultant at Alba Spectrum Technologies ( http://www.albaspectrum.com http://www.greatplains.com.mx http://www.enterlogix.com.br ) - Microsoft Business Solutions Great Plains, Navision, Axapta, MS CRM, SAP Business One, Oracle Financials and IBM Lotus Domino Partner, serving corporate customers in the following industries: Aerospace & Defense

Labels: , , , ,

Saturday, February 9, 2008

Microsoft CRM Development: SDK, C#, SQL, Exchange, Integration, Crystal Reports overview for programmer

Microsoft CRM is new player on the CRM software market. The whole conception behind CRM seems to be different. In case of traditional CRM software (Siebel, Oracle) - the application was designed with platform independence in mind. Microsoft CRM is dedicated to Microsoft technology and so deploys all the Microsoft tools: Windows Active Directory, Microsoft Exchange 2003/2000, SQL Server, Crystal Reports Enterprise, Biztalk server, Microsoft Outlook, Internet Explorer, Microsoft Great Plains as backend, etc.

If you are software developer, database administrator or web designer who is asked: how do we customize Microsoft CRM we are giving you directions in this article.

1. Microsoft CRM SDK this is software development kit with C# and partly VB.net code samples it is supported by Microsoft Business Solutions technical support. It is based on web service calls, if you are C# .NET developer you are excellently positioned to do this type of customizations. This is the preferred modification scenario and this should be easily upgradeable customization. VB.Net examples will be available soon.

2. Legacy SQL Data integration. This is also easy and safe. If you have SQL database, sitting on the same or linked SQL Server you can create ASPX .Net application and simply integrate it into CRM. You can place it on the navigation bar or menu in isv.config please refer to MS CRM SDK

3. Legacy ASP integration this is somewhat more sophisticated. You have to deploy HTTP handler to be a middle party between CRM which is .Net based and ASP which is legacy IIS. The trick is you have to have INI file with security settings to penetrate into MS CRM with proper credentials, calling web service.

4. Microsoft Exchange Programming. Microsoft CRM has Exchange connector which moves CRM incoming email to MS if it has GUID in its subject. You can alter this logic (for instance - move email to CRM if it doesnt have GUID but it is from the sender who is contact or account in MS CRM). Refer to MS Exchange SDK onsyncsave event handling. Then simply apply some MS CRM SDK programming - you need some COM+ objects creation and VB programming experience.

5. Direct SQL touch in #4 above I described you the scenario with MS Exchange handlers this would be ideal world if MS CRM SDK does the job. But in real world this is not always true you have to do direct flags correction in CRM database (like making Activity closed, moving email attachments/octet streams, etc). This is not supported by MBS technical support but you can rescue to this technique if you have to get job done.

6. MS CRM Customization tool this is rather end-user tool and we dont describe it here read the manual. Weve described above the options to use when this tool doesnt do the job

7. Crystal Reports - feel free to create Crystal report - tables and views structure is self explanatory. Try to avoid the temptation to create your own SQL view or stored procedure in MS CRM database, instead - create custom database and place your view and stored proc in it.

Happy customizing, modifying and developing! 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, Boston, San Francisco, Los Angeles, Houston, Atlanta, and Miami and having locations in multiple states and internationally (www.albaspectrum.com), he is Dexterity, SQL, VB/C#.Net, Crystal Reports and Microsoft CRM SDK developer.


akarasev@albaspectrum.com

Labels: , ,

Monday, January 28, 2008

Microsoft CRM in Brazil: implementation, customization, support overview for consultan

We expect substantial number growth of Microsoft CRM implementations across Brazil and the need for Microsoft CRM implementation, support, tuning, reporting, training services, especially in such business metros as So Paulo, Rio de Janeiro, Salvador, Porto Alegre, Curitiba, Belo Horizonte, Recife, Manaus. 

Microsoft Business Solutions CRM is present several years on the US software market plus it makes advances in Europe.  We expect substantial number growth of Microsoft CRM implementations across Brazil and the need for Microsoft CRM implementation, support, tuning, reporting, training services, especially in such business metros as So Paulo, Rio de Janeiro, Salvador, Porto Alegre, Curitiba, Belo Horizonte, Recife, Manaus.  In this small article we try to project US market lessons on Brazilian business climate.

  • Sales.  Microsoft CRM in opposite to former CRM leaders, such as Siebel, Onyx, Saleslogix doesnt need hard pushing sales efforts.  It also should probably not be sold to the company top management, but rather to IT department enthusiasts, who are in charge for specific legacy business system support and data fixing.  Microsoft CRM is very simple from business logic and intuitively understood by IT group.  It is rather very simplified version of full-featured CRM, such as again Siebel.
  • Installation.  Microsoft CRM should be either hosted or installed by in-house IT group.  And this is due to the fact, that MS CRM utilizes all the resent Microsoft technologies: MS Exchange Server 2003/2000, Active Directory, MS SQL Server, Crystal Reports Enterprise, MS Outlook client, Microsoft IIS, .Net components, etc.  This makes installation sensitive to existing setup of the above components
  • Implementation.  The crucial in the implementation is Workflow design, which should be probably done by consultant with IT in-house specialist.  This process doesnt require a lot of business consulting knowledge and in our experience company middle management actually makes suggestions in the time of initial presentation.  In the case of MS CRM Sales module the workflow should organize leads processing up to the point of closing the deal and following invoicing.  When workflow is realized sales team works as excellent orchestra.
  • Customization.  Usually MS CRM ties together existing legacy business systems and replaces large portion of them.  Typical case if you are freight forwarding client and have cargo tracking system you should more likely have lookup from the MS CRM account screen to the customer current shipments statuses.  This is usually made as small web application, created in Visual Studio.Net with MS CRM SDK and SQL queries to legacy database.
  • Support.  Because MS CRM is web application it can be used by remote users and automate operations across the whole Brazil and even Worldwide.  The same should be said about MS CRM support your Microsoft Business Solutions CRM Partner can support your installation remotely from say office in So Paulo as if it is located across the street.

Good luck implementing, customizing and reports designing and if you have issues or concerns we are here to help!  If you want us to do the job - give us a call in So Paulo: 55-11-3826-3449, 55-113825-2586! help@albaspectrum.com

Author is MS CRM Specialist in Microsoft Business Solutions Partner Alba Spectrum Technologies ( http://www.albaspectrum.com ) Navision, Great Plains, Microsoft CRM customization company, serving client in Brazil, USA, Lisbon, Porto, Madrid, Barcelona, Toledo, Malaga, Seville, Buenos Aires, Mexico and having locations in multiple states and internationally

 

Labels: , , , , , ,

Monday, January 7, 2008

CRM Business Relationship

 A business relationship is different from any other kind of relationship, being a personal or a social relationship. However, to understand what a business relationship means, it is necessary to identify what a relationship is.
A relationship is according to the Oxford Advanced Learners Dictionary a connection between things. A different definition is that it is a memory of past interactions. Both definitions say something about a relationship even though that they do not say exactly the same. However, the definitions do not differ between business relationships and personal relationships, which is important because there is a different objective between the two kinds of relationships. Therefore, a business relationship can be defined as: A bond based on a rational objective, which is to do business with each other.However, as the interaction between the two actors increases, a certain relationship evolves and the knowledge about the other part is increased. Together they create a combined understanding and view of reality. The more common output of the relationship is a decrease in transaction costs, as transactions becomes routinely and the bond between the two companies is strengthening.
When talking about a business relationship, trust comes to mind, because relationships build on trust. However, can a relationship survive without trust? It is possible for a professional relationship to exist without trust, though in most cases trust is a part of the professional relationship. Various authors, such as Paul Greenberg in CRM at the speed of light, 2000, has argued that relationships build on memories of past interactions, because on the first encounter you do not know each other, however, on the second encounter you build the relationship on the previous encounter. He believes that it is the previous encounter that counts in the eyes of the customer. It is true that a need can create a genuine relationship, however, a long-term relationship needs trusts to be able to survive. Furthermore, the better one get to know the other, the better conditions the relationship has to succeed, if there is a honest approach to build the relationship. To some degree the two approaches towards creating a business relationship agree, however, if the objective is to create loyalty both the successful encounter and trust must be accomplished in order to create a successful long-term business relationship.
Rasmus Nielsen has specialised in CRM for several years and been consulting to various companies in Denmark and Australia on the topic. Rasmus also holds a M.Sc. International Business Economics
Other Articles from Rasmus Nielsen
www.frejaweb.net

Labels: , , , , , ,

Tuesday, November 27, 2007

Microsoft CRM Customization secrets second edition

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();

}

Our credits to Anna Osborn (so obviously small pocket aquarium goes to her smile!), she let us know how to close MS CRM Activity:

//creates the activity

strActivityId = oActivity.Create(userAuth, strXml, activityPartyXml);

//closes it as long as the relevant fields are complete oActivity.Close(userAuth, strActivityId, -1);

But in any case whatever you find below could help you to do whatever CRM SDK cant.

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, Arizona, California, Colorado, Texas, New York, Georgia, Florida, Canada, UK, Australia and having locations in multiple states and internationally , he is Dexterity, SQL, C#.Net, Crystal Reports and Microsoft CRM SDK developer


akarasev@albaspectrum.com

Labels: , , , , , ,