It's been a very long time since the last improvement to the Salesforce connector. Browsing the community product and Idea sections enables to see how much some improvement is needed. So I wrote this recap on all the ideas that would really make a difference and enable the Marketo / SFDC connector to widen the gap again with the competition, which has been catching up over the past 2 years.
The first item would be an increase in performance, as we just got for MS Dynamics in the Spring'16 release (Release Notes: Spring '16 - Marketo Docs - Product Docs). And this is especially true for the campaign member table that can be really huge!
This long list is also there for the reader to vote for them!
1-Setup, mapping and general features
The first areas on which some improvement is the data schema management and mapping:
- Mapping can sometimes be done by support but is supposed to be a chargable service. And the feeling here is that Marketo is charging here for product weaknesses. In fact, the lead/account field mapping should be automated as it is for contacts: SFDC sync: Account / Lead mapping should be automatic when fields are named the same. Furthermore, admins should be able to unmap/remap fields from the admin interface. See Enable Admin to unmap fields and Enable admin to map account and lead fields
- Have the possibility to add some fields in SFDC that will automatically map with Marketo system fields. See Extend the SFDC "automap" capability to other Marketo system fields
- Many SFDC standard account, contact and lead fields are not mapped by Marketo. E.G. the account "Rating" field or various address fields. And because these fields are standard in SFDC, they cannot be added as custom ones. These fields should be added to Marketo standard schema: Support new SFDC Account standard fields, but also Sync email bounce info with Salesforce 'email bounced' field and Which SDFC standard fields *Dont'* sync to Marketo (Thx Meagan Fox)
- Synchronizing a Marketo instance with SFDC long after having started to use Marketo is a very plainful process, due to the apparition of duplicate fields all over the instance. See Enable to swap and/or merge Marketo only fields with CRM (SFDC / MSD) fields
- Also, it appears that the field mapping section does not refresh when new fields are created in SFDC. It should be possible to refresh the Field Mapping info: Allow to refresh to see current SFDC field mapping (Thx Alex Stanton)
- When a new field is added in SFDC and Marketo, the field is left empty into Marketo unless we trigger an update of all the leads/contacts/accounts in SFDC. An option should enable to fetch the data of all records on this field and populate the new field in Marketo SFDC Sync: sync all data when a new field is added
- In the admin -> SFDC sync, we can set the default values for last name and company name, to comply with SFDC minimum requirement for lead creation. This is not enough though if the SFDC instance has some other mandatory fields. In this case, it should be possible to define default values for other, custom fields Add default values for other lead fields in the admin-> salesforce sync options
- Lookup fields should be better supported, so that the lookup record name is automatically added to the Marketo data model: Better Support for Salesforce Lookup Fields (Thx Brian Vass) and this especially true for record type fields.
- The SFDC ID field should be read only: Make 18 Character Contact ID read only (Thx Christina Zuniga) and also be usable as tokens and filter criteria: SFDC ID Field as Criteria and SFDC ID Field as Criteria/Lead Token in SmartCampaign (Thx Abby Ryan)
- On this chapter, we should be able to also leverage the new salesforce "Shared Contact" feature (See SFDC Release Notes ) SFDC Sync: Multiple Account Associations via "Shared Contacts" (Thx Kyle Halstvedt)
- We would also need the opportunity products to mapped and made usable in opportunity related filters / triggers. See Map opportunity products to use them in opportunity filters and triggers
- We would also need to be able to conditionally block field updates so that SFDC info is not overwritten under certain conditions. see Conditionally block field update with block / unblock flow steps
- The absence of account opportunities is seriously limiting the accuracy of attribution models and the capabilities of opportunity triggers and filters. See SFDC/MSD: Enable to sync account opportunities (at least as a custom object)
- We also should have the option to use Lightning URLs in the tasks generated as automated activities. See Salesforce Lightning: Upgrade URL in tasks to lightning records (Thx Christophe Boucquet )
- We also need the connector to support the individual object in read and write mode. See Support read/write access to the Individual SFDC object as person fields
We also need some strengthening of the way custom objects are mapped and handled:
- Currently, if a custom object is linked to both the lead and contact or lead and account objects in SFDC, mapping it in Marketo becomes a challenge as Marketo sees it as 2 objects with the same name. It should be possible to map this object with 1 Marketo object, mapped once for lead and a second time for account or contact: Enable smart mapping of SFDC Custom object linked to lead and contact or lead and account
- Troubleshooting custom object sync or usage in a velocity script is a challenge, mostly because we cannot know what SFDC custom object data is really in Marketo. It should be possible to display the SFDC custom objects together with the Marketo Custom Objects in the lead detail screen: Make it possible for CRM (SFDC/MS Dynamics) custom objects to show up in the custom object tab in the Lead detail screen
- Custom object sync with Marketo is one way only. It should be possible to create custom object instances in SFDC from Marketo: Ability to create custom obect instances in SFDC
- It is currently impossible to trigger a flow from an update to a custom object, as it is possible from the opportunity object. See Distinguish between Add and Update of Custom Object, have Update Trigger , 'Is Updated' Triggers on SFDC Custom Objects (Thx Pierce Ujjainwalla ) and even Trigger from custom object update, not only on creation (Thx Jose Tarzian )
- Detecting changes to SFDC custom objects is impossible. One clean and neat solution would be to enable the sync of SFDC history tables. See Enable sync and leverage of SFDC History tables as custom objects
The way the user object is handled needs a serious enhancement:
- We need to be able to sync all User fields, including custom ones, and not just the very basic ones Sync all lead owner / contact owner / account owner std and custom fields and of course, to get the same fields on the account owner as on the lead owner
- One step furthers, we also need to sync all related users on the lead/contact/account Sync all lead/account/contact related users and be able to use that information as tokens in assets and smart campaigns
- We would also need specific tokens for teams in SFDC and specifically for account teams. See Salesforce Account Team Tokens
4-SFDC Campaigns and Marketo programs
On the chapter of how Marketo programs interact and sync with SFDC campaigns, a lot has to be done:
- When we create campaigns from Marketo, we should be able to access a complete campaign page layout, including Record types Provide more detail in SFDC campaigns (Thx Christina Brimecombe) and Do more with Marketo Program & Salesforce Sync (Thx Sara McDaniel) and we also should be able to change the campaign owner (Be able to change Salesforce campaign owner when creating a campaign from a Marketo program). The sync would also include the program costs: Sync Program costs with SFDC Campaign costs
- Furthermore all campaign fields should automatically be mapped as programs tokens as soon as the campaign is synchronized with a program Do more with Marketo Program & Salesforce Sync and Ability to sync Marketo Program data to SFDC Campaign Object (Thx Sarah Herrmann)
- Marketo should be able to leverage campaign member standard and custom fields and sync them with program member fields that could be read and also set: Have extended Marketo Program member fields and use them to full power (with or without SFDC campaign member field sync)
- The implicit sync that occurs when a lead is added to a sync'ed program is sometimes troublesome and a reason why users decide not to sync programs with campaigns. To better manage this, it should be possible to select which Program member statuses will trigger an implicit lead sync: Selective Program Member synchronization (by member status)
- When the Marketo program / SFDC campaign synch has been broken because the member statuses have beed edited in SFDC, it should be possible for the admin to repair it and to force the re-creation of SFDC campaign member statuses from the program member statuses: Have a tool/assistant to resync SFDC campaign member statuses with program member statuses and also to resync all members between a program and a campaign Possibility to resynchronize members between programs and salesforce campaigns.
- From SFDC, we should also be able to identify if a campaign is sync’ed with a program: Being able to identify in SFDC when a campaign is mapped with a program and offer the possibility to access the program in 1 click.
- Also, from inside Marketo, it should be possible to filter with program are sync'ed with SFDC and which ones are not: Identify which Marketo Program is syncing to whch SFDC campaign (Thx Nora Slattery)
- Also, we would need to have the "Acquired by" program information to sync and show up in the SFDC campaign, where we could use it for reporting: Acquired By Field - Map to SFDC (Thx Beth Magee) and Enable "acquired by" program info to sync with SFDC campaigns
- And finally, we should be able to set the lead's source campaign in SFDC "Set source campaign" flow step for SFDC
5-SFDC campaign synchronization, filtering and triggering
A few enhancements would be welcome in the way we can leverage SFDC campaigns in filters and triggers:
- We should be able to use time information about campaign membership Have a "Was Added to SFDC Campaign" filter (Thx Nathan Allison) and we should be able to select the date at which an SFDC campaign member status has been set: Add a "status date" constraint on "member of SFDC campaign" filter (Thx Nathan Allison again )
- We should also be able to select active/inactive SFDC campaigns in all SFDC campaign related filters/triggers: Make it possible to select only active campaigns or only inactive campaigns in the "member of SFDC campaign" filter droplist
- When synchronizing a program with an SFDC campaign if the member statuses are different on both ends, the sync will break. This an error that is very easy to make. hence these 2 ideas: SFDC Sync: when syncronizing a program with an SFDC Campaign, raise an alert if the member statuses are not the same. and SFDC Sync: force users to create a new SFDC campaign when they want to sync a program
Task / activity creation needs a serious improvement:
- We should be able to set all standard and custom fields Ability to set the Record Type for SFDC tasks created in Marketo (Thx Julie Scotland) and Add "Type" constraint to "Activity was Logged" filter and to use them: Use all task/event fields in SFDC activity-related triggers and filters, including Record types.
- We should be use tokens in task assignment Be able to use tokens to assign a CRM task and, to make it really powerful, we should be able to use lookup(user) fields for task assignment Use any lookup field containing user info to assign tasks created from Marketo into SFDC
- We need to be able to use account team members to assign a task. See SFDC: Enable to use account team information for "change owner" and "Create Task" flow steps
Lead assignment mechanism is by far too limited to enable to manage all the complexities of the most flexible or largest organizations. In these advanced SFDC users, at minimum, some lead assignment rules have been set up but very often some complex logic has been created, for instance to attach leads to accounts before they are converted. So:
- We should be able to use Lookup(user) fields on leads, contacts or accounts to assign leads Use any lookup field containing user info to assign leads on a "sync lead" or "change owner" flow steps
- We should also be able to use the owner to any related object (through a lookup field) to assign lead, not just lead owner or account owner: Use the owner of any related object to assign leads in CRM
- We also should be able to use tokens in "sync lead to SFDC" or "Change owner" flows steps. Tokens could carry SFDC IDs or SFDC User IDs. See Use tokens in the "sync lead to SFDC" and "Change owner" flow steps
- For the organizations that have been using salesforce for a long time before implementing Marketo, there is often a whole set of lead assignment rules in production, which can be used in SFDC on lead creation and lead update. But from Marketo, we can only use them on lead creation, so we need the capability to execute SFDC LAR on lead update Force execution of Salesforce Lead Assignment Rules on lead update
- We need to be able to leverage account teams for contact assignment See SFDC: Enable to use account team information for "change owner" and "Create Task" flow steps
- In large orgs, it may happen that SFDC users are namesakes. We need a solution to differnetiate them. See Create a way to differentiate users with the same names for SFDC or MSD assignment
- We need to be able better manage inactive lead owner in order to run reassignment and specific campaigns. See Owner is inactive filter. Thx Jenn Pellerin
- The Opportunity Role is available as a constraint on opportunity filters but not on triggers. See Make "Role" an available Constraint on the Has Opportunity filter
9-Sync management & troubleshooting
Last but not least, we really need some improvement in how we can manage the sync and troubleshoot any issue:
- First, let's start with a nasty little bug that breaks lead merge in certain circumstances. See Sync Filter & Merge Failures Bug Needs to be Fixed (Thx Kelly Korynta)
- Then, we should be able to to set up sync filtering without calling support, just with a standardized field name, as it is possible with MS Dynamics Being able to set up SFDC sync filtering without calling support (as with MS Dynamics)
- When looking into an instance, being able to know whether a sync filter is set. Have a way to know if a SFDC sync filter is established.
- We should also be able to mark a lead so that it does not sync to CRM Do Not Sync to CRM
- The connector should let Marketo know when the sync is stopped for a given lead, so that we could process in Marketo the outcomes, such as deleting the lead Let Marketo know when a lead stops sync'ing from CRM (SFDC / MSD)
- We also need to get a sync status summary, as it is available with MS Dynamics: Provide the sync status summary info for SFDC as well
- We also need a Sync error tab Sync Error tab for the SFDC connector
- In order to detect the sync errors and react on them, we need the availability of a "lead was not sync with SFDC" filter & "lead is not sync’ed with SFDC" trigger, together with all the appropriate constraints so that we can know the source of the issue Ability to search for Sync to CRM Errors (error in sync criteria) (Thx Abby Ryan)
- Also, providing a last SFDC sync date/time on leads would help with troubleshooting: Create a "Last SFDC Sync" Date Field to help with sync error investigations (Thx David Desrosiers)
- We need some easily accessible and meaningful sync logs: Enable the Marketo user to create SFDC debug log to trouble shoot sync errors
- The possibility to set up sync notifications on sync duration would be very helpful: Slow Salesforce Sync Alert (Thx Emily Kucharczyk)
- Lead or contact deletion of sync stop should lead to revert the Marketo person to an unsync'ed one in Marketo. See Revert persons to "non sync'ed record" when deleted in MS Dynamics or Salesforce
I'll probably also compile a list of improvement that we would need to see coming on Marketo Sales Insight...