Thursday, March 20, 2008

On-demand CRM Vs On-premise CRM

The key factors that decide the appropriateness of a CRM deployment, whether on-site or hosted include the amount of integration required, customer processes, and the extent of operations required for a fruitful customer interaction.

An on-demand solution can be useful in scenarios where customer relationships are managed largely by the sales department which functions more or less as an independent entity. Small companies that wish to track and manage their leads without having to go through a major IT deployment can benefit from an on-demand solution. Companies in which customer relationship management is intertwined with the working of several departments including the company contact center are better served by opting for an on-site CRM solution that are more suited for the level of integration required with large organizations. Integration of legacy systems that contain vital customer data and run important business processes with a new CRM application is another consideration. Organizations in the services sector need to upgrade customer data constantly and access it in real-time from highly customized systems. For such companies, on-site CRM that offers real-time integration is a better alternative. In contrast, if data exchange between application silos does not happen in real-time and is carried out periodically, then an on-demand solution may do the trick. A CRM solution has to facilitate customer processes such that a company can leverage its expertise to the hilt and improve upon its shortcomings and compete in the market. It should provide or integrate with customer and process technologies that allow companies to identify the requirements of a satisfactory customer experience and provide them consistently. Since customer tastes and needs are dynamic, a company needs to evolve its business processes constantly to be able to fulfill customer expectations. To do this it needs a customer process solution that helps it to compete in terms of cost, products, and service level. This requires a high degree of application customization that is usually found in on-site CRM systems. The total cost of ownership of on-demand CRM is low for a short-term deployment. Even within an on-demand scenario, different solutions will have different breakeven points which a business should consider. While researching CRM solutions, it is best to consider the short-term and long-term scenarios and opt for a solution that is cost-effective in the long-term and also provides the necessary scalability. The costs of deploying and running an on-demand CRM solution for upward of three years can be more than those for an on-site solution. Thus, the rule-of-thumb for deciding company profiles fit for on-site and on-demand CRM would be that companies looking for a ready-to-use solution that does not require on-premise IT expertise, do not require a major integration between functions, do not focus on creating opportunities to up-sell and cross-sell, and do not update customer data in real-time can benefit from on-demand solutions. Companies where customer-related decisions are affected by the workings of several departments need to provide customer data to all these departments such as sales, accounts, marketing, and call centers are candidates for an on-site solution. When the growth of an organization is linked with achieving an edge over the competition by means of advanced processes and managing customer experiences and proprietary customer data, which is too sensitive for storing in a third-party database, an on-premise system is a better option. Large companies need to constantly identify key customer trends and create strategies for cross- and up-selling and present a customized experience. To this end, they need a CRM solution that offers the depth of applications for achieving cross-organization linkage and swift customer analytics. These attributes are found in on-site solutions.

neophyteblogger runs the blog

www.crmchump.org

. The blog focuses on news and commentary related to CRM

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

Friday, March 7, 2008

What Is CRM, Customer Relationship Management?

CRM stands for Customer Relationship Management (CRM).

It?s hard to find a definitive definition of what CRM means. So I?ll outline the broad meaning and then give some examples.

You may have heard of the terms CRM and Customer Relationship Management in regards to software. Well CRM is not just a piece of software. It?s more than that.

The CRM Customer Relationship Management software is a vital component, yet the whole business needs to understand CRM Customer Relationship Management in all departments and functions of the business and behave appropriately to make CRM Customer Relationship Management work.

An effective CRM Customer Relationship Management will include methodologies, strategies, software, and web-based capabilities that help an enterprise organize and manage customer relationships.

Why use CRM Customer Relationship Management?

CRM Customer Relationship Management is used to help businesses (a.) understand their customer, and (b.) understand their customers? wants and needs and (c.) help the business serve them more efficiently and effectively

In turn this will help the business to improve customer satisfaction, increase staff productivity, slash operational costs and maximize the effectiveness of each customer interaction.

Let?s talk about these three different areas.

CRM Customer Relationship Management to Understand The Customer

In a CRM Customer Relationship Management application and approach a user will collect as much information about a customer that they can. They?ll collect names, addresses, contact numbers, age, sex, number of children etc. A CRM Customer Relationship Management process does this to, amongst other things; help ?classify? their customers.

A benefit of a CRM Customer Relationship Management system is that a user can help analyse which types of customers are best for their business.

Then once they know what customer ?types? are best they can then market to them in a ?personal? way ? using the information gained about them.

CRM Customer Relationship Management to Understand The Customers Wants and Needs

As information is collected about the customers? personal life, information is also collected about their buying habits and stored in CRM Customer Relationship Management software.

Humans are creatures of habit. By analysing the information collected about the customer and their buying habits the CRM Customer Relationship Management can be used to help the business identify what the customers would most likely want or need to buy.

