Program Imports: How it works
You can use Marketo Engage to import programs from one instance to another. Perhaps you built something in your sandbox and want to move it to your production instance or you are undergoing a Marketo to Marketo Migration and need to move programs to your new instance. Using Marketo Engage’s import wizard can be an efficient way to move your programs as it will bring over all local program assets into the destination instance. However there are certain things that need to be in place so the programs import successfully.
The data structure of your new instance needs to match your old instance for programs to import correctly. If your data does not match, the program you attempt to import will fail.
- Field data structure of fields referenced in the program must match exactly across both instances
- Field Type must be the same (integer vs score)
- Field Label must be the same (Marketo Behavior Score vs marketo_behavior score)
- Field API name must be the same
- Custom objects and custom activities referenced in programs
- Segmentations and Snippets must exist and be named the same
- Webhooks must exist and be named the same
Program Failures
As stated above a mis-matched data structure can cause a failure of the program import wizard. If it does fail, you will receive an automated email from Marketo Engage with the details of the failure reason and what you need to do to resolve it. The failure notification will only tell you one field reference at a time that is missing, not every single field. This is why it's best to confirm your data architecture prior to migrating.
Common Failure Reasons:
- Fields
- Custom Activity/Object
- Tokens
- Segmentations
- Webhooks
- Salesforce/Dynamics Flow Steps
Import Gotcha's to Watch Out For:
- Assets with Dynamic Content and/or Snippets
- If the segmentation/snippet does not exist in the destination instance, Marketo will skip the asset upon import
- Assets with Tokens
- The program import process considers tokens the same as fields. If your asset references a token (aka field) that doesn't exist in the destination instance the program will fail
- Phantom Tokens: even if a token is removed from the email the import wizard will still recognize it and the program will fail
- Smart Campaigns
- CRM Flow Steps
- If your program references a CRM flow but your destination instance is not connect via the native integration to a CRM the program will fail to import
- Webhooks
- If your flow step references a webhook that does not exist the program will fail
- If your webhook exists, but references a token that does not exist, the program will fail
- Segmentations
- If your segmentation is referenced in the flow or smart campaign and does not exist the program will fail
- Channels and Statuses:
- Channels that do not exist in your destination instance will be created if used by the imported program
- Default Conflict Rules
- Default Conflict Rules are used to determine how Marketo will handle the templates, images and tags referenced in your programs
- Best Practice is to uncheck the default selection for these so that you do not end up with duplicative templates or images
- Tags
- Tags are handled by default conflict rules and you can choose if you'd like Marketo to create or ignore the tag
- The import wizard can be inconsistent and will sometimes bring over a tag type with no values even when you explicitly say to skip. You may need to check with your admin to have them remove if this happens
- Lifecycle/Revenue Model
- The Lifecycle model must be rebuilt manually
- Programs that reference a lifecycle will import but the flow steps to change the revenue stage will be blank if the model does not exist in the new instance
Tips for Mitigating Failures:
- Review your data architecture and instance set up with your admin
- Export fields from both instances and compare fields names, type and api names
- Check that custom objects and activities match
- Set Up your CRM integration
- Recreate necessary items prior to migration of program
- Webhooks, segmentations, snippets, fields, custom objects/activities
- Use the "Clone and Clean" approach if necessary items cannot be recreated
- Clone the program you'd like to import
- Remove references to things that do not exist in the destination instance (fields, segmentations, etc)
- Import your cloned version and rebuild
- Use Field Management (if an admin) to find references to fields within your programs to easily remove them. Select the field and then you'll be able to see the assets where it is used
Places in Marketo Engage where fields can be referenced:
- Smart Campaign Smart Lists
- Smart Campaign Flows
- Smart Lists
- Reporting Smartlists
- Emails
- Landing Pages
- Forms
Happy Importing 😃 !