Which Recommendation Algorithm for Sending Offers to Clients?

We are trying to identify which offers to send to our clients through email. Suppose we have offers with the following data:

Offers: [ {
 id: 1, countriesVisited: { France: 2 Italy: 34 Germany: 7 }, tourQualities: { First-class: 12, Economy: 31 } }, {
 id: 2, countriesVisited: { Italy: 6 Germany: 5, Greece: 10 }, tourQualities: { First-class: 8, Economy: 13 } } ]

Clients: { { id: 100, countriesRequested: { Italy: 3, France: 4 }, tourQualities: { Economy: 7 } } }

We want to identify which offers to show to the client based on their requests. How would we try to break this problem down? This seems like a common recommendation/weighted set problem, but don’t know what steps/algorithms to take to solve such a problem.
In marketing, a classic solution is cluster analysis. However, I hope what you've shown is just an excerpt of data. Any high-tech statistical method requires hundreds of observations, not a dozen... In your case, if you have many characteristics of each client (economy, country, browsing history, demographics), thousands of observations (clients) would be much better than hundreds of observations.
Thanks @staassis. I am a newbie and don't know enough to put the pieces together. I don't believe I am able to comprehend how to use the cluster analysis on the problem. Is there a way we could take an attribute or a small subset so that we can understand the underlying analysis generated by the algorithm?
The chapter on cluster analysis that I linked is very good. It contains almost no formulas. This is almost as simple an introduction as it gets.... You do have to learn appropriate statistical methods if you want to use statistics in solving your problems.