This time we’re going bigger than ever. Fabric, Power BI, SQL, AI and more. We're covering it all. You won't want to miss it.
Learn moreGet Fabric Certified for FREE during AI Skills Fest. This week only. Secure your voucher now.
Hi everyone!
I'm facing a challenge in a copy activity of my pipeline.
Context:
I have a pipeline that makes api calls. The apis use something like the following format /api/emails/{email_id)/forms.
In order to be able to reach the "forms" part, I have first made a Copy activity for /api/emails and stored the results in a lakehouse table. Then I added a lookup activity that extracts the distinct email_ids and feeds them in a for each loop.
Inside ForEach there is another copy activity that utilizes each time the relevant email_id to create the respective relative url (eg. @concat('/api/emails/', item().email_id, '/forms') and proceed with the call. And this works fine.
However the response from @concat('/api/emails/', item().email_id, '/forms') does not have email_id as a property. So basically if I just land the resutls in a table I will not know to which email_id each result is linked to. So my goal is in the final table to have the api's original response columns AND the email_id that will be properly generated in each loop.
In the Mapping configuration of the copy activity I tried adding a new column to utilize the item().email_id but dynamic content doesn't seem to work.
I also tried to make the change via View->Edit JSON code or add the column in the Source configuration "Addiotional Columns", but the first one didn't work and the second one seems to expect a list, not a single value.
FYI the api's response is in json format.
Has anyone come across to something similar? And if yes how did you proceed?
I'll be very gratefull for your input!
Thank you in advance,
Rafaela
Solved! Go to Solution.
email_id into the sink is to add it as an extra source column in the Copy activity (inside the ForEach) so it flows through mapping alongside the API payload.EmailId (string).@Item().email_idemail_id@dataset().EmailIdThis avoids using item() directly in the Additional columns and can be easier to maintain.
Your question mentions Copy Activity, which is only in Fabric enabled resources (Data Factory or Data Engineering). If you just have Power BI/Semantic model, then you would not be able to edit the Copy Activity.
The REST API could be called from PoweryQuery, but you would need access to the API code to add the email to the returned results or store in a parameter
email_id into the sink is to add it as an extra source column in the Copy activity (inside the ForEach) so it flows through mapping alongside the API payload.EmailId (string).@Item().email_idemail_id@dataset().EmailIdThis avoids using item() directly in the Additional columns and can be easier to maintain.
Thank you very much @Thomaslleblanc !
I will mark it as solution, however I have a further question.
What if the only experience your admin has assigned in the workspace is PowerBI and Data Factory or Data Engineering experiences cannot be reached due to that?
You mentioned that your response is the "cleanest" way to approach this so that makes me think that there are also alternatives and I was wandering if one of them also bypasses the example I've just given.
Thank you again!
Check out the June 2026 Fabric update to learn about new features.
Sign up to receive a private message when registration opens and key events begin.
| User | Count |
|---|---|
| 5 | |
| 2 | |
| 1 | |
| 1 | |
| 1 |