Situation:
If we send a status update and there are no attachments, then my flow works perfectly.
However, when we send a status email and there are multiple attachments in that ticket, then as many status emails are sent as there are attachments.
My current flow looks like this:
I have read a lot and tried a lot, but the flow continues to send multiple emails equal to the number of attachments. I hope someone can say what I am doing wrong or has a solution for me.
Solved! Go to Solution.
for txt. file you have to convert content byte in Base64. Try to use this formula
{ "Name": "@{items('Apply_to_each')?['DisplayName']}", "ContentBytes": "base64(body('Get_attachment_content'))" }
Thanks,
Harry_G
@RDolfing, your Send an email is inside the Apply to each so will; send an email for each attachment. Try moving it below/outside the apply to each.
Rob
Los Gallardos
If I've answered your question or solved your problem, please mark this question as answered. This helps others who have the same question find a solution quickly via the forum search. If you liked my response, please consider giving it a thumbs up. Thanks.
Hi @RDolfing ,
First of all get your send Email Action out of the Apply to each Section Like this;
Now Select Attachment in send Email action;
For Any Assitance feel free to Post.
Thanks,
Harry_G
Thank you for the suggestion. I've tested that already... then it's giving me an error:
The template validation failed: 'The inputs of template action 'Send_an_email' at line '1 and column '5111' is invalid. Action 'Apply_to_each' must be a parent 'foreach' scope of action 'Send_an_email' to be referenced by 'repeatItems' or 'items' functions.'.
When I re-edit the Attachments Name - "DisplayName" and my variable "TicketAttachments" in Attachments Content within "Advanced Options" of "Send an email", hits [Save[ again... my flow is automatically adjusted and a message appears:
Based on the output parameters you selected, we've added a for each container for you. For each enables you to perform actions for each individual item in a set of values
So a new "Apply to each" appears:
Hi @Harry_G (and @RobElliott )
I managed to configure the "Send an email" outside the "Apply to each" Section, by "Attachments" clicked to switch view and added my variable. Saved the flow again did a testrun. It fails now:
Error
Action 'Send_an_email' failed
Error Details
Parameter 'Attachment Content' cannot be null or empty.
clientRequestId: 7f04ead9-df5d-43d1-a879-5f1d9dc546f3
Note that the same variable was used before and was succesfull (ie only 1 email per attachment)
So why is the content now empty?
@RDolfing Kindly upload your screen shot of error with full Flow and expression written in append to variable action.
Thanks,
Harry_G
@Harry_G wrote:@RDolfing Kindly upload your screen shot of error with full Flow and expression written in append to variable action.
Thanks,
Harry_G
Hi @Harry_G ,
My full flow including the expression written in "append to array variable"
The exact code:
{ "Name": @{items('Apply_to_each')?['DisplayName']}, "ContentBytes": @{items('Apply_to_each')?['$content']} }
The error screenshot after a testrun:
The exact error:
Parameter 'Attachment Content' cannot be null or empty. clientRequestId: 88479fd5-2ee9-4ce7-bcc8-cb30495f9d99
Another addition after moving the "for each" befor the "condition".
The array variable is filled with the (in this case 3) attachments but the ContentBytes is now "null"?
for txt. file you have to convert content byte in Base64. Try to use this formula
{ "Name": "@{items('Apply_to_each')?['DisplayName']}", "ContentBytes": "base64(body('Get_attachment_content'))" }
Thanks,
Harry_G
@Harry_G ,
n advance, I am happy with the help you offer! So thanks for that!
However, I have pasted that code and then re-executed the flow, after which I received the error message below.
Unable to read message or attachment content. clientRequestId: 5a94a6e2-2484-476b-a834-58dddfd64ae9 serviceRequestId: 898c1a6e-e25c-4f0d-a620-787213ca9838
Conclusion: it appears that my previous workflow already works as long as they are not TXT attachments.
Is there a solution for this? So what if I have a PDF and a TXT attachment in a ticket? Or only TXT attachments (what I used during testing 😉
You just have to convert .txt attachment in Base64, however rest of attachment extension already in base 64 format. Please apply condition for .txt file. first three images show how to tackle .txt attachments and other 2 images show how to tackle with other than .txt file.
1
2
3
4
5
Thanks,
Harry_G
I have solved the issues... the TXT files were solved with the expression
base64(body('Get_attachment_content'))
But what if you have a TXT and another attachment (such as PDF)? The solution for that, a second "append to array variable" with "configure run after" on "have failed" selected. That did the trick (together with your solution to convert it to base64) 😉
This comment was the key for me!! Thx!
User | Count |
---|---|
16 | |
16 | |
14 | |
9 | |
8 |
User | Count |
---|---|
30 | |
28 | |
24 | |
23 | |
13 |