@ChrisMendoza
@ChrisMendoza wrote:
The JSON does not show an object of organizer.
Despite this, once you use Filter Query, you are entering another world - the world of where the underlying infrastructure is.
For example, try this. I just tried it and it worked, it might amaze you:
1) Go to e-mail inbox and look at the display name of the person for which there is an event invite on the organizer. Example: an event coming from My Events with an email address of mycoolevents@example.com - would mean you should use My Events as the test value
2) Use filter query of
organizer/emailAddress/name eq 'My Events'
3) To your possible bewilderment, you may notice it has returned a collection including events by the organizer you might have been expecting it to. This is despite the fact that organizer: "some value" is the only JSON shown. That simple organizer: "some value" is actually the abstraction, that is not what is really returned in the intermediate step the infrastructure is using. Power Automate is telling you organizer: "some value" but that is not really what is happening. It is actually:
"organizer":{
"emailAddress":{
"name":"Samantha Booth",
"address":"samanthab@a830edad905084922E17020313.onmicrosoft.com"
}
}
In most of Power Automate you don't worry about this, but because you want to use the Filter Query and OData you are interacting with the layer below the abstraction so then this reasoning I introduced may begin to apply here.
There is an additional layer of an issue though. You can only filter by the name in this way. I believe the underlying endpoint has not implemented the email address filtering so even if you use
organizer/emailAddress/address eq 'organizer.email@address.com'
It will unfortunately not work for Email due to filter not being implemented and this may explain why the above will end up actually returning InternalServerError in Power Automate - so instead, only this query will work and you must use the Name instead only (which also happens to be mentioned in the link as well):
organizer/emailAddress/name eq 'My Events'
This one works correctly for 'name' whereas the one for 'address' does not work, for the reason specified above..
Currently, I don't have another idea if you have to use Email other than to resort to a workaround like the one posted by @ccc333ab of just getting the whole thing and filtering it. I do believe that in some cases, that specific workaround may only work if the sample size is small enough, so depending on your scenario, you might need to just resort to filtering by name rather than email address in the OData Query as I am suggesting here:
organizer/emailAddress/name eq 'My Events'
if you need a solution involving the OData Filter specifically.
I do understand this may not be ideal to filter by the name and not the email address - however, the filtering of email address in that specific way might unfortunately not be supported right now.
You also mentioned that this worked:
@equals(triggerBody()?['organizer'],'someEmailAddress@onmicrosoft.com')
The reason for that is, since the Trigger is not a Filter OData Query, this uses the abstraction, and would use the object as you saw it returned in Power Automate JSON, and not the underlying one. The underlying one is only applicable in the OData queries specifically.
Check if this helps explain it.