With a server side approach, you have a couple of options using the Marketo REST API:
Submit Form API
With this approach you’ll still need to create and approve a form in Marketo with the same fields as your custom form but you don’t need to embed it on your page.
When a lead fills out and submits your custom form, you’ll need to queue up the submitted data so it can be processed one at a time, with implications on the concurrency limit of the Marketo REST API (Maxiumum 10 concurrent calls).
The body of the API call will just be a single array item containing the fields from the form you created in Marketo and the form’s ID.
The upside to this approach is that it will generate Marketo Form activities, which you can leverage through Smart List filters and triggers. You’ll also be able to use reporting features without embedding a hidden form on your page.
This process will also allow you to capture and associate the cookie to the lead who fills out the form.
Create/Update Lead API
This is similar to the Submit Form API approach but won’t require you to create a form in Marketo first. You’ll still need to queue up the data before sending it to Marketo though.
The primary upside is that you don’t need to create a form in your Marketo instance but the downside is that you’ll lose the native activities for Form Fillouts and the associated Smart List filters and triggers and reporting as well.
This approach is common for customers who leverage an external data warehouse to manage their lead data outside of Marketo.
With the browser side approach, you have a single option that leverage the Marketo JS API:
Marketo Forms 2.0 JS API.
With this approach, you’ll need to create a form in your Marketo instance but won’t need to add any fields initially.
The blank form can then be embed on your page in the background and you can use custom JS to append field values captured by your custom form before submitting it to Marketo.
The benefits of this approach are that you won’t need to queue or send the data to a separate DB first and you’ll also be able to leverage Marketo Form Smart List filters, triggers and reporting.
Each of these options has their own pros and cons so it’s really up to you to determine which approach best meets your use case requirements.
... View more
In the Marketo Field Management section, the more accurate indicator for identifying the field in MSD might be the CRM Field Map value. My understanding is that this references the MSD schema name for the field, which should be new_synctomkto. I'm not sure how the new_synctomkto_account field would get created in MSD. Even so, if the schema name doesn't match the required new_synctomkto schema name then I would not expect it to affect the sync for that entity. A couple other things you can check would be the security permissions for the sync user/profile as well as the Marketo log to see if changes made to Accounts are getting added there but I would recommend creating a support ticket with Microsoft and Marketo to have them review and troubleshoot with you.
... View more
Marketo Custom Sync Filter for Microsoft Dynamics CRM
The default behavior for the Marketo-MSD Native Connector is for all open Leads and active Contacts in MSD to sync down to Marketo when the sync is turned on. However, you can alter this behavior by creating a custom sync filter in MSD, which enables you to designate specific records to sync or not sync with Marketo.
Step 1: Confirm the latest version of the Marketo Plugin is installed
Before creating the filter, please ensure that you have the most recent release of the Marketo plugin installed in your MSD instance. See: Marketo Plugin Releases for Microsoft Dynamics
Step 2: Create the Sync Custom Field in MSD
Login to you MSD instance as an Admin with permissions to create and publish custom fields.
Create the following field on at least the Lead & Contact entities:
Display Name: SyncToMkto
Field Requirement: Business Required
Data Type: Two Options (Yes & No)
Field Type: Simple
Default Value: No
Note: The schema name for this field must be new_synctomkto for the filter to work. You may use a different display name but the schema name must match this language exactly.
Note: It is a best practice to create this field on at least the Lead and Contact entities. You can also create the field on the Account, Opportunity and any Custom Entities to control individual records for these entities as well. If you don’t, all records associated to a synced Lead or Contact will automatically sync down.
Step 3: Add the SyncToMkto field to the Entities’ Forms
Once the field is created, you must add it to each entity’s form so that the value can be updated by a user or workflow.
To do so, in MSD navigate to Settings > Customizations > Customize the System > Components > Entities. For each entity, identify the form(s) utilized by standard MSD users and add the newly created field.
Step 4: Backfill Existing Records in MSD with Data Values
Creating the “Sync to Marketo” field will not automatically populate it with a value of Yes or No in MSD, so existing Leads and Contacts will remain null when the field is first created. All records with a null value will sync to Marketo, so you’ll need to backfill all existing records with data for the filter to work as designed. As a best practice, we recommend that you first update all records to No, then go through and identify the specific records you would like to sync and change only those to Yes.
Moving forward, all new records created after the Sync field is added will automatically populate with the default value that you designated in the initial field configuration.
Step 5: Create Automated Workflow for Updating the Filter Value
If desired, you can create an automated workflow in MSD to change the value from No to Yes when a record meets specific criteria. With this approach you won’t have to manually update the field for individual records whenever you want them to sync to Marketo. The workflow should be an asynchronous background job that is triggered when a record is created or updated.
Note: It’s a best practice to create the Sync Filter before performing the initial sync between the two systems. You can still create and implement the filter if you’ve already enabled the sync but it will only affect new records created after the field is implemented.
Step 6: Add the Custom Field to the Sync in Marketo
In Marketo, navigate to Admin > Integrations > Microsoft Dynamics
Click the Edit button for Step 2: Select Fields to Sync
Check the box next to SyncToMkto for each of the available entities and click Save
... View more