Hi,
We have the following requirement and would appreciate the community's support to suggest the best practice for achieving the same.
Business Requirement :
A process for loan is triggered in a branch (CRM system) where all the customer and loan related details are collected and then submitted to another department(Credit department) in the bank.
All the UI and process related to branch is implemented in CRM, whereas credit department UI is implemented in Appian(review of submitted application happens in credit department).
if any discrepancies are found in the application, credit department can send the application back to branch(CRM) and once corrected flow will continue in Appian.
This return to branch/ different roles within the branch can happen multiple times at various points during credit department review
Suggestion required on below approaches:
Approach 1:
In traditional BPM systems, we create a Dummy task in BPM to indicate the external system task(CRM), once this task is created, we capture the task ID and notify the external system about the impending task that needs to be actioned. --> Once external system completes the task , an API call is made along with the same task ID and using the CompleteTask function/ smart service we complete the dummy external task in BPM and flow moves forward
Approach 2:
As soon as the credit department selects to return the application to CRM, we capture the state of the process in DB via records and the terminate the process, and inform CRM about the impending external activity to be done. --> Once external activity is completed in CRM, a new instance of the same process is created via StartProcess API--> we check the state of the application in DB for the same application number and redirect the flow to that particular step post external activity
Now, which one of the above mentioned approaches is best suitable for my requirement (Consider that fact that entire process is not a long running process and there might be a maximum of 2000 instances created in a day in Appian for all process of bank combined together), please suggest the same with pros and cons?
Also, If there is any other better approach, please suggest the same
Thanks in Advance
Suhas
Discussion posts and replies are publicly visible
Approach 2
I wouldn't recommend creating "dummy tasks"
Some of my thoughts:
- It is clear that a "User Input Task" is meant to directly interact with the user. So using them headless makes no sense.
- Short living processes are good.
- Lingering receive message events in high volumes are a problem. 2000 is not.
Both options are very comparable, but being a process person, I would probably go with the reasoning I got from Google Gemini.
Everything below is AI generated:
Okay, let's break down these two approaches for integrating your CRM and Appian processes, considering the back-and-forth nature of the loan application review.
Analysis of Approaches
Approach 1: Dummy Task / Wait State
Complete Task
Approach 2: Terminate and Restart
Start Process
Recommendation
Approach 1 (Dummy Task / Wait State) is generally the recommended best practice for this scenario, especially given your context.
Refinement for Approach 1 in Appian:
Instead of literally creating a "dummy task" that requires CompleteTask, consider using Appian's Receive Message Event node.
CompleteTask
Send Event
Send Message
This achieves the same goal as the "dummy task" but is often considered a more modern and slightly cleaner way to handle external asynchronous callbacks in Appian.
Conclusion
Unless you have specific, measured evidence that paused instances under Approach 1 are causing critical resource constraints on your Appian environment (which seems unlikely given the described volume), Approach 1 (ideally using a Receive Message Event) offers a simpler, more robust, and more maintainable solution that leverages the strengths of the Appian platform for managing process state. The complexity and potential pitfalls of Approach 2 generally make it less desirable for this type of requirement.
I got similar response from ChatGPT, Grok and MS Copilot