Search code examples
powerquerym

How to load the contents of an email in outlook in PowerBI/PowerQuery?


I'm trying to load the text contents of an email from outlook in into PowerBI using Power Query. I want to specifically load only the contents of emails from a specified person, with a specified subject line, and only the most recent email. Here's my code so far:

let
    Source = Exchange.Contents("user@email.com"),
    Mail1 = Source{[Name="Mail"]}[Data],
    #"Filtered Rows" = Table.SelectRows(Mail1, each ([Folder Path] = "\Inbox\Project\")),
    #"Sorted Rows" = Table.Sort(#"Filtered Rows",{{"DateTimeReceived", Order.Descending}}),
    #"Filtered Rows1" = Table.SelectRows(#"Sorted Rows", each Text.Contains([Subject], "Speficied Email Subject")),
    #"Expanded Sender" = Table.ExpandRecordColumn(#"Filtered Rows1", "Sender", {"Address"}, {"Sender.Address"}),
    #"Filtered Rows2" = Table.SelectRows(#"Expanded Sender", each Text.Contains([Sender.Address], "specified email sender")),
    #"Filtered Rows3" = Table.SelectRows(#"Filtered Rows2", each Text.Contains([Subject], "specified email subject")),
    #"Kept First Rows" = Table.FirstN(#"Filtered Rows3",1),
    #"Choose First Result's Content" = #"Kept First Rows"[Body],
    TextBody = #"Choose First Result's Content"[TextBody]
in
    TextBody

I'm getting an error:

Expression.Error: We cannot apply field access to the type List.
Details:
    Value=[List]
    Key=TextBody

Can someone help me correct this code? Thanks!


Solution

  • Change the last step to TextBody = #"Choose First Result's Content"{0}[TextBody]