# Custom perspective table using SDK

**URL:** <https://forum.inductiveautomation.com/t/custom-perspective-table-using-sdk/110288>\
**Category:** 3rd Party Modules\
**Tags:** perspective\
**Created:** [August 29, 2025, 10:09pm UTC](https://forum.inductiveautomation.com/t/custom-perspective-table-using-sdk/110288 "2025-08-29T22:09:43Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Jarith\_Fry2](https://avatars.discourse-cdn.com/v4/letter/j/b9e5f3/32.png) [@Jarith\_Fry2](https://forum.inductiveautomation.com/u/Jarith_Fry2)\
**Post date:** [August 29, 2025, 10:09pm UTC](https://forum.inductiveautomation.com/t/custom-perspective-table-using-sdk/110288/1 "2025-08-29T22:09:43Z")

</div>

Hello everyone,

After a few years of developing some backend code in the sdk I am now ready to try and add the front-end to my module. I am just wondering how hard it is to add a new perspective component to the tree that is basically a pre-configured perspective table to get data more easily accessible to the client. If anyone has done this before an example would be greatly appreciated.

Regards,

---

<div class="post-metadata">

**Author:** ![David\_Stone](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/david_stone/32/79749_2.png) [@David\_Stone](https://forum.inductiveautomation.com/u/David_Stone)\
**Post date:** [August 29, 2025, 10:52pm UTC](https://forum.inductiveautomation.com/t/custom-perspective-table-using-sdk/110288/2 "2025-08-29T22:52:39Z")

</div>

The SDK examples have perspective components you can work with.

> **[ignition-sdk-examples/perspective-component at ignition-8.3 ·...](https://github.com/inductiveautomation/ignition-sdk-examples/tree/ignition-8.3/perspective-component)**
>
> Ignition SDK Example Projects. Contribute to inductiveautomation/ignition-sdk-examples development by creating an account on GitHub.

As far as custom components, you could also look at things like apexCharts module implementation for an example of a display component.

---

<div class="post-metadata">

**Author:** ![Jarith\_Fry2](https://avatars.discourse-cdn.com/v4/letter/j/b9e5f3/32.png) [@Jarith\_Fry2](https://forum.inductiveautomation.com/u/Jarith_Fry2)\
**Post date:** [August 29, 2025, 11:20pm UTC](https://forum.inductiveautomation.com/t/custom-perspective-table-using-sdk/110288/3 "2025-08-29T23:20:41Z")

</div>

😉 will go over that example i completely missed it in the sdk examples I probably should stop developing at 2am.

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [August 29, 2025, 11:33pm UTC](https://forum.inductiveautomation.com/t/custom-perspective-table-using-sdk/110288/4 "2025-08-29T23:33:35Z")

</div>

> [@Jarith\_Fry2](#):
>
> basically a pre-configured perspective table

For the sake of it, I'll mention that this is generally an antipattern.  
There's no mechanism in the API to provide "a component that already has bindings for X, Y, Z set up" on it, deliberately. Configuring bindings is a role for end users. The points of extensibility in the module SDK in Perspective (and Vision for that matter) are either:

1. Providing new action or binding _types_, that can perform whatever other function
2. Providing **entirely new** components.

Trying to create a "real" IA table component configured in just the right way is going to be fighting an uphill battle the whole way/probably impossible outright.

---

<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:** [August 30, 2025, 1:42am UTC](https://forum.inductiveautomation.com/t/custom-perspective-table-using-sdk/110288/5 "2025-08-30T01:42:27Z")

</div>

> [@paul-griffith](#):
>
> this is generally an antipattern.

Took the words right out of my mouth.

Jarith, don't do this. Really.

Instead, consider providing expression functions or scripting functions that simplify the data processing for your expected use, to deliver to `props.data` and `props.columns` of the OOB table.

---

<div class="post-metadata">

**Author:** ![Jarith\_Fry2](https://avatars.discourse-cdn.com/v4/letter/j/b9e5f3/32.png) [@Jarith\_Fry2](https://forum.inductiveautomation.com/u/Jarith_Fry2)\
**Post date:** [August 30, 2025, 2:08am UTC](https://forum.inductiveautomation.com/t/custom-perspective-table-using-sdk/110288/6 "2025-08-30T02:08:14Z")

</div>

Thanks guys. I was wondering if maybe just providing a template in the exchange would be better than creating a new component. The scripting functions are already exposed so that makes the debate really easy.
