I find this makes much more sense to do in SFDC. Marketo's cross-lead lookup functionality through the UI is nearly non-existent, with the exception of "duplicate field" filters. I'd have an SFDC workflow run upon the SFDC lead creation, and if there's a customer match, mark a separate SFDC field (synced with Marketo) to show that the record has a customer match based on email address.
That way you can run automation based on that field becoming "Customer" or not, such as your Lifecycle Processing to move them from MQL to Customer. If you're writing to that separate field, also, you can have a more modular setup where you're improving the accuracy of writing to "Customer" field or not—you'll quickly see there are other exception situations running where you'll want to improve the logic, and it becomes easier to improve the logic when you're writing to a separate field with workflows so you don't just need one monster workflow to supply all use cases.
E.g.:
- Workflow triggered upon SFDC lead creation looking up against existing customer email domains and marking the new lead as 'Customer'
- Workflow triggered upon an SFDC lead/contact being unmarked as a customer, and then unmarking all matching email domains to no longer be 'Customer'
- Workflow triggered upon an SFDC lead/contact being marked as a customer (new customer), then marking all matching email domains as 'Customer'
I think maintaining the customer list of email addresses in Marketo becomes really unmanageable very quickly. You have to add a daily task for two individuals (one Marketo person, one customer list-holding person) to update it; it isn't real-time, just updated once a day; it's easy to overlook when someone goes on vacation or is sick or has too much work. Doing it in Marketo with a "customer" email address smart list isn't scalable or robust.
Cheers,
Edward Unthank | Founder, Etumos