# CSV uploads in your app

**URL:** <https://community.glideapps.com/t/csv-uploads-in-your-app/81761>\
**Category:** Project Showcase\
**Tags:** tutorial\
**Created:** [May 7, 2025, 6:29pm UTC](https://community.glideapps.com/t/csv-uploads-in-your-app/81761 "2025-05-07T18:29:49Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![DarrenHumphries](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/darrenhumphries/32/91715_2.png) [@DarrenHumphries](https://community.glideapps.com/u/DarrenHumphries)\
**Post date:** [May 7, 2025, 6:29pm UTC](https://community.glideapps.com/t/csv-uploads-in-your-app/81761/1 "2025-05-07T18:29:50Z")

</div>

You may have come across the need to allow CSV uploading to add data to your app but there is no Glide version of a feature like this. There are a number of ways to do this and I’m just adding my method here. This can be done without using a third-party tool like Make or Zapier, and no need to use Call API; it uses Glide’s workflows.

Rather than type out the whole process, here’s a video on how to do this (updated link):  
[https://www.tella.tv/video/cmafm6m77000x0bl48cd6hl6a/view](https://www.tella.tv/video/cmafm6m77000x0bl48cd6hl6a/view)

> **[Faster CSV Uploads 🚀](https://www.tella.tv/video/cmafm6m77000x0bl48cd6hl6a/view)**
>
> Video recording for work

Let me know any questions and certainly, and suggestions on how to make this better. 🙂

---

<div class="post-metadata">

**Author:** ![Darren\_Murphy](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/darren_murphy/32/47326_2.png) [@Darren\_Murphy](https://community.glideapps.com/u/Darren_Murphy)\
**Post date:** [May 8, 2025, 3:51am UTC](https://community.glideapps.com/t/csv-uploads-in-your-app/81761/2 "2025-05-08T03:51:32Z")

</div>

To get rid of that “copy of mutations” column, you just need a Query JSON node as the first step in your workflow, and then pass the generated JSON. Also, you shouldn’t need all those lookup columns, as you should be able to target the values directly within the workflow loop.

---

<div class="post-metadata">

**Author:** ![DarrenHumphries](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/darrenhumphries/32/91715_2.png) [@DarrenHumphries](https://community.glideapps.com/u/DarrenHumphries)\
**Post date:** [May 8, 2025, 3:01pm UTC](https://community.glideapps.com/t/csv-uploads-in-your-app/81761/3 "2025-05-08T15:01:31Z")

</div>

When I try doing a Query JSON in the Workflow I get the error;

 ![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/3/1/31aab0083cee90dbb843a7da35f72c8bac6465c4.png)

Any idea why? This is why I was copying the mutations.

If I point the Query JSON at the copy it works but then the Query JSON of the First Name;

 ![Screenshot 2025-05-08 10.49.18 AM](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/4/e/4e4afb473ed508710d239a3123c762c4c3a03321.png)

…shows the whole row of that JSON;  
{  
“email”: “[amelia.e@example.com](mailto:amelia.e@example.com)”,  
“phone”: “555-123-4567”,  
“Last Name”: “Earhart”,  
“First Name”: “Amelia”,  
“School Name”: “Oshawa High School”  
}

This would seem to indicate that the text version of the JSON is not properly formatted. The result is that it didn’t work in the Workflow and I had to resort to the example I show in the video.

I feel like the problem is in the CSV to JSON column but I don’t know that for sure.

---

<div class="post-metadata">

**Author:** ![Darren\_Murphy](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/darren_murphy/32/47326_2.png) [@Darren\_Murphy](https://community.glideapps.com/u/Darren_Murphy)\
**Post date:** [May 8, 2025, 4:17pm UTC](https://community.glideapps.com/t/csv-uploads-in-your-app/81761/4 "2025-05-08T16:17:12Z")

</div>

As per discussion on our call just now 😉

I eagerly await the updated video 😂

---

<div class="post-metadata">

**Author:** ![DarrenHumphries](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/darrenhumphries/32/91715_2.png) [@DarrenHumphries](https://community.glideapps.com/u/DarrenHumphries)\
**Post date:** [May 8, 2025, 5:03pm UTC](https://community.glideapps.com/t/csv-uploads-in-your-app/81761/5 "2025-05-08T17:03:17Z")

</div>

Huge thanks to @Darren_Murphy for helping me streamline this! It works much better and is a simpler setup.

[Link to the video](https://www.tella.tv/video/cmafm6m77000x0bl48cd6hl6a/view)

> **[Darren’s video 🐊](https://www.tella.tv/video/cmafm6m77000x0bl48cd6hl6a/view)**
>
> Video recording for work
