# Dashboards

**URL:** <https://forums.knack.com/t/dashboards/13624>\
**Category:** Knacksters' Idea Lab\
**Created:** [January 11, 2023, 5:46pm UTC](https://forums.knack.com/t/dashboards/13624 "2023-01-11T17:46:57Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![NeilParkin60970](https://avatars.discourse-cdn.com/v4/letter/n/47e85d/32.png) [@NeilParkin60970](https://forums.knack.com/u/NeilParkin60970)\
**Post date:** [January 11, 2023, 5:46pm UTC](https://forums.knack.com/t/dashboards/13624/1 "2023-01-11T17:46:57Z")

</div>

Long time user of Knack. Our entire production management and order processing is on Knack and we’d be lost without it.

We’re expanding and getting busier, and its getting harder to get a view of our current situation from reading tables. I recall seeing someone had found a way of producing a ‘tile’ which has, say ‘Order value taken this month’ or number of sales. Both are easy numbers to get at, but not easy to display. Has anyone got something they could suggest or point me at the earlier article. I’ve searched and it just isn’t appearing.

Second, I’ll sneak this in, we take orders direct from clients through a portal, but when they arrive, it sure would be great to be able to hear a ‘ding’, a bell, a claxon, or something else to tell us that we have something to respond to. We have an email notification which dings our phones, but as we work in a busy and noisy environment, they get missed. Same question. Anyone done this already.?

---

<div class="post-metadata">

