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, we'll 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

? We'll use asynchronous data export/import model, this means that we'll design the system, containing two parts: export into XML and this XML file import into the CRM

? Lets code Act! data export application, we'll use C# to address Act Framework classes, we'll 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: {0}", cField.TableName);

Console.WriteLine("Column Name: {0}", cField.ColumnName);

Console.WriteLine("Display Name: {0}", cField.DisplayName);

Console.WriteLine("ACT Field Type: {0}", cField.ACTFieldType);

Console.WriteLine("");

}

}

? Let's 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 = "";

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 += "[CDATA[" + oValue.ToString() + "]]";

// Last Name

cField = framework.Contacts.GetContactFieldDescriptor("TBL_CONTACT.LASTNAME");

oValue = cField.GetValue(cList[i]);

if (oValue != null && !(oValue.ToString().Trim().Equals("")))

strContactXml += "[CDATA[" + oValue.ToString() + "]]";

else

strContactXml += "" + "N/A" + "";

// Salutation

cField = framework.Contacts.GetContactFieldDescriptor("TBL_CONTACT.SALUTATION");

oValue = cField.GetValue(cList[i]);

if (oValue != null && !(oValue.ToString().Trim().Equals("")))

strContactXml += "[CDATA[" + oValue.ToString() + "]]";

// Job Title

cField = framework.Contacts.GetContactFieldDescriptor("TBL_CONTACT.JOBTITLE");

oValue = cField.GetValue(cList[i]);

if (oValue != null && !(oValue.ToString().Trim().Equals("")))

strContactXml += "[CDATA[" + Regex.Replace(oValue.ToString(), " ", "
") + "]]";

? 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
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. We'll concentrate on the nature of the import.

The XML export file should look like this:

[CDATA[John]][CDATA[Smith]][CDATA[John]][CDATA[1234 W. Big River]][CDATA[Chicago]][CDATA[IL]][CDATA[123456]][CDATA[Toy Corporation]]{4F1849C3-9184-48B5-BB09-078ED7AB2DAD}

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

