The organization I work for is setting up to integrate Marketo into our CRM, but there's been a question about part of the instructions:

To ensure an efficient sync with Marketo, identify and restrict certain types of records from the sync (e.g., records without an email address).

How would I go about doing something like that? I can set up field-level security on most of the fields we don't need sync'd, but things like 'Only Leads with an Email Address' is beyond me so far. Validation rules only work when saving a record, as far as I'm aware.

We have a profile and a user created just for the sync, currently, so there shouldn't be any issues implementing any suggestions.

Can someone point me in the right direction?

4 Answers 4


One of the ways I understand Marketo sync to work is based on what records the "Marketo User" has access to see. To make it only see Contacts with an Email address you could use a criteria-based sharing rule to only share contacts/leads that meet your criteria to that user (or more likely a role or public group with only that user in it.) I think that's actually the example in their implementation guide.

  • 1
    Andy is right, use criteria based sharing rules. If you're at the Marketo summit next week, come to my sfdc session and I'll explain how this works.
    – user2657
    Apr 7, 2013 at 5:32

There were two issues, ultimately, going on. 1) Everything was very open in our installation, so implementing the sharing rules didn't do anything. That has been resolved.

The other issue is that the fields we wanted to base our data segregation were multi-select picklists, and the Marketo sync didn't allow us to sync based on that field. We went with an inelegant, but effective solution of duplicating the value of the field in a text field (set up with validation rules and such to keep the two fields the same) and segregated the data based on that.


You're correct that validation rules only work when saving a record. If you're doing that on the fields Marketo is requiring of you, then you should be in good shape for any new data being entered into your system. I suspect the issue your company is concerned with is making certain any existing data that was collected before all of your validation rules were in place has been cleaned up so that it's suitable for processing. Is that the case? If so, there are a couple different routes you could take towards validating your data.

One would be to batch process all of it. Another would be to run SOCL queries for contacts where the information you need is either null or zero. Since SOCL isn't going to be able to validate the data format (email addresses for example), that's where you may need to either use SOSL or else do a batch validation using REGEX criteria. It depends on the type of record that you need to validate as to what you're going to need to do.

If you can be more specific on the types of record fields you need to validate, we could give you a more specific response. Most likely, the answer is going to be that you'll need to have your existing records validated using apex code run as a batch class.


I configured our instance with a formula checkbox that shows true if the email is not equal to null. (you can configure however you want) Then i configured Marketo to only sync records where that checkbox is true.

You can get more complicated with this though. For instance, we decided we only wanted to sync leads to Marketo for a specific product. We added a "Sync to Marketo" checkbox and a "Desist Marketo Sync" checkbox. The first was configured as mentioned before. The second initiated a Marketo process that uncheked the the "Sync to Marketo" checkbox, and delete the record from Marketo.

This way we can keep speed up the sync to records we care about. Be sure to consider the reporting ramifications when using this type of configuration.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .