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

  • 1
  • Question
  • Updated 4 months ago
  • Answered
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. 
Photo of Sarah Johnson

Sarah Johnson

  • 730 Points 500 badge 2x thumb

Posted 5 months ago

  • 1
Photo of David Narunsky

David Narunsky

  • 222 Points 100 badge 2x thumb
I suggest two different rules/CTAs. Write one for situation A, then a second rule that monitors the conditions for situation B and assigns the new CTA. Deal with it in stages.
Photo of Dan Ahrens

Dan Ahrens, Official Rep

  • 24,642 Points 20k badge 2x thumb
Hi Sarah,

I think you're on the right track, but you should flip your filter at step 2 to return all customers where CTA "A" is NOT in open status. 

Then merge those two data sets keeping accounts where both conditions are true (inner join). This would give you all customers where "B" is an issue and for which CTA "A" is not currently open. 
Photo of Jeff Kirkpatrick

Jeff Kirkpatrick, Champion

  • 24,706 Points 20k badge 2x thumb
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.
Photo of Jeff Kirkpatrick

Jeff Kirkpatrick, Champion

  • 24,706 Points 20k badge 2x thumb
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?

             
(Edited)
Photo of Sarah Johnson

Sarah Johnson

  • 730 Points 500 badge 2x thumb
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.
Photo of Jeff Kirkpatrick

Jeff Kirkpatrick, Champion

  • 24,706 Points 20k badge 2x thumb
Very happy to help!
Photo of Dan Ahrens

Dan Ahrens, Official Rep

  • 24,642 Points 20k badge 2x thumb
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!!