Skip to main content

Ability to use this logic in report builder ((A AND B) AND (C AND D))

  • December 19, 2016
  • 10 replies
  • 4 views

steve_davis
Forum|alt.badge.img+2
Customer has the following use case. They fire off three CTA's when someone becomes a new customer

-Discovery
-Pre-Deployment
-Deployment

They are wanting to pull in customers which meet the following criteria:

Has a Discovery CTA with a Status !=New   AND Has a pre-deployment CTA with a status = new

This would let them know which customers have started talking about their deployment with a discovery call, but haven't actually started deploying anything within the organization. 

I have broken the report down to this logic   ((A [Name] AND B [Status])  AND (C [Name] AND D [Status]). When I use the "or logic" I get results and I can see there are customers that have both of these CTA's in the statuses that they want to flag.... but if I switch it to AND (what they want) I get no data found.

10 replies

karl_rumelhart
Forum|alt.badge.img+4
Isn't this the same as  (A AND B AND C AND D) ?

steve_davis
Forum|alt.badge.img+2
  • Author
  • Gainsight Employee ⭐️⭐️
  • December 19, 2016
Karl,

I tried it both ways and either way I get no data found



daniel_oberes_b2e3e0
So is this something that can be done with Karl's example?

abhishek_sivaraman
Hi Steve,

The filter will never yield any result immaterial of ((A and 😎 and (C and D)) or if you write(A and B and C and D) because you are using CTA Status Name = New and != New simultaneously which will lead to 0 results.

What you want is to first identify customers who are having a Discovery CTA with a Status !=New and then from the results which you get, use inline report filters to apply C and D conditions because essentially what you are doing is apply two levels of filters-

Show me all customers who have discovery cta and status not equal to new and then amongst the customers who meet the first condition (A and 😎, show me customers who meet pre-deployment CTA with a status = new (C and D). 

This cant be done as a single query as you have done in report builder.

Thanks
Abhishek S

steve_davis
Forum|alt.badge.img+2
  • Author
  • Gainsight Employee ⭐️⭐️
  • December 21, 2016
Abishek, this isn't what the customer wants. The use case...while illustrated by using a report... is really to fire off a CTA to the CSM when accounts have had discovery calls but haven't started deployment in X number of days. I can't use inline filters in a rule and I also can't find a logical way to bring in BOTH of those CTA's (They have different names, playbooks, etc.) 

(A AND B AND C AND D) doesn't fit the use case and is not the logic we want. The true logic of what the customer would like is in fact ((A AND 😎 AND (C AND D)).  Having this name and this status, but also having another cta with a different name and a different status. 

The fix here may not be to adjust the logic in the query, but I'm hopeful you understand the use case that I have laid out.  The customer would like to fire off a CTA's based on the statuses of other CTA's progress. You could do this today if it were just one CTA that we want to look at. However, they are trying to look across the progress of several "related" CTA's to determine when a project is getting stalled. 

This is very important to the business. I have changed this over to an idea, but wanted to make sure we are all on the same page about the ask from the customer is. My apologies if it wasn't clear. 

Steve 

karl_rumelhart
Forum|alt.badge.img+4
I am sorry Steve but there is no logical difference between (A AND B AND C AND D) and ((A AND 😎 AND (C AND D)).  In either situation, the expression is false unless every one of the four individual expressions is TRUE.  As Abhishek said, you seem to want not a single query with four conditions but two separate queries with a join on the results.  Report Builder and Rules Engine issue one query.  So the way you need to solve this problem is to use two Rules and write out intermediate results.  One of the fundamental points of Bionic Rules is to support multiple queries with in-memory joins so that will be helpful for this scenario.  

steve_davis
Forum|alt.badge.img+2
  • Author
  • Gainsight Employee ⭐️⭐️
  • December 21, 2016
Karl,

I understand... the only reason I am pointing out that logic is to clarify what the query would have to look like. I totally get that right now, it would have to be two queries. I also understand this is a feature request. I am just simply trying to point out the use case for the customer... does the use case at least make sense? Id be happy to chat offline if not. 

Thanks,
Steve Davis

daniel_oberes_b2e3e0
Hi All,

Hope I'm not muddying things up more but my use case is not to fire off a CTA but to generate a count of accounts that have CTAs that meet the all of the conditions. 

The end goal is to produce a single graph that displays the "status" of a particular Success Plan based on the statuses of the CTAs within a given plan. 

The conditions outlined above would be for one status, for example "Blocked" which could mean that any CTA in the Success Plan has a status of "On Hold". We have 6 other reports that chop up based on different variations of CTA name, CTA status and Success Plan status. 

For some additional context - we have a success plan template for a major product migration initiative. The success plan has 3 objectives as outlined above. We have good visibility into progress at the CTA level but we want an overall status of the plan so we can get a single view of the customers in the migration. - I've provided some of this context on a separate thread regarding success plan scoring.

d

dan_ahrens
Forum|alt.badge.img+2
  • Expert ⭐️⭐️⭐️
  • November 17, 2017
Hi all,

Looks like this still might be an open question. With the arrival of bionic rules, this is now a solvable issue.

Create two fetch tasks, first fetch task has the filter of "Has a Discovery CTA with a Status !=New", second fetch task has the filter of "Has a pre-deployment CTA with a status = new"

Merge the results of those two fetch tasks. 

You could then use the merged results to create CTAs or write data to an MDA table that could be used for reporting. 

rakesh
Forum|alt.badge.img+2
  • Lets put your data to work!
  • October 16, 2020

As Dan mentioned above, Data Designer / Rules is the ideal place to solve this problem and this cannot be solved from Reporting directly.