Hi all,
We have a lot of unresolved email addresses in our system and they're causing us a problem with some of our data extraction work (not reelvant here).
As a potential solution I used Advanced find to see that these objects existed as Activity Party entries, but seemed to be missing a partyid. I then used powerBI to extract all the Activity Partys that has missing partyid to confirm and this was the case. I've put together a flow that correctly interrogates the Activity Party using Fetchxml :
<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="true">
<entity name="activityparty">
<filter type="and">
<condition attribute="partyid" operator="null" />
<condition attribute="partyidname" operator="eq" value="xxxx@xxx.net"/>
</filter>
</entity>
</fetch>
to bring me back a list. But when I try to update the missing data:
I get the error:
The 'Update' method does not support entities of type 'activityparty'.
This seems odd. It is a single row in a table that is being edited and it has a single missing column value. Any ideas on how I can make the flow update the row (or any other way of achieving the same aim)?
Thanks
Ralph
@Anonymous
Hi @Mira_Ghaly thanks so much for your help on this. I've simplified some bits and complicated others to get to the solution I needed, and now have a flow that checks the email address against existing contacts and runs on a case by case basis (because all these clauses make it very slow). But just a quick thing about the existing parties:
If you filter for the existing parties like so:
The output results allow you to dynamically update the json in a single append apply to each:
That makes that section of the flow much neater.
Thanks again for all your help
Ralph
Thanks @Mira_Ghaly extremely helpful. You're definitely getting a solution from this (I would never have got close without your help), but I just want to complete the final method first. I think I've simplified this down, but just testing some different scenarios...
@Anonymous
I managed to replicate the same scenario with multiple unresolved addresses per email activity and to keep the sender as well, it is a little bit lengthy solution but it works.
1. This the same List rows from Previous Solution
2. Initialize UniqueActivityId array and Activity Party Array to hold the Sender and unresolved created contacts
3. Append to the Activity Id Array
4. Get Unique Values
union(variables('UniqueActivityIdArray'),variables('UniqueActivityIdArray'))
5. Parse JSON
Schema:
{
"type": "array",
"items": {
"type": "string"
}
}
6. Loop on the output of Unique Activity Id to get related activity Party Id only, So List Rows 2 gets all activityparties per emailid
7. Clear the array of the ActivityParty before looping on List Rows 2
8. Get the email sender and append to the activity party id
9. And this is how the final update happens on the email
Hope this fixes your issue!
@Anonymous
Can I ask you if you need to keep the Sender as well?
Is the Sender usually a User or it can be anything ?
Why I am asking this here is because we need to replace the whole activity party array with the newly created contacts as well as the sender..
@Anonymous
Yes it will replace so the solution will be simply as you need while looping on each activity party -> get the other related activity party ids given the Activity ID , so you will have a list of activity parties per Activity Id, then you create a contact and append to an array variable in the below format:
The update the email as below by passing the array variable:
Thanks @Mira_Ghaly that's an awesome set of instructions and I think gets me nearly there. Just a quick question before I run it through:
If I understand it correctly, the update on the Activity Party Attribute on the Update Row will replace whatever was there before. This could be a problem as we have a lot of these emails where there are multiple to/cc recipients only one of which is unresolved (which is why I had headed down the activityparty table route). If I'm correct (and I may not be), I would need a way to resolve 'n' unresolved items from a json array of variable length without changing the correct items. So - am I right (if not your solution will work perfectly) and if I am, have you any more ideas?
(If I get a chance to test this before you reply I'll update the post!)
Thanks again
Ralph
@Anonymous
Create/ Update are not supported on the activityparty Table/Entity, An alternative approach I would suggest and i have tried myself and it looks working , is that you update the email activity instead of the activity party.
So you create a contact with the unresolved email and link it to the To as below but you need to do it on more than one step because the email i suppose it is sent so to be able to update it you need to change it to Open -> Draft and then Update activity Party then Back to Completed -> Sent
First step is to get activityparties as you already did:
Apply to each and create a contact from the activity party email as below:
Change email to Draft:
Then next step another update on the Email record to update the activity party to the created record and set Activity Status to Completed and Status Reason to Sent
Hope this works for you!
WarrenBelz
146,596
Most Valuable Professional
RandyHayes
76,287
Super User 2024 Season 1
Pstork1
65,928
Most Valuable Professional