Marketo doesn't separate out Contacts and Leads - everything is a LEAD in Marketo. However, it does sync to both the lead and contact entities in CRM. If the contact already exists in CRM and is available in Marketo as a lead record (via the sync), any form submits will update the lead record in Marketo and the contact record in CRM. It won't create a duplicate (assuming the email address is the same). Marketo does, however, indicate the type of record that exists in CRM (lead or contact).
Dan is spot on with respect to updating existing contacts. If you want to create NEW contacts (and skip the lead object altogether), then you can use the "convert lead" flow step in Marketo, which will convert the lead into a Contact.
One drawback of this approach, however, is that you will create an opportunity by default (no control over this yet unfortunately).
A work-around is to create a simple Apex trigger in SFDC that will convert the lead with NO opportunity based upon a checkbox being checked, e.g., a checkbox called "Convert Lead No Opportunity".
Then you have Marketo check this box = true as a flow step after synching to SFDC, and your Apex trigger will convert to a Contact without cluttering up your instance with blank opportunities.
If you have more complex routing requirements to attach the new Contact to an existing account based on fuzzy logic, you will quickly get into territory where you need a third-party tool to help you. Ringlead is one solution that can tackle this problem.
Hi Justin - I'll have to look into the Apex trigger solution for the Opportunities it creates by default.
Can you elaborate a bit on this -- "If you have more complex routing requirements to attach the new Contact to an existing account based on fuzzy logic"
What do you mean "fuzzy logic"? What about if a domain matches a domain with an Account, it attaches to the existing Account?
I definitely need to clean up our database across Marketo & Salesforce, and consolidating Leads into existing Accounts is a good place to start (and merging duplicate Accounts).