# OPC tag to open a popup window in perspective

**URL:** <https://forum.inductiveautomation.com/t/opc-tag-to-open-a-popup-window-in-perspective/113369>\
**Category:** General Discussion\
**Tags:** perspective\
**Created:** [January 17, 2026, 8:35am UTC](https://forum.inductiveautomation.com/t/opc-tag-to-open-a-popup-window-in-perspective/113369 "2026-01-17T08:35:20Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![andre.martins](https://avatars.discourse-cdn.com/v4/letter/a/f0a364/32.png) [@andre.martins](https://forum.inductiveautomation.com/u/andre.martins)\
**Post date:** [January 17, 2026, 8:35am UTC](https://forum.inductiveautomation.com/t/opc-tag-to-open-a-popup-window-in-perspective/113369/1 "2026-01-17T08:35:21Z")

</div>

Hi

I’m just started to learn how to program in ignition perspective, so I apologize for the silly questions. I’m trying to open a popup window when a tag (from opc ua , but for testing Im using a bool memory ) changes status from off to on. I know there is a lot of topics related to this but all that I tried does not work and never opens a popup window.

I’m using ignition edge perspective.!.

I have read, the best option is to bind a property in my view to a tag and then set up a change script on that property to trigger the popup.

[![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/2/d/2dd203e7bec169da50458a4c8e4dbc9597cb4eaa.png)](https://us1.discourse-cdn.com/inductiveautomation/original/3X/2/d/2dd203e7bec169da50458a4c8e4dbc9597cb4eaa.png "image")

[image405×144 7.84 KB](https://us1.discourse-cdn.com/inductiveautomation/original/3X/2/d/2dd203e7bec169da50458a4c8e4dbc9597cb4eaa.png "image")

[![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/c/3/c32ecde35b74130b2034005e963872c65f06cf34.png)](https://us1.discourse-cdn.com/inductiveautomation/original/3X/c/3/c32ecde35b74130b2034005e963872c65f06cf34.png "image")

[image1044×333 28.5 KB](https://us1.discourse-cdn.com/inductiveautomation/original/3X/c/3/c32ecde35b74130b2034005e963872c65f06cf34.png "image")

[![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/2/6/269fd5f7850bda95cc9aec8337d9c1b5fef61ff7.png)](https://us1.discourse-cdn.com/inductiveautomation/original/3X/2/6/269fd5f7850bda95cc9aec8337d9c1b5fef61ff7.png "image")

[image383×383 17.4 KB](https://us1.discourse-cdn.com/inductiveautomation/original/3X/2/6/269fd5f7850bda95cc9aec8337d9c1b5fef61ff7.png "image")

[![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/0/f/0fb7f369acc8a8551a9d1cb2552760fd95a1d11a.png)](https://us1.discourse-cdn.com/inductiveautomation/original/3X/0/f/0fb7f369acc8a8551a9d1cb2552760fd95a1d11a.png "image")

[image320×532 17.4 KB](https://us1.discourse-cdn.com/inductiveautomation/original/3X/0/f/0fb7f369acc8a8551a9d1cb2552760fd95a1d11a.png "image")

My script:

```python
def valueChanged(self, previousValue, currentValue, origin, missedEvents):
	if currentValue.value:
		system.perspective.openPopup("_PopUp_Test", "PopUp_Test")

```

I appreciate any help.

Thanks

---

<div class="post-metadata">

**Author:** ![Transistor](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/transistor/32/3380_2.png) [@Transistor](https://forum.inductiveautomation.com/u/Transistor)\
**Post date:** [January 17, 2026, 2:44pm UTC](https://forum.inductiveautomation.com/t/opc-tag-to-open-a-popup-window-in-perspective/113369/2 "2026-01-17T14:44:12Z")

</div>

I'm just checking that you're aware that Designer's limited browser emulation doesn't support navigation in general, and doesn't support popups in particular.

Have you tested it by running the view in a browser?

Tips:

- You can also put a `system.perspective.print()` statement into your script. This will output to Designer's Console (at least you'll know the script ran in Designer - even if the popup doesn't).
- It will also output to the browser's Developer Tools console. Hit F12 and find the Console tab.

---

<div class="post-metadata">

**Author:** ![andre.martins](https://avatars.discourse-cdn.com/v4/letter/a/f0a364/32.png) [@andre.martins](https://forum.inductiveautomation.com/u/andre.martins)\
**Post date:** [January 17, 2026, 9:19pm UTC](https://forum.inductiveautomation.com/t/opc-tag-to-open-a-popup-window-in-perspective/113369/3 "2026-01-17T21:19:44Z")

</div>

Thank you for your reply.

Yes , I‘m awere of that and I’m running the view in a browser.

I’m using a trial version at the moment , do you think this can be an issue?.

---

<div class="post-metadata">

**Author:** ![Transistor](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/transistor/32/3380_2.png) [@Transistor](https://forum.inductiveautomation.com/u/Transistor)\
**Post date:** [January 17, 2026, 10:35pm UTC](https://forum.inductiveautomation.com/t/opc-tag-to-open-a-popup-window-in-perspective/113369/4 "2026-01-17T22:35:56Z")

</div>

> [@andre.martins](#):
>
> I’m using a trial version at the moment...

Trial versions are fully functional.

---

<div class="post-metadata">

**Author:** ![andrew.budaiev](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/andrew.budaiev/32/72921_2.png) [@andrew.budaiev](https://forum.inductiveautomation.com/u/andrew.budaiev)\
**Post date:** [January 17, 2026, 10:50pm UTC](https://forum.inductiveautomation.com/t/opc-tag-to-open-a-popup-window-in-perspective/113369/5 "2026-01-17T22:50:10Z")

</div>

> [@andre.martins](#):
>
> My script:
> 
> ```python
> def valueChanged(self, previousValue, currentValue, origin, missedEvents):
> if currentValue.value:
> system.perspective.openPopup("_PopUp_Test", "PopUp_Test")
> 
> ```

Are you sure this is correct view path?

---

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [January 19, 2026, 1:57am UTC](https://forum.inductiveautomation.com/t/opc-tag-to-open-a-popup-window-in-perspective/113369/6 "2026-01-19T01:57:13Z")

</div>

View path looks correct. As an aside, I do prefer to use keyword args instead of just relying on the index of them. They help to know exactly what you're passing into the function without relying on your memory or having to look it up each time, and they also help others avoid the same when you’re asking for help (I had to look up the order of args myself, despite having used it countless times).

In addition to adding a print statement as @Transistor suggested, I sometimes also add a label which binds to the custom prop to verify its actually showing the right value

---

<div class="post-metadata">

**Author:** ![andrew.budaiev](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/andrew.budaiev/32/72921_2.png) [@andrew.budaiev](https://forum.inductiveautomation.com/u/andrew.budaiev)\
**Post date:** [January 19, 2026, 2:13am UTC](https://forum.inductiveautomation.com/t/opc-tag-to-open-a-popup-window-in-perspective/113369/7 "2026-01-19T02:13:49Z")

</div>

> [@nminchin](#):
>
> View path looks correct.

It looks like it can be in parent folder though. Based on my preliminary investigation.

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/c/f/cf02ab8097c32adfd70c813a78763cf6e9489ff0.png)

---

<div class="post-metadata">

**Author:** ![Aizhigit\_Mussali](https://avatars.discourse-cdn.com/v4/letter/a/f0a364/32.png) [@Aizhigit\_Mussali](https://forum.inductiveautomation.com/u/Aizhigit_Mussali)\
**Post date:** [January 19, 2026, 2:32am UTC](https://forum.inductiveautomation.com/t/opc-tag-to-open-a-popup-window-in-perspective/113369/8 "2026-01-19T02:32:53Z")

</div>

> [@andre.martins](#):
>
> ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/2/6/269fd5f7850bda95cc9aec8337d9c1b5fef61ff7.png)

Where is your `mypopup` custom property located? If it is inside your popup's view and you are trying to open the popup from a different view in your browser, it will not work. ~~Try placing `mypopup` in a [session custom property](https://www.docs.inductiveautomation.com/docs/8.1/ignition-modules/perspective/perspective-sessions/session-properties). That way, `mypopup` will be available in your browser session regardless of which views are currently open.~~

Edit: See Phil and Cody's replies below for the recommended approach.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [January 19, 2026, 12:08pm UTC](https://forum.inductiveautomation.com/t/opc-tag-to-open-a-popup-window-in-perspective/113369/9 "2026-01-19T12:08:28Z")

</div>

> [@Aizhigit\_Mussali](#):
>
> Try placing `mypopup` in a [session custom property](https://www.docs.inductiveautomation.com/docs/8.1/ignition-modules/perspective/perspective-sessions/session-properties).

No, a change script attached to a session custom prop only has session scope, and cannot open a popup. It needs to be a view custom prop. This is best placed on a shared dock view that is always present.

---

<div class="post-metadata">

**Author:** ![cmallonee](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/cmallonee/32/6416_2.png) [@cmallonee](https://forum.inductiveautomation.com/u/cmallonee)\
**Post date:** [January 20, 2026, 4:24pm UTC](https://forum.inductiveautomation.com/t/opc-tag-to-open-a-popup-window-in-perspective/113369/10 "2026-01-20T16:24:29Z")

</div>

> [@pturmel](#):
>
> a session custom prop only has session scope,

Well… Sort of. Even though it’s limited to the session scope, it could still open a popup on a given page by looping over the pages known to be a part of the session.

See [this solution](https://forum.inductiveautomation.com/t/system-perspective-navigate-doesnt-work-on-session-custom-property-tag-change-script/78348/5) I posted for a similar navigation attempt.

Even with that solution, moving this to some always-present bit of UI is indeed the recommended approach.

---

<div class="post-metadata">

**Author:** ![andre.martins](https://avatars.discourse-cdn.com/v4/letter/a/f0a364/32.png) [@andre.martins](https://forum.inductiveautomation.com/u/andre.martins)\
**Post date:** [January 20, 2026, 10:48pm UTC](https://forum.inductiveautomation.com/t/opc-tag-to-open-a-popup-window-in-perspective/113369/11 "2026-01-20T22:48:26Z")

</div>

That was actually the problem. My custom property was located inside my popup window. I moved the custom property to the **“MainPage”** view and it works fine. But the problem them was to open the popup from other views because the custom property I created was associated to the “MainPage”. So I found here in the forum a script that works very well. So, **problem solved.** Thanks very much for all the members help, much appreciated.

Bellow some print screens showing what I did for future reference.

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/8/0/801b7a431e6f7fd84e74868212cdd2be9d7a37b3.png)

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/4/1/413733fed38f1956ba6962fd5bb76b2f3fbbaf26.png)

Script:

```python
def valueChanged(self, previousValue, currentValue, origin, missedEvents):
    popupId = "_PopUp_Test"
    viewPath = "PopUp_Test" # insert your view path here
    logger = system.util.getLogger("POPUP")
    sessions = system.perspective.getSessionInfo()
    for session in sessions:
        for pageId in session.pageIds:
            logger.info("{0} | {1}".format(session.id, pageId))
            if session.userAgent != "<designer>":
                if currentValue.value:
                    system.perspective.openPopup(popupId, viewPath, sessionId=session.id, pageId=pageId)
                else:
                    # note no viewPath arg
                    system.perspective.closePopup(popupId, sessionId=session.id, pageId=pageId)

```

With the script above the popup window can be seen in all the different views of the project when the bool00 changes to true and close the popup when the bool00 changes to false.

---

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [January 25, 2026, 11:32pm UTC](https://forum.inductiveautomation.com/t/opc-tag-to-open-a-popup-window-in-perspective/113369/12 "2026-01-25T23:32:56Z")

</div>

> [@andre.martins](#):
>
> . I moved the custom property to the **“MainPage”**

It should be on one of your shared docks, not on a (non-docked) page. It actually doesn't matter which dock as theyre always in the DOM, they just get pulled in/out based on your config, but logically and for the sanity of others, I choose the main header/navigational dock