**Author:** ![JulianKirkness](https://sea2.discourse-cdn.com/flex020/user_avatar/forums.knack.com/juliankirkness/32/770_2.png) [@JulianKirkness](https://forums.knack.com/u/JulianKirkness)\
**Post date:** [January 11, 2023, 6:00pm UTC](https://forums.knack.com/t/dashboards/13624/2 "2023-01-11T18:00:27Z")

</div>

Hi @NeilParkin60970

You should find what you want in my blog post:

> **[Creating Dashboard 'Cards' in Knack](https://www.onlinedatabase.expert/post/creating-dashboard-cards-in-knack)**
>
> Those of you who have been looking at alternatives to Knack often cite the ability to create 'cards' on their dashboards and other pages. For those who don't know what I mean by cards, this is what we're going to create: In this case the numbers...

Hope this helps!

Julian

---

<div class="post-metadata">

**Author:** ![IAmAKnacker](https://avatars.discourse-cdn.com/v4/letter/i/5f9b8f/32.png) [@IAmAKnacker](https://forums.knack.com/u/IAmAKnacker)\
**Post date:** [January 11, 2023, 9:59pm UTC](https://forums.knack.com/t/dashboards/13624/3 "2023-01-11T21:59:08Z")

</div>

You can achieve this with text formulas and some CSS to set up the display.

Here is a sample from our site:

 ![image](https://us1.discourse-cdn.com/flex020/uploads/knack/original/2X/f/fa6c27385e4b17ae6664047039fdbc6ae30fe6f0.png)

To answer your other question, you can use integromat (now make) to set this up. Maybe do an integration with Twilio to send a text message, or set up an email connector to send you a message anytime a new record is created.

We recently set up a solution using make and Twilio that allows users to use our app to mass text a message to their users after a form submission.

---

<div class="post-metadata">

**Author:** ![NormandDefayette\_CortexRD](https://sea2.discourse-cdn.com/flex020/user_avatar/forums.knack.com/normanddefayette_cortexrd/32/855_2.png) [@NormandDefayette\_CortexRD](https://forums.knack.com/u/NormandDefayette_CortexRD)\
**Post date:** [January 12, 2023, 4:31am UTC](https://forums.knack.com/t/dashboards/13624/4 "2023-01-12T04:31:29Z")

</div>

Hi Neil,

I’ve done the audio part of your question. It’s a dashboard that monitors the Knack devices connected to the App, and validates that they’re up and running 24/7 with heartbeats every minute. Works like a charm. But if ever a sequence of 3 heartbeats are missed, I sound an alert and send myself an email.

So here’s an extract of the code I’ve written to add the playback in the app. You can upload an mp3 of your choice in Knack and get its URL to use as the 2nd parameter.

```auto
var alertTriggered = false;
var wantToHearSounds = true;

//audioId is just a unique ID string.
//audioSource is the URL of an mp3 file.
function waitAudioReady(audioId = '', audioSource = '') {
    return new Promise(function (resolve, reject) {
        var audio = document.getElementById(audioId);
        if (audio)
            resolve(audio);
        else {
            audio = document.createElement("AUDIO");
            audio.id = audioId;
            if (audio && audio.canPlayType("audio/mpeg")) {
                audio.setAttribute("src", audioSource);

                //Do not show controls. Uncomment next line to show, if ever needed.
                //audio.setAttribute("controls", "controls");
                document.body.appendChild(audio);
                resolve(audio);
            } else {
                reject('Error - device or browser can\'t play sounds');
            }
        }
    })
}

if (alertTriggered) {
    waitAudioReady('deadTerminalAlert', 'https://api.knack.com/v1/applications/YOU_APP_ID/download/asset/SOUND_RECORD_ID/deviceofflinealert.mp3')
        .then(function (audioAlert) {
            if (audioAlert) {
                if (wantToHearSounds)
                    audioAlert.play();
            }
        })
        .catch(reason => { console.log(reason); })
}

```

Typically, you add the call to waitAudioReady in a view render handler, and check the values of the tables for some trigger.

If you like this, [go check out my KTL](https://github.com/cortexrd/Knack-Toolkit-Library) - it’s amazing!

Enjoy,  
Normand D.

---

<div class="post-metadata">

**Author:** ![NeilParkin60970](https://avatars.discourse-cdn.com/v4/letter/n/47e85d/32.png) [@NeilParkin60970](https://forums.knack.com/u/NeilParkin60970)\
**Post date:** [January 12, 2023, 1:24pm UTC](https://forums.knack.com/t/dashboards/13624/5 "2023-01-12T13:24:16Z")

</div>

Hi all,

really appreciate your assistance.

Julian, yours was the document I’d seen ages ago, thought it was brilliant, then immediately forgot where I’d seen it…!

Plenty to keep me busy

Thanks again

Neil

---

<div class="post-metadata">

**Author:** ![Scott\_Nexidata](https://sea2.discourse-cdn.com/flex020/user_avatar/forums.knack.com/scott_nexidata/32/4330_2.png) [@Scott\_Nexidata](https://forums.knack.com/u/Scott_Nexidata)\
**Post date:** [December 16, 2024, 3:03pm UTC](https://forums.knack.com/t/dashboards/13624/6 "2024-12-16T15:03:53Z")

</div>

Hello Julian–I am relatively new to Knack, but building a database for my business. I was looking to develop some dashboard metrics and came upon your blog post to display KPIs. Love this!

So, I injected your CSS and got the box to work. I then tried to test this out by using a field from a table…but the box just repeated itself with all the different data values for the entire table.

I feel like this is a novice issue I am having, but a key bit I am struggling with is coming up with the single summary data number…i.e. total number of XYZ or summary of a certain column. For example, I may have a table of 20 records and I want to count the number of them that are a certain state from a field and report this.

If you have any lightbulb you can light for me, I would appreciate the support!

---

<div class="post-metadata">

**Author:** ![JulianKirkness](https://sea2.discourse-cdn.com/flex020/user_avatar/forums.knack.com/juliankirkness/32/770_2.png) [@JulianKirkness](https://forums.knack.com/u/JulianKirkness)\
**Post date:** [December 16, 2024, 3:27pm UTC](https://forums.knack.com/t/dashboards/13624/7 "2024-12-16T15:27:10Z")

</div>

Hi Scott

Glad you found the post helpful - to display these ‘boxes’ you need to add them to a details view of the record in which they are calculated (so that only one record is displayed). So you would use count, sum, etc fields to get the values you need and then set up the text formula for the ‘box’ to show that value (with the surrounding html).

The implication is that you may need a summary table in which these values are calculated - and that every record in your actual data table would then be connected to the summarising record.

Hope this helps!

Julian

---

<div class="post-metadata">

**Author:** ![Scott\_Nexidata](https://sea2.discourse-cdn.com/flex020/user_avatar/forums.knack.com/scott_nexidata/32/4330_2.png) [@Scott\_Nexidata](https://forums.knack.com/u/Scott_Nexidata)\
**Post date:** [December 16, 2024, 5:42pm UTC](https://forums.knack.com/t/dashboards/13624/8 "2024-12-16T17:42:59Z")

</div>

Thank you so much for the direction Julian. Let get under the hood on this and see what I can make happen! First thing is getting into making a summary table. Are you meaning a summary Table (Knack Table) or Pivot Table?

---

<div class="post-metadata">

**Author:** ![JulianKirkness](https://sea2.discourse-cdn.com/flex020/user_avatar/forums.knack.com/juliankirkness/32/770_2.png) [@JulianKirkness](https://forums.knack.com/u/JulianKirkness)\
**Post date:** [December 16, 2024, 6:54pm UTC](https://forums.knack.com/t/dashboards/13624/9 "2024-12-16T18:54:25Z")

</div>

Hi

I mean a Knack table- this is where the text formulae and sums go. Of course you may already have a parent table in which these calculations are relevant.

Julian

---

<div class="post-metadata">

**Author:** ![Scott\_Nexidata](https://sea2.discourse-cdn.com/flex020/user_avatar/forums.knack.com/scott_nexidata/32/4330_2.png) [@Scott\_Nexidata](https://forums.knack.com/u/Scott_Nexidata)\
**Post date:** [December 16, 2024, 8:04pm UTC](https://forums.knack.com/t/dashboards/13624/10 "2024-12-16T20:04:17Z")

</div>

Thanks so much for the clarification! I will do some work on this.

Scott

---

<div class="post-metadata">

**Author:** ![Scott\_Nexidata](https://sea2.discourse-cdn.com/flex020/user_avatar/forums.knack.com/scott_nexidata/32/4330_2.png) [@Scott\_Nexidata](https://forums.knack.com/u/Scott_Nexidata)\
**Post date:** [December 17, 2024, 7:40pm UTC](https://forums.knack.com/t/dashboards/13624/11 "2024-12-17T19:40:33Z")

</div>

Julian–Thanks so much for the guidance. I did implement the solution and was able to get some good results (see screen shot with some play values and data).

 ![Screenshot 2024-12-17 at 2.39.08 PM](https://us1.discourse-cdn.com/flex020/uploads/knack/original/2X/8/84f1627fe3ce842ddd9a893050bf4681c7904fde.png)

Thanks again!

---

<div class="post-metadata">

**Author:** ![RyanL](https://avatars.discourse-cdn.com/v4/letter/r/b487fb/32.png) [@RyanL](https://forums.knack.com/u/RyanL)\
**Post date:** [December 3, 2025, 4:15pm UTC](https://forums.knack.com/t/dashboards/13624/12 "2025-12-03T16:15:02Z")

</div>

Looking to accomplish this but the link above from Julian is dead. Anyone have the CSS and workflow for this?

---

<div class="post-metadata">

**Author:** ![JulianKirkness](https://sea2.discourse-cdn.com/flex020/user_avatar/forums.knack.com/juliankirkness/32/770_2.png) [@JulianKirkness](https://forums.knack.com/u/JulianKirkness)\
**Post date:** [December 4, 2025, 10:18am UTC](https://forums.knack.com/t/dashboards/13624/13 "2025-12-04T10:18:42Z")

</div>

@RyanL My appologies about the links - the site is still there but in a free Wix account (I cancelled the domain) - you should be able to access this page at:

> **[Creating Dashboard 'Cards' in Knack](https://julian2846.wixsite.com/mysite/post/creating-dashboard-cards-in-knack)**
>
> Those of you who have been looking at alternatives to Knack often cite the ability to create 'cards' on their dashboards and other pages. For those who don't know what I mean by cards, this is what we're going to create:In this case the numbers refer...

---

<div class="post-metadata">

**Author:** ![NeilParkin60970](https://avatars.discourse-cdn.com/v4/letter/n/47e85d/32.png) [@NeilParkin60970](https://forums.knack.com/u/NeilParkin60970)\
**Post date:** [December 6, 2025, 9:39am UTC](https://forums.knack.com/t/dashboards/13624/14 "2025-12-06T09:39:29Z")

</div>

Hello Julian, I was pleased to see that you are still there as well as your document.

Sudden disappearances from the internet are common for men of our age group. I’m glad you’re still around and doing your thing.

Neil
