I am working on 2 entities. 1st is Contact (Renamed as Donor) and 2nd is Orders (Renamed as Donation).
On Donation entity form, I have a system mandatory look up field called “Potential Customer” and text field “Email Address”. I want to populate Potential Customer field value based on Email Address set. This operation will look for email address from contact entity and return the customer name to Potential Customer Field.
I have followed above steps but seems to something missing. Thanks in advance.
Solved! Go to Solution.
Use the Initialize Variable action to create a variable of type array.
In the No branch you create an Append to Array action and in the Value add the reference to the current record.
At the very end add a Compose action and insert your array variable (if you want to see the result in the flow run) or add a Send Email action and put the variable in the body. It will be ugly but at least you can see which items had multiple results.
Have you looked at merging the duplicate records? That would eliminate the issue of choosing which one to link
Are you trying to set the Potential Customer for the donation using the Flow when filling out the Donation form?
The Flow runs as a background process, not live when editing the form.
If you are looking for the flow to update the donation after saving, this won't work with Potential Customer being a required field. Change your Potential Donor field to Optional or Recommended.
@bhitchlockfcs , Thanks for quick reply. I have tried changing field to Option although it didn't allow. It is mandatory field.
I am importing the data through plugin into Dynamics CRM and hence all the mapped fields are imported including email address.
Because Potential Customer field is look up, It isn't importing data and hence I thought to use Flow.
Please refer to this post I have gone through to implement this:
Hi @Logee ,
Okay, makes sense with an import that the field would be empty importing via plugin. The guide you are following is using the old dynamics connector, not the current CDS one.
Fields in filters are case sensitive. You want to change it to emailaddress1 eq Email Address
Rather than the apply to each, create a Condition using the expression length(outputs('List_records')?['body/value']) is equal to 1
This checks for a single matching contact, if there are duplicates or it does not exist it goes down the No branch.
In the Yes branch you will want to create an Update Record and for the Potential Donor enter it as follows:
/contacts(outputs('List_records')?['body/value']??['contactid']) - This tells the Flow to use the field from the first (and only) result.
To update a lookup in Flow with the Current Environment connector in general you need to prefix it with /<entity collection name>(<entityid>)
Hi @Logee ,
Just a minor correction in @bhitchlockfcs emailaddress1 eq Email Address should be emailaddress1 eq 'Email Address'
@bhitchlockfcs : That is very detailed description thanks.
As I am new to flows, trying to digest while I read through your post.
I just have couple of questions. I believe I have made suggested changes.
1) To update a lookup in Flow with the Current Environment connector in general you need to prefix it with /<entity collection name>(<entityid>), Please check picture if I have correctly done:
2) Why we need to input to Contact (Contacts) field? OR you just set it to show an example for Potential Customer field?
Thanks in advance. Here are updated snapshots please let me know what other changes required:
Thanks @ManishJain , I have kept it as emailaddress1 eq 'Email Address' as per your instructions.
@bhitchlockfcs @ManishJain Currently below error coming up with suggested changes:
Hi @Logee ,
You are putting value of Contact lookup value in account. Do you want to Update Customer or Potential Customer field in update record action ?
@ManishJain : I want to update Potential Customer field value with Contact Details i.e., First Name + Last Name
I am sorry I didn't get what you mean by: "You are putting value of Contact lookup value in account."?
Hi @Logee ,
You should only put the value in Potential Customer as /contacts(guid) .
@ManishJain It shows expression invalid.
Also should I use Contacts or Accounts?
You want to update the Customer(Contacts)
It looks like Potential customer is linked to Accounts? If so you would need to switch to looking for the Account entity.
These type of Flows are fussy. Don't get frustrated, little things like a missing bracket or quotation mark can throw errors.
I find it helpful to add Compose actions and paste the same expression in there to view the results and verify it is doing what I intended.
@bhitchlockfcs I am not sure if "Potential Customer" is only linked to Accounts. Please check below image looks like it is linked to both Accounts and Contacts.
"I find it helpful to add Compose actions and paste the same expression in there to view the results and verify it is doing what I intended." May I please know how to do that?
Seems to be one step close. Getting details needed. Error around update operation now.
You want to insert the Donation identifier into the Item ID, not account name.
Potential Customer (Account) field should be in the format /accounts(<accountid>) where <accountid> is the unique identifier of the Account.
FYI - Customer is a special field in that it can be linked to either an Account or Contact. In the Flow it should show as two separate fields.
Hi @Logee ,
Customer can either be contact or account. You have to decide which of account or contact you want to set the lookup field with. If you go with Account use /accounts(guid) and if with contact use /contacts(guid) in potential customer. Since you are doing get record based on Contact email second option is preferred here.
@ManishJain @bhitchlockfcs : I have just managed to run first flow successfully. I can understand this whole operation better now. However, haven't understood the whole flow completely yet. Just copied and pasted so will study a bit more about it now.
Thank you for your time and efforts in this matter. I am going to monitor now for next 24 hours and will keep you updated.
Thank you again.
@ManishJain @bhitchlockfcs , Hello All.
After running a flow for a while, I can see it is working but there are some orders not capturing the contact details as below:
Yellow highlighted are not captured. What could be the reason? How to resolve.
In flow history, there are no failed flow run.
Hi @Logee ,
The condition checking the length is true only when a single exact match is found. Otherwise it goes down the No branch. So it skips those records without failing.
Reasons for it being No are either:
a) There are multiple matches,
b) The email doesn't exist in the system
for case a) Add some logic here to decide which to use. If you create an Array variable and add an Append Array action in the No section and append the current record and then you can view/save/email the final result.
for case b) Use the Create Record action to add the Account.
Test for case a) length > 1
Test for case b) length = 0
Keep up to date with current events and community announcements in the Power Automate community.
A great place where you can stay up to date with community calls and interact with the speakers.
Check out the latest Community Blog from the community!