correct. last question on topic: the trigger/filter you mention is "on person created and source type is web service api"
however, what about if the person is already created. For example, I have many optin forms. If its a new user, the above works. But what happens if the user already exists? Seems "on person created" wouldn't trigger (or would it?). I'd think there should be a "on person created or updated".
But I am afraid of something: are you calling the SOAP or rest API from the form in your system or from your application server?
If you are calling it from the form, this is a serious security breach (exposing your Marketo to a DoS attack). You should use the forms 2.0 API instead, that will do all you need: create the lead when it's new and log a "fills out form" for any new or existing lead.
Hm .. why would this be a security issue if the functionality is provided? I am calling this from a web form i.e. drupal plugin Marketo MA | Drupal.org
I often find marketo form not optimal using outside of marketo (integration, design, etc). I'd (often) rather use stand alone forms and integrate with marketo through soap or munchkin.
The SOAP API is not provided to be used from a web page. It exposes the SOAP API credential that anyone would use to connect to your Marketo instance and send API calls. As the number of calls per day in limited, someone could easily exhaust your number of daily calls, making your form no longer able to post info to Marketo.
There is a lot written in the community, especially from Sanford Whiteman, on this, including real life examples of how it can turn bad.
Marketo API to be used for form level integration with a CMS is the forms 2.0 API (http://developers.marketo.com/documentation/websites/forms-2-0/) that will enable you to post a Marketo form in the background when someone submits one of your Drupal forms.