I am trying to import a program from Sandbox to Production it is failing and it gives me an error as the fields we have used to build the smart lists are synced with Salesforce objects and the names of the objects are different in SFDC UAT and SFDC Production. When I try to import, it throws an error asking me to create the field in the person object. Whereas the field already exists but with a different name. Any thoughts on how should I resolve this issue?
How could the system possibly know which fields are functionally equivalent to the original fields?
The system will detect through the name of the SFDC objects where the fields are associated with them, which is synced with respective Marketo instances.
It will not detect. And cannot. That's my point.
There is no way for Marketo to know that the SFDC field "Some Name" has the same semantic & business function as "Some Other Name".
That's why it doesn't work automatically.
(Actually even "Some Name" in Org A and "Some Name" in Org B can have different functions, but it's reasonable to assume they have the same function.)
I have experienced this issue in the past. For the import to work, the names of the fields need to be identical in both the sandbox and the production instance. However, there is a workaround that will allow you to migrate the program. I recommend that you make a copy of the program that you are trying to migrate (in Sandbox instance). In the copy you just created, remove all references to the field that caused the issue during the import.
For example, if you are using this field in a Data Value Changed filter in a smart list, you can keep the filter in the smart list, but simply remove the field reference so that the attribute is empty.
This process has to be done for all fields that have a different name in the production instance vs the sandbox instance. Once all references are removed, try to reimport the program and it should work. Once the program has finished importing, you will need to add the fields back to the program (in production) using the right fields in the production instance. Let me know if you have any questions.
@Carl_Delafonta2your approach seems correct and usable until there are less attributes being referenced in the programs, else if you have more attributes referenced in the programs then it would require more manual work referencing them with the correct respective name in the production instance, you can if possible change the attribute names in the production instance same as in the sandbox instance, it would then enable you to migrate the sandbox programs to the production instance very smoothly, however this process is only recommended if you're implementing new production instance afresh.
Thank you for your response but we already have an existing production instance.
Thank you for the response, that what I exactly did on Thursday evening after posting it here and it worked. I manually updated the attributes in production which were throwing an error.