Skip to main content
sarah_johnson
Contributor ⭐️⭐️⭐️⭐️
April 3, 2018
Question

Create CTA "A" only if CTA "B" does not exist

  • April 3, 2018
  • 20 replies
  • 326 views
I need the ability to suppress the creation of CTA "B" if the customer already has CTA "A" opened.  

In our use case, the customer lifecycle is fairly linear, so until issue "A" is cleared up, of course issue "B" is going to be an issue because "B" is dependent on "A."  (In real terms, if the customer hasn't loaded their users, for example, of course there is going to be an issue with their usage of the product.)  Our CSMs do not want to see CTA "A" and "B" together.  They just want to see CTA "A" ... and when that's closed out, the system can evaluate whether CTA "B" is now an issue. 

I've built a bionic rule that does the following: 
1. Data task identifies all customers where "B" is an issue. 
2. Data task identifies all customers where CTA "A" currently exists in Open status.
3. Merge task combines the two data sets, keeping only the customers that are eligible for CTA "B" and do NOT already have CTA "A" raised.  
Action: Raise CTA "B" for those customers 

This isn't working.  The Action is raising CTA "B" for all customers in Data set 1, so it would seem that my attempt to merge out the ones identified in Data set 2 is failing.  

But my overarching question is, Am I approaching this in the best way, or is there a better way? 
If this is the best way, perhaps I need help troubleshooting my rule. 

20 replies

sarah_johnson
Contributor ⭐️⭐️⭐️⭐️
April 10, 2018
Hi Dan, Thank you so much for showing a step by step example! 

I wish I could say that this worked, but I am not getting the same results as you are on the very first step.  

When setting up the first task to find Accounts where the CTA does not exist, I built it exactly as you said (same fields, aggregation, criteria...), but I get 0 results when I preview.  

Here is the task setup: 



But the Preview shows 0 results, when I would expect to see a record for each Account where this CTA does not exist, right? 



To force a result, I removed the Status field from the criteria temporarily so that it would return my only account with this CTA raised, and that preview did show 1 result as expected, but I see that COUNT of Created Date is empty ... 



I understand how this rule is supposed to work in theory, but I have yet to be able to pull back a list of Accounts where a particular CTA does not exist.  
darkknight
Expert ⭐️
April 10, 2018
Hi Sarah - yes, the Count doesn't seem to show in Preview, but it does actually end up with a count when the rule runs. Below, screenshot of rule preview, then screen shot of the dataset task exported to S3.   Go ahead and enable S3 export on the dataset task try a test run of your rule and see if you get the same



Jeff Kirkpatrick
sarah_johnson
Contributor ⭐️⭐️⭐️⭐️
April 10, 2018
Thanks, Jeff. 
We don't have S3 set up, but I'll look into that for later. 
If it's normal that the COUNT shows up blank in the preview, that's fine.  Good to know to expect that. 
My issue is that I have no results to preview at all.  I only get results when I query Accounts where the CTA exists.  I get 0 results when I try to query Accounts where the CTA does NOT exist, following Dan's instructions.
darkknight
Expert ⭐️
April 10, 2018
Gotcha. Have you tried pulling the list of accounts that HAVE the CTA (Count of CTA ID = 1), merge that with ALL your accounts. For accounts that don’t have the CTA, Count of CTA ID = 0. Then in your CTA create action, use filter Count of CTA = 0 to determine whether or not to trigger the CTA?
Jeff Kirkpatrick
sarah_johnson
Contributor ⭐️⭐️⭐️⭐️
April 10, 2018
Yes, that was my original approach, and where the initial post stemmed from.  When I tried that approach, I was able to get both data sets (list of Accounts eligible for CTA B, and a list of Accounts with an existing CTA A), but I couldn't figure out how to merge them so that Accounts with an existing CTA A would be excluded, meaning they wouldn't get CTA B raised in parallel.  I'll keep playing with it!
darkknight
Expert ⭐️
April 10, 2018
Ah sorry I didn't catch that.  I'm at Pulse this week but if I can carve out some time I will play with it as well.  It's a good exercise!  Let me know if you make progress.
Jeff Kirkpatrick
darkknight
Expert ⭐️
April 10, 2018
Sarah I may have a solution for you.

Dataset 1: List of Accounts where B Is an ISSUE
Dataset 2: Show: Account ID, COUNT of CTA ID
                  Filter:  CTA Reason Code = XYZ (or whatever identifies CTA A)
                            CTA Status includes New, Work In Progress (or whatever statuses you have that are not Closed/Complete)

Merge: 
  • Dataset 1  <->  Dataset 2  - Retain all records from LEFT dataset (should keep all accounts where B is an ISSUE
  • Account ID map to Account ID
  • SHOW FIELDS:  Account ID, COUNT of CTA ID (renamed CTA A EXISTS)
       

Action:  Trigger CTA B  if "CTA A EXISTS = NULL" 

Below is the csv output from the Merge.   

The first account "B is an ISSUE" and 1 CTA A is open
The second account "B is an ISSUE" and no CTA A is open



Give that a try and see if it works?

             
Jeff Kirkpatrick
sarah_johnson
Contributor ⭐️⭐️⭐️⭐️
April 10, 2018
Thanks, Jeff!  This looks like it works well and is really going to make our users happy!  Appreciate all of the help.  Have fun at Pulse.
darkknight
Expert ⭐️
April 10, 2018
Very happy to help!
Jeff Kirkpatrick
dan_ahrens
Expert ⭐️⭐️⭐️
April 16, 2018
Thanks Jeff for the assist here. Your idea was exactly the next one I was going to suggest around use of the filter function. 

Community Champion, Jeff K. saves the day again!!
VP of Customer Success at Forcepoint