Social Product Launch

Guy Kawasaki shares his insights and I'll add (my comments):

  1. Make a Facebook Fan Page (obvious)
  2. Website (complement Facebook, risk management, rich media)
  3. Review copies (go for the pros and for social "nobodies")
  4. E-mail marketing (still relevant)
  5. Pay Per Click (not a big fan of this "traditional approach" but it's always on the table)
  6. Photo contest (make it fun, engage with audience, there are apps for that... Really: http://www.strutta.com/)
  7. Quizzes
  8. Infographic (I really believe in this one because I like to explain the value/change in a simple and clean way)
  9. Badges, Banners, Buttons and Stickers (I have don something similar and will do more often)
  10. Wallpapers (Why not?)
  11. PowerPoint (Sure! Yes! Make an effective and rich PPT and put in SlideShare. Reuse it!)
  12. Thank you slideshow (promote your team... When you have one!)
Overall the insights are useful and match what I do/recommend to my friends and colleagues.

Which social media personality are you?

I would say I suffer from social multiple-personality disorder because I identify myself with all the personalities. However, I would say my visible personalities are somewhere between:

  • "The Trainer/Teacher - Being a great teacher is a gift, and not many people truly have it. If you are a natural trainer or teacher, you have the ability to make complex ideas that are part of social media easy to understand. After listening to your direction, someone new to using the tools and thinking about social media will feel dramatically more comfortable using the tools and (most importantly) why they should even bother."
  • "The Evangelist [Added 03/24] - Often in the role of speaking for a brand and putting a human face on an organization, the Evangelist is the person who uses social media to promote a belief, product or organization. For this individual, social media is a way to share content and engage in conversations about something they are passionate about. As some readers pointed out, this could also be someone who preaches the use of social media internally within an organization."
If you are curious about yourself read the full article here. FYI: There are 12 personality types.


CRM hands on

The videos don't work properly. Please head on to http://www.slideshare.net/SergioLegrant/crm-hands-on if you'd like to see some Salesforce.com, Zoho and SAP CRM interesting videos.

CRM has gone social

I'm back!

A couple of weeks ago I gave a lecture about Social CRM. I thought it was good idea to share it with the world using this "old" blog. It looks like Google is preparing to refresh blogger with new views and hopefully new social features. That will be welcomed. Everything is going social now, including CRM as I'm going to show you on my own CRM has gone social presentation.


Microsoft Dynamics CRM 5.0 news

Big news! There is a new post about "What's new in CRM5" at Microsoft Dynamics CRM UK's Team Blog . You should read it!

I specially welcome these two new features:

  • "Team Ownership - Entities in CRM 4.0 were either User Owned or Organisation Owned. Now Team Owned entities are added in CRM5, and integrated into the role-based security model.
  • Unstructured Relationships - The next generation of "set regarding" and "relationship roles" functionality, allowing you to define ad-hoc relationships between any two entities."

Team Ownership is a feature that mimics the reality of sales/service teams. Teams should be able to own objects because that's how it works in real life. With CRM3 and CRM4 I would have to create an extra "fake" Business Unit to mimic this scenario.

Unstructered relationships are also welcomed because for me "set regarding" and "relationship roles" should be an unique flexible multiple-input field! Enabling multiple "regarding to" references would really make a big difference towards a better CRM usability experience! Go CRM5!


Marketing Newsletter Automation for MS Dynamics CRM 4.0 - PART I

I needed to tune up my Dynamics CRM 4.0 in order to achieve a simple marketing newsletter automation feature which should be 

Desired features to overcome MS Dynamics CRM 4.0 limitations: 
  1. HTML free campaign (no need to edit or copy/paste HTML code);
  2. Automatic e-mail sending from Queue;
  3. Automatic handling of bounced e-mails.

So, how did we tackle these challenges?

  1. HTML free campaign

The main idea here was to make it very easy to create e-mail newsletters whithout needing any HTML knowledge. Additional challenge: newsletter images' have to be uploaded to a public web folder due to MS Dynamics CRM 4.0 limitations.

To get rid of HTML code we decided to provide a limited set of templates which our marketing guys will have to use. So we prepared templates with 1,2,3,4 and 6 images/links. On the first  campaign tab we added the Images attribute (1,2,3,4,6). After filling the obligatory campaign fields (or attributes) our users will have to choose the number of images (this will also determine the template). The user has to hit Save before moving on the next customized campaign tab (this tab will use the attribute to display a small preview for the chosen template).

The customized campaign tab looks like this:
The Image Links fields are static fields although they are not really static because you can paste any link you want in there. They will allways be there, that's why I called them static.
The Image File fields are dynamic, which means they depend on the number of Images (attribute) chosen. If you choose 4 images (like I did) you will get 4 fields, if you choose 6 images you will get 6 fields. You can preview the template layout if you look at the image below the Image File fields! Cool isn't it?
How did we manage this dynamic thing? iFrames! Marco developed a nice ASPX web page/application that is called by the CRM iFrame. The ASPX web page/application is context sensitive so it can find out the entity (Campaign) ID by itself. Once knowing that, it reads the Images (attribute) and displays the correct number of Image File fields and the appropriate template layout (jpg file). Attention: these image files are links to local files (*.jpg files). The user will have to Browse (in portuguese Procurar...) in order to add the image to the template.
After filling the links and subject fields you are ready to go. You will not fill the Image File fields just yet. Hit Save and then you'll need to Run Workflow.
I have two versions of the same workflow: one in english and the other one in portuguese. Why? Disclaimer information in english and portuguese languages is already built in the workflow/template. After choosing the desired language the workflow will run and it'll fill the Offer field (General Tab) with the HTML!
Where does the HTML code come from? It comes from the workflow steps!
The workflow steps include an IF CONDITION in order to update the Offer field with the correct HTML template (1 image html code, 2 images html code...). This is not very dynamic but it gets the job done! Below you can see that how the workflow updates the Offer field with dynamic content such as {(Image 1 link(Campaign)} and {Campaign Code(Campaign)}-1.jpg. Also note that the image file name is changed to a default name (Campaign Code) and number. It had to be like this because we haven't chosen our images yet. That's next!
Now that we've got HTML code we need to upload (via FTP) the HTML (as a file) and the images to a public web folder. Now is the time to go back to the customized tab and browse for the image files. After you've chosen your image files you can hit the Upload button (it only appears after running the workflow). 
Upload? Yes! Upload via FTP to a public folder with a touch of a button! This was one of the most difficult challenges we faced. We had to embed a FTP client in our web page/app! We were lucky to find the source code for a dot net FTP client after some heavy googling. For me this upload button feature was the cherry on the top of the cake! 
After you're done you'll get a status message and you will be able to verify your newsletter online. If you choose the Click Here to Verify Option a new browser window will open and you'll be taken to your newsletter webpage. Check the 4 image template below (the disclaimer is there but the page is zoomed out so you probably won't notice it)! In case you're wondering the 4 photos were taken at very nice hotel situated in Madeira Island, Portugal.
Now we're ready to spread the newsletter by e-mail. That takes us to my next post and Desired Feature Number 2: Automatic e-mail sending from Queue.


Great Google Apps and Salesforce video!

I was aware of Google Apps and Salesforce integration before but after I've seen this video I must confess I was positively surprised!


Chroming the Web

I spent last night Chroming or, in other words, browsing the web using Google's new web browser that goes by the name of Google Chrome. I myself coined this Chroming expression because I think the browsing experience offered by Google Chrome and its own features (brilliant feature presentation!) are distinct enough to call it a different thing. 

After Chrome nothing will be the same and Microsoft and Mozilla among others will have to work harder to match up to Chrome's UI and features. Chrome isn't perfect though! For now it lacks some useful plug-ins (I'm thinking about Remember the Milk plug-in) and there are some know issues but you have to remember it's still in beta. I'm also missing the my bookmarks which I managed with the help of Google Toolbar (for Firefox and IE). 

I browsed (or "Chromed") a lot of websites to check Chrome's performance and almost all of them displayed fast and accurate but I wasn't able to play Miniclip's games. But now that I think of it I also had problems with Adobe's Shockwave Player and my Internet Explorer and Firefox. What is wrong with Shockwave? A couple of friends I've asked also complained about Shockwave issues with IE and Firefox. Nevermind that, I also tried to run Microsoft Dynamics CRM 4.0 (this is a CRM blog!) and as I expected it refused to run... I tried though! This is just another issue alternative browsers (non-IE browsers) will have to face because most internet pages are optimized for the not so compliant IE. Microsoft promises to change that with the upcoming IE8 which will be standards-compliant and which I will also download one of this days. Right now... I'll just keep Chroming the web! 

This post was written using Google Chrome!


How to ACTUALLY use Microsoft Dynamics CRM 4.0 Mail Merge feature in Microsoft Word

After a big fight between me, MS Dynamics CRM 4.0 and Microsoft Word I guess I finally figured out how I can actually use the Mail Merge feature.

This is my own “How to create a working Word mail merge template for Microsoft Dynamics CRM 4.0”:

  1. Open up your Outlook CRM enabled client (Very important! Mail merge over the web won’t work!) ;

  2. Go to Microsoft Dynamics CRM > Settings > Templates > Mail Merge Templates > New;

  3. Type a Name, Select an Associated Entity (like Opportunity) and a Template Language (like Portuguese);

  1. Hit [Save] and you will be warned that you need to attach a Word XML file;

  1. Create and save a blank Word XML file where you will list and test the selected associated entity’s fields (attributes) you wish to use in your Mail Merge;

  2. Attach this dummy Word XML file to your new Mail Merge template;

  1. Now you have to [Edit Template in Word];

  1. When prompted by word hit [Ok] (we don’t need data for building the template so you do not need to worry about it being blank);

  1. Hit the button under the mouse (Insert fields for… something in English);

  1. Choose the field(s) you need (I chose “Tópico” for this example);

  1. Add your text (I added some text before and some text after);

  1. Save the document (XML word document) and close Word. If prompted choose to [Stop] current mail merge activity;

  1. Go to the new Mail Merge Document windows and [Remove] the Word dummy file you had already attached (…v00.xml);

  1. Attach the new XML Word document (…v01.xml) and [Save] your new Mail Merge Document;

  1. Go to Microsoft Dynamics CRM > Sales > Opportunities, select one of your opportunities and hit the Mail Merge Icon (highlighted);

  1. Choose the Template Language, the Mail Merge type and your personal mail merge template (the one you have created before) before you hit the [OK] button;

  1. As soon as Word opens you will be prompted to confirm the displayed data and you should hit [OK] (You can add or remove fields using the [Data fields] button. However, if you wish to do it permanently you should change the Data Fields settings for your Mail Merge Template under Settings > Mail Merge Templates.);

  1. You will be shown your word template with no data. It’s ok!

  1. Choose the Next Step (down right corner) which should state something like View Your Letter...

  1. Check the document (letter) and notice that the dynamic field was replaced by the opportunity’s data (<<Tópico>> became “Teste”);

  1. Move on to Next something like Finish Mail Merge;

  1. And then choose the Print option (Imprimir in portuguese). ;

  1. You will be prompted to Create or Not a related (letter) activity in Microsoft Dynamics CRM. You if want to keep a copy of your document as an activity (letter) note you should choose to create the (letter) activity. You can also check the [Activity Details].

  1. If you chose to create the activity you should take a look at it. Don’t forget to check the notes for the mail merge file.

  1. And you’re finally done!

  2. Bonus: after you create this Mail Merge Template using on your CRM Outlook Client you will be able to use the template outside the Outlook Client (web).

  3. And that’s how you actually create a working Microsoft Word Mail Merge Template for Microsoft Dynamics CRM 4.0.


TDS08: My notes about "Where to invest – and on what? Which travel products will be making the money next year and how will you be selling them?"

•[My own comments in brackets]

•Glenn Fogel, Priceline.com

–[I took the following notes while I was absorbed by Glenn’s fantastic presentation. He really caught everybody’s attention with a presentation “a la Tom Peters”: powerful and straight to the point slides, relevant examples, personal insights, honesty and passion! For me he delivered the best presentation of the event! It didn’t matter that it wasn’t the most relevant presentation for me.]

–How to maximize the chance of success for Mergers and Acquisitions (M&A):
•Trust deal-maker [The guy with whom you shake hands];
•Trust partner [Not only the guy with whom you shake hands. Salesmen come and go…];
•Know/Predict/Anticipate your partner’s future [Just don’t forget to think about it because you don’t want to waste time and money partnering up with a “sinking ship”]
–[These are only the basics about M&A…]

–Regarding future trends I believe Glenn mentioned something about being alert, that is, pay attention to opportunities/competitors and to new/niche markets. [And act fast!] You should drive your actions/efforts/investments towards your strategy. If you don’t have one you should! [And you should also spread your strategy across your organization in order to keep everybody tuned and in order to act fast! The world is changing really fast!]


TDS08: My notes about Reservation Technology Frontend – Ease of use for your guests

[My own comments in brackets]

Gregor Vogel, Globekey

What to consider when choosing a booking engine [in a nutshell]:
-Fixed fee vs. commissioned;
-Support for flexible/dynamic rates;
-Look and feel; [I would prefer calling it integration as I prefer an integrated booking engine rather than an externally branded one.]
-Distribution options (GDS, IDS, OTA…). [Very important! Spread your rates and availability across multiple channels with one click while maintaining rate parity.]

Gregor talked about a very important concept: RATE PARITY! The same offer (product) should have the same rate (price) across different distribution channels/partners. The customer/looker will look for the best deal until he finds the cheapest channel/distributor/reseller and he will buy from it! Ultimately the best deal should be offered by hotels’ own websites! [I believe the jargon for this is something like “Best price guaranteed”.]

The hotel website should drive the biggest part of the revenues/bookings. [I have to agree that this is really desirable but not easy to accomplish for weaker brands.]

Invest in your website as much as you can. [I would add that you should pay attention to measuring the return of your investments through a couple of metrics and remember the number of page views isn’t everything…]


IT Meets Marketing, IT Marries Marketing

Recently I read a very interesting article about Web Marketing Strategy by Brad Beiermann from Cimstrat Inc..

Brad states that "Interactive online marketing is here to stay and will only grow larger in the foreseeable future. Getting the marriage between IT and marketing to meet the needs of online interactivity will be a key ingredient for many organizations. And at the heart of this marriage exists the need to integrate the IT resources into the marketing creativity process.". I couldn't agree more with him! When I was flying back from TDS08 in London I was thinking about that while reading Kotler's Marketing for Hospitality and Tourism.

You can read the full article here.


TDS08: My notes about "Discover How to Manage Your eCRM Initiatives In the World Of Internet-Based Loyalty"

[My own comments in brackets]

Steve O’Keefe, Rightnow Technologies
–Three elements drive loyalty [I agree]:
•Superior product/service; [Superior as quality/expectations, as differentiation/personalization…]
•Low cost product/service; [It’s so cheap you won’t mind a few glitches/limitations]
•High quality interactions. [Interesting point there! Specially if you’re talking about complex/long/informed buying decisions such as booking expensive/dream holidays or buying an expensive/dream car…]


TDS08: My notes about "Discover How to Manage Your eCRM Initiatives In the World Of Internet-Based Loyalty" III

[My own comments in brackets]

•Michael Rhodes, Leger Holidays
–More than features USABILITY drives conversion and captures attention.
–[USABILITY is a key driver to make branding interaction a positive experience for every online user]


MS Dynamics CRM 4.0 and Marketing Newsletters soon to come

I would like to let you know that I'm writing some lines (and hope to post them here soon) about MS Dynamics CRM 4.0 and Marketing Newsletters.

As we are testing and developing our CRM 4.0 we are spending nearly 80% of our time trying to understand and overcome some limitations regarding this marketing process. We even developed a specific workflow to send newsletters from Queues and another one just to handle errors (Mail Delivery Failed, Undeliverable...). These workarounds are not perfect but they are very useful for us. I will also tell you how the unsubscribe works (dynamic, hardcoded...).

But you'll have to wait a couple of days because I'll be on holidays during next week.

TDS08: My notes about "Discover How to Manage Your eCRM Initiatives In the World Of Internet-Based Loyalty" II

[My own comments brackets]

Francesca Ecsery, Cheapflights

–Cheapflights learned by doing that it’s very important (and rewarding) to:
•Be relevant when communicating to customers; [Relevancy drives clicks!]
•Research/ask customers about their preferences in order to be relevant (including frequency of communication); [Don’t send e-mails without being asked to do it…]
•Develop triggered communications (triggered upon customer selected events such as price drops…) [Very interesting and dynamic approach!]

–For Cheapflights relevancy proved to be a successful strategy because it:
•Improved response rate, click rate, open rate and unsubscribe rate (e-mail communication); [RELEVANCY!]

•Saved time (and money). The saved time can be used to research and deliver even more relevant communications which support the results above. [RELEVANCY!]

–[RELEVANCY also applies direclty to webpages (personalized content). Google should know a thing or two about relevance due to their ad placement technology]


TDS08: My notes about "Discover How to Manage Your eCRM Initiatives In the World Of Internet-Based Loyalty" I

[My own comments in brackets]
Xavier Vallée, AVIS UK

–Through research AVIS found out that usually online customers
• Read peer reviews (1/3) and 1/3 of those change their opinion upon reading (which translates roughly into 1/9 of online customers changing their opinion after reading reviews); [Pay attention to reviews!]
•Trust 2 times more in reviews than in official pieces of communication (marketing pieces, website…); [Interesting and disturbing for traditional marketing!]

–AVIS embraced this User Generated Content (UGC)/Social Media “opportunity” by seting up their own corporate blog called We Try Harder.
•Xavier stated they “listen to the customer” and reply when needed and that AVIS uses the feedback from this blog between others (other blogs they monitor and other sources of information) when they make decisions such as renewing their fleet and buy model A or B. [This is an example of how customer feedback can be used as an affordable source for innovation][EMBRACE!].

–[UGC/Social Media shouldn’t be ignored but embraced as an opportunity to develop online conversations with customers].

–[Click here for AVIS case study by market sentinel]


TDS08: My notes about "Monetising Web 2.0 – Who now controls your customer’s online buying behavior?"

[My own comments in brackets]

  • Blake Chandlee, Facebook
    –People use Facebook to connect with friends and family. Connecting means sharing (news, reviews, photos…). [And influencing…]
    –People are spending more time in social media websites than e-mail; [Perhaps that’s why Gmail is becoming more and more social…]
    –Number of Facebook users is larger than many countries.

  • Daniel Robb, Google UK
    –10% of queries are travel related and of these 16% are hotel related;
    –Google queries [or Hot Trends] can be used to predict demand; [Interesting idea since you can easily get this data.]
    –On average before booking people perform 12 queries and visit 22 websites during 29 days; [Interesting numbers…]

  • Ian McCaig, lastminute.com
    –Selling implies someone is willing to buy (be careful when/who you send your marketing message). [I couldn’t agree more.. It’s called relevancy!]
    •Tom Griffiths, gapyear.com
    –Passionate people make web 2.0; [and they influence others]
    –Passion sells products; Web 2.0 elevates “amazing”; [Passionate people tend emphasize extreme feelings like love or hate.]

  • Richard Lewis, Dutco Group
    –Customers who wish to share their own comments/suggestions/reviews will post them anywhere. For instance Tripadvisor is just a click away…]
    –If your website enables your customers to post them there perhaps you can manage them better/easily.


TDS08: My notes about "Find Out Which Loyalty Marketing Trends and Innovations Are Fuelling Increased Customer Retention"

[My own comments in brackets]

  • Rob McDonald, Hilton Hotels Corporation
    –Customers expect rewards and/or recognition from loyalty programs;
    –Loyalty programs should be seen not as a cost but as investment [towards customer retention. On average it’s more expensive to acquire a new customer than to retain an existing one].
    –Clear metrics should be defined to measure ROI for loyalty programs;
    –Partnerships help bring new customers.

  • David Oliver, Hertz Europe
    –Trends: User Generated Content (UGC)/Social Media/Word of Mouth (WOM)/Viral Marketing/Viral games;
    –Important online social media/networks/websites to watch/engage: Bebo (UK), Facebook, LinkedIn, Youtube, Wikipedia, Tripadvidor, Blagger, Flicker.

  • Peter Wray, CM4P
    –Trends: customers empowerment = customers in control;
    –Challenges: Card = Community? Customer = Fan?
    –Facts: Coalition loyalty programs enhance rewards and program adoption.


TDS08: My handmade cloud

User Generated Content (UGC)
Social Media
Channel Management
Rate Parity
Contextual Help/FAQ

This handmade cloud represents the words/concepts that I best remember from the Travel Distribution Summit 08 (TDS08).


I'm back from holidays and TDS08!

I'm back from holidays and also from Travel Distribution Summit Europe 2008 (TDS08) that took place in London (UK) during last week and where I most attended the CRM & Loyalty Strategies Conference.

The TDS 08 comprised three parallel travel and hospitality conferences ( CRM & Loyalty Strategies Conference, Online Travel Strategies and Revenue & Pricing Strategies) and a couple of other events such as the Hotel Technology Forum and the Innovation Initiative. Although I picked CRM & Loyalty Strategies as my primary focus conference I also attended a couple of sessions from the other two conferences and events.

As this was the first time I attended a major travel and hospitality conference such as this one I found it very interesting, useful and... fun! For instance the speed networking event although a bit chaotic was fun!

I expect to share a few thoughts about key TDS08 topics quite soon.

Regarding my holidays I must say that I had a wonderful time at Albufeira (Algarve, Portugal) and stayed at the five star CS Sao Rafael Suite Hotel from CS Hotels. CS Hotels is a brand of the Grupo CS. Tripadvisor reviews for the CS Sao Rafael Suite Hotel can be found here.


CRM 4 ScaleGroup Job Editor

As we are facing some DELETIONSTATECODE issues regarding Contacts and Leads we have been googling for a solution. Marco found this useful CRM 4 ScaleGroup Job Editor utility.

"This utility is used to change the DeletionService and Re-Indexing service jobs in CRM 4.0. You can set the next run date/time of a job as well as change the schedule at which the job will continue to run automatically. " as you can red here.

This utility works but it didn't solve our issues... And the search for a solution continues as we also try to better frame the issue.


Marketing Campaign Offer Limitation Workaround

In my previous post I told you about the Marketing Campaign OFFER (objective) limitation of 2000 characters. That's a very short amount of characters specially if you want to send HTML e-mail materials! This system attribute/field can't be changed like regular (non-system) attributes/fields. But Jim Wang found a way to change it! Thank you Jim Wang for this precious yet simple workaround:

  1. Export the Campaign Activity entity;

  2. Edit the "customization.xml" file (look for attribute/field "objective" and change length to up 100.000 characters);

  3. Import the "customization.xml" to your CRM;

  4. Publish your customization (just to make sure!).

This workaround may be unsupported but according to Jim Wang it's pretty safe. I hope Microsoft reviews this 2000 characters limitation and/or the ability to change it.

Virtualization Support for Microsoft Dynamics CRM 4.0

Menno te Koppele's blog called my attention to this: "Microsoft Dynamics CRM 4.0 is officially supported to run on a computer that is running Microsoft Virtual Server 2005 in production systems.". You can read Menno's post here and Microsoft's related KB here.

This is great because I'm actually deploying my MS CRM Dynamics 4.0 development environment on a Virtual Server 2005 and I want to follow this approach for my production environment.

However be aware of the following "Microsoft does not test or support Microsoft software on a computer that is running non-Microsoft hardware virtualization software. ".


Marketing Campaign Offer Limited to 2000 characters

On a previous post I explained How to send HTML marketing e-mails. What I didn't know at the time was that the OFFER field is limited to 2000 characters! First I didn't panic because I thought I could change it... But now I'm very worried because I can't change this system attribute/field!

If your HTML exceeds 2000 characters it will be truncated!

It isn't very difficult to write HTML pages with more than 2000 characters, specially if you have to include a lot of long links as I have to.

Suggestions how to hack this 2000 characters limit?

MS Dynamics CRM 4.0 Implementation Guide Refreshed

Miscrosoft released a new version (4.1.0) of the Implementation Guide (IG). You should get it here. The IG consists of the Planning Guide, Planning Tools, Installation Guide and Operating and Maintaining Guide. I'm printing it as we speak.


Travel Distribution Summit Europe'08 here I go!

It's official: I'm going to the Travel Distribution Summit Europe'08! I finally got the green light and I already booked hotel and flight. I will be attending mainly the CRM and Loyalty Strategies Conference. The conference/summit will take place at London's Business Design Centre between May 20-21 2008. If you are also attending this conference drop me a line.


How to hide buttons in MS CRM 4.0 in runtime

I googled about hiding buttons in MS CRM 4.0 and I was sent to this brilliant post from David Fronk from Dynamic Methods Inc.. Applying his script to the entity's form through the onLoad event I was able to hide permanently a button. However I was looking for more!

I wanted to hide a button only if a specific field was filled. And how did I pull this one off? Simple! Just added the piece of code to the field's onChange event! It's important to keep the code in the onLoad event if you want to keep the button hidden when you save and close your entity and then reopen it.


How to send HTML marketing e-mails

If you don't know exactly how to send HTML marketing e-mails I must warn you that it's really easy if you have basic HTML knowledge. Forget about MS CRM for a minute, write your own HTML code as you would if you were developing a webpage.
Then just copy and paste your HTML code into the field OFFER (Campaign) and then create a new campaign activity, select E-mail as your CHANNEL and then hit Distribute Campaign Activity. You should get something similar to this.

If you feel comfortable with HTML you can write your HTML code directly into the OFFER field as I did. If you want to include images don't forget to make them available through a public web folder. In this example I used the Google logo.

As you may also have noticed I hard coded the UNSUBSCRIBE e-mail address link. There is an explanation for that. Normally one would simply write a regular unsubscribe text and then select that text and hit the UNSUBSCRIBE button available when seting up the new e-mail activity. However if you set the FROM field to a Queue (as I did) your unsubscribe e-mail link will be broken to "mailto:[Run_Time_Address]?subject=[Run_Time_Subject]". After a lot of testing I gave up of this feature and decided to hard code the unsubscribe text/link. Doing this I'm also sure to include the unsubscribe text/link. I should warn you that the unsubscribe e-mail To should be the Queue's e-mail and the subject should be "UNSUBSCRIBE: E-mail Activity Subject". It's very important to match the UNSUBSCRIBE subject with the e-mail activity subject or the CRM won't be able to connect the unsubscribe request with the campaign in order to automatically create a campaign response and set sender's Send Marketing Materials = NO.

I will write a specific post about How to send e-mail campaigns from queues because I have some useful tips and tricks for you.


How to Send E-mails from Queues

It's really very simple, just hit the lookup button after creating a new e-mail and change LOOK FOR "User" to "Queue". Then hit send and off you go. Don't forget you need the right CRM permissions for this (queues and send e-mail on behalf of).


Duplicate Detection Rule Detects Phantom Contacts

I'm running a simple duplicate detection rule for contacs with the same e-mail address. I'm getting phantom duplicates: I get a duplicate (top list) but no potential duplicate record (bottom list). Instead of the bottom list I get this warning "Potential duplicate records: None". The image below shows a phantom duplicate: the selected active record has "Potential duplicate records: None".

After some investigation I realized that there was a previously deleted record (2 days ago) with the same e-mail. The deleted record exists only in the MS CRM DB and its DeletionStateCode equals 2! However my duplicate detection rule still sees him. I believe it shouldn't!

MSCRMAsyncService which as I read is supposed to handle the deletion of records ir running but doesn't delete anything... Very very strange!

I made a post about it at Microsoft Dynamics' Forums.

MS Dynamics CRM 4.0 Diagnostic Tool

Benjamin Lecoq has released the CrmDiagTool for CRM 4.0. You should read his post about it and download it from the link he provides.

By the way if you wish to enable tracing for MS Dynamics CRM 4.0 you should check the following KB article: http://support.microsoft.com/kb/907490.


Facility/Equipment Import Wizard Issue

Whenever I try to import facility/equipment entities using the import wizard I get an error related with a missing column/attribute: "unmapped required columns: 1" (image below).

The missing column/attribute name is Calendar and the Reason states the following: "Error: unmapped mandatory column" (imagem below).

The "Calendar" attribute (image below) is a system required attribute of the Facility/Equipment entity and its description is the following: "Fiscal calendar associated with the facility/equipment.".

I haven't set my Fiscal Calendar yet because I read at the Implementation Guide that one can do it only once and in order to work with Sales Quota. I'm guessing I don't need to set it for now because when I mannually create a Facility/Equipment I don't get any kind of Fiscal calendar related error. I'm guessing I have to bypass this issue some how... I will post this at Dynamics Forums, perhaps someone already has been over this.

Travel Distribution Summit Europe'08

If you're in the travel/hospitality industry this is perhaps THE EVENT you can't miss. This event is composed by the Online Travel Strategies Conference, Revenue and Pricing Strategies Conference and CRM and Loyalty Strategies Conference. Click here to get an overview of the event and here toget and overview of the CRM and Loyalty Strategies Conference. Although all the conferences are appealing this last one is the one I'd like to attend. I'm waiting for clearance...


c360 Import Manager for Microsoft Dynamics CRM 4.0

I have tried c360 Import Manager for Microsoft Dynamics CRM 4.0 and my feedback is positive. It works as it should and enables me to import, update and delete data in all standard and customized entities from my operational systems. It's quite simple to set up and use and I think it's worth the money if you're not comfortable regarding the use of CrmService or if you do not wish to develop code to perform imports, updates and deletes.

c360 has a more interesting products for MS CRM 4.0 such as c360 Event Management, c360 Field Level Security or even c360 Customer Portal but I haven't had the chance to test them.


Fix Date and Birthdate/Birthday (for MS CRM 4.0 CrmService)

If you are using CrmService's Create or Update methods perhaps you already noticed that when you send a date in the DD-MM-YYYY HH:MM:SS format CrmService will read this date as MM-DD-YYYY HH:MM:SS and that's what he'll write to your MSCRM db.

So if you're writing a contact's birthdate/birthday like "24-07-1980 00:00:00" CRM will throw an exception because he's using "24" as MM and "07" as DD when he shouldn't. You need a workaround such as your own fixDate() method. The following fixDate() method was created by Marco Silva, member of my MS CRM Dynamics 4.0 project team of two (me and him). This method gets something like "24-07-1980 00:00:00" and returns it in a CRM friendly format "07-24-1980 21:00:00". If you check your MS CRM db you will see the correct date but perhaps not the correct time "24-07-1980 20:00:00".

private static string fixDate(String date)
string day = data.Substring(0, 2);
string month = data.Substring(3, 2);
string year = data.Substring(6, 4);
string hour = "21";
string min = "00";
string sec = "00";
return month + "-" + day + "-" + year + " " + hour + ":" + min + ":" + sec;

You may notice that we're forcing the hour, minutes and seconds and there's a pretty good explanation for that. The explanation is related with Time Zone handling issues that affect MS CRM 4 (and 3). My time zone settings (MS CRM server, SQL server, desktop) are all GMT (...Lisbon). Some specific datetimes (not all) are written to MS CRM DB with less an hour and that makes them go back one day.

If you send "24-07-1980 00:00:00" or "07-24-1980 00:00:00" to be more accurate to your CrmService it will write "23-07-1990 23:00:00" to MS CRM db! Ooops! Wrong birthdate! However if you check your contact's file you will see "24-07-1980". However the MS CRM db birthdate datetime is wrong ("23-07-1990 23:00:00") and you can't export it to an external db such as a datawarehouse. The workaround for this one requires two different approaches: a CrmService approach and an onSave approach (to fix typed birthdates).

Both of these workarounds require you to change birthdate's time to something bigger than "01:00:00" because if the CrmService "steals" you one hour it won't "steal" you a whole day! I chose to set "21:00:00" as my "fake" time. So, if I send this CrmService friendly "fake" date "07-24-1980 21:00:00" to CrmService he will write "24-07-1980 20:00:00" to MS CRM db! And that works for me as the birthdate time isn't important (or visible). So my first workaround also is solved by the fixDate() method above. The second workaround has to be properly included inside the onSave event which you have to enable.

This workaround was provided by Pedro Pereira who helped me fix this issue for MS CRM 3.0 but it works fine with MS CRM 4.0.


Unwanted headache due to data type mismatch

First of all let me explain how my MS CRM Dynamics 4.0 system gets it's data.

Like any other company we have one big ERP/PMS that is our main data source and other small ERP/PMS systems. Most of this systems rely on MS SQL Server technology (2000 and 2005) for their database needs. This is great because it allows us to use SQL Server 2005 Integration Services (SSIS) to pump the data from each system's database and consolidate it to a single database. In the BI (Business Intelligence) world this process is called ETL or Extraction, Transformation and Loading. Although here we rely on the SSIS for the Extraction and Transformation phases and then we use CrmService webservice to send data to the CRM (create, update). Doing this we make sure our CRM and our ERP/PMS systems are automatically synched. Although this sounds very simple and you can learn it by yourself it really speeds up the process if you can get help from someone more experienced.

We are now developing the console application that will run in the background. This app will be responsible for retrieving data from the ETL databse and push it to the CRM using the CrmService webservice. For instance, we retrieve one contact (transformed) from our ETL database and then we push it to the CRM but first we need to know if the contact already exists there. Why's that? If the contact exists we use the Update method, if it doesn't we use the Create method. How to determine if he exists? Simple, choose a key field such as ERP/PMS customer number. This ERP/PMS primary key (PK) will act as a foreign key (FK) for our contact. If the contact is found we return the GUID and then call the Update method.

For more details about CrmService and it's methods I would advise you to take a look at Working with Microsoft Dynamics CRM 4.0 and Microsoft Dynamics CRM 4.0 Unleashed. This books are good starting points for learning how to use the CrmService. They are better used together as one has more details but fewer examples and the other has more examples and fewer details.

After some initial coding and successfull testing (retrieve data, push data) using the new much appreciated Visual Studio 2008 our problems began. Our last build of the console application crashed again and again and we didn't know why. Through debbuging we realized that it was a problem related with our RetrieveMultiple method call. After a couple of ours of nonsense coding we caught the bug: earlier we had changed an entity attribute from picklist to string (delete attribute, new attribute, save and publish), however our webreference (Visual Studio 2008) didn't reflect that change and we had to remove the web reference and add it again in order to "squish" the bug! This picture saved the day!


Gmail or Google Apps and MS CRM Dynamics 4.0

I was wondering what kind of scenario one could build using Gmail/Google Apps e-mail and MS CRM Dynamics 4.0. After watching Michael Lu's video about POP3 (Gmail) and CRM queues I was sure that it would work for POP3 enabled Gmail/Google Apps e-mail accounts. However Gmail/Google Apps also offer support for IMAP connection and that's what I would like to test!

I setp up a Google Apps dummy e-mail and enabled IMAP connection under Settings > Forwarding and POP/IMAP.

Then I added the e-mail to a dummy AD user account. Great! Then I created a new CRM user for that user's AD account and I gave him a role (don't forget about the role!).

The next move was quite simple: logged in using the dummy AD user account and ran Outlook. I had to configure my e-mail IMAP account and for that I found this nice article explaining it all. It was quite interesting to watch my labels being displayed as folders in my IMAP folder.

I run a few tests: wrote an e-mail, sent an e-mail and everything worked as it should.

Next major step: configuring MS Dynamics CRM 4.0 Client for Outlook. I run the configuration wizard and I was done in no time.

Let's track an e-mail I thought! As I hit the Track in CRM button I got this familiar message: "Only items in the default Microsoft Outlook store can be promoted to Microsoft Dynamics CRM.". I had forgotten about this feature/issue. Workaround: move the e-mail to the default MS Outlook store and the promote it to MS and then promote it to MS Dynamics CRM 4.0. If your users can live with that... Mine can't! There is another workaround scenario that would imply the use of the MS CRM 4.0 E-mail Router (POP3) but that's what I was trying to avoid.

My advice for now is to forget about Google Apps/Gmail IMAP and MS CRM Dynamics 4.0 Outlook Client integration.


Missing System Fields 2

Another missing sytem field that I don't understand why isn't there: Preferred Language. Any CRM should include that, specially if it wants to grow in Europe! Microsoft listen this: add a Preferred Language field to Contacts and Accounts. A picklist would be nice! Thank you!

POP3 and MS CRM 4.0 Queues

Michael Lu made this excellent video about using MS CRM Dynamics 4.0 E-mail Router with POP3 account. He used a Gmail account as an example. I recommend you to watch the video.

I myself conducted a similar test and I will write about it soon. I used a regular Gmail account as the user's mailbox.



Microsoft Dynamics CRM 4.0 : Report Wizard with John O'Donnell

Watch and listen John O'Donnell about the new Report Wizard here. Very interesting! This feature allows CRM users to develop some basic reports by their own! Power to the users! Free the developers!

Using Data Maps to Import Data

I would advise you to use the Auto Mapping feature first because the Data Maps feature has a small but annoying issue that I will tell you now. However using data maps to import data can be done if you are aware of that small but annoying issue.

Scenario: I want to upload some data to my CRM but I want to map the address fields in my file to the Adress 2 fields in CRM. I can change the name of the fields in the file or I can create a specific data map. I will choose this last option.

So I have a regular *.xls file with my data called "data map dummy.xls" with the fields Account Name, Street 1, Street 2, ZIP, State and Country. (image below)

I will save this file choosing CSV (comma separated values) format and I will call it "data map dummy.csv". What happens now is that due to my regional settings (guess!) the CSV file is actually a semicomma (;) separated values file. I used good old notepad to check that (image below).

Then you go to the New Data page option and press "Load Sample Data" button. You pick the file, in my case "data map dummy.csv".

After the file is loaded you need to check the Column Headings in order to see if everything went well and... it didn't! Why? The "Load sample data" action doesn't recognize semicomma (;) separated values. Boring! Boring! (image below)

The solution as I found out by myself is to replace the semicommas (;) by commas (,) using the find and replace feature of notepad. Be careful using this feature because if you have data like street addresses separated by commas or semicommas you can get yourself in big trouble. (image below).

The best thing to do is NEVER use a data file to create a data map but a dummy file with simple data (no commas or semicommas data). Using the modified "data map dummy.csv" the Load Sample Data works fine and then you'll only need to map the Column Headings to the Mapped Target Attributes. (image below)

Don't forget to Save your data map. All of this could be avoided if one had the option to choose the field delimeters ("," or ";") just like it's possible to do during a regular data import process when you get to choose the data and field delimeters (image below).

Good luck for your imports!