For example, if your CRM Customer Relationship Management information lets you know that your best customers typically like buying ?red apples? in November for an average sale price of $15. You can prepare a marketing approach that is sent out to them prior to November that will steer them towards buying $30 worth of apples.

The customer sees it as useful because it?s something they like to do at that time of year, and you?re offering them a reminder and perhaps an incentive to buy more. The business benefits by structuring the offer to increase the sales value and therefore increasing the profit return.

CRM Customer Relationship Management is Useful to Also Target New Customers

Information gathered in the CRM Customer Relationship Management will help the business to target more of the preferred customers. An analysis using CRM Customer Relationship Management software could tell the business, for example, that single males between 30 to 35 years of age that earn between $50,000 and $60,000 are the best type of customer for the business.

Knowing that information from the CRM Customer Relationship Management, the business can then hire a list from a direct mail list broker of all the single men that fit the description and target their marketing towards them.

The CRM Customer Relationship Management activity of improving the relationship with the customer is to help keep the customer more loyal to the company and thus improve the profitability of the business.

CRM Customer Relationship Management to Help Efficiency and Effectiveness of Business

A good CRM Customer Relationship Management application will help the business to become more efficient and effective.

The business can become more efficient because if a customer contacts the business, within seconds the customer service representative can produce the customers file. This will tell the employee all about the customer and their interaction with the business.

So a CRM Customer Relationship Management saves time for the business and is able to help the employees deliver high levels of personalised service.

A CRM Customer Relationship Management software program and approach can help the business become more effective. An example would be marketing.

Knowing all the information about the customers, the marketing strategies can be targeted towards the customers in a personal way. Thus marketing to a defined target market with a past history the potential of improved results is far greater than marketing to a ?cold? list.

This article should only be viewed a very broad overview of what CRM Customer Relationship Management is.

On this website you?ll find more detail and resources to help you understand and use CRM Customer Relationship Management for your business.

Casey A Gollan, The Business Growth Specialist for CRM Software Center - All the general information and resources for everything CRM - Customer Relationship Management. Visit http://www.crmsoftwarecenter.com and http://www.caseygollan.com.au

Labels: , , , ,

Do you launch your CRM this year?

Do you launch your CRM this year?

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

Well, you need to know few things.

You need a managerially useful, end-to-end view of the CRM process from a marketing perspective. The basic perspective taken is that of the customer, not the company. In other words, what do managers need to know about their customers and how is that information used to develop a complete CRM perspective?

We suggest the strong marries it goes the need to properly integrate CRM with ERP and SCM applications.

The blessing that CRM and the Internet have lead customers to expect greater access to companies through communication channels it lives?

Health maintenance and preferred provider organizations plows discovering that CRM applications enable them to exploit the cross-marketing potential of their extensive databases to tailor their you policy to clients.

Because the whole idea is to customize each system to a specific company needs, there is no universal definition of Customer Relationship Management CRM, which has both business-to-business and business-to-consumer applications.

Even though research shows that Customer Relationship Management CRM initiatives have shown little success, a recent poll shows that 35 percent of executives surveyed said their organizations will launch Customer Relationship Management CRM initiatives this year.

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://mba-open-university.net and http://distance-learning-mba-online-mba-program-executive-jobs.net

Labels: , , , ,

Friday, January 18, 2008

Microsoft CRM: data conversion import from Act!

Best Software Act! is very popular CRM for small and mid-size organization.   This system attracts business owner by its low price, plus system is very easy to use.  However if your business is growing you should reach the moment to implement more advanced CRM solution.  Natural question is how do we convert the data from Act! to new CRM solution and the mapping of your objects for conversion.  You would probably like to avoid operator data entry with potential numerous errors and mistypes.  Assuming that you are IT specialist, well give you technical side of Act to MS CRM data migration

This system attracts business owner by its low price, plus system is very easy to use.  However if your business is growing you should reach the moment to implement more advanced CRM solution.  Natural question is how do we convert the data from Act! to new CRM solution and the mapping of your objects for conversion.  You would probably like to avoid operator data entry with potential numerous errors and mistypes.  Assuming that you are IT specialist, well give you technical side of Act to MS CRM data migration:

  • First you need to download Act! SDK from Best Software website
  • Install Act! SDK on the computer, where you plan to do programming
  • Well use asynchronous data export/import model, this means that well design the system, containing two parts: export into XML and this XML file import into the CRM
  • Lets code Act! data export application, well use C# to address Act Framework classes, well need these libraries:

