Understand how Appian Handles Decisioning Concepts

Certified Lead Developer

Hi team,

I have a flow where in which I have to create a offer or Coupon to a set of customers who have that eligibility.

Example:

In Swiggy or Zomato (Food Delivery App) , Some coupons like Welcome or Save60 offers are Available for New customers.

but if the customer  who frequently make orders should get some different Offers so for that 

1. I  have to make a dataset of customers who make orders frequently.

2. create some different offers for those dataset.

3.enable that offers in some channel.

This is how I did when I Implemented with different BPM tool those are done by Decisioning capabilities of that Tool.

Now iam trying these same flow in Appian . Can i get any help in understanding  how these are done in appian as  I am new to this , I couldn't able to get any decisioning Rules other than Decision (Table).

I want to know how datasets & Channels are configured and how offers are created.

Mainly I have to understand how Appian Helps in Solving Decisioning Concepts like in above case.

Thank you,

J Vinay

  Discussion posts and replies are publicly visible

  • 0
    Certified Lead Developer

    In general, simple decisions can be made using decision tables. More complex ones use expressions.

    While I miss some details in your explanation, a design could be to use an expression to fetch the data from DB. Then use a foreach to feed each into a decision table. Next, take the result and create Coupon Record items as required. Call these expression in a process model to store the data back to the DB.

  • You can categorize your customers into different categories on the basis of their count of successful orders.  Then you can create a decision which will take categoryType as input and in result give a list of offers.

    We need more details about the actual use case...

  • 0
    Certified Lead Developer

    I honestly wonder if this isn't way overthinking.

    It looks like you only have 2 categories of users: frequent and non-frequent.  (You could have 3 if you wanted, including former-frequent if there should be special deals to get them ordering a lot like they once were.)

    It looks like you only have 2 categories of offers: those for frequent, those for not frequent. (Could possibly have 3.)

    Behold, the if() function. 

    if(

    local!ordersInPastMonth > 12 [I don't know what constitutes a frequent user, but whatever business rule it is],

    a!update(ri!customer, "status", "frequent"),

    {}

    )

    Then elsewhere in the code, if(ri!customer.status = "frequent", rule!offersForFrequent(), rule!offersForNotFrequent() )

    You can also use curly brackets to cause a list of things to result from a clause in the if statement.  All these if true, all those if false.

    You could go to Decision object, but I honestly don't even see how all that is necessary.  If function works quite well for most circumstances, then there's always a!match after that, and then you can decide between Decision or complex expression if it's more than a!match can handle.  This case doesn't even seem like a!match sized.

  • 0
    Certified Lead Developer

    If the decision point comes in a process model, you'd use the XOR gateway.  A user is either frequent or not frequent, and can't be both simultaneously, so XOR.

  • 0
    Certified Lead Developer
    in reply to Stefan Helzle

    Hi Stefan,

    thanks for response ,

    Basically our question here not about creating decision tables or expression. we would like to understand how does we handle NBA(Next Best Action) or NBO(Next Best offer) to customer in Appian BPM tool.

    As BPM developer, i had worked other BPM tool where it does have the separate developer studio to configure NBA/NBO and its associated configurations. Now i would like to do the similar implementation in Appian too

  • 0
    Certified Lead Developer
    in reply to Sanchit Gupta (Xebia)

    Hi Sanchit Gupta,

    thanks for response ,

    Basically our question here not about Customer Categories. we would like to understand how does we handle NBA(Next Best Action) or NBO(Next Best offer) to customer in Appian BPM tool.

    As BPM developer, i had worked other BPM tool where it does have the separate developer studio to configure NBA/NBO and its associated configurations. Now i would like to do the similar implementation in Appian too

  • 0
    Certified Lead Developer
    in reply to Vinay_JUMMIDI

    A NBA/NBO concept does not exist in Appian. Instead, you have the freedom to use the available building blocks to implement what you need.