Fi le.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 Lead Software Developer in Alba Spectrum Technologies ? USA nationwide Great Plains, Microsoft CRM customization company, serving clients in Chicago, Houston, Atlanta, Phoenix, New York, Los Angeles, San Francisco, San Diego, Miami, Denver, UK, Australia, Canada, Europe and having locations in multiple states and internationally ( http://www.albaspectrum.com )

top rated cleaning service Des Plaines ...
In The News:

HBO Max's verified Reddit account was hijacked to push 108 malicious ads using ClickFix, a technique that tricks victims into running dangerous commands.
Flash Shelton reveals how home security cameras and alarm systems can stop squatters before they claim tenant rights in your vacant property.
WIM-Z's AI dog training robot uses on-device processing to detect barking and dispense treats autonomously, with field trials showing up to 83% reduction.
Google's Threat Intelligence Group found PROMPTFLUX malware that uses Gemini to rewrite its own code every hour, raising urgent cybersecurity alarms.
Your VPN may quietly drop protection when switching between airport Wi-Fi and hotel Wi-Fi. Key settings like auto-connect and kill switch help.
A South Carolina caregiver allegedly gained power of attorney over a 75-year-old with Parkinson's, then transferred his home via quitclaim deed for $5.
Joby Aviation flew its eVTOL air taxi into DFW Airport's busy airspace as Texas launches Project Nexus, a three-year advanced air mobility program.
Federal prosecutors say criminals bought sponsored search ads mimicking real banks, capturing over 5,000 login credentials and draining accounts.
The Mercedes-Benz eActros 600 electric truck targets 621 miles per charge on a 28,000-mile round-the-world journey through over 30 countries.
A viral video shows roughly a dozen Coco Robotics delivery robots swarming a Chicago sidewalk near Lincoln Park, raising wheelchair access concerns.
NewTree Social founder Maddy O'Connor built a community events app to help people discover local gatherings, wellness events and run clubs nearby.
DoppelCart's 119,000 fake shopping domains steal credit card details at checkout, mimicking over 44,000 real brands with convincing cloned sites.
Hurricane charity scams use data brokers and people search sites to target victims before storms even hit, exploiting personal information..
The Fox News AI Newsletter covers the latest artificial intelligence technology advancements, including the challenges and opportunities AI presents now and for the future.
Autonomous race cars hit Laguna Seca and Imola Circuit at speeds topping 157 mph, but the Abu Dhabi Autonomous Racing League faces a fan problem.
A LinkedIn romance scam cost Gaby close to $1 million after a scammer returned her first payment to build trust, then escalated requests over two years.
Safari's Notify Me can monitor websites for price changes and restocks, while new AI photo tools let you reframe and extend shots in iOS 27.
FLHSMV traced the Florida DMV breach to credentials from a Plant City Police Department user, but ShinyHunters claims over 200,000 driver records.
Tesla's Cybercab launched in Austin with no steering wheel or pedals, but hidden details about age limits and missing safety features may shock riders.
Moderna and Merck's Phase 3 melanoma vaccine trial showed positive results, but full data and FDA approval are still pending for the mRNA therapy.
Malwarebytes data reveals scam texts peak around noon ET with 874% higher volume than overnight, and Fridays bring roughly 50% more messages.
Over 5,400 legitimate websites now serve fake CAPTCHA scams that trick users into pasting malware commands into Windows Run via ClickFix attacks.
Tuya Smart's Doova AI home robot rolls to seniors who call for help and connects family via live video, but key privacy questions remain unanswered.
Jevon Martinez livestreamed himself removing 10 Flock Safety cameras in Bernalillo County, but authorities say eight belonged to neighborhood associations.
A dark web service called Nexus claimed to hold over 153 million driver's license records, and the FBI confirms it is now looking into the incident.

Dont Choose Adobe When Working With PDF

While Adobe is the most known maker of PDF tools,... Read More

Microsoft Great Plains Customization Tools ? Overview

Former Great Plains Software Dynamics/eEnterprise, and currently Microsoft Business Solutions... Read More

Great Plains DOS Support ? Notes for Consultant

Great Plains Accounting, accounting package for mid-size and small companies... Read More

Implementing ERP for Large Publicly Traded Corporation ? Microsoft Great Plains

We would like first emphasize the change in the paradigm.... Read More

Windows Screensavers Explained

In this article you will find some background information about... Read More

Why do Manufacturers Invest in Business Management Software?

With many manufacturing shops heading over seas in favor of... Read More

What is Fleet Maintenance Management?

Fleet Maintenance Management is a critical position in any company... Read More

Microsoft Great Plains: Getting New Users Licenses ? Annual Service Plan FAQ

Microsoft Business Solutions Great Plains, Solomon, Navision, Axapta, Microsoft CRM... Read More

Upgrading Great Plains Dexterity Customization ? switching to new technologies: SQL, Crystal, eConne

1. Replace Dexterity cursor with SQL Stored Procedure Dexterity... Read More

Mapping Software: Putting Data Visualization on the Map

Mapping Software Improves Data VisualizationFrom the outset, it is important... Read More

What is Preventive Maintenance Software?

Preventive Maintenance (PM) is defined as scheduled work done on... Read More

Accessing XML Using Java Technologies

The most important benefit of XML is its simplicity. Though... Read More

How to Choose the Right Accounting Software for Your Business

With any good luck and a good amount of hard... Read More

Photoshop Files and Formats

People often ask me: What image file formats will Photoshop... Read More

About Microsoft Sysprep (System Preparation) Utility (Windows 2000)

The Microsoft system preparation utility for Windows 2000 is a... Read More

You Can Write Microsoft Office Program in About 60 Minutes

Microsoft Office program is a programming tool called Visual Basic... Read More

Is Your Family Protected?

When you think... Read More

Intro to UNIX Shells

A UNIX Shell is in simplest terms, a command line... Read More

Lotus Notes Domino and Microsoft CRM Integration

Well, even if the combination might look very unusual, we... Read More

What You Should Know About Installing Screensavers

Do you remember that frustrating feeling when you find an... Read More

Crystal Reports - Microsoft SQL Server

Microsoft SQL Server is the leader for inexpensive and middle... Read More

Linux Dual Boot-How To Format

Just the thought of a duel-boot scares many people away,... Read More

Algebra Help Software

Need help making sense of algebra? Have algebra lectures in... Read More

Microsoft Great Plains Project Accounting ? Overview For IT Director/Controller

Microsoft Business Solutions is now in process of creating so... Read More

Two Reasons to Use Timesheet Software

This short paper will expand on two key reasons to... Read More

deep house cleaning Lake Forest ...