using Act.Framework;
using Act.Framework.Activities;
using Act.Framework.Companies;
using Act.Framework.ComponentModel;
using Act.Framework.Contacts;
using Act.Framework.Database;
using Act.Framework.Groups;
using Act.Framework.Histories;
using Act.Framework.Lookups;
using Act.Framework.MutableEntities;
using Act.Framework.Notes;
using Act.Framework.Opportunities;
using Act.Framework.Users;
using Act.Shared.Collections;

  • To connect to Act! database:

ActFramework framework = new ActFramework();
framework.LogOn("Act Username", "password", "SERVER, "Database");

  • Now we need Act field names to map them with the fields in the MS CRM:

private void ShowContactsFieldsDescriptions(ActFramework framework) {

    ContactFieldDescriptor[] cFields = framework.Contacts.GetContactFieldDescriptors();

    ContactFieldDescriptor cField;

    for(int x = 0; x < cFields.Length; x++)

        {

            cField = cFields[x];
            Console.WriteLine("Table Name:tt{0}", cField.TableName);
            Console.WriteLine("Column Name:t{0}", cField.ColumnName);
            Console.WriteLine("Display Name:t{0}", cField.DisplayName);
            Console.WriteLine("ACT Field Type:t{0}", cField.ACTFieldType);
            Console.WriteLine("");

         }

}

  • Lets get contact list and create the file for import instructions to MS CRM:

ContactList cList = framework.Contacts.GetContacts(null);
FileInfo t = new FileInfo("Contacts.xml");
StreamWriter stw = t.CreateText();

  • Now we form export data:

for (int i = 0; i < cList.Count; i++) {

    string strContactXml = "<contact>";

    ContactFieldDescriptor cField;
    Object oValue;

    // First Name
    cField = framework.Contacts.GetContactFieldDescriptor("TBL_CONTACT.FIRSTNAME");
    oValue = cField.GetValue(cList[i]);
    if (oValue != null && !(oValue.ToString().Trim().Equals("")))
 strContactXml += "<firstname><![CDATA[" + oValue.ToString() + "]]></firstname>";

    // Last Name
    cField = framework.Contacts.GetContactFieldDescriptor("TBL_CONTACT.LASTNAME");
    oValue = cField.GetValue(cList[i]);

    if (oValue != null && !(oValue.ToString().Trim().Equals("")))
 strContactXml += "<lastname><![CDATA[" + oValue.ToString() + "]]></lastname>";
    else
 strContactXml += "<lastname>" + "N/A" + "</lastname>";

    // Salutation
    cField = framework.Contacts.GetContactFieldDescriptor("TBL_CONTACT.SALUTATION");
    oValue = cField.GetValue(cList[i]);
    if (oValue != null && !(oValue.ToString().Trim().Equals("")))
 strContactXml += "<salutation><![CDATA[" + oValue.ToString() + "]]></salutation>";

    // Job Title
    cField = framework.Contacts.GetContactFieldDescriptor("TBL_CONTACT.JOBTITLE");
    oValue = cField.GetValue(cList[i]);

    if (oValue != null && !(oValue.ToString().Trim().Equals("")))
 strContactXml += "<jobtitle><![CDATA[" + Regex.Replace(oValue.ToString(), "rn", "<BR>") + "]]></jobtitle>";

  • This is only portion of the data, that could be transferred into CRM, the whole list of fields is too long for small article, but your could design the whole list of desired fields.  Please, pay special attention to replace <BR> HTML tag this is required for text data transfer into CRM
  • Next is import application creation.  We will not describe here connection to MS CRM details please read Microsoft CRM SDK if you need this examples.  Well concentrate on the nature of the import.

 The XML export file should look like this:

<contact><firstname><![CDATA[John]]></firstname><lastname><![CDATA[Smith]]></lastname><salutation><![CDATA[John]]></salutation><address1_line1><![CDATA[1234 W. Big River]]></address1_line1><address1_city><![CDATA[Chicago]]></address1_city><address1_stateorprovince><![CDATA[IL]]></address1_stateorprovince><address1_postalcode><![CDATA[123456]]></address1_postalcode><description><![CDATA[Toy Corporation]]></description><ownerid type="8">{4F1849C3-9184-48B5-BB09-078ED7AB2DAD}</ownerid></contact>

  • Reading, parsing and MS CRM object creation look is relatively simple:

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

        ICredentials credentials = new NetworkCredential(crmUsername, crmPassword, crmDomain);

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

        bizUser.Credentials = credentials;

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

        // CRMContact proxy object

        Microsoft.Crm.Platform.Proxy.CRMContact contact = new Microsoft.Crm.Platform.Proxy.CRMContact ();

        contact.Credentials = credentials;
        contact.Url = crmDir + "CRMContact.srf";
        CorrectXML("Contacts.xml", userAuth.UserId);
        StreamReader reader = File.OpenText("Contacts.xml");

        string input = null;                       

        while ((input = reader.ReadLine()) != null)

        {

            string strContactId = contact.Create(userAuth, input);
            Console.WriteLine("Contact {0} is created", strContactId);
            log.Debug("Contact " + strContactId + " is created");

}

  • Just consider in more details CorrectXML function it places OwnerId into XML contact tree:

        private void CorrectXML(string fileName, string userId) {

           File.Move(fileName, fileName + ".old");
           StreamReader reader = File.OpenText(fileName + ".old");
           FileInfo t = new FileInfo(fileName);
           StreamWriter writer = t.CreateText();
           string input = null;

           while ((input = reader.ReadLine()) != null) {

               input = Regex.Replace(input, "{_REPLACE_ME_}", userId);
               writer.WriteLine(input);

           }

           reader.Close();
           writer.Close();
           File.Delete(fileName + ".old");

        }

  • Finally, we are launching export, import, opening MS CRM and looking at the contact list, transferred from Act!
  • Separate task would be Sales data from Act!, Notes etc. we plan to describe them in the future articles

Good luck with integration!  If you want us to do the job - give us a call 1-630-961-5918 or 1-866-528-0577! help@albaspectrum.com


Andrew Karasev is Chief Technology Officer at Alba Spectrum Technologies ( http://www.albaspectrum.com ), serving Microsoft Great Plains, CRM, Navision to mid-size and large clients in California, Illinois, New York, Georgia, Florida, Texas, Arizona, Washington, Minnesota, Ohio, Michigan

 

Labels: , , , ,

Monday, January 7, 2008

3 Reasons Why CRM Strategies Fail

 Customer relationship management (CRM) is one of the most effective tools for improving customer relationships and therefore increasing revenue, customer satisfaction, and customer retention. Unfortunately, some CRM strategies fail. This leaves CRM vendors and their customers baffled, but there a few common reasons why a CRM strategy will fail.

1. Too much focus on the CRM vendor and technology. Some companies get too caught up in having the best possible CRM strategy out there. Some companies want entire call-centers, On-Demand CRM, Web-based, and Blackberry devices which allow their IT people to enter customer information wirelessly. While these technologies are extremely helpful, too much emphasis on them can lead any company astray. It is naturally very important to select the best CRM vendor for your company, but best does not always mean flashiest.

2. Not enough focus on the customer. Companies can focus too much on technology and strategy, and not enough on what is at the core of CRM: the customer. The first letter in CRM stands for Customer and so the customer should be first when thinking about any CRM strategy. A call-center can be wonderful if it is customer friendly. However, some call centers are too complicated and alienate the customer from the company. Alienation is the exact opposite of what companies want to achieve when implementing CRM. The real ROI of CRM is found in customer retention and the acquisition of new customers. In order to have success with CRM, a company must work towards building a strong relationship with its customers. CRM is the path through which the customer and the company can understand each other. Focusing on technologies and ignoring the basics of customer service will cause even the most technologically advanced CRM strategy to go wrong.

3. Rushing into CRM adaptation. Sometimes, company presidents get the idea of CRM into their head and decide that their entire company must be CRM-ready as fast as possible. Rushing into CRM is a recipe for disaster. IT workers need to understand the concept of CRM. Someone who understands the importance of CRM will be better suited to deal with customers and reach the companys goals concerning CRM. Rushing into CRM does not allow ample time for all IT people to be briefed on the basics of CRM and how it will be implemented within the business. Some companies implementing CRM have to create entire departments that never existed before. The greatest care must always be taken when creating an entire new section of a company. CRM should generally be implemented across the entire company. If this is rushed, it can lead to all sorts of compatibility issues, customer confusion, and even employee confusion. Data collected must be viewed across many applications, and ample time must be given for networks to be set up. Companies using CRM technology such as Blackberry devices, or Call-centers must be even more careful when implementing CRM for the first time. Technology is not perfect, and problems can occur at any time. Any company that sends their sales force out into the market with unchecked technology is asking for disaster.

Some say that it is impossible to determine whether CRM is a success or a failure. The true ROI of CRM lies with the customer. A company that avoids the pitfalls of CRM implementation will notice a dramatic increase in customer satisfaction, retention, and acquisition. CRM can help any company significantly if it is used correctly, carefully, but still efficiently. CRM technology can also help companies if it is used thoughtfully and timely. The entire company must be prepared for CRM when it is implemented. A company cannot expect exact numbers immediately after putting CRM into effect. CRM is a long-term strategy that will help achieve long-term goals of a company. Customer focus is essential and will help any CRM strategy to become a success.
Matt Hogansworth enjoys writing about CRM topics and CRM software vendors such as Salesforce ( http://www.salesforce.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: , , , , , , , ,