# Integrating a Custom HTML Chatbot into Ignition Perspective (Persistent Overlay)

**URL:** <https://forum.inductiveautomation.com/t/integrating-a-custom-html-chatbot-into-ignition-perspective-persistent-overlay/112062>\
**Category:** Ignition\
**Tags:** perspective\
**Created:** [November 10, 2025, 8:45am UTC](https://forum.inductiveautomation.com/t/integrating-a-custom-html-chatbot-into-ignition-perspective-persistent-overlay/112062 "2025-11-10T08:45:52Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Baskar\_Arumugam](https://avatars.discourse-cdn.com/v4/letter/b/94ad74/32.png) [@Baskar\_Arumugam](https://forum.inductiveautomation.com/u/Baskar_Arumugam)\
**Post date:** [November 10, 2025, 8:45am UTC](https://forum.inductiveautomation.com/t/integrating-a-custom-html-chatbot-into-ignition-perspective-persistent-overlay/112062/1 "2025-11-10T08:45:52Z")

</div>

Hi everyone,

I’ve developed a **custom web-based chatbot** using **HTML + JavaScript** , which loads dynamically from an external source (or can be hosted locally). The chatbot works perfectly when opened in a standalone browser, but I’d like to **embed it directly into my Ignition Perspective application** so that:

- The chatbot is **always visible** (persistent overlay, like a floating widget).

- It should **stay on top of other Perspective components** — even when navigating between views.

- The chat logic (JS) must remain **fully functional** , not stripped or sanitized by Perspective’s HTML filtering.

---

<div class="post-metadata">

**Author:** ![calimero100582](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/calimero100582/32/18630_2.png) [@calimero100582](https://forum.inductiveautomation.com/u/calimero100582)\
**Post date:** [November 10, 2025, 5:17pm UTC](https://forum.inductiveautomation.com/t/integrating-a-custom-html-chatbot-into-ignition-perspective-persistent-overlay/112062/2 "2025-11-10T17:17:28Z")

</div>

Do the chatbot do anything with the interface, or it could be in an iframe? I suppose the chatbot can use the session id as identifier

You can also have a look at HTML injection: [https://forum.inductiveautomation.com/t/perspective-html-injection](https://forum.inductiveautomation.com/t/perspective-html-injection)

---

<div class="post-metadata">

**Author:** ![bmusson](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/bmusson/32/87530_2.png) [@bmusson](https://forum.inductiveautomation.com/u/bmusson)\
**Post date:** [November 10, 2025, 6:23pm UTC](https://forum.inductiveautomation.com/t/integrating-a-custom-html-chatbot-into-ignition-perspective-persistent-overlay/112062/3 "2025-11-10T18:23:47Z")

</div>

You’ll want to do this as a module.

I’d create an additional React root, then listen to the dock positions in order to keep things aligned.

This is exactly how Periscope’s toast notification wrapper works:

> <https://github.com/mussonindustrial/embr/blob/8.1/main/modules/periscope/web/src/extensions/toast/toast.tsx>

---

<div class="post-metadata">

**Author:** ![Baskar\_Arumugam](https://avatars.discourse-cdn.com/v4/letter/b/94ad74/32.png) [@Baskar\_Arumugam](https://forum.inductiveautomation.com/u/Baskar_Arumugam)\
**Post date:** [November 11, 2025, 8:47am UTC](https://forum.inductiveautomation.com/t/integrating-a-custom-html-chatbot-into-ignition-perspective-persistent-overlay/112062/4 "2025-11-11T08:47:07Z")

</div>

Using the WebDev module, I created a Python resource with the **doGet** HTTP method and embedded all my HTML code as a string so that the response returns the page in its original format. I then linked this resource through an Inline Frame component by providing the corresponding WebDev path. The integration works correctly, and the chatbot behaves as expected.

However, my concern is whether there is any alternative method to inject or render HTML— **without using the WebDev module** —while still achieving the same functionality.

Your input or suggestions on this would be greatly appreciated.
