Ask MoveData AI
MoveData has taken all of its implementation and support experience — across hundreds of organisations — and built it into an AI assistant. Ask how to achieve a specific outcome using Salesforce Flows with MoveData, and the assistant responds with detailed, step-by-step instructions.
What MoveData AI can help with#
- Building extension flows for specific business requirements
- Configuring pipeline metadata and fieldsets (see glossary for definitions)
- Setting up conditional business logic
- Troubleshooting processing issues
- Understanding how MoveData variables and pipeline stages work
Tips for getting the best results#
- Be detailed and specific about what you want to achieve. The more context you provide, the better the response.
- Include Salesforce object and field names — for example, "I want to set the Lead Source field on the Contact object."
- Describe the desired outcome, not just the problem — for example, "I want MoveData to set Lead Source to 'Raisely' when the field is empty" rather than "Lead Source isn't working."
- Mention your data model (NPSP or Non-Profit Cloud) if relevant, as the objects and fields differ between them.
If the AI can't solve your problem#
Raise a support ticket at support@movedata.io. A MoveData team member will follow up and coach you through what to do.
Example questions and responses#
The following are real examples of questions asked and the type of detailed response you can expect from MoveData AI.
Example 1: Setting Lead Source on a Contact#
Question: I have a field on the Contact record called Lead Source, which I would like MoveData to set to "Raisely" when there is no value for this field. Is this possible and if so, how can I implement this?
MoveData AI Response
Yes, this is possible. You can achieve this by creating a MoveData extension flow that runs during the Contact Mapping stage of the pipeline.
MoveData processes contacts through a pipeline. During the Contact Mapping phase, your extension flow receives the Contact record via a
Recordvariable. You can check whetherLeadSourceis empty and, if so, set it to "Raisely" before MoveData saves the record.Steps to implement:
Create a new Auto-Launched Flow in Salesforce (Setup > Process Automations > Flows > New Flow > Auto-Launched Flow (No Trigger)).
Add a
Recordvariable: API Name:Record, Data Type: Record (Single), Object: Contact. Check both "Available for Input" and "Available for Output".Add a Decision element ("Is Lead Source Empty"): Condition:
{!Record.LeadSource}Is Null equalsTrue. Default Outcome: "Has Lead Source" (no action needed).Add an Assignment element on the "Yes" branch ("Set Lead Source to Raisely"): Set
{!Record.LeadSource}equalsRaisely.Save and activate the flow with Label:
[MoveData Extension] Donation: Contact - Mappingand API Name:MoveData_Donation_Contact_Mapping_Ext.Register the flow in the MoveData Pipeline: Navigate to Setup > Custom Code > Custom Metadata Types, find MoveData Pipeline, click "Manage Records", and create a new record with Label:
PIPELINE_DONATION_CONTACT_MAPPING, MoveData Pipeline Setting Name:DONATION_CONTACT_MAPPING_EXT, Handler:MoveData_Donation_Contact_Mapping_Ext, Type:Flow, Order:6.Test by reprocessing an existing notification in MoveData to verify the Lead Source is set correctly.
If a Contact Mapping extension flow already exists in your org, do not create a new one. Instead, add the Decision and Assignment elements into the existing flow. MoveData shares extension flows — one per object per stage.
Example 2: Setting fields on a Payment record#
Question: How can I get MoveData to set fields on a payment record when an Opportunity is created?
MoveData AI Response
Yes, this is possible using the MoveData Post-Upsert phase. The Post-Upsert phase runs after MoveData saves the Opportunity record to Salesforce. This means the record now has an ID and Salesforce automation has created any related records (such as NPSP Payments).
Unlike the Mapping phase (which is in-memory only), the Post-Upsert phase allows you to perform SOQL queries and DML operations because MoveData has already committed the records to the database.
Steps to implement:
Create a new Auto-Launched Flow in Salesforce.
Add a
Recordvariable: API Name:Record, Data Type: Record (Single), Object: Opportunity. Check both "Available for Input" and "Available for Output".Add a Decision element ("Has Record ID"): Condition:
{!Record.Id}Is Null equalsFalse. This confirms MoveData saved the Opportunity successfully.Add a Get Records element ("Get Payment") on the "Yes" branch: Object:
npe01__OppPayment__c(NPSP Payment), Filter:npe01__Opportunity__cequals{!Record.Id}, Store: In a single variable (first record).Add a Decision element ("Found Payment"): Condition: The payment variable Is Null equals
False.Add an Assignment element ("Set Payment Fields"): Set your desired fields on the payment record.
Add an Update Records element ("Update Payment"): Update the payment record variable.
Save and activate the flow with Label:
[MoveData Extension] Donation: Donation - Post Upsertand API Name:MoveData_Donation_Donation_Post_Upsert_Ext.Register the flow in the MoveData Pipeline: Navigate to Setup > Custom Code > Custom Metadata Types > MoveData Pipeline > Manage Records. Create a new record with Label:
PIPELINE_DONATION_DONATION_POST, MoveData Pipeline Setting Name:DONATION_DONATION_POST_EXT, Handler:MoveData_Donation_Donation_Post_Upsert_Ext, Type:Flow, Order:6.Test by reprocessing a notification and verifying the payment record fields are updated.
The Post-Upsert phase is the only stage where you can use Get Records, Update Records, and other DML operations. The Mapping phase only supports in-memory assignments.
Example 3: Stopping MoveData from creating recurring donation records#
Question: MoveData is creating Recurring Donation records, which we no longer use. How can I stop MoveData from creating the recurring donation record but still create the opportunity?
MoveData AI Response
Yes, this is straightforward. You can disable individual phases of the pipeline using a configuration entry in Custom Metadata. Disable the Recurring phase while leaving all other phases running as normal.
The MoveData pipeline processes notifications through phases: Contact, Campaign, Recurring, Donation, and more. You can disable any phase by creating a custom metadata record that tells MoveData to skip it.
Steps to implement:
- Navigate to Setup > Custom Code > Custom Metadata Types.
- Find MoveData Pipeline (
movedata__MoveData_Pipeline__mdt) and click Manage Records.- Click New and create a record with Label:
PIPELINE_DONATION_RECURRING_DISABLE, MoveData Pipeline Setting Name:DONATION_RECURRING_DISABLE, Handler:true, Type:Config, Order: (leave blank).- Click Save.
That's it. You do not need to create a flow.
What happens next: MoveData skips the Recurring phase entirely during processing. The execution log shows "Phase Skipped" for the Recurring phase. Opportunities, Contacts, and Campaigns continue to be processed as normal.
To re-enable later: Delete the
DONATION_RECURRING_DISABLEcustom metadata record, or check the Disabled checkbox on the record.