GrantSmith Coach

Comments

  • @DP_BA - Can you utilize the ad_id or are you pulling your facebook data on a different dimension? What Reports do you have selected and what are the report edge / level are being utilized?
  • If you know all of the filter combinations ahead of time you can create a beast mode for with case statments to then return the "filter name" and add a quick filter based on those predefined options =Sunshine CASE WHEN lower(`field`) like '%sunshine%' 'Yes' ELSE 'No' END =Mountain CASE WHEN lower(`field`) like '%mountain%'…
  • Great! To clarify here you needed to filter the data before applying the SUM function. In your original one it was essentially taking the sum of all the records if one of them was for Actuals. Moving the SUM to the outside of your case statement caused the data to be filtered first and giving you then desired result.
  • @mamedu- Try this: SUM(CASE WHEN `transaction_type` = 'Actuals' AND ( ( YEAR(`transaction_date`) = YEAR(CURRENT_DATE()) AND MONTH(`transaction_date`) < 7 ) OR ( YEAR(`transaction_date`) = YEAR(CURRENT_DATE())-1 AND MONTH(`transaction_date`) >= 7 ) ) THEN `net` ELSE 0 END)
  • Have you confirmed the value of 'Actuals' in your data? Does it have any trailing whitespace? Instead of = 'Actuals' have you tried doing `transaction_type` LIKE '%Actuals%' Here's a rewrite of your logic but it appears correct glancing over it. CASE WHEN `transaction_type` = 'Actuals' AND ((YEAR('transaction_date`) =…
  • Interestingly enough my initial response was deleted as well. Here's what I initially wrote: @CurtisS You can do it with a MySQL transformation. I plugged your example dataset into the gs_test_data_set referenced below. I utilized two Transforms but you might just need 1 with a seprate dataset. One transform was just…
  • @CurtisS You can do it with a MySQL transformation. I plugged your example dataset into the gs_test_data_set referenced below. I utilized two Transforms but you might just need 1 with a seprate dataset. One transform was just generating a list of all of the products. (I called this product_list) select 'Product A1' as…
  • @WizardOz - Are you wanting to allow the smaller groups if the total number of users is > 20? One other thing of note you might want to keep in mind is to remove the drill path to the underlying data so that they can't see the small group of users. You'd also want to be careful with what's being graphed so the small user…
  • Do you have an example of your like statement or how it wasn't consistent? Like should work to determine if the order season is in your selling season CSV string. CASE WHEN `Selling Seasons` like CONCAT('%', `Order Season`, '%') THEN 'Y' ELSE 'N' END
  • If you don't care about keeping a historical record you could do it with the MagicETL - Date Operation to get the Day of Week on your main data set - Split your main dataset using a filter to pull the last 60 days - Group On Day of Week - calculating the average - Join this grouping back to your original dataset (that you…
  • Here's an example: Note: This is assuming you have one record per date otherwise you'll get duplicate records. If you want on a per record invoice you'd need to include another primary key in your joins than just the date.
  • What I've done in the past is join the table twice, once based on the open date, and again based on the closed date. Then I join those two split data sets back together based on Open Date = Closed Date and rename the count field to be Open Count and Closed Count (or whatever you'd like to call it). Then you can graph based…
  • Because you're wanting to do an average of the count (an aggregate of an aggregate) BeastMode won't be able to help you. You'll need to utilize a data flow to track your running total / count and then you could utilize a beast mode to calculate the difference between your current day's value and the average count.
  • @Valiant posted an answer to this question here: https://dojo.domo.com/t5/Domo-Developer/how-to-open-a-standard-card-of-DOMO-in-a-new-tab-from-a-custom/m-p/46655/highlight/true#M1425 for those searching and coming to this page.
  • @CurtisS - How is the underlying data in the datasource structured? That will help determine how to best create what you're looking for.
  • Do you know the values ahead of time you're looking to filter with or were those to be generated on the fly based on your dataset?
  • You can utilize the command line utility to export all of your Workbench data sources to a folder as JSON objects. 'C:\Program Files\Domo\Workbench\Wb.exe' export-jobs -s YOUR_DOMO_URL -o OUTPUT_FOLDER These JSON files will contain the last execution status under: dataset["WorkbenchConfig"]["LastExecution"]["Success"] This…
  • It allows all of your database connections and data pulling to be done on your local network rather than having Domo do it directly via the web UI. Some companies like this so there's only one point of ingestion into Domo instead of opening access to all of their local databases from a security standpoint. Here's some…
  • Have you tried using a form of the group by chart type? You can have one group be your actual and the other be your goal
  • You might also need to have a space inbetween the first { and the " ^{ *"value"\s*:\s*"(.*)",.*}$ This version would handle if there is a leading space or not.
  • In my raw dataset I've got a date field for each day of the year. That beastmode calculation allows me to use the date selector on the card to graph by day, week, month year etc and it will update % change for each timespan I'm looking at. Take these two screenshots of sample data: Daily ViewMonthly View I've got some…
  • I utilize SUM all the time to help determine the percent difference dynamically between two values. (SUM(`NewValue`) - SUM(`OldValue)) / SUM(`OldValue`) When I have data sliced on a daily basis this allows me to change the time slice to weekly / monthly / yearly etc and calculate the percentage difference.
  • @user022663 - Are you formatting the percentage correctly? If it's displaying a number and it's under 50% (0.5) it'll round down being displayed as 0. Make sure your field is being formatted as a percentage and check the multiply by 100 box (and even add a decimal point or two)
  • If you don't care about the folders then you can use the Replace Text widget with the following regular expression (and replace with the empty string). It will handle any number of folders. ^.*\\ See the attached screenshot for the configuration options.
  • One thing to look out for though is that converting the number to a text field will cause Domo to sort it based on the textual representation and not the numeric number within the field. For Example (text sorting): 1 10 2 3 ... 9 The way to get around the textual sorting issue would be to left pad your numbers with 0s…
  • You can utilize a two step regex in a Replace Text block. See the attached images on how it's done. This is under the assumption it's in the same order / format each time. It would be easier if Domo supported RegEx Match Groups so you could easily just utilize the number shortcuts for the groups it matches within…
  • Have you looked into the Ads Report with the Ad Creative Edge using the Facebook Ads Advanced Connector? It returns a field `thumbnail_url` which you can then utilize an HTML IMG tag using a BeastMode CONCAT('<IMG src="', `thumbnail_url`, "/>') Using this BeastMode in a table card will display the image.
  • You really can't do much without an internet connection. It's required to communicate and authenticate with your domo instance.
  • When interacting with Google Ads I've had to do it two separate ways (I didn't have access to BigQuery at the time). The first was writing a custom Python script to query the Google Ads API for the information I needed and then utilized the Domo API to upload that dataset into Domo. It's a very technical process and you'll…
  • A BeastMode calculation can allow you to convert your decimal (number of days I'm assuming here) to an HH:MM:SS format: CONCAT(ROUND(Sum(`Handle Time`)/Sum(`Handle Contacts`) * 24 - 0.5, 0), ':', ROUND((Sum(`Handle Time`)/Sum(`Handle Contacts`)*24 - ROUND(Sum(`Handle Time`)/Sum(`Handle Contacts`) * 24 - 0.5))*60-0.5, 0),…