-
Recently active
I want to create custom Hub for my 4 applications where user can create request, view the request, work on assigned tasks , how can i do , please suggest me the possible approach
We have an external event that can impact up to 1M+ Case records. For each affected Case, we need to: Update 3 fields in the Case table. Create a corresponding Event History record. We're evaluating the following approaches: Option 1 – Appian Write Records Approach A Query Cases in batches of 5000 Use MNI to process each Case in a single Write Records node to update the Case and create the corresponding Event History record Loop until all affected Cases are processed Approach B Query Cases in batches of 5000 Update all affected Cases for the batch in a Script Task Construct the corresponding 5,000 Event History records Use one Write Records node to bulk update the 5000 Case records Use a second Write Records node to bulk insert the 5000 Event History records Loop until all affected Cases are processed Option 2 – Stored Procedure Use a stored procedure to bulk update Case records and bulk insert Event History records Persist affected Case IDs and Event History
We have an external supplier portal in Appian where we need to implement MFA to hide sensitive sections on interface until verification is completed within the session. Preference is to avoid app-based authenticators as some suppliers are hesitant to install anything. Has anyone implemented something similar? Looking for suggestions on: Step-up MFA approach for external Appian portal users Conditionally showing/hiding sections based on completed verification App-free options like email OTP or SMS OTP that work well in Appian
I am currently preparing for the Appian ACD101 exam and came across a question that I am not completely sure about.Questions: How do you refer to the metadata of a process model object within the process model expressions? For example: the creator, name, or description.A- Process Properties, referred to in process model expressions using the pp! domain. B- Process Variables, referred to in process model expressions using the pv! domain. C- Process Model Properties, referred to in process model expressions using the pm! domain.Which option is correct, and how would you explain the reasoning behind it? I would appreciate any insights from those who have studied this topic or have recently taken the ADC101 exam.
Hello: I am trying to create a RecordType synchronized with a web-service. One of the data objects obtained doesn't always have the same number of sub-data points (see nutrients in the image). In order for me to store the nutrients values, right now, I am creating 20 columns (assuming a max) and using a forEach to store each value. Is there a better way to do this? Thank you.
Hi Community, I'm building an HTML-to-PDF generation flow and need to embed an employee photo (stored as an Appian Document) directly into an <img> tag as a Base64 data URL, like this: <img src="data:image/png;base64,{BASE64_STRING}" /> I want to construct the value in an Appian expression as: "data:image/png;base64," & base64Data My question: Is there a built-in Appian expression function to convert a Document to a Base64 string? Using the Appian document URL directly in <img src> does not work. Thank you
How can I optimize the performance of my Appian application?
I am considering implementing pessimistic locking in Appian. However, I have heard that pessimistic locking can potentially degrade performance because it restricts concurrency. In practice, how much impact does pessimistic locking typically have on performance? Also, from a best practice perspective in Appian, what kind of design or implementation approaches should be considered? Specifically, I would appreciate guidance on topics such as: In which scenarios does pessimistic locking have a significant performance impact? When should pessimistic locking be used, and when should it be avoided? If pessimistic locking is required, are there any design techniques or best practices to minimize its performance impact?
Is there any way in Appian to capture the previous state?I have a form with a couple of dop downs where the user selects different assignees for different tasksI want to able to send an email only to the changed users. Is there any way to compare old user values with new ones to see if changes happen?
Hello all, I have come across certain columns of different tables which are not being used in anyway. To validate this, I have done the following : Check for CDT dependencies Check for record type dependencies Search for usage of the field/column globally in the application Based on the above, it appears that these fields are not being referenced by anything. But prior to deleting the columns, I wanted to get your feedback regarding the following: Does the above process ensure that the columns can be deleted without causing any issues ? Is there anything else that needs to be checked prior to deleting such columns (Process Models, integration etc.) ? What is the best way to delete such columns in Appian ? Am I supposed to deprecate these columns prior to their deletion ? Thanks
Hi everyone, I'm having a multi layer nested CDT (Nested CDT that is a column in another nested CDT column of the main CDT that uses as data type) which is taking too long to query data and sometimes causes time out error. I would love to have some suggestion to optimise/ replace it with something else if possible. Thank you
Hi everyone, I’m working on a large and complex process where we are not using User Input Tasks. Instead, we implemented a pool-based approach, where each group has its own pool of requests. All request data is stored in the database. We also have an Admin Configuration interface that allows the admin to enable or disable certain tasks for specific groups. For example, in the database we store a boolean flag: true → the request/task should appear in the pool false → the request/task should no longer appear On the interface side, we are using a grid that queries the database and filters the tasks based on this flag to display the pool for each group. The issue we are facing is the following: When the admin disables a task (changing the flag from true to false), the request still appears in the pool grid. It only disappears after performing a hard browser refresh. The standard refresh mechanisms in the interface do not update the grid immediately. My questions are:
Hi, What is the most efficient way to retrieve data from a large table (more than 4 million rows) in Appian? When I use queryEntity to fetch data from this table, it takes a long time to execute, which negatively impacts Appian’s performance. How can I improve the data retrieval process? My current approach to solve the issue: I split the data retrieval into smaller batches. Specifically, I: Created multiple records that point to the same source table. Used the foreach function to query each record in batches of 5,000 rows. Used the union function to combine the results from each batch. Used the union function to combine the results from each query record. Then, combined the results across all the records to get the complete dataset. I’m concerned about future system complexity.Do I really need to create multiple records and change the system design just to retrieve all the data from a large table? Or is there a better, more efficient way
In one of our production apps, we currently send emails directly from the main process models using the Send Email smart service. As volume is increasing, we’re starting to rethink whether this is the best long-term approach. For those who’ve worked on larger implementations — do you keep email logic in the main process, or move it to a reusable subprocess? Also curious how you’re handling retries and basic monitoring in production. Just trying to sense-check our design as the app scales.
Hi everyone, I'm curious to know if anybody using Lightspeed Devops CI/CD pipeline with Appian. if so what's your take on it. Thank you
Hi , have 6 integrations in the process model flow , it should be run in sequence manner and each integration is depending on previous integration call, now i have to complete the process model within 5 see , could you please let me best approach to follow ? thanks!
Hi everyone, I’m starting a new application in Appian and I want to choose the right approach for storing and managing data. Should I go for Data Store (CDT + Data Store mappings) from there creating record type or Directly use the Record Type backed by a database table What's the purpose of data store generally? I meant by for the modern Appian developement do we need data store necessarily Since this is a new build, I want to follow best practices and avoid making architectural mistakes early. My Question For a fresh application, what is the recommended approach for: Application/master/transactional data CRUD operations Reporting and relationships Security and scalability Long-term maintainability Should I rely on Data Store, PDP, Record Sync, or directly use a Database-backed Record Type? If you have any guidelines, comparison points, or real-world experience on which option is better in 2025 Appian architecture, please share your insights. Notes :
Hello Appian Community, I’m exploring Appian Case Management and came across some implementations described as “case management style.” However, when researching, I see references to Appian Case Management as a native framework. Observations from typical implementations: Short-lived processes triggered on UI submission Routing logic partly handled via staric Match() expressions State stored in database tables Audit/history maintained manually in tables My questions: 1. In Appian, is Case Management a native framework that you configure, or is it just a coding style/pattern? 2. How can we objectively distinguish a true case management implementation from a hybrid or DB-driven workflow that only simulates case management? 3. Are there official Appian guidelines or best practices confirming this? Thank you for your guidance!
Hi Team, which tool is better to use for testing with appian application for automation testing? thanks!
Hi. We need more precise information regarding advice and best practices for doing a rollback / reverting a direct deploy. We intend to do a big deploy which restructures a lot of tables, processes, rule expressions and interfaces. We want to have a rollback plan if anything goes wrong, but i dont find any option in the deploy panel for rollbacks or reverts.any info is welcomed.
I hope this message finds you well. I would like to log the event of an interface being opened. However, my understanding is that on the interface itself, unless an action such as clicking a button occurs, it is not possible to write a record or start a process model. When consulting ChatGPT, I received the following idea: Create a Web API on Appian that returns an image as the response and simultaneously saves a log. Place an image on the target interface and set the endpoint of the Web API created in (1) as the image source. As a result, when the interface is opened, the Web API in (1) is called, and the log is recorded. However, it seems that the function a!writeToDataStoreEntity does not get triggered inside the Web API. I have two questions and would appreciate your advice: What should I review to implement the above ChatGPT idea successfully? Are there alternative methods to log when an interface is opened? Thank you in advance for your kind advice.
Hi Team, I had 2 simple questions which I wanted to post here. Please help me if anyone has the answers : Context : You are given a list of CDT / Dictionary / Map with a few fields, eg : { { key: 12, val: "ABC" }, { key: 20, val: "DEF" }, { key: 30, val: "GHI" } } Problem statement : Get those CDTs which have key bw 10 & 25 My approaches : I had 2 approaches, both of which I have a roadblock I convert this to list to a data subset using toDataSubset function and then filter on this I create a rule which takes this `key` as an RI and then returns true / false based on condition. I will use this rule in the filter function and use wherecontains to filter out which matches our condition Questions : Now for the approach 1, I had a question : how do I filter this custom data subset ? because I only see queryEntity and queryRecord but nothing to query this custom dataset For approach 2 : is there a way we can eliminate the need of creating a differ
Hi Appian Team and Community, We’re designing a generic, audit-compliant task module to support multiple business processes—KYC, retail and corporate loan origination, ESG, and more. Before finalizing our architecture, I’m weighing two approaches for task management: Option 1: Appian’s Built-In Human Tasks via Process Models Uses process reports and task assignment rules Tasks are tied to process instances UI and SLA logic driven by Appian’s native task engine Option 2: Custom Task List Database We build our own TASK_GROUP and TASK tables Tasks are instantiated based on business rules and metadata UI, counters, and SLA logic are fully controlled via record types and expressions My Questions: If we rely on Appian’s built-in human tasks, what happens if the process instance is deleted or archived? – Can we still access task metadata (status, assignee, timestamps) via process reports or APIs? What are the trade-offs between us
Hi Everyone, I am getting below error could you please let me know if you have any idea on this error error converting typed value TypedValue[it=1134,v={4cef5fb4-6aa9-499c-99e1-34fbb0d20616@6291,{TypedValue[it=5246,v={335,C-2025-0335,,,Efficacy and safety of liposomal amphotericin B(AmBisome® ) versus Isavuconazole in patients with invasive Aspergillosis in liver transplant recipients ,,,CRDRF,DRF,<null>,,jiaqi wei,2025-09-13,<null>,110000.0,0,,0,,<null>,1,15144486065@163.com,2025-09-13 01:56:30.0,<null>,15144486065@163.com,2025-09-13 02:28:22.48,,1,Shawn.xiao,,0,}]}}] to XML in order to convert it to java type com.appiancorp.common.EntityData
We have created an Expression Rule named abc, where data is fetched from a Record Type with Smart Search enabled. The results are sorted in descending order of similarity score. Smart Search is enabled on the Full Name and Address fields. For example, the address field contains values like "St.", and we expect that when a user searches for "Street", addresses containing "St." should receive the highest similarity scores. However, we are observing unexpected behavior. For instance, the address "1817 W Broadway Columbia MO 65218" sometimes receives a higher similarity score than addresses that explicitly contain "St.". Additionally, we would like to understand how Smart Search handles nickname matching—for example, whether a search for "Leo" would return results like "Leonardo" with a high similarity score. Request: Could you please help us understand how similarity scores are calculated in Smart Search? Is t
Already have an account? Login
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.