@lisa_garcia You are missing a few actions in your flow.
Manual Trigger
I would recommend using a Manual Trigger and the Get Item action while you test and build out your flow. This will speed up your flow building process. Once you've finalized your flow you can adjust the trigger. Tip: Rename your actions to keep your flow organized.

For my example, I have a SP item with 2 attachments.

Add a Condition Check
Because the intention of your flow is to email an attachment, you'll want to run a check for attachments before your flow continues. Alternatively, you can add Trigger Conditions to your flow to prevent it from running if there aren't any attachments. To keep things simple—I'll be using a Condition action.
Insert the Has attachments dynamic content from the Get item action into the first value field. Leave the operator as is equal to. In the second value field, insert true.
This Condition action will check to see if the item has attachments. If it does, you can place the actions you'd like to run in the YES branch. If the item doesn't have attachments you can leave the NO branch empty or place any actions you'd like to run in the case that an item doesn't have attachments. Adjust the flow to suit your needs.

Get Attachments
Insert the Get attachments action into the YES branch. Insert the ID dynamic content from the Get Item action.

Loop through Attachments
The Get attachments action will return an array of attachments. Even if your SharePoint item has a single attachment, it will still be in an array.
You'll need an Apply to Each action to loop through each attachment. Insert the body dynamic content from the Get attachments action.
Add a Compose action. This is optional, however if you are new to Power Automate I would recommend it. This will help with troubleshooting but we'll also be using it in a test.
In the Compose action insert the DisplayName dynamic content from the Get attachments action.

Run a test. Tip: Always run tests at every section of your flow to ensure that you are catching any errors or issues early on rather than waiting till your entire flow is built.
The Apply to Each action should display the number of attachments for the SP item you are running the test for. In my case, it's showing 2 attachments.
The Compose action should display the file name of the attachment.

This is exactly the reason you should use Compose actions. The description for the DisplayName isn't very helpful. It doesn't indicate that the file extension is also included. Using a Compose action to run a test helps you to confirm the output of the dynamic content.


Add Attachment to Email
Add a Send an Email (V2) action to your flow. Customize the subject line. I've included the name of the file (without the extension) by using an expression.
In the Attachments Name field, insert the outputs from the Compose action that is storing the file name. Insert an expression, use the split() function. With your cursor inside the function, select the dynamic content tab.

Insert the Outputs from the Compose action that is storing the Attachment Name. Add a comma and a period between single quotes.
This expression will split the file name at the period. To return the file name only (without the extension) you'll need to wrap the entire expression in a first() function. This will return the first part of the split.

Press the up arrow key to go to the start of the expression. Type in first(

Press the down arrow key to go the end of the expression. Insert a closing bracket.


In the Attachments content field, insert the File Content dynamic content from the Get file content action.

Run a test. Important: Because the flow is set up in a way where it's looping through each attachment, this means that a single email will be sent for each attachment.


If your SP list items will only ever have a single attachment—then you don't need to worry about adjusting your flow. However, if you want to send a single email will all attachments there will need to be a few extra actions added to your flow and the Send an Email (V2) action will need to be pulled OUTSIDE of the Apply to Each loop.
Replace Trigger
I would recommend creating a copy of your flow. It's always a good idea to keep a Manual trigger flow to run any additional tests or make adjustments to an existing flow.

For my example, I'll use the For a Selected Item trigger.

The Get Item action isn't required with this trigger—so I've deleted it. I've inserted the ID dynamic content from the trigger into the Compose action.

In the Get Item action, replace the ID with the ID dynamic content from the flow trigger.

Hope this helps!
If I helped you solve your problem—please mark my post as a solution ✅. Consider giving me a 👍 if you liked my response!
|