Target a specific card value using ID or something.

Options

On my embedded domo dashboard, I have a card which is showing unique participants calculated on domo. But on my platform, I need to apply a check on this specific count, if the count becomes less then 10 then I need some event to occur.

How can I target this value, is there a way I can pass any data-value in canvas with data-id to target this id and its value and so I will be able to apply that check on my embedded dashboard.

Could anyone of experts helps me to resolve this issue. Regards, Muhammad

Best Answer

  • DavidChurchman
    Answer ✓
    Options

    When you said "some event to occur" in the OP, I didn't know that's what you wanted. If you've shared that summary number to the dataset, for any cards that draw from the same dataset, you could use card-level filters that require that field to be above 10, and then you can specify a "No data" message.

    Please 💡/💖/👍/😊 this post if you read it and found it helpful.

    Please accept the answer if it solved your problem.

Answers

  • MattTheGuru
    MattTheGuru Contributor
    Options

    The answer is yes, but you will need to make a specific DDX brick that emits a message that you can have the parent application listen for.

    Here is some example react code to listen on the frontend, however a complimentary Domo DDX brick would need to be made to send the "uniqueParticipantCount" message to your application.



  • muhammadtalha
    Options

    We have so many dashboards on domo, so to change each dashboard would be a big hassle. and we are using normal cards for now not any ddx bricks cards. is it possible if we assign a id or something to fetch on client side when dashboard is embedded ? I am looking a solution without a ddx brick.

  • MattTheGuru
    MattTheGuru Contributor
    Options

    I've done a lot of toying around with Domo Everywhere and "emitting" and "listening" is the only way to do what you are requesting (through usage of a DDX brick or Domo Enterprise App).

    I would guess building a DDX brick that does that would only take like 20 hours or so if you have a custom code developer on the team. Feel free to DM me if you need help though on building one out.

  • DavidChurchman
    Options

    Maybe I'm mis-reading the question, but it sounds like you would just need an alert. If you want to know when a summary number falls below a threshold, you can set up an alert on that card specifying that threshold:

    Please 💡/💖/👍/😊 this post if you read it and found it helpful.

    Please accept the answer if it solved your problem.

  • muhammadtalha
    Options

    But does it impacts the whole dashboard, let say if my alert triggered and I want to hide my whole dashboard with other cards too and show some error on a screen, then would this be possible using this ?

  • DavidChurchman
    Answer ✓
    Options

    When you said "some event to occur" in the OP, I didn't know that's what you wanted. If you've shared that summary number to the dataset, for any cards that draw from the same dataset, you could use card-level filters that require that field to be above 10, and then you can specify a "No data" message.

    Please 💡/💖/👍/😊 this post if you read it and found it helpful.

    Please accept the answer if it solved your problem.

  • MattTheGuru
    MattTheGuru Contributor
    Options

    For everyone else I made a quick little DDX brick script to do what I said you could do above:

    //Available globalsvar domo = window.domo; var datasets = window.datasets;
    var fields = ["state", "revenue"];var groupby = ["state"];var query = `/data/v1/${datasets[0]}?fields=${fields.join()}&groupby=${groupby.join()}`;domo.get(query).then(handleResult);
    function handleResult(data) { let isNewYorkRevenueLow = data.reduce((row, i, total) => { console.log("row.state",row) if (row.state === "New York") { return total + row.revenue; } return total; }, 0);
    if (isNewYorkRevenueLow < 2000) { const message = "New York Revenue is below 2000!"; window.parent.postMessage(message, "https://clearsquare-co-partner.domo.com"); // Replace "http://example.com" with the origin of the parent } console && console.log(isNewYorkRevenueLow);}