-
Recently active
According to [mention:650c85e52fdf47f29168a7d381b7feb7:6b577b8c04704e209d29b6772bf67243:label=Leverage%20JMeter%20in%20Appian%20Load%20Testing%2C] this plug-in [mention:a056532754bb4d848e4bc838433a0ebd:f7d226abd59f475c9d224a79e3f0ec07] is needed for, or at least greatly streamlines, performance testing in Appian. The app is now unavailable, and a comment on the plug-in page notes that it is out of date. Is this plug-in permanently out of support, and consequently, is that a showstopper for using JMeter in Appian Load Testing? What is the latest guidance?
Q. There are 2 record types, ABC and XYZ, which sync enabled. The XYZ record type is added as a relationship into the ABC record type. A user has Viewer permission to the ABC record type but does not have access to the XYZ record type. A site page is represented to the user where the data is sourced from the ABC record type and its related record type the XYZ reference. What information does the user see on the site page? Page is presented to the user and the data reference to the XYZ record type appear as “null” Page is presented to the user with the XYZ record type data and field references redacted. Page does not load, and an error message is presented: “The record type [identifier=XYZ] does not exist, has been deleted, or you do not have sufficient privileges to access the data.”
Hi Community, In our current implementation, we're using the Send E-Mail smart service in a few process models. However, the Appian Health Check report flagged this with the following message: "Send E-Mails references a smart service that is no longer recommended for use (Send E-Mail). Please remap this node in the process model to use the latest version." Could someone guide us on: What the recommended replacement is for the deprecated Send E-Mail smart service? Any best practices or migration steps we should follow while updating our process models? Thanks.
Initially, I considered using deployment packages to track changes. However, I noticed that once changes are pushed from UAT to Production, the environments become synchronized. As a result, all objects appeared in the deployment package; however, the ones that were initially modified before being pushed to Production are no longer listed as 'modified.' This makes it difficult to track the specific changes made during that deployment.I'm looking for a reliable approach to maintain visibility into code changes with each deployment. Has anyone found a good solution or best practice for this scenario?
Can someone please explain what are major pros and cons of process driven and db driven task and in which use case we should consider db driven and process driven approach.
Hi everyone, We're building a bi-directional integration between Appian (BPM) and an external multi channels systems CRM, Mobile, Kiosk, Corebank etc. We have two architectural approaches and are looking for insights or best practices from the community: Approach 1: Task-ID Driven • CRM receives a generated Appian task ID via API • CRM later calls a second Appian API to complete that specific task by its ID Approach 2: Event-Driven Integration with Correlation ID (Using Appian Events) A shared correlationId (UUID) is generated and passed between CRM and BPM. Appian subprocesses register to Receive Message Events or wait via correlation-aware logic. CRM communicates by sending events (e.g., KYC_COMPLETED, DOCS_SUBMITTED) using a unified API. Appian routes events internally using correlationId + eventType. What I'm Looking For: Is there an Appian-recommended best practice for choosing between task-based vs event-driven integrations? Are Receive Message Events and cor
Hi everyone, We’re currently in the design phase of a large-scale Appian BPM implementation for a bank. Appian acts as the backend processor for multiple business domains — including Loan Origination, KYC, and more — with all front-end channels (like CRM) integrating via Kafka events. To give context, here’s a simplified version of the incoming JSON payload from CRM to our Appian BPM: Our Design Question We’re wondering whether our database design should mirror this JSON structure, or whether we should use a normalized model that separates document references into a central table. To scope the question further: We’re using a DMS (Document Management System), and every attachment UUID points to a file stored there. Documents can belong to any entity (Applicant, Collateral, Product Info, etc.), and multiple documents can be associated with each entity. Processes vary, and different document types may be required at various stages (requested from the C
Hi everyone, We’re building a large BPM platform in Appian for a bank. It handles multiple core processes like Loan Origination, KYC, and other services. We’re also integrating with both CRM and a Document Management System (DMS) — so document handling is a key topic for us. Our Setup CRM sends us structured application data via Kafka events. We use a central table called BPM_PROCESS_MASTER to track each case (with caseId, correlationId, processKey, etc.). We built a shared table BPM_DOCUMENT_LOG to store documents with fields like: processId entityType entityRefId documentType AppianDocId (if it’s stored in Appian) DMS_UUID (if it’s stored in our DMS) This setup gives us flexibility: We can store documents at any level (applicant, guarantor, collateral, etc.) We can handle new document uploads mid-process (like if Credit asks CRM to re-send more docs) It keeps our business data clean and avoids spreading document fields everyw
Hi there, As a result of a process, a CSV file is output, and I want to store that file in AWS S3. Also, when needed, I want to be able to copy the file in S3 to the Appian Knowledge Center by pressing a button. I want to achieve this by connecting via AWS Private Link, not via the internet. To achieve this, is there any way other than using Lambda, etc.? There is an Amazon S3 Utilities plugin, but it seems to connect via the internet, so I don't think it meets the requirements. Thanks
Please observe the result of these forEach, (1. and 2.): 1. a!forEach( items: {1,2,3,4,5}, expression: if ( fv!item > 3, fv!item, {} ) ) results in meanwhile 2. a!forEach( items: {1,2,3,4,5}, expression: if ( fv!item > 3, fv!item, null ) ) results in Question: Why forEach 1. does not outcome five members in the list?, I expected this result List of Variant - 0 items List of Variant - 0 items List of Variant - 0 items 4(Number (Integer)) 5(Number (Integer))
Difference in Write to Multiple Data Store entity and Write to Data Store entity? When we need to use the multiple data store entity?
Hi All, we have encountered the delay in the execution of the process node (write Records) in the process model. The estimated time taken for the execution is over 2000ms, can anyone suggest, how to reduce the node Execution time and we have Expression rule in the node input of the smart Service . Thanks in advance!! regards, Manoj Yadav.
Hello, My app has a series of reference data stored in a separate table/RT. We've permitted the user to manage that data as the values (slowly) change over time. Part of that management is to disable selections for future use by making them inactive (isActive = False). Dropdowns are used to access the reference data for creation and editing records. Only the active values are made available in the choiceValues/Labels to prevent use of outdated information. The problem is in dealing with "historical" data. There are active records created the week previous that include a reference value that was made inactive=True this week. Now anytime these types of records get edited, the reference to the retired data causes an error because selected value is not on the current list of choiceValues. I could lift the isActive = true filter on edit vs. create new record, but some of the reference values are years old and not appropriate f
a!localVariables( local!data:ri!asr_Requests, local!rawEmails: ri!asr_Requests.emailAddresses, local!integrationResult, local!isintegrationSuccess, local!individualEmails: reject( a!isNullOrEmpty(_), a!forEach( items: split(local!rawEmails, char(10)), expression: trim(fv!item) ) ), local!invalidEmails: reject( a!isNullOrEmpty(_), a!forEach( items: local!individualEmails, expression: if( regexmatch( pattern: "^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$", searchString: fv!item, regexFlags: "si" ), null, fv!item ) ) ), /*local!formattedEmailString: joinarray(local!individualEmails, ","),*/ local!formattedEmailString: a!toJson( { emails: joinarray(local!individualEmails, ",") } ), local!validationMessage: if( a!isNotNullOrEmpty(local!invalidEmails), "Emails must be valid and each on a new line.", {} ), a!formLayout(
Hello, I’m working on a bidirectional integration between Appian and an external system via a middleware gateway. In this setup, we often encounter two categories of errors: Technical issues Data issues Errors series (500 and 400) [emoticon:71aee13fb1eb4feea8d56f3f0189f580]My question: What are the best practices for functionally handling these types of errors on the Appian side? Specifically: Should we simply display messages to end users via pop-ups or alert banners? Are there recommended design patterns or built-in Appian features we should consider (such as retry logic, logging strategies, fallback mechanisms, or dynamic UI error messages)? Any advice for differentiating user-facing errors from those logged for admin troubleshooting? Thanks in advance for your insights!
Good day, fellow Appian developers, I have a question about best practices regarding managing document uploads conditionally. Scenario: I have about 11 user tasks in a new application. Each task has different business logic regarding what documents can be uploaded and how. For example: On the first task, only documentType1 and documentType2 can be uploaded. documentType1 can be uploaded only once and must have a .docx extension. documentType2 can be uploaded multiple times, with no restriction on file extension. Business rules will vary from task to task. Additionally, this setup is currently only applicable for country1/organization1. Over time, this process will be adapted for seven organizations/countries. Each organization will have different business rules about what documents are required and how they can be uploaded in each task. Since this involves quite a number of validations, what is the best practice for creating a generic document upload component that can work ac
Is there anyway I can use github copilot to analysis my application.
Hi everyone, just wanted everyone's opinion on one of our process. We have multiple categories for which we have different set of user roles. They are stored in DB like category 1 -> category 1 roles with their users. And the count of rows is roughly 4000 in production. Role are 1 till Role 11. Categories are like 100+ and there can be multiple users for a role. Also, we have few user groups for few of our oversight roles so whenever there is change we add or remove users from group. So the thing is for Role 1 - Role 6 we are checking throughout application by querying the record with a batch size of 1 and with a single field, if it returns we believe the user has that set of access and we show the screen accordingly. For the rest we use if they are part of user groups and show the content accordingly.My question is what would be a better approach for this? To have groups for all roles and then whenever there is a change add/remove in all user groups? Won't t
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 tas
fff
Hello Community, We’re currently designing a bi-directional integration between Appian and multiple external distributed systems — including CRM, KIOSK, and MOBILE channels. We're evaluating two architectural approaches and would appreciate your insights, especially around Appian events, correlation IDs, and event-based routing strategies. Approach 1: Task-ID Based Integration In this model: When Appian creates a task (e.g., KYC Review), it exposes the task ID to an external system (such as CRM). The external system then uses this ID to call back into Appian to complete the task. Approach 2: Event-Driven Integration with Correlation ID (Using Appian Events) In this preferred model: A correlation ID (UUID) is generated at the beginning of the interaction and shared between Appian and the external system. This correlation ID is used consistently throughout the lifecycle of the end-to-end process across all systems. Appian does not expose any internal task or
We're in the design phase of creating cross-channel communication for business processes. We use CRM, Mobile, Kiosk, and other channels to send and receive messages to and from Appian. Our goal is to develop a web API that enables message exchange between the various channels in our ecosystem. Outside of Appian, we have a solid architecture for data flows and event-driven management between these microservices. We're interested in learning about best practices for determining the target process ID in the receive API. We use the correlationId as a consistent key across all channels to avoid exposing internal IDs. After a process starts, we store the correlationId in a process variable. There are several approaches to obtaining the process ID using the correlationId, but we're looking for the best solution. One approach I've found is to create a process report to filter by the process variable. However, this would require creating separate process reports for each case.
Hi, Ex: I have 10000 rows in record, and have to create user filer as Assigned to so for that i have to fetch the data from the record and need to show in user filter, as we know we can get the 5000 rows at a time from record then at the time i will get only 5000 values but i need 10000 values based on that i can use union operation , i wil show only 50 to 100 user id in the assigned to user filter. is there any best approach for this. thanks!
I have to create the master data in my new app. That's it, Countries, Cities, Genders, Languages, etc. Where do I have to create this kind of data? In an external database? And how can I get the data from the app?: CDT, REcordType, etc? Thanks!
I'm creating a new interface object to display several pie charts. The data for the charts is stored in a local variables in the parent interface object which references my children interfaces. In terms of performance, what is the most efficient method to access the data required for the pie charts? Create a rule input on the children interfaces and pass the local variables data from the parent interface or query the data separately in the child interface to avoid passing it from the parent interface?
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.