# 🚀 Custom AI Chat Component in Glide – With Voice & Image Upload

**URL:** https://community.glideapps.com/t/custom-ai-chat-component-in-glide-with-voice-image-upload/81920
**Category:** Project Showcase
**Tags:** ai-custom
**Created:** [May 18, 2025, 7:41am UTC](https://community.glideapps.com/t/custom-ai-chat-component-in-glide-with-voice-image-upload/81920 "2025-05-18T07:41:17Z")
**Posts on this page:** 15
**Page:** 1

<div class="post-metadata">

### Author: ![Gideon\_Lahav\_Busines](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/gideon_lahav_busines/32/41121_2.png) [@Gideon\_Lahav\_Busines](https://community.glideapps.com/u/Gideon_Lahav_Busines)
#### Post date: [May 18, 2025, 7:41am UTC](https://community.glideapps.com/t/custom-ai-chat-component-in-glide-with-voice-image-upload/81920/1 "2025-05-18T07:41:17Z")

</div>

**🚀 Custom AI Chat Component in Glide – With Voice & Image Upload**

https://www.loom.com/embed/016d0d3b38f249a7a82c99cf562379af?sid=ab42412d-5b18-4969-9fff-abf580e6ec1e

Just built a custom AI component in Glide that goes beyond the standard chat features — and it’s 🔥

📸 Image Upload  
Since the native chat doesn’t support direct uploads, I used a custom component to first write the message (and image!) to a user-specific table before submitting it.

🎙 Voice-to-Text Recording  
Using the new Record Action, users can now dictate their message. The transcribed text gets written directly into the same column — ready to send.

🧠 The chat supports rich text, so once submitted, the message appears complete — with text and image — as a new chat row.

✅ It’s a smooth workaround that adds real power to Glide’s chat capabilities.

👉 Try it out or copy it here:

> **[User Input - Glide custom component](https://components.glide.info/share/commit::e40b8f59-d3a2-8df4-b230-13092e9dc536)**
>
> Custom component created in Glide

Glide team, this should be native 😉

#GlideApps #NoCode #ai #VoiceToText #CustomComponent #GlideExpert #UXHack

---

<div class="post-metadata">

### Author: ![MaximeBaker](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/maximebaker/32/80877_2.png) [@MaximeBaker](https://community.glideapps.com/u/MaximeBaker)
#### Post date: [May 18, 2025, 10:58am UTC](https://community.glideapps.com/t/custom-ai-chat-component-in-glide-with-voice-image-upload/81920/2 "2025-05-18T10:58:56Z")

</div>

Wow! Amazing! Thanks for sharing!

---

<div class="post-metadata">

### Author: ![Teejay\_Oyeniran](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/teejay_oyeniran/32/61251_2.png) [@Teejay\_Oyeniran](https://community.glideapps.com/u/Teejay_Oyeniran)
#### Post date: [June 5, 2025, 9:45am UTC](https://community.glideapps.com/t/custom-ai-chat-component-in-glide-with-voice-image-upload/81920/3 "2025-06-05T09:45:39Z")

</div>

l love you, bro.

---

<div class="post-metadata">

### Author: ![Gideon\_Lahav\_Busines](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/gideon_lahav_busines/32/41121_2.png) [@Gideon\_Lahav\_Busines](https://community.glideapps.com/u/Gideon_Lahav_Busines)
#### Post date: [June 5, 2025, 10:04am UTC](https://community.glideapps.com/t/custom-ai-chat-component-in-glide-with-voice-image-upload/81920/4 "2025-06-05T10:04:24Z")

</div>

Thanks man, happy to help

---

<div class="post-metadata">

### Author: ![Maazsaeed](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/maazsaeed/32/90243_2.png) [@Maazsaeed](https://community.glideapps.com/u/Maazsaeed)
#### Post date: [June 5, 2025, 1:06pm UTC](https://community.glideapps.com/t/custom-ai-chat-component-in-glide-with-voice-image-upload/81920/5 "2025-06-05T13:06:32Z")

</div>

Really thankful to you for this masterpiece! I am able to create a password menu now, I didnt knew how to add the icons with the text input

---

<div class="post-metadata">

### Author: ![Gideon\_Lahav\_Busines](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/gideon_lahav_busines/32/41121_2.png) [@Gideon\_Lahav\_Busines](https://community.glideapps.com/u/Gideon_Lahav_Busines)
#### Post date: [June 5, 2025, 1:14pm UTC](https://community.glideapps.com/t/custom-ai-chat-component-in-glide-with-voice-image-upload/81920/6 "2025-06-05T13:14:30Z")

</div>

You are very welocme (😄

---

<div class="post-metadata">

### Author: ![Maazsaeed](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/maazsaeed/32/90243_2.png) [@Maazsaeed](https://community.glideapps.com/u/Maazsaeed)
#### Post date: [June 5, 2025, 1:18pm UTC](https://community.glideapps.com/t/custom-ai-chat-component-in-glide-with-voice-image-upload/81920/7 "2025-06-05T13:18:53Z")

</div>

I built this using your component

 ![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/d/a/da0622b310d43d7e2f60cdc9498c5cc8c51b26c5.png)

Thanks again

---

<div class="post-metadata">

### Author: ![ThinhDinh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/thinhdinh/32/49_2.png) [@ThinhDinh](https://community.glideapps.com/u/ThinhDinh)
#### Post date: [June 5, 2025, 11:04pm UTC](https://community.glideapps.com/t/custom-ai-chat-component-in-glide-with-voice-image-upload/81920/8 "2025-06-05T23:04:06Z")

</div>

Are you trying to authorize access through a value that is stored in your database?

---

<div class="post-metadata">

### Author: ![Maazsaeed](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/maazsaeed/32/90243_2.png) [@Maazsaeed](https://community.glideapps.com/u/Maazsaeed)
#### Post date: [June 5, 2025, 11:42pm UTC](https://community.glideapps.com/t/custom-ai-chat-component-in-glide-with-voice-image-upload/81920/9 "2025-06-05T23:42:30Z")

</div>

Yes, I am

---

<div class="post-metadata">

### Author: ![ThinhDinh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/thinhdinh/32/49_2.png) [@ThinhDinh](https://community.glideapps.com/u/ThinhDinh)
#### Post date: [June 6, 2025, 12:31am UTC](https://community.glideapps.com/t/custom-ai-chat-component-in-glide-with-voice-image-upload/81920/10 "2025-06-06T00:31:41Z")

</div>

I read about your use case in the other thread. Just beware that a user might have access to another one’s code as this is not secured. Not sure the implications of that in your case.

---

<div class="post-metadata">

### Author: ![Maazsaeed](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/maazsaeed/32/90243_2.png) [@Maazsaeed](https://community.glideapps.com/u/Maazsaeed)
#### Post date: [June 6, 2025, 3:30am UTC](https://community.glideapps.com/t/custom-ai-chat-component-in-glide-with-voice-image-upload/81920/11 "2025-06-06T03:30:30Z")

</div>

They are using one computer that can be monitored through camera. Do I have any other secure approach?

---

<div class="post-metadata">

### Author: ![ThinhDinh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/thinhdinh/32/49_2.png) [@ThinhDinh](https://community.glideapps.com/u/ThinhDinh)
#### Post date: [June 6, 2025, 3:35am UTC](https://community.glideapps.com/t/custom-ai-chat-component-in-glide-with-voice-image-upload/81920/12 "2025-06-06T03:35:17Z")

</div>

Is there a way to force them to logout at the end of each session?

---

<div class="post-metadata">

### Author: ![Maazsaeed](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/maazsaeed/32/90243_2.png) [@Maazsaeed](https://community.glideapps.com/u/Maazsaeed)
#### Post date: [June 6, 2025, 3:47am UTC](https://community.glideapps.com/t/custom-ai-chat-component-in-glide-with-voice-image-upload/81920/13 "2025-06-06T03:47:50Z")

</div>

Maybe, but what’s the reason?

---

<div class="post-metadata">

### Author: ![ThinhDinh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/thinhdinh/32/49_2.png) [@ThinhDinh](https://community.glideapps.com/u/ThinhDinh)
#### Post date: [June 6, 2025, 3:59am UTC](https://community.glideapps.com/t/custom-ai-chat-component-in-glide-with-voice-image-upload/81920/14 "2025-06-06T03:59:08Z")

</div>

Mainly because of security. We generally never encourage authenticate your user that way, since one’s data might be exposed to others.

Logging in with an email, and even securing them with row owners/roles is the best level of security you can apply.

Though, you understand your workflow best, so if it works for you I don’t have more recommendations.

---

<div class="post-metadata">

### Author: ![Maazsaeed](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/maazsaeed/32/90243_2.png) [@Maazsaeed](https://community.glideapps.com/u/Maazsaeed)
#### Post date: [June 6, 2025, 4:31am UTC](https://community.glideapps.com/t/custom-ai-chat-component-in-glide-with-voice-image-upload/81920/15 "2025-06-06T04:31:17Z")

</div>

You see, the glide should support the password type variable saving which are secured.
