<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://community.appian.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Article</title><link>https://community.appian.com/success/w/article</link><description /><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>Analyzing Performance Issues</title><link>https://community.appian.com/success/w/article/3402/analyzing-performance-issues</link><pubDate>Thu, 11 Jun 2026 21:49:04 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:fdf78302-5ea7-4840-b652-8848d1526720</guid><dc:creator>joel.larin</dc:creator><description>Current Revision posted to Article by joel.larin on 6/11/2026 9:49:04 PM&lt;br /&gt;
&lt;div&gt;
&lt;p&gt;While using the system, users may encounter slowness and performance issues. The root causes of these issues vary based on usage patterns, application design, system resources, and external factors.&lt;/p&gt;
&lt;p&gt;For the purposes of this guide, &amp;ldquo;slowness&amp;rdquo; is defined as an aspect of the application or platform not responding within an expected, defined range. For example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;As an end user, page loads take longer than pre-defined SLAs or seems slow&lt;/li&gt;
&lt;li&gt;As a designer, &lt;a href="https://docs.appian.com/suite/help/latest/health-check.html"&gt;Health Check&lt;/a&gt; or logs indicate a response time above the defined threshold&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This guide is designed to help teams methodically investigate reported issues and identify root cause(s) by performing the following steps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="#documentIssues"&gt;Document Issues&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#id_issues"&gt;Triage&amp;nbsp;Issues&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#analyze_issues"&gt;Analyze Issues&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="document&amp;nbsp;issues"&gt;Document&amp;nbsp;Issues&lt;/h2&gt;
&lt;p&gt;Your team needs detailed information about the performance issues in order to start the analysis process. A simple email stating that &amp;ldquo;the system is slow&amp;rdquo; is not actionable. In order to collect this information, your team must first provide guidance to end users on how to document performance issues. You may also need to train your support staff on how to collect this information. This ensures that the responding team has a sufficient level of information to quickly triage and analyze an issue.&lt;/p&gt;
&lt;p&gt;The following list provides the minimum data points that should be collected by your support team or by the end users themselves when they experience a performance issue:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Name of the user reporting the issue&lt;/li&gt;
&lt;li&gt;Username of user experiencing the issue&lt;/li&gt;
&lt;li&gt;URL of the Appian environment&lt;/li&gt;
&lt;li&gt;Date and time of issue&lt;/li&gt;
&lt;li&gt;User&amp;#39;s environment (e.g. browser type and version, use of VPN/virtual desktop)&lt;/li&gt;
&lt;li&gt;Steps to reproduce the observed behavior, noting specific screens and/or record/reference IDs related to latency&lt;/li&gt;
&lt;li&gt;If the issue is experienced in a browser, recording of the network logs captured using the browser&amp;rsquo;s Developer Tools could be useful. See &amp;ldquo;How to generate a browser network capture (HAR) file&amp;rdquo; for more information&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Encourage the person documenting the issue to be as detailed as possible: &lt;em&gt;What is slow? How slow? What data did you enter?&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;Sample Issue Report&lt;/h3&gt;
&lt;table style="height:18px;" width="550"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Reporter&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;John Smith&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Username&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;john.smith&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Site URL&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;https://myapplication.domain.com/suite/sites/mysite&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Time of issue&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Between 10:00am and 10:30am EST&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Environment&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Windows 10, IE Edge - over VPN&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Issue Summary / Reproduction Steps&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;I logged in as john.smith and executed the Create Record action from the Finance site. I filled out the&amp;nbsp;&amp;quot;Enter Basic Information&amp;quot; screen with my name and address, and added 10 locations. I clicked Submit, and the system took approximately 30 seconds before displaying the second form (&amp;quot;Enter Additional Details&amp;quot;). I expected the second form to appear within 5 seconds.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="display:none;"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div id="results" style="display:none;"&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table class="expbox-results"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Type:&lt;/strong&gt;&lt;/td&gt;
&lt;td id="typeCell"&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Value:&lt;/strong&gt;&lt;/td&gt;
&lt;td id="valueCell"&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;h2 id="triage_issues"&gt;Triage Issues&lt;/h2&gt;
&lt;p&gt;Performance issues can occur anywhere in an application so the first thing to do is to triage and categorize the reported issues. Looking at the environment metrics in &lt;a href="https://forum.appian.com/suite/sites/myappian"&gt;My Appian&lt;/a&gt; is a great place to start to determine if performance could be impacting the wider the platform.&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;First, confirm the validity of the usage patterns triggering the reported issue(s). Invalid usage might best be resolved through training or application guardrails rather than in-depth performance analysis and tuning.&lt;/p&gt;
&lt;p&gt;Some example questions to help you decide this are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Do users have realistic expectations?
&lt;ul&gt;
&lt;li&gt;Is the user seeing SLA violations for response times?&lt;/li&gt;
&lt;li&gt;Is the reported issue tied to an area of the application that is expected to run longer, such as a large report?&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Are users utilizing the system as intended? Can users do something they shouldn&amp;rsquo;t be able to do?
&lt;ul&gt;
&lt;li&gt;Exporting millions of records, or processing extremely large file upload might not be expected or valid.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;If performance testing, is the test realistic?
&lt;ul&gt;
&lt;li&gt;Poorly designed tests (i.e. higher than expected volume) may result in performance issues.&lt;/li&gt;
&lt;li&gt;See the&amp;nbsp;&lt;a href="/w/guide/3215/performance-testing-methodology"&gt;Performance Testing Methodology&lt;/a&gt; for guidance on test creation and validation.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id="analyze_issues"&gt;Analyze Issues&lt;/h2&gt;
&lt;h3&gt;Initial Analysis&lt;/h3&gt;
&lt;p&gt;Once you&amp;#39;ve confirmed your application is not performing as expected, your first goal should be to isolate the problem to a specific area of your platform. Start by following the tree below. Once you have reached an endpoint, navigate to the appropriate section below for more information. Restart the decision tree as analysis dictates.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-00-45/Performance-Decision-Tree-_2800_5_2900_.png" /&gt;&lt;/div&gt;
&lt;h3&gt;Detailed Analysis&lt;/h3&gt;
&lt;h4&gt;&lt;b&gt;Network/VPN&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;If &lt;b&gt;all&lt;/b&gt; web interactions are slow, including those not associated with Appian, then your issue is likely related to your network connection or specific computer rather than the platform. Check these things first to confirm:&lt;/p&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td bgcolor="#a9a9a9"&gt;
&lt;p&gt;&lt;b&gt;Key Questions&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td bgcolor="#a9a9a9"&gt;
&lt;p&gt;&lt;b&gt;Potential Issues&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td bgcolor="#a9a9a9"&gt;
&lt;p&gt;&lt;b&gt;Next Steps&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td bgcolor="#a9a9a9"&gt;
&lt;p&gt;&lt;b&gt;Relevant Logs And Tools&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;Are you on VPN/Citrix, etc.?&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Latency is sometimes introduced by intermediate web proxies like VPN or Citrix&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Diagnose&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;Check with peers to see if there is latency on direct network access&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Action&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;Engage IT/Network support team&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Network logs&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;Are your peers experiencing similar latency?&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Issues may be isolated to your machine or region&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Diagnose&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;Verify if issues are specific to your location (i.e. floor, office, network connection)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Action&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;Try different connection&lt;/li&gt;
&lt;li&gt;Engage IT/Network support team&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Network logs&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4&gt;&lt;/h4&gt;
&lt;h4&gt;&lt;b&gt;Web Layer&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;If your web layer interactions are slow:&lt;/p&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td bgcolor="#a9a9a9"&gt;
&lt;p&gt;&lt;b&gt;Key Questions&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td bgcolor="#a9a9a9"&gt;
&lt;p&gt;&lt;b&gt;Potential Issues&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td bgcolor="#a9a9a9"&gt;
&lt;p&gt;&lt;b&gt;Next Steps&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td bgcolor="#a9a9a9"&gt;
&lt;p&gt;&lt;b&gt;Relevant Logs And Tools&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;Are nodes load balancing as expected?&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Load is imbalanced or otherwise not functioning correctly&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;ul&gt;
&lt;li&gt;Review load balancing mechanism (mod_jk, F5 device, etc.).&lt;/li&gt;
&lt;li&gt;Verify network traffic is being routed properly&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;ul&gt;
&lt;li&gt;Web server error logs&lt;/li&gt;
&lt;li&gt;Load balancer logs/configuration&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;Is the Web Server performing as expected?&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Threads may be stuck, or CPU utilization may be too high for resources available&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Isolate which threads/requests are causing issues&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;ul&gt;
&lt;li&gt;Web server access logs&lt;/li&gt;
&lt;li&gt;Web server error logs&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;Is granular debugging enabled?&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Some debugging levels introduce unexpected latency into Web requests&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;ul&gt;
&lt;li&gt;Disable any extraneous debugging&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;ul&gt;
&lt;li&gt;Web server access logs&lt;/li&gt;
&lt;li&gt;Web server error logs&lt;/li&gt;
&lt;li&gt;Web-to-App server connector logs (ISAPI, mod_jk/mod_proxy)&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4&gt;&lt;/h4&gt;
&lt;h4&gt;&lt;b&gt;App Server&lt;/b&gt;&lt;/h4&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td bgcolor="#a9a9a9"&gt;
&lt;p&gt;&lt;b&gt;Key Questions&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td bgcolor="#a9a9a9"&gt;
&lt;p&gt;&lt;b&gt;Potential Issues&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td bgcolor="#a9a9a9"&gt;
&lt;p&gt;&lt;b&gt;Next Steps&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td bgcolor="#a9a9a9"&gt;
&lt;p&gt;&lt;b&gt;Relevant Logs And Tools&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;Is there high CPU utilization/load average?&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Application server resources are overloaded&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Diagnose&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;Look into logs for high volume requests&lt;/li&gt;
&lt;li&gt;Run &lt;a href="/support/w/kb/394/kb-1177-how-to-generate-a-java-thread-dump"&gt;thread&lt;/a&gt;/&lt;a href="/support/w/kb/393/kb-1176-how-to-generate-a-java-heap-dump"&gt;heap&lt;/a&gt; dumps&lt;/li&gt;
&lt;li&gt;Review if application follows best practices or is using more resources than expected&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Action&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;Optimize application to align with best practices
&lt;ul&gt;
&lt;li&gt;&lt;a href="/w/guide/3317/interface-performance-and-debugging#Typical_Performance_Issues"&gt;Typical Performance Issues&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/w/guide/3309/database-performance-best-practices"&gt;Database Performance&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Consider &lt;a href="https://docs.appian.com/suite/help/latest/Scaling_Appian.html"&gt;scaling resources&lt;/a&gt; if needed (i.e. add additional CPU)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Appian&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Logging.html#system-metrics-logs"&gt;system.csv&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;Is there high heap/garbage collection time?&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Application components are using a high amount of memory. Typically seen generating documents or working with very large data sets&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Diagnose&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;Look at logs for risks&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Action&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;Run &lt;a href="/support/w/kb/394/kb-1177-how-to-generate-a-java-thread-dump"&gt;thread&lt;/a&gt;/&lt;a href="/support/w/kb/393/kb-1176-how-to-generate-a-java-heap-dump"&gt;heap&lt;/a&gt; dumps&lt;/li&gt;
&lt;li&gt;Consider &lt;a href="https://docs.appian.com/suite/help/latest/Scaling_Appian.html"&gt;scaling resources&lt;/a&gt; if needed (i.e. add additional memory)&lt;/li&gt;
&lt;li&gt;Consider adjusting Heap settings&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Appian&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Logging.html#system-metrics-logs"&gt;system.csv&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4&gt;&lt;/h4&gt;
&lt;h4&gt;&lt;b&gt;RDBMS&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;If your RDBMS interactions are slow:&lt;/p&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td bgcolor="#a9a9a9"&gt;
&lt;p&gt;&lt;b&gt;Key Questions&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td bgcolor="#a9a9a9"&gt;
&lt;p&gt;&lt;b&gt;Potential Issues&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td bgcolor="#a9a9a9"&gt;
&lt;p&gt;&lt;b&gt;Next Steps&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td bgcolor="#a9a9a9"&gt;
&lt;p&gt;&lt;b&gt;Relevant Logs And Tools&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;Are your queries designed efficiently?&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Queries are under/over indexed&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Diagnose&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;Run explain plan&lt;/li&gt;
&lt;li&gt;Analyze Logs&lt;/li&gt;
&lt;li&gt;Run profiler&lt;/li&gt;
&lt;li&gt;Review index statistics&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Action&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;Review the &lt;a href="/w/guide/3309/database-performance-best-practices"&gt;Database Performance&lt;/a&gt; play&lt;/li&gt;
&lt;li&gt;Update indices&lt;/li&gt;
&lt;li&gt;Redesign queries&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;DB&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;Slow query logs&lt;/li&gt;
&lt;li&gt;Explain plan&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Appian&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Logging.html#data-store-performance-logs"&gt;data_store*.csv&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Logging.html#expressions-performance-logs"&gt;expression*.csv&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Logging.html#smart-services-performance-logs"&gt;smart_service*.csv&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Logging.html#data-store-performance-logs"&gt;perf_monitor_rdbms.csv&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;Are your queries running with the expected parameters?&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Indexes are not being applied correctly due to unexpected where conditions or casting to unexpected types&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Diagnose&lt;/b&gt;&lt;b&gt;&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;Run explain plan&lt;/li&gt;
&lt;li&gt;Run profiler&lt;/li&gt;
&lt;li&gt;Review index statistics&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Action&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;Update indices&lt;/li&gt;
&lt;li&gt;Update application&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;DB&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;Explain plan&lt;/li&gt;
&lt;li&gt;Profiler&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Appian&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Logging.html#data-store-performance-logs"&gt;perf_monitor_rdbms.csv&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;Is the database tuned to support volume and type of queries?&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Database resources are insufficient; settings, such as buffer/cache are overwhelmed&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Diagnose&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;Monitor system resources (CPU, Disk Usage, Memory)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Action&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;Adjust settings as needed&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;DB&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;System metrics&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Appian&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Logging.html#data-store-performance-logs"&gt;perf_monitor_rdbms.csv&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4&gt;&lt;/h4&gt;
&lt;h4&gt;&lt;b&gt;Engines&lt;/b&gt;&lt;/h4&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td bgcolor="#a9a9a9"&gt;
&lt;p&gt;&lt;b&gt;Key Questions&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td bgcolor="#a9a9a9"&gt;
&lt;p&gt;&lt;b&gt;Potential Issues&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td bgcolor="#a9a9a9"&gt;
&lt;p&gt;&lt;b&gt;Next Steps&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td bgcolor="#a9a9a9"&gt;
&lt;p&gt;&lt;b&gt;Relevant Logs And Tools&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;Are all engines up?&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Some engines are not accessible, resulting in some requests failing or bottlenecking on limited resources&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Diagnose&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;Execute the Check Engine script and confirm all services are available&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Action&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;Resolve any issues and restart any unavailable services&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Appian&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Status_Script.html"&gt;Diagnostics scripts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Logging.html#engine-databases"&gt;engine status logs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Logging.html#engine-summary-log"&gt;engine*.csv&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Logging.html#engine-performance-logs"&gt;perf_monitor*.csv&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;Are your requests load balanced?&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Some execution services are being under- or over- utilized due to process design patterns&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Diagnose&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;Execute an All Process reports, and count number of processes per engine&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Action&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;Review process models for instances of MNI or high number of subprocesses&lt;/li&gt;
&lt;li&gt;Update to use the Start Process service where possible, or minimize use of MNI&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Appian&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Process_Reports.html"&gt;Analytics reports&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Status_Script.html"&gt;Diagnostics scripts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Logging.html#engine-summary-log"&gt;engine*.csv&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Logging.html#process-execution-logs"&gt;top_models*.csv&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Logging.html#process-execution-logs"&gt;top_process*.csv&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;Are engines overloaded?&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Engines are overloaded due to high utilization (either throughput or sub-optimal design)&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Diagnose&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;Review engine performance logs for extremely low Idle time % (&amp;lt;20%) and Work Queue Size increasing&lt;/li&gt;
&lt;li&gt;Identify expensive processes&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Action&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;Decrease utilization by optimizing expensive processes&lt;/li&gt;
&lt;li&gt;Consider &lt;a href="https://docs.appian.com/suite/help/latest/Scaling_Appian.html#add-execution-and-analytics-shards"&gt;scaling engines&lt;/a&gt; if needed&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Appian&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Process_Reports.html"&gt;Analytics reports&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Status_Script.html"&gt;Diagnostics scripts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Logging.html#engine-summary-log"&gt;engine_system.csv&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Logging.html#engine-performance-logs"&gt;perf_monitor*.csv&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Logging.html#process-execution-logs"&gt;top_models*.csv&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Logging.html#process-execution-logs"&gt;top_process*.csv&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4&gt;&lt;/h4&gt;
&lt;h4&gt;&lt;b&gt;Interfaces/Expressions&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;If your interfaces are slow:&lt;/p&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td bgcolor="#a9a9a9"&gt;
&lt;p&gt;&lt;b&gt;Key Questions&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td bgcolor="#a9a9a9"&gt;
&lt;p&gt;&lt;b&gt;Potential Issues&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td bgcolor="#a9a9a9"&gt;
&lt;p&gt;&lt;b&gt;Next Steps&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td bgcolor="#a9a9a9"&gt;
&lt;p&gt;&lt;b&gt;Relevant Logs And Tools&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;Do your interfaces rely on external services or complex database queries?&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;The service isn&amp;#39;t performant or is not functioning correctly&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Diagnose&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;Review the interface to look for integration calls (e.g. Integration objects, fn!webservicequery(), a!queryEntity())&lt;/li&gt;
&lt;li&gt;Leverage the Performance View and logs to determine if integration calls significantly contribute to overall render time&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Action&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;If integration based, review the Integrations and RDBMS sections of this guide&lt;/li&gt;
&lt;li&gt;If not, review the remaining questions in this section&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Appian&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Performance_View.html"&gt;Performance view&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Logging.html#application-server"&gt;Application server logs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Logging.html#expressions-performance-logs"&gt;expression*.csv&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Logging.html#data-store-performance-logs"&gt;data_store*.csv&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;Are your interfaces complicated, or call many expressions?&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;The time to complete numerous tasks causes the overall interface to perform slowly&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Diagnose&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;Review the Performance View to isolate redundant, high volume or poor performing sections of the interface&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Action&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;Review the &lt;a href="/w/guide/3317/interface-performance-and-debugging"&gt;Interface Performance And Debugging&lt;/a&gt; and &lt;a href="/w/guide/3309/database-performance-best-practices"&gt;Database Performance&lt;/a&gt; plays&lt;/li&gt;
&lt;li&gt;Improve the design of the identified area&lt;/li&gt;
&lt;li&gt;Consider simplifying the interface if possible, looking for opportunities to do some of the work on other screens&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Appian&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Performance_View.html"&gt;Performance View&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Logging.html#application-server"&gt;Application server logs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Logging.html#expressions-performance-logs"&gt;expression*.csv&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Logging.html#data-store-performance-logs"&gt;data_store*.csv&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4&gt;&lt;/h4&gt;
&lt;h4&gt;&lt;b&gt;Integrations&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;If your external integrations are slow:&lt;/p&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td bgcolor="#a9a9a9"&gt;
&lt;p&gt;&lt;b&gt;Key Questions&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td bgcolor="#a9a9a9"&gt;
&lt;p&gt;&lt;b&gt;Potential Issues&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td bgcolor="#a9a9a9"&gt;
&lt;p&gt;&lt;b&gt;Next Steps&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td bgcolor="#a9a9a9"&gt;
&lt;p&gt;&lt;b&gt;Relevant Logs And Tools&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;Is there an issue in the service?&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;The service isn&amp;#39;t performant or is not functioning correctly&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Diagnose&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;Isolate performance using debugging tools to replicate transactions outside of Appian&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Action&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;If test tools show issues as well, engage owner of service&lt;/li&gt;
&lt;li&gt;If test tools to not show issues, investigate Appian logs further&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;External Tools&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;Fiddler, SoapUI, Postman&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Appian&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Logging.html#application-server"&gt;Application server logs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Logging.html#expressions-performance-logs"&gt;expression*.csv&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Logging.html#smart-services-performance-logs"&gt;smart_service*.csv&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Logging.html#integration-performance-logs"&gt;integration*.csv&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Logging.html#http-request/response-logs"&gt;HTTP Request/Response Logs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;Is there any issue with connectivity to the service?&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;The network connection to the service is misconfigured&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Diagnose&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;Isolate performance using debugging tools to replicate transactions outside of Appian&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Action&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;Engage IT/Network support team&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Network logs&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;External Tools&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;Fiddler, SoapUI, Postman&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Appian&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Logging.html#application-server"&gt;Application server logs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Logging.html#expressions-performance-logs"&gt;expression*.csv&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Logging.html#smart-services-performance-logs"&gt;smart_service*.csv&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Logging.html#integration-performance-logs"&gt;integration*.csv&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Logging.html#http-request/response-logs"&gt;HTTP Request/Response Logs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4&gt;&lt;/h4&gt;
&lt;h4&gt;&lt;b&gt;Smart Services&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;If your smart service execution is slow:&lt;/p&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td bgcolor="#a9a9a9"&gt;
&lt;p&gt;&lt;b&gt;Key Questions&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td bgcolor="#a9a9a9"&gt;
&lt;p&gt;&lt;b&gt;Potential Issues&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td bgcolor="#a9a9a9"&gt;
&lt;p&gt;&lt;b&gt;Next Steps&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td bgcolor="#a9a9a9"&gt;
&lt;p&gt;&lt;b&gt;Relevant Logs And Tools&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;If a plugin, is the smart service code optimized?&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Plug-in code might not be optimized for the parameters provided&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Diagnose&lt;/b&gt;&lt;b&gt;&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;Debug code using logging or remote tools to isolate poor performing modules.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Ensure the plug-in has been written to follow &lt;a href="/w/article/3273/plugin-development-best-practices"&gt;best practices&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Action&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;Update implementation&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Appian&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Logging.html#application-server"&gt;Application server logs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Logging.html#expressions-performance-logs"&gt;expression*.csv&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.appian.com/suite/help/latest/Logging.html#smart-services-performance-logs"&gt;smart_service*.csv&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;External Tools&lt;/b&gt;&lt;b&gt;&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;Remote or local debugging with IDEs&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: checklists, Performance, Architecture&lt;/div&gt;
</description></item><item><title>Machine Learning Overview</title><link>https://community.appian.com/success/w/article/3392/machine-learning-overview</link><pubDate>Thu, 11 Jun 2026 21:48:36 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:3439a4de-33fa-4d77-939f-3e5561eecd3a</guid><dc:creator>joel.larin</dc:creator><description>Current Revision posted to Article by joel.larin on 6/11/2026 9:48:36 PM&lt;br /&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Appian is integration agnostic and has the ability to connect with any machine learning offering that exposes itself with a web API. The purpose of this article is to provide information that will empower your general understanding of machine learning technology regardless of the specific tool being used. Refer to the &lt;/span&gt;&lt;a href="/success/w/guide/3407/integrating-with-amazon-machine-learning"&gt;&lt;span style="font-weight:400;"&gt;article&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight:400;"&gt; for Amazon machine learning integrations that have been written about in detail in Appian&amp;#39;s documentation.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1hthvnjgk0"&gt;&lt;b&gt;What is Machine Learning?&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Machine learning is a type of artificial intelligence that uses mathematical models to generate probabilistic predictions by finding patterns in historical data. Machine learning is a subset of AI that focuses on the development of algorithms and models that enable computers to learn and make decisions based on data. The models can be thought of as black boxes that are created by processing many observations both supervised and semi-supervised. These machine learning models are then able to take in one or many observations without a known outcome and produce possible outcomes based on their probabilities.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;There are many different use cases and applications for machine learning. This article mainly focuses on machine learning technology that analyzes structured data, such as rows of an Excel spreadsheet or an Appian CDT, and delivers a prediction for a specific field or column in the data. The feature, value, or attribute that is being predicted for is often referred to as the &lt;/span&gt;&lt;i&gt;&lt;span style="font-weight:400;"&gt;target&lt;/span&gt;&lt;/i&gt;&lt;span style="font-weight:400;"&gt;. Within the context of Appian, we&amp;rsquo;ll dive into the practical implementation of AI features that integrate with applications.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Other uses for machine learning include natural language analysis and translation and the ability to decipher image contents, done using tools such as &lt;/span&gt;&lt;a href="https://www.ibm.com/watson/services/natural-language-understanding/?cm_mmc=Search_Google-_-Watson+AI_Watson+Core+-+Platform-_-WW_NA-_-watson%20sentiment%20analysis_e&amp;amp;cm_mmca1=000036IU&amp;amp;cm_mmca2=10010583&amp;amp;cm_mmca7=9007770&amp;amp;cm_mmca8=kwd-309710612366&amp;amp;cm_mmca9=_k_EAIaIQobChMItZuoy4T-4gIVgq_ICh2pBQdPEAAYASAAEgJUVvD_BwE_k_&amp;amp;cm_mmca10=338427417319&amp;amp;cm_mmca11=e&amp;amp;gclid=EAIaIQobChMItZuoy4T-4gIVgq_ICh2pBQdPEAAYASAAEgJUVvD_BwE"&gt;&lt;span style="font-weight:400;"&gt;IBM&amp;#39;s Watson&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight:400;"&gt; and &lt;/span&gt;&lt;a href="https://cloud.google.com/document-ai"&gt;&lt;span style="font-weight:400;"&gt;Google AI&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight:400;"&gt; respectively.&lt;/span&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1hthvnjgk1"&gt;&lt;b&gt;Appian ML/AI Capabilities&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://docs.appian.com/suite/help/latest/ai-skill-object.html"&gt;&lt;span style="font-weight:400;"&gt;Appian AI Skills&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight:400;"&gt; facilitate the integration of machine learning and AI capabilities into your application. This is done using a variety of low-code design objects, functions and smart services. Features available within Appian AI Skills include document and email classification with custom-built models, and document extraction with pre-trained models.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Classification models can be custom-built, including being trained and tested using data that will accurately reflect your use case. The &lt;/span&gt;&lt;a href="https://docs.appian.com/suite/help/latest/create-skill-doc-extraction.html"&gt;&lt;span style="font-weight:400;"&gt;Document Extraction&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight:400;"&gt; AI skill identifies data from PDF documents, extracting and saving data into key-value pairs that can be used within the application or saved within a database.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Appian AI Skills offer pre-trained models that use built-in documentation extraction capabilities.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&amp;nbsp;Pre-trained models in Appian are designed for general use cases and are used in documents that have similar information and labeled values (e.g. structured or semi-structured documents). Incorporating Google AI functionalities into your Appian application enables the integration of various features, including but not limited to natural language processing, translation services, cloud-based storage, and mor&lt;/span&gt;&lt;span style="font-weight:400;"&gt;e&lt;/span&gt;&lt;span style="font-weight:400;"&gt;. See &lt;/span&gt;&lt;a href="https://docs.appian.com/suite/help/latest/using-google.html"&gt;&lt;span style="font-weight:400;"&gt;Using Google AI Services&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight:400;"&gt; for a full list of features available.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;span style="font-weight:400;"&gt;Note that starting from January 23, 2024, Appian is no longer selling Appian-provisioned Google credentials to customers. Customers have to purchase the license directly through Google and add their Google credentials to their Appian Admin console&lt;/span&gt;&lt;/i&gt;&lt;span style="font-weight:400;"&gt;.&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Appian &lt;/span&gt;&lt;a href="https://docs.appian.com/suite/help/latest/appian-ai-copilot.html"&gt;&lt;span style="font-weight:400;"&gt;AI Copilot&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight:400;"&gt; is a starting point to further AI capabilities using Appian. AI Copilot utilizes generative AI to create functional interfaces by generating an initial interface from the fields in your form through a simple pdf upload. AI Copilot is integrated with Azure OpenAI to enable this functionally in your application. Azure OpenAI leverages generative AI models (e.g. gpt-3, codex, dall-e, chatgpt) to provide writing assistance, content generation, etc. You can use AI Copilot to build interfaces directly from a pdf, resulting in a personalized product that can be further customized according to your specific requirements once the initial interface is generated.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Machine learning, particularly deep learning, is one of the fundamental components of generative AI. Similarly to other machine learning models, generative AI models undergo training with large amounts of data that aids in identifying inherent patterns. The generative AI model is fine-tuned and enhanced with the introduction of more data over time. Leveraging AI with Appian allows you to automate repetitive tasks and simplify processes, streamlining development and increasing efficiency and productivity.&lt;/span&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1hthvnjgk2"&gt;&lt;b&gt;Common Model Types&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;There are two major categories of model types that are used for making machine learning predictions on structured data:&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Regression&lt;/b&gt;&lt;span style="font-weight:400;"&gt;: predicts a numeric value.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Classification&lt;/b&gt;&lt;span style="font-weight:400;"&gt;: predicts a categorical value from a discrete, fixed number of possible categories. Classification models can be further broken down into two types:&lt;/span&gt;
&lt;ol&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Binary classification&lt;/b&gt;&lt;span style="font-weight:400;"&gt;: the model has only two prediction values to choose from (ex. true and false).&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;b&gt;Multiclassification&lt;/b&gt;&lt;span style="font-weight:400;"&gt;: the model has more than two prediction values to choose from.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Which type you utilize is dependent on the target attribute you want to predict for and your overall objective in creating the model. Read the sections below to learn more about the purpose of each model type and see examples describing appropriate uses of each one.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Regression&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;Regression models make predictions along a continuous range of numerical values. They have many important use cases (examples below), but can&amp;#39;t be used in cases where binary, categorical, or non-numeric values are required without additional processing to the model&amp;rsquo;s output.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;The main metric used to determine accuracy of a regression model is the root mean square error (RMSE). The RMSE represents the standard deviation between predicted and actual values; thus a good RMSE is&amp;nbsp; relative to the range of values&amp;nbsp; you are trying to predict. A perfect model would have a RMSE of 0.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;When using a regression model, be aware that the predicted value may not fall within the range of values provided in training data and might take on any positive or negative number. It is important to have a plan for how to address any values that would fall outside of acceptable ranges for your application.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Regression models can be used to predict:&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;The sale price of a home, given information about the home&amp;#39;s size, number of bedrooms, zip code, etc.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;The appropriate salary for a job posting, given information about that job&amp;#39;s difficulty and expected characteristics of qualified candidates.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;The number of viewers who will watch the premiere of a new TV series, given information about the show&amp;#39;s genre and cast.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Binary Classification&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;Binary classification models predict for a value that has only two possible outcomes.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;A binary classification model will return a value (true or false) and a predicted score (a number between 0 to 1). By default if a predicted score is greater than 0.5, then the predicted value will be true. However, machine learning tools typically allow you to adjust the score threshold to alter the number of true and false values depending on your use case.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;The main metric used to evaluate performance of a binary classification model is &lt;/span&gt;&lt;a href="https://developers.google.com/machine-learning/crash-course/classification/roc-and-auc"&gt;&lt;span style="font-weight:400;"&gt;Area Under the Curve (AUC)&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight:400;"&gt;. The AUC is represented as a number between 0 and 1. A number closer 1 indicates a highly accurate model. Values near 0.5 represent the model is no better than guessing at random. Values close to 0 indicate the model has learned correct patterns, but is using them to make inverse predictions.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Binary classification models can be used to predict:&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;Whether a job candidate should be given an offer of employment, given information about their qualifications and interview scores.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;Whether a loan application should be approved or rejected, given credit details about the applicant.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;Whether someone will sign up for a service, given their demographics.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;Whether a bank transaction is fraudulent, given information about how much that transaction deviates from the account&amp;#39;s typical usage patterns.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Multiclassification&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;Multiclass models predict for a categorical value from a list of three or more discrete, finite possibilities.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;A multiclass model will return a list of values and their related probabilities. The value with the highest probability represents the model&amp;#39;s best prediction. For example, if you are trying to predict which tier of support a customer service case should be routed to, a multiclass model might return: Tier 1 - 60%, Tier 2 - 13%, Tier 3 - 27%.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;Since the target attribute&amp;#39;s possible values are derived from training data, the model will never deliver a prediction value that did not occur in the training data.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;The main metric used to determine the accuracy of a multiclass model is called an &lt;/span&gt;&lt;a href="https://www.v7labs.com/blog/f1-score-guide"&gt;&lt;span style="font-weight:400;"&gt;F1 score&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight:400;"&gt;. The F1 score is the harmonic mean between precision and recall. The range is 0 to 1. The closer the value is to 1, the better the model.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;Some machine learning tools set a limit on the number of possible predictable values that a multiclass model can have. This is because target attributes with hundreds or thousands of potential values can be difficult to train and have a higher likelihood of failure and poor model performance.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;To make predictions from a group of possibilities that is larger than a machine learning tool&amp;#39;s limit, consider using a series of different models. For example, to classify animal species from an image, better results can be achieved by first training the model for a more general classification (e.g. feline, canine, rodent). Additional models can be trained to identify specific species.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Multiclass classification models can be used to predict:&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;Which category of car&amp;mdash;sedan, truck or SUV&amp;mdash;someone is likely to purchase, given their demographics.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;A book&amp;#39;s genre, given information about the book&amp;#39;s author, length, characters, storyline, etc.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Appian AI Skills Use Case: &lt;/span&gt;&lt;i&gt;&lt;span style="font-weight:400;"&gt;Email Classification&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;The client receives thousands of emails everyday for customer support. Employees manually forward these emails to appropriate departments and locations based on a review of the email description and the customer&amp;#39;s location. This process is time consuming and prone to human error. The client can automate this process using the &lt;/span&gt;&lt;b&gt;Email Classification&lt;/b&gt;&lt;span style="font-weight:400;"&gt; AI Skill that combines machine learning and automation. For the new model to be effective, the client must upload a &amp;quot;training set&amp;quot; consisting of a diverse set of emails which includes multiple examples for all desired email routing options.Once the model is trained and tested, the client can publish the model to make it available for use through the &lt;/span&gt;&lt;b&gt;Classify Emails&lt;/b&gt;&lt;span style="font-weight:400;"&gt; smart service&lt;/span&gt;&lt;i&gt;&lt;span style="font-weight:400;"&gt;.&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Model Types Summary&lt;/b&gt;&lt;/p&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;Model&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;Prediction Type&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;Common Performance Metrics&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;Example&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Regression&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Predicts a numeric value&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;a href="https://agrimetsoft.com/data-tool.aspx#rmse"&gt;&lt;span style="font-weight:400;"&gt;Root Mean Square Error (RMSE)&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://agrimetsoft.com/data-tool.aspx#mae"&gt;&lt;span style="font-weight:400;"&gt;Mean Absolute Error (MSE)&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Predicting a home&amp;#39;s sale price&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Binary Classification&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Predicts binary values (ex. true or false)&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;a href="https://developers.google.com/machine-learning/crash-course/classification/roc-and-auc"&gt;&lt;span style="font-weight:400;"&gt;Area Under the Curve (AUC)&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Predicting whether a job candidate should be offered employment&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Multiclass Classification&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Predicts values that belong to a limited, predefined set of permissible values&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/F1_score"&gt;&lt;span style="font-weight:400;"&gt;F1 Score&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/Loss_functions_for_classification#Logistic_loss"&gt;&lt;span style="font-weight:400;"&gt;Log Loss&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Predicting a book&amp;#39;s genre&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="mcetoc_1hthvnjgk3"&gt;&lt;b&gt;Training Data&amp;nbsp;&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;To create a model, you must supply the machine learning tool with training data that it will use to learn about associations between different attribute values of input data and the target attribute. The model ultimately applies the associations and patterns it found in the training data to make predictions for novel input data. There is a common adage that a model is &amp;ldquo;only as good as its training data&amp;#39;&amp;#39;. If the training data is not a representative sample of the data against which it will be making predictions, the model&amp;rsquo;s performance will suffer.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Below is an example of a data structure that might be used for training data for a model designed to predict the sale price of a used car. In this use case, the column marked &amp;quot;Sale Price&amp;quot; would be identified to the model as the target attribute to predict for.&lt;/span&gt;&lt;/p&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;Year&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;Make&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;Model&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;Color&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;Transmission&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;Mileage&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;Previous Owners&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;Sale Price&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;1997&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Ford&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Mustang&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Silver&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Automatic&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;201,298&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;3&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;1,499&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;2013&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Mazda&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;3&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Black&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Automatic&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;60,588&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;1&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;8,100&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;2005&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Honda&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Element&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Red&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Automatic&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;160,378&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;2&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;4,760&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;2009&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Toyota&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Camry&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Blue&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Manual&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;87,380&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;1&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;7,290&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight:400;"&gt;The details about how data should be ordered, formatted and uploaded to a machine learning tool for training vary depending on the specific tool being used, so refer to your tool&amp;#39;s documentation for specific information about appropriately presenting data.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Best Practices and Tips for Training Data&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;The more training observations (ie. rows of data) that you provide during training, the more accurate the final model will be. This is applicable when a diverse and balanced (e.g. data between class A and B are split equally) set of training data is provided to avoid bias when making predictions. Google has &lt;/span&gt;&lt;a href="https://cloud.google.com/inclusive-ml/#fairness-in-ml-automl"&gt;&lt;span style="font-weight:400;"&gt;documentation&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight:400;"&gt; and a &lt;/span&gt;&lt;a href="https://www.youtube.com/watch?v=59bMh59JQDo"&gt;&lt;span style="font-weight:400;"&gt;video&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight:400;"&gt; regarding bias and machine learning that is helpful for learning more about this topic.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;To the greatest extent possible, provide training data that resembles the data you expect to see in production.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;Machine learning tools typically have both minimal requirements and limits regarding the size and complexity of training data. Read your tool&amp;#39;s documentation for more details.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;span style="font-weight:400;"&gt;Some tools allow you modify the weight given to specific columns during training, or specify a &amp;quot;time&amp;quot; column if training data values are influenced by time. Read your tool&amp;#39;s documentation for more details.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;See Also&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Websites:&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li style="font-weight:400;"&gt;&lt;a href="https://cloud.google.com/automl-tables/docs/data-best-practices"&gt;&lt;span style="font-weight:400;"&gt;Best Practices for Creating Training Data&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Videos:&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li style="font-weight:400;"&gt;&lt;a href="https://www.youtube.com/watch?v=f_uwKZIAeM0"&gt;&lt;span style="font-weight:400;"&gt;What is Machine Learning? (2 mins)&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li style="font-weight:400;"&gt;&lt;a href="https://www.youtube.com/watch?v=2ePf9rue1Ao"&gt;&lt;span style="font-weight:400;"&gt;What is Artificial Intelligence? (5 mins)&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div id="gtx-trans" style="left:611px;position:absolute;top:1695.23px;"&gt;
&lt;div class="gtx-trans-icon"&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: Machine Learning, Architecture&lt;/div&gt;
</description></item><item><title>Appian Usage Insights / Appian License Tracking FAQs</title><link>https://community.appian.com/success/w/article/3299/appian-usage-insights-appian-license-tracking-faqs</link><pubDate>Thu, 11 Jun 2026 21:48:12 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:90ff1870-237a-4d07-9046-f26831cb625a</guid><dc:creator>joel.larin</dc:creator><description>Current Revision posted to Article by joel.larin on 6/11/2026 9:48:12 PM&lt;br /&gt;
&lt;h2&gt;Why does my application package include something called &amp;ldquo;Appian License Tracking&amp;rdquo;?&lt;/h2&gt;
&lt;p&gt;A recent update to the application led to this name change. The name used to be &amp;ldquo;Appian Usage Insights&amp;rdquo; but is now &amp;ldquo;Appian License Tracking.&amp;rdquo; The previous name persists on the AppMarket posting for recognition purposes.&lt;/p&gt;
&lt;p&gt;The application tracks license utilization and may, in future iterations, more closely track application usage based on log availability within Appian.&lt;/p&gt;
&lt;h2 id="how_do_i_install_the_apps?"&gt;How do I install the apps?&lt;/h2&gt;
&lt;p&gt;The bundled Appian License Tracking Usage Insights Installation Guide describes how to do this.&lt;/p&gt;
&lt;h2 id="how_do_i_upgrade_to_the_latest_version_of_the_apps?"&gt;How do I upgrade to the latest version of the apps?&lt;/h2&gt;
&lt;p&gt;The bundled Upgrade Notes document&amp;nbsp;describes how to do this.&lt;/p&gt;
&lt;h2 id="how_should_i_use_the_apps?"&gt;How should I use the apps?&lt;/h2&gt;
&lt;p&gt;The bundled Appian License Tracking Quick Start Guide&amp;nbsp;describes how to do this.&lt;/p&gt;
&lt;h2 id="how_does_the_app_deduplicate_users_across_environments?"&gt;How does the app deduplicate users across environments?&lt;/h2&gt;
&lt;p&gt;Users are identified by distinct username. Their group membership and logins are considered across all environments based on the same username. For example, john.smith in Environment A is considered to be the same user as john.smith in Environment B, but &lt;em&gt;not&lt;/em&gt; the same as john.smith@acme.com in Environment C.&lt;/p&gt;
&lt;h2 id="i&amp;rsquo;ve_run_analysis_on_a_collection_run_but_the_configuration_was_wrong._what_can_i_do?"&gt;I&amp;rsquo;ve run analysis on a collection run but the configuration was wrong. What can I do?&lt;/h2&gt;
&lt;p&gt;You can modify the configuration (business entities, license pools and groups, license types etc) and rerun analysis on the latest collection run as many times as you need to get the configuration right.&amp;nbsp;You can only run analysis on the latest collection run, so once you load the next collection run (a few weeks later) then any further configuration changes will only apply to analysis of that next collection run data.&lt;/p&gt;
&lt;h2 id="after_my_latest_collection_run,_why_do_all_license_pools_have_zero_allocated_licenses?"&gt;After my latest collection run, why do all license pools have zero allocated licenses?&lt;/h2&gt;
&lt;p&gt;After each new collection run you need to run analysis again on that latest collection run. The majority of the reports are based on the analysis of the latest collection run (except for the capacity planning report and user logins over time), so will not display any data until analysis has been run on the new collection.&lt;/p&gt;
&lt;h2 id="how_do_i_know_which_version_of_the_app_i_am_running?"&gt;How do I know which version of the app I am running?&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;From v1.1.0, a constant was introduced in both the Collector and the Reporting apps to display the app version. This has been updated in v2.0.0 to the following based on application name updates.&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Collector App: LRDC_APPIAN_LICENSE_REPORTING_DATA_COLLECTOR_VERSION&lt;/li&gt;
&lt;li&gt;Reporting App: ALR_APPIAN_LICENSE_REPORTING_VERSION&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Information for v1.1.1 and older versions can be found below:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;For the Reporting app, if the constant LMA_R_APPIAN_USAGE_INSIGHTS_REPORTING_VERSION does not exist in your app, you are either running v1.0.0 or v1.0.1. In this case, if your reporting database includes the Stored Procedure LMA_SP_USERS_BY_LICENCE_TYPE, then you are running v1.0.1.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;For the Collector app, if the constant LMA_R_APPIAN_USAGE_INSIGHTS_COLLECTOR_VERSION does not exist in your app, then you are running v1.0.1 (which is identical to v1.0.0 as the Collector app did not previously change).&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 id="how_should_i_configure_reporting_to_see_details_per_app_but_also_grouped_at_business_unit_level?"&gt;How should I configure reporting to see details per app but also grouped at business unit level?&lt;/h2&gt;
&lt;p&gt;From v1.1.0 onwards the&amp;nbsp;Application Quick Start Guide describes how to do this.&lt;/p&gt;
&lt;h2 id="how_do_i_configure_flat_app_thresholds?"&gt;How do I configure flat app thresholds?&lt;/h2&gt;
&lt;p&gt;From v1.1.0 onwards you can do this via the related action within any license type record. See the Application Quick Start Guide for more information.&lt;/p&gt;
&lt;h2 id="do_you_have_examples_or_scenarios_of_how_to_set_up_the_business_entities?"&gt;Do you have examples or scenarios of how to set up the business entities?&lt;/h2&gt;
&lt;p&gt;Business entities are a fairly flexible concept that allow you to model usage in the most appropriate way for your business. A standard approach - that provides an overview at business unit level while allowing visibility&amp;nbsp;on a per-app level too - would be to configure business entities for your organisation&amp;#39;s larger business units, and then model the apps that belong to those business units as entity license pools. For this you would create one or more license types per app.&lt;/p&gt;
&lt;p&gt;For example, you might configure &amp;quot;Finance&amp;quot; as a business unit, create &amp;quot;Fin App1 Enterprise Users&amp;quot;, &amp;quot;Fin App2 Enterprise Users&amp;quot; and &amp;quot;Fin App3 Enterprise Users&amp;quot; as license types, and map those to the Finance business entity by creating an entity license pool for each license type within the Finance business entity. For each of those entity license pools, you would configure the groups that allow you to identify users of each of those apps (so the entity license pool for &amp;quot;Fin App1 Enterprise Users&amp;quot; might be the group &amp;quot;Fin App1 All Users&amp;quot;, for instance).&lt;/p&gt;
&lt;p&gt;When you find users that still end up in the Default entity, it&amp;#39;s because you haven&amp;#39;t mapped a group for them in your Business Entity - license Pool structure. The aim is to end up with no one left in the Default pool, so you know you have configured things correctly. This can take several iterations.&lt;/p&gt;
&lt;h2 id="why_do_i_have_to_upload_collection_data_from_all_of_my_environments_at_once?"&gt;Why do I have to upload collection data from all of my environments at once?&lt;/h2&gt;
&lt;p&gt;Usage analysis and the resulting reports are based on a snapshot of usage across all in scope environments at the same time. Therefore, for each new collection run loaded into the reporting application, a collection for every active environment is required. These collections should generally have all been run on the same day, or close enough.&lt;/p&gt;
&lt;p&gt;From v1.1.0 it is possible to deactivate an environment so that no further collections need to be uploaded for it. This would be used where an environment that was being reported on is no longer being used.&lt;/p&gt;
&lt;h2 id="can_i_use_a_non-production_environment&amp;nbsp;to_host_the_reporting_app?"&gt;Can I use a non-production environment&amp;nbsp;to host the reporting app?&lt;/h2&gt;
&lt;p&gt;You should consider whether your organisation allows the data that the collector application collects to be stored in a non-production environment. Additionally, as you use the application and the data stored in the reporting application grows, you should consider how you manage capacity in your chosen non-production environment.&lt;/p&gt;
&lt;p&gt;As with any App Market app, clients are responsible for testing these apps in their own environments. When rolling out the Appian License Tracking applications within your organization,&amp;nbsp;ensure that the apps are&amp;nbsp;tested&amp;nbsp;in your non-prod environments first according to your usual testing and release procedures.&lt;/p&gt;
&lt;h2 id="how_can_i_export_the_reports?"&gt;How can I export the reports?&lt;/h2&gt;
&lt;p&gt;Currently (v1.1.0) the only export functionality included is the high level Usage by Business Entity report, which can be exported via the &amp;quot;Download usage by business entity&amp;quot; download link on the Usage Reports &amp;gt; Usage By Business Entity report.&lt;/p&gt;
&lt;h2 id="how_do_you_report_on_non-prod_and_prod_licenses_separately,_where_users_need_to_have_one_license_per_environment?"&gt;How do you report on non-prod and prod licenses separately, where users need to have one license per environment?&lt;/h2&gt;
&lt;p&gt;Install the reporting app once per environment tier - e.g. a Dev reporting component, one for Test, one for Prod etc. Load only Dev environment collections into the Dev reporting component and so on.&lt;/p&gt;
&lt;h2 id="how_do_i_configure_the_collector_app_to_gather_login_information_for_the_last_year?"&gt;How do I configure the collector app to gather login information for the last year?&lt;/h2&gt;
&lt;p&gt;The data collection component will collect a maximum of the last 30 days worth of login information. If you have run the collector in the last 30 days, it will collect the login information since the last time it ran. Over time as the collector is run (at least every 30 days) and the collections are loaded into the reporting component, you will build up login data across a longer period. The application doesn&amp;#39;t support collecting older, compressed login audit data. This doesn&amp;#39;t prevent the allocation of users to license pools (which is based on the most recent group membership collections). But it does mean that the login information displayed in the app will only become more meaningful as collections are built up over time.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: monitoring&lt;/div&gt;
</description></item><item><title>Performance Testing Initiation Best Practices Checklist</title><link>https://community.appian.com/success/w/article/3298/performance-testing-initiation-best-practices-checklist</link><pubDate>Thu, 11 Jun 2026 21:46:29 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:43f50ffd-2e8f-42b1-9e12-be9644edf264</guid><dc:creator>joel.larin</dc:creator><description>Current Revision posted to Article by joel.larin on 6/11/2026 9:46:29 PM&lt;br /&gt;
&lt;div&gt;
&lt;p&gt;These Performance Testing Initiation Best Practices allow teams to identify if they have correctly designed their performance tests before test execution&lt;/p&gt;
&lt;h2 id="stakeholder_alignment"&gt;Stakeholder Alignment&lt;/h2&gt;
&lt;table class="appianTable" width="100%"&gt;
&lt;thead&gt;
&lt;tr class="header"&gt;
&lt;th width="57.05128205128205%"&gt;Item&lt;/th&gt;
&lt;th width="22.115384615384613%"&gt;Importance&lt;/th&gt;
&lt;th width="20.833333333333336%"&gt;Status&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Business Stakeholders Identified&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IT Stakeholders Identified&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Performance Test Architect Identified&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Performance Test Engineer Identified&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dedicated Performance Test Environment Identified&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="non-functional_requirements"&gt;Non-Functional Requirements&lt;/h2&gt;
&lt;table class="appianTable" width="100%"&gt;
&lt;thead&gt;
&lt;tr class="header"&gt;
&lt;th width="57.05128205128205%"&gt;Item&lt;/th&gt;
&lt;th width="22.115384615384613%"&gt;Importance&lt;/th&gt;
&lt;th width="20.833333333333336%"&gt;Status&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Average Transactions per day for each key flow&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Average Transactions per user for each key flow&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Peak Transactions during peak hour/minute for each key flow&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Data Generated in each table identified for 18+ months past go live&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Determine the need for a Performance Test, Load Test, Stress Test or Endurance Test based on the above requirements.&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="acceptance_criteria"&gt;Acceptance Criteria&lt;/h2&gt;
&lt;table class="appianTable" width="100%"&gt;
&lt;thead&gt;
&lt;tr class="header"&gt;
&lt;th width="57.05128205128205%"&gt;Item&lt;/th&gt;
&lt;th width="22.115384615384613%"&gt;Importance&lt;/th&gt;
&lt;th width="20.833333333333336%"&gt;Status&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Targets for 90 percentile Response Time Identified&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Targets for transaction throughput identified for each respective test (Performance, Load, Stress and Endurance) based on estimated volumes.&amp;nbsp;&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="test_design"&gt;Test Design&lt;/h2&gt;
&lt;table class="appianTable" width="100%"&gt;
&lt;thead&gt;
&lt;tr class="header"&gt;
&lt;th width="57.05128205128205%"&gt;Item&lt;/th&gt;
&lt;th width="22.115384615384613%"&gt;Importance&lt;/th&gt;
&lt;th width="20.833333333333336%"&gt;Status&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Test design incorporates realistic usage scenarios including &amp;ldquo;think time&amp;rdquo;.&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Test design incorporates variability and realistic test data&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;​&lt;/p&gt;
&lt;p&gt;​&lt;/p&gt;
&lt;table class="appianTable" width="100.15924692105796%"&gt;
&lt;thead&gt;&lt;/thead&gt;
&lt;/table&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: checklists, Performance, Architecture&lt;/div&gt;
</description></item><item><title>Deleting Data in Appian Applications</title><link>https://community.appian.com/success/w/article/3268/deleting-data-in-appian-applications</link><pubDate>Thu, 11 Jun 2026 21:45:32 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:34fc9cac-56be-48d9-9333-f5e366e12bb7</guid><dc:creator>joel.larin</dc:creator><description>Current Revision posted to Article by joel.larin on 6/11/2026 9:45:32 PM&lt;br /&gt;
&lt;div&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Are you having trouble finding data to debug an issue? Are your queries to a transaction table slow? Did you get a requirement to display activity history for a user? Your Appian application&amp;rsquo;s data model design and data deletion strategy can have a major role in how these questions or concerns can be addressed. When designing the data model for your Appian application, there are different approaches to consider for data deletion use cases. The approach you choose will probably depend on the nature of the data, the number of transactions, and&amp;nbsp; the business rules associated with the use case. The most common approaches include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;hard deletes&lt;/b&gt; - actually deleting rows from the table.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;soft deletes&lt;/b&gt; - marking rows as deleted using a flag column e.g. isDeleted or isActive.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;audit log &lt;/b&gt;- creating a separate audit table for recording the nature of transactions taking place on the original table.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This article describes the pros and cons of&amp;nbsp; each deletion approach and provides recommendations on when to use these approaches. For the purposes of this article, the relational database data model from the Quote to Order &lt;a href="/w/article/3278/a-case-study-in-data-modeling-for-an-appian-application"&gt;case study&lt;/a&gt; is referenced for examples.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt="Quote to Order ERD" src="/resized-image/__size/320x240/__key/communityserver-wikis-components-files/00-00-00-00-45/2437.Quote-to-Order-focussed-ERD.jpg" /&gt;&lt;/div&gt;
&lt;p&gt;Figure 1: Quote to Order ERD&lt;/p&gt;
&lt;h2 id="hard_deletes"&gt;Hard Deletes&lt;/h2&gt;
&lt;p&gt;The term &amp;rdquo;hard delete&amp;rdquo; is generally accepted to describe the irrevocable removal of data.&amp;nbsp; When a value or row is hard-deleted from a table, it means a DELETE operation has been executed on a row in the table. This is typically the easiest and fastest option for developers, independent of business rules.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;NOTE&lt;/b&gt;: It is recommended to use the &lt;a href="https://docs.appian.com/suite/help/latest/Delete_from_Data_Store_Entities_Smart_Service.html"&gt;Delete from Data Store Entities&lt;/a&gt; smart service for hard deleting data from Appian applications. Make sure the deletes are based on an indexed field (ideally the primary key field). You may run the EXPLAIN statement to see the execution plan prior to the delete. If you are deleting in bulk and&amp;nbsp; there&amp;rsquo;s HA setup at the database layer, it&amp;rsquo;s preferred to purge in batches (limit to 1000 rows per batch) and during off hours to minimize the impact (database locking) on the application . Be aware of the foreign key constraints and cascade attribute settings in the database schema and make sure your data is backed up prior to the delete in case you need to restore it.&lt;/p&gt;
&lt;h3&gt;Pros&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Transaction times are faster.&lt;/li&gt;
&lt;li&gt;Lets you design simple unique and check constraints on table columns.&lt;/li&gt;
&lt;li&gt;Better data integrity and cardinality of columns in tables.&lt;/li&gt;
&lt;li&gt;Design allows for creating foreign keys with cascading delete.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Cons&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Risk of data loss due to defects in the application.&lt;/li&gt;
&lt;li&gt;Lack of traceability of data for business reporting or technical debugging.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;When to Use&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;A hard delete strategy is better suited for transactional tables with possibly high transaction volume and which do not need historical data for business or technical purposes.&lt;/li&gt;
&lt;li&gt;In reference to the Quote to Order tables, an example of a hard delete would be deleting a draft order from the QTOT_ORDER table when a user cancels/deletes a draft order.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="soft_deletes"&gt;Soft Deletes&lt;/h2&gt;
&lt;p&gt;By contrast to a hard delete, data is typically retained according to a&amp;nbsp; soft delete strategy. Instead of deleting the data, the table row to be soft deleted&amp;nbsp; is marked with a value in a dedicated column.. This option seems less risky in terms of losing data due to hard deletes but could be risky in terms of unintended data showing up in reports or other parts of the application or compromising the performance of the table.&lt;/p&gt;
&lt;h3&gt;Pros&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Safer approach in general from a perspective of making sure data is not lost.&lt;/li&gt;
&lt;li&gt;Easy to undo delete operations or reactivate the row if needed.&lt;/li&gt;
&lt;li&gt;Entire history of the table can be traced in a single table.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Cons&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Tables can grow rapidly and can lead to unnecessary disk usage and bad performance.&lt;/li&gt;
&lt;li&gt;Complicates maintenance of data integrity due to the need of complex unique indexes and check constraints.&lt;/li&gt;
&lt;li&gt;Risk of defects being introduced due to designers missing to code the isActive flag into read/write database operations from the application e.g. database view cdts/tables missing the isActive flag field, CDT value used in the write to database smart service missing a value for the isActive flag, etc.&lt;/li&gt;
&lt;li&gt;Design to support ad-hoc reporting is demanding, in terms of development, with the need to have database views to filter data. Significantly complex views would require &lt;a href="/w/the-appian-playbook/2270/materializing-mysql-views"&gt;materialized views&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Low cardinality of the isActive flag column might impact performance of data retrieval despite indexing on the table, especially when 99.99% of the rows have inactive status.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;When to Use&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Consider a soft delete approach for operational or reference data as opposed to transactional data or relational mapping tables.&lt;/li&gt;
&lt;li&gt;For reference data tables instead of creating just an isActive flag to indicate a deleted entry, a START_DATE and END_DATE pair of columns provides a more granular control over retrieval of the data and thus the possibility of viewing the historical usage of your data. See QTOT_REFERENCE table in the ERD above.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="audit_log"&gt;Audit Log&lt;/h2&gt;
&lt;p&gt;A less invasive approach to deleting data in a table involves creating an audit log of delete operations on the table. It is very common for application designers to have an auditing strategy to record changes done by users in the application. So the audit log approach for recording deletes that happen on a table, as a result of a user&amp;rsquo;s action or as a business rule, fits right into that strategy. Detailed guidance on implementing audit tables for Appian applications can be found in the &lt;a href="https://docs.appian.com/suite/help/latest/Relational_Database_Guidance.html#auditing-guidance"&gt;Auditing Guidance&lt;/a&gt; docs and the &lt;a href="/w/guide/3285/field-level-auditing"&gt;Field Level Auditing&lt;/a&gt; play.&lt;/p&gt;
&lt;h3&gt;Pros&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Better data reporting capability for original data and historical reporting of audit data.&lt;/li&gt;
&lt;li&gt;Separate table for audit allows the original table to perform better due to less accumulation of unnecessary data.&lt;/li&gt;
&lt;li&gt;Troubleshooting data issues becomes easier given the data in audit tables.&lt;/li&gt;
&lt;li&gt;Audit tables can have more detail than just a isActive/isDeleted flag e.g. old value, new value, last updated on, update operation - create, update, delete, etc. See QTOT_ACCOUNT_AUDIT table in the ERD above.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Cons&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Longer development time.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;When to Use&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;For transactional tables e.g. QTOT_ACCOUNT or QTOT_ORDER use the hard delete approach in conjunction with an audit table implementation.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Applications typically have event tables to track business events in general. The audit for delete operations can be stored in such event tables. In such implementations, designers would have to transform the data from the original table structure to the event table structure or some other structure of the audit table. Using a JSON structure for the audit data eliminates the need to transform it and makes the implementation easier.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="hybrid_approach"&gt;Hybrid Approach&lt;/h2&gt;
&lt;p&gt;The Quote to Order data model includes the table QTOA_HISTORICAL_ORDER as part of a data archival strategy. This type of strategy helps with overall application performance. &amp;nbsp; &amp;ldquo;Mirror&amp;rdquo; tables that match the structure of the original transaction tables are core to this approach. With these tables in place, a design can be employed in which the application switches between them to access appropriate data depending on its age. For example, in the Quote to Order data model the QTOT_ORDER table has a corresponding QTOA_HISTORICAL_ORDER table. Data from the QTOT_ORDER table is archived to the QTOA_HISTORICAL_ORDER table if it is older than six months and eventually to long term storage after it ages out further. This keeps the size of the QTOT_ORDER table reasonably low leading to better performance.&amp;nbsp;&lt;/p&gt;
&lt;h2 id="conclusion"&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;A data deletion strategy should be based on the nature of the data and the business case. In summary, use a hybrid implementation approach wherein:&amp;nbsp;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Hard deletes are performed on transaction tables in conjunction with audit tables tracking the delete operations. The transaction tables are archived periodically based on the age of the data.&lt;/li&gt;
&lt;li&gt;Soft deletes are performed on operational or reference tables by marking the data with columns such as START_DATE and END_DATE.&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: database, Architecture&lt;/div&gt;
</description></item><item><title>Why Process Automation is Right for Your Business</title><link>https://community.appian.com/success/w/article/2977/why-process-automation-is-right-for-your-business</link><pubDate>Fri, 30 Jan 2026 21:09:09 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:1437a59b-d261-4757-b9ec-1c73c4f4c3b3</guid><dc:creator>Devon</dc:creator><description>Current Revision posted to Article by Devon on 1/30/2026 9:09:09 PM&lt;br /&gt;
&lt;div&gt;
&lt;p&gt;&lt;img style="display:block;margin-left:auto;margin-right:auto;width:100%;" alt=" " src="/resized-image/__size/1189x669/__key/communityserver-wikis-components-files/00-00-00-00-45/establishVisionBanner2.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;Organizations are transforming at a breakneck pace, driven by rapidly evolving consumer behavior and expectations. New, digitally enabled businesses are upending entire industries and the COVID-19 pandemic has only accelerated the trends. According to an executive &lt;a href="https://www.mckinsey.com/business-functions/strategy-and-corporate-finance/our-insights/how-covid-19-has-pushed-companies-over-the-technology-tipping-point-and-transformed-business-forever#:~:text=Now%2C%20only%2010%20percent%20view%20technology%20in%20the%20same%20way%3B%20in%20fact%2C%20more%20than%20half%20say%20they%20are%20investing%20in%20technology%20for%20competitive%20advantage%20or%20refocusing%20their%20entire%20business%20around%20digital%20technologies%20(Exhibit%206)."&gt;Global Survey done by McKinsey&lt;/a&gt;, more than half of respondents said they were &amp;ldquo;investing in technology for competitive advantage or refocusing their entire business around digital technologies.&amp;rdquo; Compare that to the same&amp;nbsp;&lt;a href="https://www.mckinsey.com/business-functions/mckinsey-digital/our-insights/how-digital-reinventors-are-pulling-away-from-the-pack#:~:text=The%20typical%20response%20to%20digital%20is%20underwhelming"&gt;survey&lt;/a&gt; done pre-pandemic in 2017, where only around 10% of respondents held the same view of technology.&lt;/p&gt;
&lt;p&gt;The problem is most businesses continue to rely on legacy enterprise systems. These systems are often complex and difficult to change. Over time, they often include patched or jerry-rigged measures to address a myriad of issues. With all this change, one thing is clear&amp;mdash;you can&amp;rsquo;t rely on inflexible technologies and business practices. You need adaptable systems that can meet the needs of today and the demands of tomorrow.&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;&lt;b&gt;Is traditional software development up to the task?&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;Organizational success has become increasingly dependent on technology. Even &amp;ldquo;non-tech&amp;rdquo; companies now succeed or fail based on the capabilities of their digital infrastructure. However, the typical technology stack is often complex and opaque. It&amp;rsquo;s hard to use and years worth of ad-hoc changes have made it even harder to revise. This is only made worse by slow and expensive software development practices.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;In today&amp;rsquo;s technological climate, the ability to quickly develop and implement new processes is essential. Whether you&amp;rsquo;re a hotel providing touchless check-in or a retailer fostering a more efficient&amp;nbsp; and personal online shopping experience-&amp;mdash;brands that empower customers with technology are being rewarded. This trend has only been accelerated further by the onset of the pandemic, where agility and adaptability have in some cases meant the difference between thriving and just surviving. If you were quick to put in place contactless protocols, you could get back to work faster than those with inflexible systems.&lt;/p&gt;
&lt;img style="width:100%;" alt=" " src="/resized-image/__size/820x546/__key/communityserver-wikis-components-files/00-00-00-00-45/estsablishVisionSupImage.jpg" /&gt;
&lt;p&gt;Given this increasing need for agile and flexible software development, traditional methods of hand-coding software can&amp;rsquo;t keep up. The traditional software development model consists of large, centralized teams of specialized developers. These teams work within highly planned and rigid processes and fail to adequately address the complex automation needs of today&amp;#39;s digital enterprise. If you&amp;#39;re stuck with outmoded or rigid legacy processes, you won&amp;#39;t be able to adapt to your users changing needs and may risk losing them. Compounding the problem are a complex set of circumstances, including:&lt;/p&gt;
&lt;ul style="font-size:115%;"&gt;
&lt;li&gt;&lt;b&gt;Unprecedented new operating environments. The COVID-19 pandemic ushered in a world of continuous disruption and adaptation. It forced organizations to create processes for remote work. It also called for new safety, testing and tracking protocols. &lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Changing regulatory requirements. From environmental protections to accounting standards&amp;mdash;new rules and regulations result in costly workflow modifications. &lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Evolving expectations. Customers and employees expect high-quality, streamlined and intuitive user experiences. The bar is now set by their favorite brands at home, rather than those at work. Companies must continually enhance the customer journey by leveraging data and digitizing functions. &lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Global growth opportunities. Global markets enable organizations to sell and source materials in new territories. Technology is not only making new products and services possible, but also changing how you market and deliver them. But, without the time and resources to invest, businesses risk missing out. &lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Navigating all this uncertainty requires more streamlined, automated digital workflows. And this must be done as rapidly and cost-effectively as possible.&lt;/p&gt;
&lt;h2&gt;&lt;b&gt;Low-Code: Flexible, Resilient and Adaptable&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;To thrive in this new reality, enterprise software today must be flexible, resilient and adaptable. You need customizable automation that can change according to dynamic needs. You also need automated workflows that are custom mapped to unique goals and real-world challenges, not just the most common scenarios. Most of all, you need to increase speed and lower the cost of development.&lt;/p&gt;
&lt;p&gt;Fortunately, low-code development platforms reduce the burden of building enterprise applications. Meaning you can now build apps and streamline workflows faster and cheaper than ever before. Low-code lets you leverage existing technology investments, and extend capabilities. It reduces buildout time and cost, and enables you to effectively automate functions to compete in this new paradigm. An &lt;a href="https://assets.appian.com/uploads/assets/tei-appian-2021-report.pdf"&gt;Economic Impact Study&lt;/a&gt; conducted by Forrester found that customers using Appian&amp;rsquo;s low-code platform:&lt;/p&gt;
&lt;ul style="font-size:115%;"&gt;
&lt;li&gt;Accelerated application creation by 17x&lt;/li&gt;
&lt;li&gt;Improved time-to-value of applications by 50%&lt;/li&gt;
&lt;li&gt;Realized a 389% return on investment (ROI)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Those outcomes were made possible by two distinct advantages low-code offers to developers: &lt;b&gt;Speed&lt;/b&gt; and &lt;b&gt;Ease of Use. Low-code allows developers to work rapidly by selecting from a library of ready-made tools or empowering them to make their own reusable tools. In addition, low-code removes the barrier to entry to software development. Rather than each developer needing a solid command of Java, HTML, CSS, PHP, SQL (not to mention third party API frameworks ), each team member only needs to know Appian, which creates bandwidth for what&amp;rsquo;s most important: solving real business problems. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;At its core, low-code does away with much of the time and resource intensive high-code development requirements. Appian pioneered and continues to lead the low-code development space by providing best-of-breed integrated development tools, in addition to a full suite of tools designed to help you unify your data, build apps, and automate your business.&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: Vision&lt;/div&gt;
</description></item><item><title>Innovate with Process Automation</title><link>https://community.appian.com/success/w/article/2979/innovate-with-process-automation</link><pubDate>Fri, 30 Jan 2026 21:07:06 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:0393af37-6c84-4ffa-a2ed-86f1384e0407</guid><dc:creator>Devon</dc:creator><description>Current Revision posted to Article by Devon on 1/30/2026 9:07:06 PM&lt;br /&gt;
&lt;div&gt;
&lt;p&gt;&lt;img style="display:block;margin-left:auto;margin-right:auto;width:100%;" alt=" " src="/resized-image/__size/1189x669/__key/communityserver-wikis-components-files/00-00-00-00-45/innovateBanner3.png" /&gt;&lt;/p&gt;
&lt;p&gt;To be competitive today, it&amp;rsquo;s not enough for businesses to be efficient; they also need to innovate according to their own unique vision. They need to offer dynamic products and services that can respond to the distinct demands and requirements of their users. However, building a new product or service is a time and resource intensive undertaking. This is even more pronounced when developing solutions that don&amp;#39;t fit nicely into pre-established product delivery pipelines. Manual tasks, inflexible processes and complicated business rules all get in the way of offering unconventional or game-changing product lines.&lt;/p&gt;
&lt;p&gt;Innovation, by definition, requires some coloring outside the lines. And this is where low-code can make all the difference, by helping businesses automate their processes and integrate more flexible delivery models.&lt;/p&gt;
&lt;h2&gt;&lt;b&gt;Innovation for differentiation&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;In the sometimes conservative and highly regulated world of finance, innovation can be hard to come by. But institutions with an eye towards digital transformation are increasingly differentiating themselves in a highly competitive market. Let&amp;rsquo;s take a look at SEB Investor Services, one of the leading providers of asset servicing to institutional investors in the Nordic region, to see how low-code drives innovation.&lt;/p&gt;
&lt;p&gt;SEB saw an opportunity to offer its clients services outside the traditional securities most banks provide, namely shares, bonds, derivatives, and funds. They wanted to add alternative assets&amp;ndash;wind and solar, private equity, venture capital holdings&amp;ndash;to their portfolio, so as to better serve the diverse needs of their clients. In the past, SEB offered relatively few alternative assets due to the manual labor and high degree of operational difficulty required to provide the service. They needed to find a way to automate the handling of these assets, without having to bring in a full team of developers to create and maintain the service.&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s when the SEB team identified low-code as the perfect solution to quickly and efficiently move forward with their plan. Using the Appian platform, they were able to reconfigure and automate complex business rules, as well as the unique workflows and data structures associated with alternative assets. In an &lt;a href="https://posttrade360.com/news/custody/sebs-team-employs-ai-to-service-alternative-assets/"&gt;interview given to PostTrade 360&amp;deg;&lt;/a&gt;, SEB Product Manager Frederik S&amp;ouml;derlund described the process of using low code to realize the project:&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;
&lt;div style="line-height:200%;margin:0 auto;text-align:justify;width:100%;"&gt;
&lt;div&gt;&lt;img alt=" " src="/resized-image/__size/75x100/__key/communityserver-wikis-components-files/00-00-00-00-45/Quote-Marks_5F00_orange_2D00_01.png" /&gt;&lt;/div&gt;
&lt;span style="font-size:145%;"&gt;&lt;strong&gt;The big projects cost big money &amp;ndash; with large project groups, consultants and testing. But when you start from a blank sheet today, using new technology based on blocks that you assemble in lego style, with pre-defined integrations and self-testing capabilities&amp;hellip;it gets so much easier.&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style="display:inline-block;font-size:115%;margin-top:0.8rem;"&gt;&lt;em&gt;Fredrik S&amp;ouml;derlund, Product manager for portfolio solutions at SEB Investor Services/LCFI&lt;/em&gt;&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;In addition to automating the handling of alternative assets, SEB was also able to employ &lt;a href="https://appian.com/products/platform/process-automation/intelligent-document-processing-idp.html"&gt;AI-powered IDP (Intelligent Document Processing&lt;/a&gt;) to help extract and interpret investment data. This holistic approach enabled them to not only increase the number of alternative assets available to their clients, but to maximize value from returns on those investments. By partnering with Appian, SEB was able to take one of finance&amp;rsquo;s least standardized processes and unlock new, value-added product offerings from it.&lt;/p&gt;
&lt;h2&gt;&lt;b&gt;Disruptive innovation&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;Disruption shouldn&amp;rsquo;t be a business goal in and of itself. But innovation often has the side effect of disrupting those arenas that are no longer providing an optimal experience. Since the advent of ridesharing companies, the commonly held belief was that congestion and pollution would decrease as more single drivers opted for these services. However, a &lt;a href="https://www.science.org/doi/10.1126/sciadv.aau2670"&gt;study conducted by Researchers from the University of Kentucky and the San Francisco County Transportation Authority &lt;/a&gt;found that transportation network companies (TNC&amp;rsquo;S) were actually the largest contributor to increased congestion in cities like San Francisco.&lt;/p&gt;
&lt;img style="width:100%;" alt=" " src="/resized-image/__size/980x546/__key/communityserver-wikis-components-files/00-00-00-00-45/innovate2.jpg" /&gt;
&lt;p&gt;Enterprise Holdings, Inc, manager of the largest and most diverse privately-owned fleet of vehicles in the world, identified an opportunity to innovate within the ridesharing industry. The plan was to target a traditionally &lt;a href="https://www.mckinsey.com/industries/automotive-and-assembly/our-insights/cracks-in-the-ridesharing-market-and-how-to-fill-them#:~:text=McKinsey_Website_Accessibility%40mckinsey.com-,Commuters,-Our%20research%20indicates"&gt;underserved market of vanpool commuters&lt;/a&gt;, namely people traveling to work in groups of more than 3 or 4. The goal was to provide these commuters with a lower-cost, more environmentally friendly commuting option.&lt;/p&gt;
&lt;p&gt;However, existing systems within the company could not accommodate a new business with a radically different operating model and workflow. Building a custom application using traditional methods would have taken years, causing Enterprise to miss their window of opportunity. Using Appian, Enterprise was able to realize this vision and create &lt;a href="https://www.commutewithenterprise.com/"&gt;Commute&lt;/a&gt;, the company&amp;rsquo;s vanpooling service, in just 4 months.&lt;/p&gt;
&lt;p&gt;Commute programs are organized by an employer and typically consist of 4 to 15 coworkers traveling together. Commuters coordinate a central meeting location, board a late-model, low-mileage van or SUV from the company&amp;rsquo;s fleet, and take turns driving to and from work. This gives commuters time to read, relax, catch up on some work, or even stream their favorite shows with WIFI enabled vans.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;
&lt;div style="line-height:200%;margin:0 auto;text-align:justify;width:100%;"&gt;
&lt;div&gt;&lt;img alt=" " src="/resized-image/__size/75x100/__key/communityserver-wikis-components-files/00-00-00-00-45/Quote-Marks_5F00_orange_2D00_01.png" /&gt;&lt;/div&gt;
&lt;span style="font-size:145%;"&gt;&lt;strong&gt;We adopted Appian&amp;#39;s platform for Enterprise Rideshare because it combines the best of business process management, social business, mobile access and cloud deployment. The result is a truly modern business management platform that supports our objective of providing commuters with a smarter, better way to get to work.&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style="display:inline-block;font-size:115%;margin-top:0.8rem;"&gt;&lt;em&gt;Ryan Johnson, Assistant Vice President of Enterprise Holdings&lt;/em&gt;&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;Commute not only helps workers reduce the financial burden of commuting, but also lets them arrive at work less stressed, leading to higher productivity. After partnering with Appian, Commute has scaled to operate more than 11,000 vanpools in 45 states. It removes more than 40,000 vehicles off the road every day and eliminates an estimated 900 million commuter miles annually. To top it all off, the program also &lt;a href="https://www.commutewithenterprise.com/en/reduce-carbon-footprint-sustainability.html"&gt;reduces more than 695 millions pounds of carbon emissions annually&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;We&amp;rsquo;ve seen how low-code can be a driver for innovation, whether in more historically conservative fields such as finance, or in burgeoning industries such as ridesharing. Low-code enables businesses to work more quickly, efficiently, and cost effective. Dynamic business conditions and evolving user demands will always put pressure on businesses to innovate. With low-code integrated into their digital strategy, imaginative organizations can respond quickly and decisively, while continuing to push the envelope on their personal strategic vision.&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: Vision&lt;/div&gt;
</description></item><item><title>Process Automation Team Essentials</title><link>https://community.appian.com/success/w/article/2987/process-automation-team-essentials</link><pubDate>Fri, 30 Jan 2026 21:06:28 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:acd3fd56-dca9-4c3f-ac33-85d74ec0a6f2</guid><dc:creator>Devon</dc:creator><description>Current Revision posted to Article by Devon on 1/30/2026 9:06:28 PM&lt;br /&gt;
&lt;div&gt;
&lt;p&gt;&lt;img alt=" " src="/resized-image/__size/1189x669/__key/communityserver-wikis-components-files/00-00-00-00-45/peopleFeatureOne.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;One of the most common questions we receive focuses on how to structure an organization for low-code success. There isn&amp;rsquo;t a one-size-fits-all answer to this question, but we do have a few guidelines for getting started. The most important part is thinking of your Appian-trained workforce as a team, with mutually supportive roles and responsibilities across the organization.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;At Appian, we think a successful team is a combination of a few select roles that each play an important role in&amp;nbsp;a project&amp;rsquo;s success:&lt;/p&gt;
&lt;ul style="font-size:115%;"&gt;
&lt;li&gt;&lt;span&gt;&lt;a href="#appianLeaders"&gt;Leaders&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#appianPlanners"&gt;Planners&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#appianBuilders"&gt;Builders&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:inherit;font-weight:400;"&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#appianAdmins"&gt;Administrators&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Let&amp;rsquo;s dig a little bit deeper into each of these team roles, why they are important, and what they need to know.&lt;/p&gt;
&lt;h2 id="appianLeaders"&gt;&lt;b&gt;Appian Leaders&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;For our purposes, leaders include business stakeholders, managers, or executives who need awareness of low-code automation capabilities but aren&amp;#39;t heavily involved in the development process. They are, however, stakeholders and decision makers responsible for an organization&amp;rsquo;s success. They often control the budget, people, and determine the desired outcomes of projects. To be successful, these leaders need to understand the capabilities of Appian and how it can solve their problems.&lt;/p&gt;
&lt;p&gt;Leaders also need to understand how to source, train, and structure their teams for ongoing success, and they&amp;rsquo;ll usually want to know what pitfalls to look out for when automating portions of their business.&lt;/p&gt;
&lt;p&gt;&lt;img style="width:100%;" alt=" " src="/resized-image/__size/820x546/__key/communityserver-wikis-components-files/00-00-00-00-45/teamEssentialsLeader.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;See our &lt;a href="/success/p/vision"&gt;Vision pillar&lt;/a&gt; for resources geared towards Appian Leaders.&lt;/p&gt;
&lt;h2 id="appianPlanners"&gt;&lt;b&gt;Appian Planners&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;The planner role defines the processes to be automated, prioritizes development efforts, and ensures coordination with other business units. The most common job titles we see functioning in the planner role include business analysts, product owners, project managers, scrum masters, and UX designers. Some organizations have distinct team members assigned to each role, while others may have a single individual functioning across multiple roles. At a minimum, you should plan to include both a &lt;a href="/success/w/article/2985/appian-planners-product-owners-and-analysts"&gt;product owner and an analyst&lt;/a&gt; as part of your Appian team. This will ensure your organization is positioned for success.&lt;/p&gt;
&lt;p&gt;Appian planners need a strong understanding of the Appian delivery methodology and a basic understanding of how Appian objects come together to make applications. See our &lt;a href="/success/p/delivery"&gt;Delivery pillar&lt;/a&gt; for more resources geared towards Appian Planners.&lt;/p&gt;
&lt;h2 id="appianBuilders"&gt;&lt;b&gt;Appian Builders&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;Builders, or &lt;a href="/success/w/article/2982/build-your-appian-development-team"&gt;developers&lt;/a&gt;, are the core of any Appian delivery team. Their primary job is taking requirements produced by the analysts, prioritizing them with the product owner, and converting them into applications using the Appian process automation platform. Functionally, the role of an Appian builder can be broken down into the following positions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Low-Code Developers&lt;/li&gt;
&lt;li&gt;Lead Developers&lt;/li&gt;
&lt;li&gt;Quality Assurance&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Appian strongly recommends a Team of 3 structure for most projects, with larger projects or initiatives distributed across multiple teams. Each team should be cross-functional in so much as any member of the team can take on any task when needed. Naturally, some team members will be stronger in certain skills than others, but we&amp;rsquo;ve found that high-performing, multi-disciplinary teams are best suited for success.&lt;/p&gt;
&lt;p&gt;&lt;img style="width:100%;" alt=" " src="/resized-image/__size/820x546/__key/communityserver-wikis-components-files/00-00-00-00-45/teamEssentialsDeveloper.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;For example, a low-code developer often falls into the &amp;ldquo;Developer and&amp;hellip;&amp;rdquo; paradigm. This means that a particular team member might fall into a dual role as a low-code developer, in addition to acting as an architect, scrum master, UX lead, or test manager. When building these small cross-functional teams, it&amp;rsquo;s important to look for team members that have skills outside of their primary role or function. Whether that&amp;rsquo;s an interest in data models, integrations, or process mining, looking out for complimentary skills is the best way to establish a versatile low-code team.&lt;/p&gt;
&lt;h2 id="appianAdmins"&gt;&lt;b&gt;Administrators&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;Administrators own responsibility for the Appian system and supporting infrastructure. This includes overseeing server admins, database administrators, IT staff, or anyone supporting the application&amp;rsquo;s backend. Administrators are most often concerned with the security implications of the Appian platform and how it interacts with their internal systems. This includes things such as data management, web APIs, user accounts and more.&lt;/p&gt;
&lt;p&gt;Although administrators aren&amp;rsquo;t usually involved in development themselves, they work closely with lead developers to define technical requirements and boundaries. To this end, administrators should pursue a &lt;a href="/learn/courses#learn-admin"&gt;basic level of training&lt;/a&gt; to better understand the terminology and underlying infrastructure of the Appian platform.&lt;/p&gt;
&lt;h3 id="mcetoc_1hno6qsid0"&gt;Application Administrators&lt;/h3&gt;
&lt;p&gt;Application Administrators are employees of the customer organization responsible for the maintenance and support of individual applications. They&amp;rsquo;re typically in charge of user management, performing basic clean-up and housekeeping activities, and serve as the first layer of support to triage tickets and issues.&lt;/p&gt;
&lt;p&gt;At a high level, Application Administrators understand how Appian objects interact with one another to form an application, but aren&amp;rsquo;t developers themselves. They perform basic troubleshooting activities, and are knowledgeable on navigating Appian support systems to get resolution on more complicated issues. Application Admins are also familiar with tools including &lt;a href="/success/w/guide/2964/platform-health-management"&gt;Health Check, Health Dashboard, and MyAppian&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;To support this role, we developed the Appian &lt;a href="/learn/courses/p/application-administrator"&gt;Application Administrator course&lt;/a&gt;, available through Appian Academy.&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: People&lt;/div&gt;
</description></item><item><title>Shared Object Management Overview</title><link>https://community.appian.com/success/w/article/3286/shared-object-management-overview</link><pubDate>Wed, 29 Oct 2025 14:20:10 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:8f9cac36-5814-424a-9d71-238be414e130</guid><dc:creator>joel.larin</dc:creator><description>Current Revision posted to Article by joel.larin on 10/29/2025 2:20:10 PM&lt;br /&gt;
&lt;div&gt;
&lt;h2 id="overview"&gt;Overview&lt;/h2&gt;
&lt;p&gt;This document provides guidance on what shared objects are, how to identify them, how to secure them and how to update them in a manner that is safe and responsible. When used with care, shared objects provide a layer of reusable components for the entire platform to fast forward the development of every application.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/320x240/__key/communityserver-wikis-components-files/00-00-00-00-45/commonObjects.png" /&gt;&lt;/div&gt;
&lt;p&gt;Common objects are those that are used across the platform in multiple applications. They could provide generic, routinely-used functionality for many applications or they could be more specialized and used for a specific set of applications only.&lt;/p&gt;
&lt;p&gt;For example, a user sync module that pulls user information from Workday would fall into the first category, while an Engagement record will fall into the latter. Avoid objects with complex or specific business logic unless they apply to all referring applications and aren&amp;rsquo;t likely to differ between applications in the future. In general, the more well defined and structured the inputs and outputs of an object are, the easier it will be to reuse amongst different applications. The rules for which objects to place into a common objects application can differ from one organization to another, however it is important to consider the value the component will provide compared to the additional time to maintain, test, and coordinate among groups utilizing the object.&lt;/p&gt;
&lt;p&gt;In some situations, having multiple common object applications, each specific to their scope, will make managing changes easier for those who utilize them. As an example, a department may have multiple applications to manage new product approvals, customer onboarding, and periodic customer review processes which share common data objects, expressions, and integrations. Some of those components may be specific to the department and others are used globally. For each common objects application that your organization decides to create, ensure the following are documented:&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Description of the purpose and scope&lt;/li&gt;
&lt;li&gt;Owner or owning group&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Implementation usage instructions&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Who to notify when updates are made&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="object_types"&gt;Object Types&lt;/h2&gt;
&lt;table width="669" height="481"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;Object type&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;Criteria&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;Example&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;ul&gt;
&lt;li&gt;Expressions&lt;/li&gt;
&lt;li&gt;Decisions&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Logic containing reusable functionality&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;ul&gt;
&lt;li&gt;Email address validation&lt;/li&gt;
&lt;li&gt;Mailing address formatting&lt;/li&gt;
&lt;li&gt;Display name formatting&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;ul&gt;
&lt;li&gt;Data Types&lt;/li&gt;
&lt;li&gt;Data Stores&lt;/li&gt;
&lt;li&gt;Query Rules&lt;/li&gt;
&lt;li&gt;Constants&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Reference data across applications&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;ul&gt;
&lt;li&gt;List of States/Countries&lt;/li&gt;
&lt;li&gt;User details&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Interfaces&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Common interface sections&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;ul&gt;
&lt;li&gt;Mailing address input form&lt;/li&gt;
&lt;li&gt;User details input form&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Web APIs&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Reference data exposed externally&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;User details&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Records&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Records referenced by or containing data from multiple applications or synced records representing reference data&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Study&lt;/p&gt;
&lt;p&gt;Engagement&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Process Models&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Logic containing reusable functionality&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;User synchronization&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Connected Systems&lt;/p&gt;
&lt;p&gt;Integrations&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Reusable connections to external systems&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Transfer documents&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="identification_and_cataloging"&gt;Identification and Cataloging&lt;/h2&gt;
&lt;p&gt;The identification of common objects is the responsibility of the application development team and the Center of Excellence (CoE). Some heuristics for identifying common objects could include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Is the functionality going to be accessed by all platform users?&lt;/li&gt;
&lt;li&gt;Are other applications going to leverage the same functionality? e.g. vendor search?&lt;/li&gt;
&lt;li&gt;Is the functionality agnostic of the application it is in? e.g. a list of countries&lt;/li&gt;
&lt;li&gt;What is the potential scope of a common object; eg. Department, Region, Global&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These questions can be asked before, during and after the development cycle, but the sooner common functionality is identified the easier it is to classify it and leverage it across the platform.&lt;/p&gt;
&lt;p&gt;Once the team identifies the object(s), they should be moved to the appropriate application and renamed with the appropriate application prefix. Detailed descriptions for Appian objects are important to ensure that changes do not break the contract between the shared object and the corresponding dependent object. For expressions and interfaces, ensure common objects have &lt;a href="/w/guide/3342/how-to-create-expression-rule-test-cases"&gt;test cases&lt;/a&gt; defined so that during updates, they can be tested for &lt;a href="/success/w/article/3305/backward-compatible-design-planning-for-subsequent-deployments"&gt;backwards compatibility&lt;/a&gt;. Rule inputs should also be given descriptions so that Designers can easily understand their intended use. Teams working on new applications should always consult the Common Objects applications in order to identify any functionality that could be reused. Proper naming conventions and descriptions will make these objects easier to search and discover.&amp;nbsp;&lt;/p&gt;
&lt;h2 id="security_and_ownership"&gt;Security and Ownership&lt;/h2&gt;
&lt;p&gt;Since common objects are shared between different applications, changes to these objects can have a wide impact. Changes that benefit one app could potentially break another. Therefore, updates to common objects need to be taken with care after sufficient impact analysis.&lt;/p&gt;
&lt;p&gt;In programs with multiple teams, we recommend securing the objects to a specific designer group (and revoking sys admin access from designers). In such situations, while all objects need to have an admin group defined (see &lt;a href="https://docs.appian.com/suite/help/latest/understanding-the-health-check-report.html#number-of-objects-with-no-admin-group"&gt;Health Check&lt;/a&gt; for more details), common objects especially need to have correct security set up with one group as the object admins and other designer groups as viewers &amp;ndash; so these objects can be used but not edited.&lt;/p&gt;
&lt;h2 id="common_object_use_and_maintenance"&gt;Common Object Use and Maintenance&lt;/h2&gt;
&lt;p&gt;Using a common object is very easy &amp;ndash; just reference it in your application. Note that if the common object version you wish to utilize has not been deployed to your desired environment already, you may need to use a separate package to deploy it, if it is only part of the common object application but not your own.&lt;/p&gt;
&lt;p&gt;When an object needs to be edited, make a change request to the owners. Where appropriate, consider notifying the impacted teams if the updates will result in changes to the end user behavior or will require consumers of the common objects to opt into the new functionality being developed. Who makes the change depends on your organization (see Example Process) but we recommend that owners delegate the edits to the change requestor (application team). Appropriate &lt;a href="/w/article/3201/fundamentals-of-testing-in-appian#during-dev-sprint"&gt;testing&lt;/a&gt; and reviews should occur before promoting to higher environments. An extra emphasis should be placed on regression testing to ensure the changes will be backwards compatible.&lt;/p&gt;
&lt;h2 id="example_process"&gt;Example Process&lt;/h2&gt;
&lt;h3 id="mcetoc_1i85m8uip0"&gt;Steps to Modify Common Objects&lt;/h3&gt;
&lt;p&gt;When an object is modified in a common app, follow the below steps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Request to make a change from the object owner(s).&lt;/li&gt;
&lt;li&gt;Before making the change, check for dependencies on the object to see which teams could be impacted by the rule modification. Reach out to the associated owners to ensure the change is compatible before proceeding.&lt;/li&gt;
&lt;li&gt;The owner grants edit access to the application(s).&lt;/li&gt;
&lt;li&gt;If a common object needs to be modified that already has changes in progress, check to see if the change has already been deployed throughout the environments. More complex objects, like records, have a higher likelihood of a change in progress. If that is the case, reach out to the developer associated with the object and ensure the proposed changes are compatible before proceeding. Other measures may have to be taken, e.g. feature toggles, to get the changes deployed without breaking precedents.&lt;/li&gt;
&lt;li&gt;Owner revokes edit access to the application(s).&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: Delivery, Architecture&lt;/div&gt;
</description></item><item><title>Shared Object Management Overview</title><link>https://community.appian.com/success/w/article/3286/shared-object-management-overview/revision/7</link><pubDate>Wed, 29 Oct 2025 14:19:56 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:8f9cac36-5814-424a-9d71-238be414e130</guid><dc:creator>joel.larin</dc:creator><description>Revision 7 posted to Article by joel.larin on 10/29/2025 2:19:56 PM&lt;br /&gt;
&lt;div&gt;
&lt;h2 id="overview"&gt;Overview&lt;/h2&gt;
&lt;p&gt;This document provides guidance on what shared objects are, how to identify them, how to secure them and how to update them in a manner that is safe and responsible. When used with care, shared objects provide a layer of reusable components for the entire platform to fast forward the development of every application.&lt;/p&gt;
&lt;div style="margin-bottom:3rem;margin-top:3rem;"&gt;&lt;img style="box-shadow:3px 3px 5px rgba(0, 0, 0, 0.1);" alt=" " src="/resized-image/__size/320x240/__key/communityserver-wikis-components-files/00-00-00-00-45/commonObjects.png" /&gt;&lt;/div&gt;
&lt;p&gt;&amp;quot;Common objects are those that are used across the platform in multiple applications. They could provide generic, routinely-used functionality for many applications or they could be more specialized and used for a specific set of applications only. &amp;quot;&lt;/p&gt;
&lt;p&gt;For example, a user sync module that pulls user information from Workday would fall into the first category, while an Engagement record will fall into the latter. Avoid objects with complex or specific business logic unless they apply to all referring applications and aren&amp;rsquo;t likely to differ between applications in the future. In general, the more well defined and structured the inputs and outputs of an object are, the easier it will be to reuse amongst different applications. The rules for which objects to place into a common objects application can differ from one organization to another, however it is important to consider the value the component will provide compared to the additional time to maintain, test, and coordinate among groups utilizing the object.&lt;/p&gt;
&lt;p&gt;In some situations, having multiple common object applications, each specific to their scope, will make managing changes easier for those who utilize them. As an example, a department may have multiple applications to manage new product approvals, customer onboarding, and periodic customer review processes which share common data objects, expressions, and integrations. Some of those components may be specific to the department and others are used globally. For each common objects application that your organization decides to create, ensure the following are documented:&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Description of the purpose and scope&lt;/li&gt;
&lt;li&gt;Owner or owning group&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Implementation usage instructions&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Who to notify when updates are made&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="object_types"&gt;Object Types&lt;/h2&gt;
&lt;table width="669" height="481"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;Object type&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;Criteria&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;Example&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;ul&gt;
&lt;li&gt;Expressions&lt;/li&gt;
&lt;li&gt;Decisions&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Logic containing reusable functionality&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;ul&gt;
&lt;li&gt;Email address validation&lt;/li&gt;
&lt;li&gt;Mailing address formatting&lt;/li&gt;
&lt;li&gt;Display name formatting&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;ul&gt;
&lt;li&gt;Data Types&lt;/li&gt;
&lt;li&gt;Data Stores&lt;/li&gt;
&lt;li&gt;Query Rules&lt;/li&gt;
&lt;li&gt;Constants&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Reference data across applications&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;ul&gt;
&lt;li&gt;List of States/Countries&lt;/li&gt;
&lt;li&gt;User details&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Interfaces&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Common interface sections&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;ul&gt;
&lt;li&gt;Mailing address input form&lt;/li&gt;
&lt;li&gt;User details input form&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Web APIs&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Reference data exposed externally&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;User details&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Records&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Records referenced by or containing data from multiple applications or synced records representing reference data&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Study&lt;/p&gt;
&lt;p&gt;Engagement&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Process Models&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Logic containing reusable functionality&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;User synchronization&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Connected Systems&lt;/p&gt;
&lt;p&gt;Integrations&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Reusable connections to external systems&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Transfer documents&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="identification_and_cataloging"&gt;Identification and Cataloging&lt;/h2&gt;
&lt;p&gt;The identification of common objects is the responsibility of the application development team and the Center of Excellence (CoE). Some heuristics for identifying common objects could include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Is the functionality going to be accessed by all platform users?&lt;/li&gt;
&lt;li&gt;Are other applications going to leverage the same functionality? e.g. vendor search?&lt;/li&gt;
&lt;li&gt;Is the functionality agnostic of the application it is in? e.g. a list of countries&lt;/li&gt;
&lt;li&gt;What is the potential scope of a common object; eg. Department, Region, Global&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These questions can be asked before, during and after the development cycle, but the sooner common functionality is identified the easier it is to classify it and leverage it across the platform.&lt;/p&gt;
&lt;p&gt;Once the team identifies the object(s), they should be moved to the appropriate application and renamed with the appropriate application prefix. Detailed descriptions for Appian objects are important to ensure that changes do not break the contract between the shared object and the corresponding dependent object. For expressions and interfaces, ensure common objects have &lt;a href="/w/guide/3342/how-to-create-expression-rule-test-cases"&gt;test cases&lt;/a&gt; defined so that during updates, they can be tested for &lt;a href="/success/w/article/3305/backward-compatible-design-planning-for-subsequent-deployments"&gt;backwards compatibility&lt;/a&gt;. Rule inputs should also be given descriptions so that Designers can easily understand their intended use. Teams working on new applications should always consult the Common Objects applications in order to identify any functionality that could be reused. Proper naming conventions and descriptions will make these objects easier to search and discover.&amp;nbsp;&lt;/p&gt;
&lt;h2 id="security_and_ownership"&gt;Security and Ownership&lt;/h2&gt;
&lt;p&gt;Since common objects are shared between different applications, changes to these objects can have a wide impact. Changes that benefit one app could potentially break another. Therefore, updates to common objects need to be taken with care after sufficient impact analysis.&lt;/p&gt;
&lt;p&gt;In programs with multiple teams, we recommend securing the objects to a specific designer group (and revoking sys admin access from designers). In such situations, while all objects need to have an admin group defined (see &lt;a href="https://docs.appian.com/suite/help/latest/understanding-the-health-check-report.html#number-of-objects-with-no-admin-group"&gt;Health Check&lt;/a&gt; for more details), common objects especially need to have correct security set up with one group as the object admins and other designer groups as viewers &amp;ndash; so these objects can be used but not edited.&lt;/p&gt;
&lt;h2 id="common_object_use_and_maintenance"&gt;Common Object Use and Maintenance&lt;/h2&gt;
&lt;p&gt;Using a common object is very easy &amp;ndash; just reference it in your application. Note that if the common object version you wish to utilize has not been deployed to your desired environment already, you may need to use a separate package to deploy it, if it is only part of the common object application but not your own.&lt;/p&gt;
&lt;p&gt;When an object needs to be edited, make a change request to the owners. Where appropriate, consider notifying the impacted teams if the updates will result in changes to the end user behavior or will require consumers of the common objects to opt into the new functionality being developed. Who makes the change depends on your organization (see Example Process) but we recommend that owners delegate the edits to the change requestor (application team). Appropriate &lt;a href="/w/article/3201/fundamentals-of-testing-in-appian#during-dev-sprint"&gt;testing&lt;/a&gt; and reviews should occur before promoting to higher environments. An extra emphasis should be placed on regression testing to ensure the changes will be backwards compatible.&lt;/p&gt;
&lt;h2 id="example_process"&gt;Example Process&lt;/h2&gt;
&lt;h3 id="mcetoc_1i85m8uip0"&gt;Steps to Modify Common Objects&lt;/h3&gt;
&lt;p&gt;When an object is modified in a common app, follow the below steps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Request to make a change from the object owner(s).&lt;/li&gt;
&lt;li&gt;Before making the change, check for dependencies on the object to see which teams could be impacted by the rule modification. Reach out to the associated owners to ensure the change is compatible before proceeding.&lt;/li&gt;
&lt;li&gt;The owner grants edit access to the application(s).&lt;/li&gt;
&lt;li&gt;If a common object needs to be modified that already has changes in progress, check to see if the change has already been deployed throughout the environments. More complex objects, like records, have a higher likelihood of a change in progress. If that is the case, reach out to the developer associated with the object and ensure the proposed changes are compatible before proceeding. Other measures may have to be taken, e.g. feature toggles, to get the changes deployed without breaking precedents.&lt;/li&gt;
&lt;li&gt;Owner revokes edit access to the application(s).&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: Delivery, Architecture&lt;/div&gt;
</description></item><item><title>Appian Usage Insights / Appian License Tracking FAQs</title><link>https://community.appian.com/success/w/article/3299/appian-usage-insights-appian-license-tracking-faqs/revision/10</link><pubDate>Tue, 10 Jun 2025 23:12:18 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:90ff1870-237a-4d07-9046-f26831cb625a</guid><dc:creator>joel.larin</dc:creator><description>Revision 10 posted to Article by joel.larin on 6/10/2025 11:12:18 PM&lt;br /&gt;
&lt;h2&gt;Why does my application package include something called &amp;ldquo;Appian License Tracking&amp;rdquo;?&lt;/h2&gt;
&lt;p&gt;A recent update to the application led to this name change. The name used to be &amp;ldquo;Appian Usage Insights&amp;rdquo; but is now &amp;ldquo;Appian License Tracking.&amp;rdquo; The previous name persists on the AppMarket posting for recognition purposes.&lt;/p&gt;
&lt;p&gt;The application tracks license utilization and may, in future iterations, more closely track application usage based on log availability within Appian.&lt;/p&gt;
&lt;h2 id="how_do_i_install_the_apps?"&gt;How do I install the apps?&lt;/h2&gt;
&lt;p&gt;The bundled Appian License Tracking Usage Insights Installation Guide describes how to do this.&lt;/p&gt;
&lt;h2 id="how_do_i_upgrade_to_the_latest_version_of_the_apps?"&gt;How do I upgrade to the latest version of the apps?&lt;/h2&gt;
&lt;p&gt;The bundled Upgrade Notes document&amp;nbsp;describes how to do this.&lt;/p&gt;
&lt;h2 id="how_should_i_use_the_apps?"&gt;How should I use the apps?&lt;/h2&gt;
&lt;p&gt;The bundled Appian License Tracking Quick Start Guide&amp;nbsp;describes how to do this.&lt;/p&gt;
&lt;h2 id="how_does_the_app_deduplicate_users_across_environments?"&gt;How does the app deduplicate users across environments?&lt;/h2&gt;
&lt;p&gt;Users are identified by distinct username. Their group membership and logins are considered across all environments based on the same username. For example, john.smith in Environment A is considered to be the same user as john.smith in Environment B, but &lt;em&gt;not&lt;/em&gt; the same as john.smith@acme.com in Environment C.&lt;/p&gt;
&lt;h2 id="i&amp;rsquo;ve_run_analysis_on_a_collection_run_but_the_configuration_was_wrong._what_can_i_do?"&gt;I&amp;rsquo;ve run analysis on a collection run but the configuration was wrong. What can I do?&lt;/h2&gt;
&lt;p&gt;You can modify the configuration (business entities, license pools and groups, license types etc) and rerun analysis on the latest collection run as many times as you need to get the configuration right.&amp;nbsp;You can only run analysis on the latest collection run, so once you load the next collection run (a few weeks later) then any further configuration changes will only apply to analysis of that next collection run data.&lt;/p&gt;
&lt;h2 id="after_my_latest_collection_run,_why_do_all_license_pools_have_zero_allocated_licenses?"&gt;After my latest collection run, why do all license pools have zero allocated licenses?&lt;/h2&gt;
&lt;p&gt;After each new collection run you need to run analysis again on that latest collection run. The majority of the reports are based on the analysis of the latest collection run (except for the capacity planning report and user logins over time), so will not display any data until analysis has been run on the new collection.&lt;/p&gt;
&lt;h2 id="how_do_i_know_which_version_of_the_app_i_am_running?"&gt;How do I know which version of the app I am running?&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;From v1.1.0, a constant was introduced in both the Collector and the Reporting apps to display the app version. This has been updated in v2.0.0 to the following based on application name updates.&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Collector App: LRDC_APPIAN_LICENSE_REPORTING_DATA_COLLECTOR_VERSION&lt;/li&gt;
&lt;li&gt;Reporting App: ALR_APPIAN_LICENSE_REPORTING_VERSION&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Information for v1.1.1 and older versions can be found below:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;For the Reporting app, if the constant LMA_R_APPIAN_USAGE_INSIGHTS_REPORTING_VERSION does not exist in your app, you are either running v1.0.0 or v1.0.1. In this case, if your reporting database includes the Stored Procedure LMA_SP_USERS_BY_LICENCE_TYPE, then you are running v1.0.1.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;For the Collector app, if the constant LMA_R_APPIAN_USAGE_INSIGHTS_COLLECTOR_VERSION does not exist in your app, then you are running v1.0.1 (which is identical to v1.0.0 as the Collector app did not previously change).&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 id="how_should_i_configure_reporting_to_see_details_per_app_but_also_grouped_at_business_unit_level?"&gt;How should I configure reporting to see details per app but also grouped at business unit level?&lt;/h2&gt;
&lt;p&gt;From v1.1.0 onwards the&amp;nbsp;Application Quick Start Guide describes how to do this.&lt;/p&gt;
&lt;h2 id="how_do_i_configure_flat_app_thresholds?"&gt;How do I configure flat app thresholds?&lt;/h2&gt;
&lt;p&gt;From v1.1.0 onwards you can do this via the related action within any license type record. See the Application Quick Start Guide for more information.&lt;/p&gt;
&lt;h2 id="do_you_have_examples_or_scenarios_of_how_to_set_up_the_business_entities?"&gt;Do you have examples or scenarios of how to set up the business entities?&lt;/h2&gt;
&lt;p&gt;Business entities are a fairly flexible concept that allow you to model usage in the most appropriate way for your business. A standard approach - that provides an overview at business unit level while allowing visibility&amp;nbsp;on a per-app level too - would be to configure business entities for your organisation&amp;#39;s larger business units, and then model the apps that belong to those business units as entity license pools. For this you would create one or more license types per app.&lt;/p&gt;
&lt;p&gt;For example, you might configure &amp;quot;Finance&amp;quot; as a business unit, create &amp;quot;Fin App1 Enterprise Users&amp;quot;, &amp;quot;Fin App2 Enterprise Users&amp;quot; and &amp;quot;Fin App3 Enterprise Users&amp;quot; as license types, and map those to the Finance business entity by creating an entity license pool for each license type within the Finance business entity. For each of those entity license pools, you would configure the groups that allow you to identify users of each of those apps (so the entity license pool for &amp;quot;Fin App1 Enterprise Users&amp;quot; might be the group &amp;quot;Fin App1 All Users&amp;quot;, for instance).&lt;/p&gt;
&lt;p&gt;When you find users that still end up in the Default entity, it&amp;#39;s because you haven&amp;#39;t mapped a group for them in your Business Entity - license Pool structure. The aim is to end up with no one left in the Default pool, so you know you have configured things correctly. This can take several iterations.&lt;/p&gt;
&lt;h2 id="why_do_i_have_to_upload_collection_data_from_all_of_my_environments_at_once?"&gt;Why do I have to upload collection data from all of my environments at once?&lt;/h2&gt;
&lt;p&gt;Usage analysis and the resulting reports are based on a snapshot of usage across all in scope environments at the same time. Therefore, for each new collection run loaded into the reporting application, a collection for every active environment is required. These collections should generally have all been run on the same day, or close enough.&lt;/p&gt;
&lt;p&gt;From v1.1.0 it is possible to deactivate an environment so that no further collections need to be uploaded for it. This would be used where an environment that was being reported on is no longer being used.&lt;/p&gt;
&lt;h2 id="can_i_use_a_non-production_environment&amp;nbsp;to_host_the_reporting_app?"&gt;Can I use a non-production environment&amp;nbsp;to host the reporting app?&lt;/h2&gt;
&lt;p&gt;You should consider whether your organisation allows the data that the collector application collects to be stored in a non-production environment. Additionally, as you use the application and the data stored in the reporting application grows, you should consider how you manage capacity in your chosen non-production environment.&lt;/p&gt;
&lt;p&gt;As with any App Market app, clients are responsible for testing these apps in their own environments. When rolling out the Appian License Tracking applications within your organization,&amp;nbsp;ensure that the apps are&amp;nbsp;tested&amp;nbsp;in your non-prod environments first according to your usual testing and release procedures.&lt;/p&gt;
&lt;h2 id="how_can_i_export_the_reports?"&gt;How can I export the reports?&lt;/h2&gt;
&lt;p&gt;Currently (v1.1.0) the only export functionality included is the high level Usage by Business Entity report, which can be exported via the &amp;quot;Download usage by business entity&amp;quot; download link on the Usage Reports &amp;gt; Usage By Business Entity report.&lt;/p&gt;
&lt;h2 id="how_do_you_report_on_non-prod_and_prod_licenses_separately,_where_users_need_to_have_one_license_per_environment?"&gt;How do you report on non-prod and prod licenses separately, where users need to have one license per environment?&lt;/h2&gt;
&lt;p&gt;Install the reporting app once per environment tier - e.g. a Dev reporting component, one for Test, one for Prod etc. Load only Dev environment collections into the Dev reporting component and so on.&lt;/p&gt;
&lt;h2 id="how_do_i_configure_the_collector_app_to_gather_login_information_for_the_last_year?"&gt;How do I configure the collector app to gather login information for the last year?&lt;/h2&gt;
&lt;p&gt;The data collection component will collect a maximum of the last 30 days worth of login information. If you have run the collector in the last 30 days, it will collect the login information since the last time it ran. Over time as the collector is run (at least every 30 days) and the collections are loaded into the reporting component, you will build up login data across a longer period. The application doesn&amp;#39;t support collecting older, compressed login audit data. This doesn&amp;#39;t prevent the allocation of users to license pools (which is based on the most recent group membership collections). But it does mean that the login information displayed in the app will only become more meaningful as collections are built up over time.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: monitoring&lt;/div&gt;
</description></item><item><title>Appian Usage Insights / Appian License Tracking FAQs</title><link>https://community.appian.com/success/w/article/3299/appian-usage-insights-appian-license-tracking-faqs/revision/9</link><pubDate>Tue, 10 Jun 2025 23:10:55 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:90ff1870-237a-4d07-9046-f26831cb625a</guid><dc:creator>joel.larin</dc:creator><description>Revision 9 posted to Article by joel.larin on 6/10/2025 11:10:55 PM&lt;br /&gt;
&lt;h2&gt;Why does my application package include something called &amp;ldquo;Appian License Tracking&amp;rdquo;?&lt;/h2&gt;
&lt;p&gt;A recent update to the application led to this name change. The name used to be &amp;ldquo;Appian Usage Insights&amp;rdquo; but is now &amp;ldquo;Appian License Tracking.&amp;rdquo; The previous name persists on the AppMarket posting for recognition purposes.&lt;/p&gt;
&lt;p&gt;The application tracks license utilization and may, in future iterations, more closely track application usage based on log availability within Appian.&lt;/p&gt;
&lt;h2 id="how_do_i_install_the_apps?"&gt;How do I install the apps?&lt;/h2&gt;
&lt;p&gt;The bundled Appian License Tracking Usage Insights Installation Guide describes how to do this.&lt;/p&gt;
&lt;h2 id="how_do_i_upgrade_to_the_latest_version_of_the_apps?"&gt;How do I upgrade to the latest version of the apps?&lt;/h2&gt;
&lt;p&gt;The bundled Upgrade Notes document&amp;nbsp;describes how to do this.&lt;/p&gt;
&lt;h2 id="how_should_i_use_the_apps?"&gt;How should I use the apps?&lt;/h2&gt;
&lt;p&gt;The bundled Appian License Tracking Quick Start Guide&amp;nbsp;describes how to do this.&lt;/p&gt;
&lt;h2 id="how_does_the_app_deduplicate_users_across_environments?"&gt;How does the app deduplicate users across environments?&lt;/h2&gt;
&lt;p&gt;Users are identified by distinct username. Their group membership and logins are considered across all environments based on the same username. For example, john.smith in Environment A is considered to be the same user as john.smith in Environment B, but &lt;em&gt;not&lt;/em&gt; the same as john.smith@acme.com in Environment C.&lt;/p&gt;
&lt;h2 id="i&amp;rsquo;ve_run_analysis_on_a_collection_run_but_the_configuration_was_wrong._what_can_i_do?"&gt;I&amp;rsquo;ve run analysis on a collection run but the configuration was wrong. What can I do?&lt;/h2&gt;
&lt;p&gt;You can modify the configuration (business entities, license pools and groups, license types etc) and rerun analysis on the latest collection run as many times as you need to get the configuration right.&amp;nbsp;You can only run analysis on the latest collection run, so once you load the next collection run (a few weeks later) then any further configuration changes will only apply to analysis of that next collection run data.&lt;/p&gt;
&lt;h2 id="after_my_latest_collection_run,_why_do_all_license_pools_have_zero_allocated_licenses?"&gt;After my latest collection run, why do all license pools have zero allocated licenses?&lt;/h2&gt;
&lt;p&gt;After each new collection run you need to run analysis again on that latest collection run. The majority of the reports are based on the analysis of the latest collection run (except for the capacity planning report and user logins over time), so will not display any data until analysis has been run on the new collection.&lt;/p&gt;
&lt;h2 id="how_do_i_know_which_version_of_the_app_i_am_running?"&gt;How do I know which version of the app I am running?&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;From v1.1.0, a constant was introduced in both the Collector and the Reporting apps to display the app version. This has been updated in v2.0.0 to the following based on application name updates.&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Collector App: LRDC_APPIAN_LICENSE_REPORTING_DATA_COLLECTOR_VERSION&lt;/li&gt;
&lt;li&gt;Reporting App: ALR_APPIAN_LICENSE_REPORTING_VERSION&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Information for v1.1.1 and older versions can be found below:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;For the Reporting app, if the constant LMA_R_APPIAN_USAGE_INSIGHTS_REPORTING_VERSION does not exist in your app, you are either running v1.0.0 or v1.0.1. In this case, if your reporting database includes the Stored Procedure LMA_SP_USERS_BY_LICENCE_TYPE, then you are running v1.0.1.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;For the Collector app, if the constant LMA_R_APPIAN_USAGE_INSIGHTS_COLLECTOR_VERSION does not exist in your app, then you are running v1.0.1 (which is identical to v1.0.0 as the Collector app did not previously change).&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 id="how_should_i_configure_reporting_to_see_details_per_app_but_also_grouped_at_business_unit_level?"&gt;How should I configure reporting to see details per app but also grouped at business unit level?&lt;/h2&gt;
&lt;p&gt;From v1.1.0 onwards the Appian Usage Insights Quick Start Guide describes how to do this.&lt;/p&gt;
&lt;h2 id="how_do_i_configure_flat_app_thresholds?"&gt;How do I configure flat app thresholds?&lt;/h2&gt;
&lt;p&gt;From v1.1.0 onwards you can do this via the related action within any license type record. See the Appian Usage Insights Quick Start Guide for more information.&lt;/p&gt;
&lt;h2 id="do_you_have_examples_or_scenarios_of_how_to_set_up_the_business_entities?"&gt;Do you have examples or scenarios of how to set up the business entities?&lt;/h2&gt;
&lt;p&gt;Business entities are a fairly flexible concept that allow you to model usage in the most appropriate way for your business. A standard approach - that provides an overview at business unit level while allowing visibility&amp;nbsp;on a per-app level too - would be to configure business entities for your organisation&amp;#39;s larger business units, and then model the apps that belong to those business units as entity license pools. For this you would create one or more license types per app.&lt;/p&gt;
&lt;p&gt;For example, you might configure &amp;quot;Finance&amp;quot; as a business unit, create &amp;quot;Fin App1 Enterprise Users&amp;quot;, &amp;quot;Fin App2 Enterprise Users&amp;quot; and &amp;quot;Fin App3 Enterprise Users&amp;quot; as license types, and map those to the Finance business entity by creating an entity license pool for each license type within the Finance business entity. For each of those entity license pools, you would configure the groups that allow you to identify users of each of those apps (so the entity license pool for &amp;quot;Fin App1 Enterprise Users&amp;quot; might be the group &amp;quot;Fin App1 All Users&amp;quot;, for instance).&lt;/p&gt;
&lt;p&gt;When you find users that still end up in the Default entity, it&amp;#39;s because you haven&amp;#39;t mapped a group for them in your Business Entity - license Pool structure. The aim is to end up with no one left in the Default pool, so you know you have configured things correctly. This can take several iterations.&lt;/p&gt;
&lt;h2 id="why_do_i_have_to_upload_collection_data_from_all_of_my_environments_at_once?"&gt;Why do I have to upload collection data from all of my environments at once?&lt;/h2&gt;
&lt;p&gt;Usage analysis and the resulting reports are based on a snapshot of usage across all in scope environments at the same time. Therefore, for each new collection run loaded into the reporting application, a collection for every active environment is required. These collections should generally have all been run on the same day, or close enough.&lt;/p&gt;
&lt;p&gt;From v1.1.0 it is possible to deactivate an environment so that no further collections need to be uploaded for it. This would be used where an environment that was being reported on is no longer being used.&lt;/p&gt;
&lt;h2 id="can_i_use_a_non-production_environment&amp;nbsp;to_host_the_reporting_app?"&gt;Can I use a non-production environment&amp;nbsp;to host the reporting app?&lt;/h2&gt;
&lt;p&gt;You should consider whether your organisation allows the data that the collector application collects to be stored in a non-production environment. Additionally, as you use the application and the data stored in the reporting application grows, you should consider how you manage capacity in your chosen non-production environment.&lt;/p&gt;
&lt;p&gt;As with any App Market app, clients are responsible for testing these apps in their own environments. When rolling out the Appian Usage Insights applications within your organisation,&amp;nbsp;ensure that the apps are&amp;nbsp;tested&amp;nbsp;in your non-prod environments first according to your usual testing and release procedures.&lt;/p&gt;
&lt;h2 id="how_can_i_export_the_reports?"&gt;How can I export the reports?&lt;/h2&gt;
&lt;p&gt;Currently (v1.1.0) the only export functionality included is the high level Usage by Business Entity report, which can be exported via the &amp;quot;Download usage by business entity&amp;quot; download link on the Usage Reports &amp;gt; Usage By Business Entity report.&lt;/p&gt;
&lt;h2 id="how_do_you_report_on_non-prod_and_prod_licenses_separately,_where_users_need_to_have_one_license_per_environment?"&gt;How do you report on non-prod and prod licenses separately, where users need to have one license per environment?&lt;/h2&gt;
&lt;p&gt;Install the reporting app once per environment tier - e.g. a Dev reporting component, one for Test, one for Prod etc. Load only Dev environment collections into the Dev reporting component and so on.&lt;/p&gt;
&lt;h2 id="how_do_i_configure_the_collector_app_to_gather_login_information_for_the_last_year?"&gt;How do I configure the collector app to gather login information for the last year?&lt;/h2&gt;
&lt;p&gt;The data collection component will collect a maximum of the last 30 days worth of login information. If you have run the collector in the last 30 days, it will collect the login information since the last time it ran. Over time as the collector is run (at least every 30 days) and the collections are loaded into the reporting component, you will build up login data across a longer period. The application doesn&amp;#39;t support collecting older, compressed login audit data. This doesn&amp;#39;t prevent the allocation of users to license pools (which is based on the most recent group membership collections). But it does mean that the login information displayed in the app will only become more meaningful as collections are built up over time.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: monitoring&lt;/div&gt;
</description></item><item><title>Appian Usage Insights / Appian License Tracking FAQs</title><link>https://community.appian.com/success/w/article/3299/appian-usage-insights-appian-license-tracking-faqs/revision/8</link><pubDate>Tue, 10 Jun 2025 23:09:42 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:90ff1870-237a-4d07-9046-f26831cb625a</guid><dc:creator>joel.larin</dc:creator><description>Revision 8 posted to Article by joel.larin on 6/10/2025 11:09:42 PM&lt;br /&gt;
&lt;h2&gt;Why does my application package include something called &amp;ldquo;Appian License Tracking&amp;rdquo;?&lt;/h2&gt;
&lt;p&gt;A recent update to the application led to this name change. The name used to be &amp;ldquo;Appian Usage Insights&amp;rdquo; but is now &amp;ldquo;Appian License Tracking.&amp;rdquo; The previous name persists on the AppMarket posting for recognition purposes.&lt;/p&gt;
&lt;p&gt;The application tracks license utilization and may, in future iterations, more closely track application usage based on log availability within Appian.&lt;/p&gt;
&lt;h2 id="how_do_i_install_the_apps?"&gt;How do I install the apps?&lt;/h2&gt;
&lt;p&gt;The bundled Appian License Tracking Usage Insights Installation Guide describes how to do this.&lt;/p&gt;
&lt;h2 id="how_do_i_upgrade_to_the_latest_version_of_the_apps?"&gt;How do I upgrade to the latest version of the apps?&lt;/h2&gt;
&lt;p&gt;The bundled Upgrade Notes document&amp;nbsp;describes how to do this.&lt;/p&gt;
&lt;h2 id="how_should_i_use_the_apps?"&gt;How should I use the apps?&lt;/h2&gt;
&lt;p&gt;The bundled Appian License Tracking Quick Start Guide&amp;nbsp;describes how to do this.&lt;/p&gt;
&lt;h2 id="how_does_the_app_deduplicate_users_across_environments?"&gt;How does the app deduplicate users across environments?&lt;/h2&gt;
&lt;p&gt;Users are identified by distinct username. Their group membership and logins are considered across all environments based on the same username. For example, john.smith in Environment A is considered to be the same user as john.smith in Environment B, but &lt;em&gt;not&lt;/em&gt; the same as john.smith@acme.com in Environment C.&lt;/p&gt;
&lt;h2 id="i&amp;rsquo;ve_run_analysis_on_a_collection_run_but_the_configuration_was_wrong._what_can_i_do?"&gt;I&amp;rsquo;ve run analysis on a collection run but the configuration was wrong. What can I do?&lt;/h2&gt;
&lt;p&gt;You can modify the configuration (business entities, license pools and groups, license types etc) and rerun analysis on the latest collection run as many times as you need to get the configuration right.&amp;nbsp;You can only run analysis on the latest collection run, so once you load the next collection run (a few weeks later) then any further configuration changes will only apply to analysis of that next collection run data.&lt;/p&gt;
&lt;h2 id="after_my_latest_collection_run,_why_do_all_license_pools_have_zero_allocated_licenses?"&gt;After my latest collection run, why do all license pools have zero allocated licenses?&lt;/h2&gt;
&lt;p&gt;After each new collection run you need to run analysis again on that latest collection run. The majority of the reports are based on the analysis of the latest collection run (except for the capacity planning report and user logins over time), so will not display any data until analysis has been run on the new collection.&lt;/p&gt;
&lt;h2 id="how_do_i_know_which_version_of_the_app_i_am_running?"&gt;How do I know which version of the app I am running?&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;From v1.1.0, a constant was introduced in both the Collector and the Reporting apps to display the app version. This has been updated in v2.0.0 to the following based on application name updates.&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Collector App: LRDC_APPIAN_LICENSE_REPORTING_DATA_COLLECTOR_VERSION&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style="font-weight:400;"&gt;Reporting App: ALR_APPIAN_LICENSE_REPORTING_VERSION&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Information for v1.1.1 and older versions can be found below:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;For the Reporting app, if the constant LMA_R_APPIAN_USAGE_INSIGHTS_REPORTING_VERSION does not exist in your app, you are either running v1.0.0 or v1.0.1. In this case, if your reporting database includes the Stored Procedure LMA_SP_USERS_BY_LICENCE_TYPE, then you are running v1.0.1.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;For the Collector app, if the constant LMA_R_APPIAN_USAGE_INSIGHTS_COLLECTOR_VERSION does not exist in your app, then you are running v1.0.1 (which is identical to v1.0.0 as the Collector app did not previously change).&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 id="how_should_i_configure_reporting_to_see_details_per_app_but_also_grouped_at_business_unit_level?"&gt;How should I configure reporting to see details per app but also grouped at business unit level?&lt;/h2&gt;
&lt;p&gt;From v1.1.0 onwards the Appian Usage Insights Quick Start Guide describes how to do this.&lt;/p&gt;
&lt;h2 id="how_do_i_configure_flat_app_thresholds?"&gt;How do I configure flat app thresholds?&lt;/h2&gt;
&lt;p&gt;From v1.1.0 onwards you can do this via the related action within any license type record. See the Appian Usage Insights Quick Start Guide for more information.&lt;/p&gt;
&lt;h2 id="do_you_have_examples_or_scenarios_of_how_to_set_up_the_business_entities?"&gt;Do you have examples or scenarios of how to set up the business entities?&lt;/h2&gt;
&lt;p&gt;Business entities are a fairly flexible concept that allow you to model usage in the most appropriate way for your business. A standard approach - that provides an overview at business unit level while allowing visibility&amp;nbsp;on a per-app level too - would be to configure business entities for your organisation&amp;#39;s larger business units, and then model the apps that belong to those business units as entity license pools. For this you would create one or more license types per app.&lt;/p&gt;
&lt;p&gt;For example, you might configure &amp;quot;Finance&amp;quot; as a business unit, create &amp;quot;Fin App1 Enterprise Users&amp;quot;, &amp;quot;Fin App2 Enterprise Users&amp;quot; and &amp;quot;Fin App3 Enterprise Users&amp;quot; as license types, and map those to the Finance business entity by creating an entity license pool for each license type within the Finance business entity. For each of those entity license pools, you would configure the groups that allow you to identify users of each of those apps (so the entity license pool for &amp;quot;Fin App1 Enterprise Users&amp;quot; might be the group &amp;quot;Fin App1 All Users&amp;quot;, for instance).&lt;/p&gt;
&lt;p&gt;When you find users that still end up in the Default entity, it&amp;#39;s because you haven&amp;#39;t mapped a group for them in your Business Entity - license Pool structure. The aim is to end up with no one left in the Default pool, so you know you have configured things correctly. This can take several iterations.&lt;/p&gt;
&lt;h2 id="why_do_i_have_to_upload_collection_data_from_all_of_my_environments_at_once?"&gt;Why do I have to upload collection data from all of my environments at once?&lt;/h2&gt;
&lt;p&gt;Usage analysis and the resulting reports are based on a snapshot of usage across all in scope environments at the same time. Therefore, for each new collection run loaded into the reporting application, a collection for every active environment is required. These collections should generally have all been run on the same day, or close enough.&lt;/p&gt;
&lt;p&gt;From v1.1.0 it is possible to deactivate an environment so that no further collections need to be uploaded for it. This would be used where an environment that was being reported on is no longer being used.&lt;/p&gt;
&lt;h2 id="can_i_use_a_non-production_environment&amp;nbsp;to_host_the_reporting_app?"&gt;Can I use a non-production environment&amp;nbsp;to host the reporting app?&lt;/h2&gt;
&lt;p&gt;You should consider whether your organisation allows the data that the collector application collects to be stored in a non-production environment. Additionally, as you use the application and the data stored in the reporting application grows, you should consider how you manage capacity in your chosen non-production environment.&lt;/p&gt;
&lt;p&gt;As with any App Market app, clients are responsible for testing these apps in their own environments. When rolling out the Appian Usage Insights applications within your organisation,&amp;nbsp;ensure that the apps are&amp;nbsp;tested&amp;nbsp;in your non-prod environments first according to your usual testing and release procedures.&lt;/p&gt;
&lt;h2 id="how_can_i_export_the_reports?"&gt;How can I export the reports?&lt;/h2&gt;
&lt;p&gt;Currently (v1.1.0) the only export functionality included is the high level Usage by Business Entity report, which can be exported via the &amp;quot;Download usage by business entity&amp;quot; download link on the Usage Reports &amp;gt; Usage By Business Entity report.&lt;/p&gt;
&lt;h2 id="how_do_you_report_on_non-prod_and_prod_licenses_separately,_where_users_need_to_have_one_license_per_environment?"&gt;How do you report on non-prod and prod licenses separately, where users need to have one license per environment?&lt;/h2&gt;
&lt;p&gt;Install the reporting app once per environment tier - e.g. a Dev reporting component, one for Test, one for Prod etc. Load only Dev environment collections into the Dev reporting component and so on.&lt;/p&gt;
&lt;h2 id="how_do_i_configure_the_collector_app_to_gather_login_information_for_the_last_year?"&gt;How do I configure the collector app to gather login information for the last year?&lt;/h2&gt;
&lt;p&gt;The data collection component will collect a maximum of the last 30 days worth of login information. If you have run the collector in the last 30 days, it will collect the login information since the last time it ran. Over time as the collector is run (at least every 30 days) and the collections are loaded into the reporting component, you will build up login data across a longer period. The application doesn&amp;#39;t support collecting older, compressed login audit data. This doesn&amp;#39;t prevent the allocation of users to license pools (which is based on the most recent group membership collections). But it does mean that the login information displayed in the app will only become more meaningful as collections are built up over time.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: monitoring&lt;/div&gt;
</description></item><item><title>Appian Usage Insights / Appian License Tracking FAQs</title><link>https://community.appian.com/success/w/article/3299/appian-usage-insights-appian-license-tracking-faqs/revision/7</link><pubDate>Tue, 10 Jun 2025 23:08:26 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:90ff1870-237a-4d07-9046-f26831cb625a</guid><dc:creator>joel.larin</dc:creator><description>Revision 7 posted to Article by joel.larin on 6/10/2025 11:08:26 PM&lt;br /&gt;
&lt;h2&gt;Why does my application package include something called &amp;ldquo;Appian License Tracking&amp;rdquo;?&lt;/h2&gt;
&lt;p&gt;A recent update to the application led to this name change. The name used to be &amp;ldquo;Appian Usage Insights&amp;rdquo; but is now &amp;ldquo;Appian License Tracking.&amp;rdquo; The previous name persists on the AppMarket posting for recognition purposes.&lt;/p&gt;
&lt;p&gt;The application tracks license utilization and may, in future iterations, more closely track application usage based on log availability within Appian.&lt;/p&gt;
&lt;h2 id="how_do_i_install_the_apps?"&gt;How do I install the apps?&lt;/h2&gt;
&lt;p&gt;The bundled Appian License Tracking Usage Insights Installation Guide describes how to do this.&lt;/p&gt;
&lt;h2 id="how_do_i_upgrade_to_the_latest_version_of_the_apps?"&gt;How do I upgrade to the latest version of the apps?&lt;/h2&gt;
&lt;p&gt;The bundled Upgrade Notes document&amp;nbsp;describes how to do this.&lt;/p&gt;
&lt;h2 id="how_should_i_use_the_apps?"&gt;How should I use the apps?&lt;/h2&gt;
&lt;p&gt;The bundled Appian License Tracking Quick Start Guide&amp;nbsp;describes how to do this.&lt;/p&gt;
&lt;h2 id="how_does_the_app_deduplicate_users_across_environments?"&gt;How does the app deduplicate users across environments?&lt;/h2&gt;
&lt;p&gt;Users are identified by distinct username. Their group membership and logins are considered across all environments based on the same username. For example, john.smith in Environment A is considered to be the same user as john.smith in Environment B, but &lt;em&gt;not&lt;/em&gt; the same as john.smith@acme.com in Environment C.&lt;/p&gt;
&lt;h2 id="i&amp;rsquo;ve_run_analysis_on_a_collection_run_but_the_configuration_was_wrong._what_can_i_do?"&gt;I&amp;rsquo;ve run analysis on a collection run but the configuration was wrong. What can I do?&lt;/h2&gt;
&lt;p&gt;You can modify the configuration (business entities, license pools and groups, license types etc) and rerun analysis on the latest collection run as many times as you need to get the configuration right.&amp;nbsp;You can only run analysis on the latest collection run, so once you load the next collection run (a few weeks later) then any further configuration changes will only apply to analysis of that next collection run data.&lt;/p&gt;
&lt;h2 id="after_my_latest_collection_run,_why_do_all_license_pools_have_zero_allocated_licenses?"&gt;After my latest collection run, why do all license pools have zero allocated licenses?&lt;/h2&gt;
&lt;p&gt;After each new collection run you need to run analysis again on that latest collection run. The majority of the reports are based on the analysis of the latest collection run (except for the capacity planning report and user logins over time), so will not display any data until analysis has been run on the new collection.&lt;/p&gt;
&lt;h2 id="how_do_i_know_which_version_of_the_app_i_am_running?"&gt;How do I know which version of the app I am running?&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;From v1.1.0, a constant was introduced in both the Collector and the Reporting apps to display the app version. This has been updated in v2.0.0 to the following based on application name updates.&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Collector App: LRDC_APPIAN_LICENSE_REPORTING_DATA_COLLECTOR_VERSION&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style="font-weight:400;"&gt;Reporting App: ALR_APPIAN_LICENSE_REPORTING_VERSION&lt;/span&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;Information for v1.1.1 and older versions can be found below:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;For the Reporting app, if the constant LMA_R_APPIAN_USAGE_INSIGHTS_REPORTING_VERSION does not exist in your app, you are either running v1.0.0 or v1.0.1. In this case, if your reporting database includes the Stored Procedure LMA_SP_USERS_BY_LICENCE_TYPE, then you are running v1.0.1.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;For the Collector app, if the constant LMA_R_APPIAN_USAGE_INSIGHTS_COLLECTOR_VERSION does not exist in your app, then you are running v1.0.1 (which is identical to v1.0.0 as the Collector app did not previously change).&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:400;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 id="how_should_i_configure_reporting_to_see_details_per_app_but_also_grouped_at_business_unit_level?"&gt;How should I configure reporting to see details per app but also grouped at business unit level?&lt;/h2&gt;
&lt;p&gt;From v1.1.0 onwards the Appian Usage Insights Quick Start Guide describes how to do this.&lt;/p&gt;
&lt;h2 id="how_do_i_configure_flat_app_thresholds?"&gt;How do I configure flat app thresholds?&lt;/h2&gt;
&lt;p&gt;From v1.1.0 onwards you can do this via the related action within any license type record. See the Appian Usage Insights Quick Start Guide for more information.&lt;/p&gt;
&lt;h2 id="do_you_have_examples_or_scenarios_of_how_to_set_up_the_business_entities?"&gt;Do you have examples or scenarios of how to set up the business entities?&lt;/h2&gt;
&lt;p&gt;Business entities are a fairly flexible concept that allow you to model usage in the most appropriate way for your business. A standard approach - that provides an overview at business unit level while allowing visibility&amp;nbsp;on a per-app level too - would be to configure business entities for your organisation&amp;#39;s larger business units, and then model the apps that belong to those business units as entity license pools. For this you would create one or more license types per app.&lt;/p&gt;
&lt;p&gt;For example, you might configure &amp;quot;Finance&amp;quot; as a business unit, create &amp;quot;Fin App1 Enterprise Users&amp;quot;, &amp;quot;Fin App2 Enterprise Users&amp;quot; and &amp;quot;Fin App3 Enterprise Users&amp;quot; as license types, and map those to the Finance business entity by creating an entity license pool for each license type within the Finance business entity. For each of those entity license pools, you would configure the groups that allow you to identify users of each of those apps (so the entity license pool for &amp;quot;Fin App1 Enterprise Users&amp;quot; might be the group &amp;quot;Fin App1 All Users&amp;quot;, for instance).&lt;/p&gt;
&lt;p&gt;When you find users that still end up in the Default entity, it&amp;#39;s because you haven&amp;#39;t mapped a group for them in your Business Entity - license Pool structure. The aim is to end up with no one left in the Default pool, so you know you have configured things correctly. This can take several iterations.&lt;/p&gt;
&lt;h2 id="why_do_i_have_to_upload_collection_data_from_all_of_my_environments_at_once?"&gt;Why do I have to upload collection data from all of my environments at once?&lt;/h2&gt;
&lt;p&gt;Usage analysis and the resulting reports are based on a snapshot of usage across all in scope environments at the same time. Therefore, for each new collection run loaded into the reporting application, a collection for every active environment is required. These collections should generally have all been run on the same day, or close enough.&lt;/p&gt;
&lt;p&gt;From v1.1.0 it is possible to deactivate an environment so that no further collections need to be uploaded for it. This would be used where an environment that was being reported on is no longer being used.&lt;/p&gt;
&lt;h2 id="can_i_use_a_non-production_environment&amp;nbsp;to_host_the_reporting_app?"&gt;Can I use a non-production environment&amp;nbsp;to host the reporting app?&lt;/h2&gt;
&lt;p&gt;You should consider whether your organisation allows the data that the collector application collects to be stored in a non-production environment. Additionally, as you use the application and the data stored in the reporting application grows, you should consider how you manage capacity in your chosen non-production environment.&lt;/p&gt;
&lt;p&gt;As with any App Market app, clients are responsible for testing these apps in their own environments. When rolling out the Appian Usage Insights applications within your organisation,&amp;nbsp;ensure that the apps are&amp;nbsp;tested&amp;nbsp;in your non-prod environments first according to your usual testing and release procedures.&lt;/p&gt;
&lt;h2 id="how_can_i_export_the_reports?"&gt;How can I export the reports?&lt;/h2&gt;
&lt;p&gt;Currently (v1.1.0) the only export functionality included is the high level Usage by Business Entity report, which can be exported via the &amp;quot;Download usage by business entity&amp;quot; download link on the Usage Reports &amp;gt; Usage By Business Entity report.&lt;/p&gt;
&lt;h2 id="how_do_you_report_on_non-prod_and_prod_licenses_separately,_where_users_need_to_have_one_license_per_environment?"&gt;How do you report on non-prod and prod licenses separately, where users need to have one license per environment?&lt;/h2&gt;
&lt;p&gt;Install the reporting app once per environment tier - e.g. a Dev reporting component, one for Test, one for Prod etc. Load only Dev environment collections into the Dev reporting component and so on.&lt;/p&gt;
&lt;h2 id="how_do_i_configure_the_collector_app_to_gather_login_information_for_the_last_year?"&gt;How do I configure the collector app to gather login information for the last year?&lt;/h2&gt;
&lt;p&gt;The data collection component will collect a maximum of the last 30 days worth of login information. If you have run the collector in the last 30 days, it will collect the login information since the last time it ran. Over time as the collector is run (at least every 30 days) and the collections are loaded into the reporting component, you will build up login data across a longer period. The application doesn&amp;#39;t support collecting older, compressed login audit data. This doesn&amp;#39;t prevent the allocation of users to license pools (which is based on the most recent group membership collections). But it does mean that the login information displayed in the app will only become more meaningful as collections are built up over time.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: monitoring&lt;/div&gt;
</description></item><item><title>Appian Usage Insights FAQs</title><link>https://community.appian.com/success/w/article/3299/appian-usage-insights-appian-license-tracking-faqs/revision/6</link><pubDate>Tue, 10 Jun 2025 23:04:23 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:90ff1870-237a-4d07-9046-f26831cb625a</guid><dc:creator>joel.larin</dc:creator><description>Revision 6 posted to Article by joel.larin on 6/10/2025 11:04:23 PM&lt;br /&gt;
&lt;div&gt;
&lt;h2&gt;Why does my application package include something called &amp;ldquo;Appian License Tracking&amp;rdquo;?&lt;/h2&gt;
&lt;p&gt;A recent update to the application led to this name change. The name used to be &amp;ldquo;Appian Usage Insights&amp;rdquo; but is now &amp;ldquo;Appian License Tracking.&amp;rdquo; The previous name persists on the AppMarket posting for recognition purposes.&lt;/p&gt;
&lt;p&gt;The application tracks license utilization and may, in future iterations, more closely track application usage based on log availability within Appian.&lt;/p&gt;
&lt;h2 id="how_do_i_install_the_apps?"&gt;How do I install the apps?&lt;/h2&gt;
&lt;p&gt;The bundled Appian Usage Insights Installation Guide describes how to do this.&lt;/p&gt;
&lt;h2 id="how_do_i_upgrade_to_the_latest_version_of_the_apps?"&gt;How do I upgrade to the latest version of the apps?&lt;/h2&gt;
&lt;p&gt;The bundled Upgrade Notes document&amp;nbsp;describes how to do this.&lt;/p&gt;
&lt;h2 id="how_should_i_use_the_apps?"&gt;How should I use the apps?&lt;/h2&gt;
&lt;p&gt;The bundled Appian Usage Insights&amp;nbsp;Quick Start Guide&amp;nbsp;describes how to do this.&lt;/p&gt;
&lt;h2 id="how_does_the_app_deduplicate_users_across_environments?"&gt;How does the app deduplicate users across environments?&lt;/h2&gt;
&lt;p&gt;Users are identified by distinct username. Their group membership and logins are considered across all environments based on the same username. For example, john.smith in Environment A is considered to be the same user as john.smith in Environment B, but &lt;em&gt;not&lt;/em&gt; the same as john.smith@acme.com in Environment C.&lt;/p&gt;
&lt;h2 id="i&amp;rsquo;ve_run_analysis_on_a_collection_run_but_the_configuration_was_wrong._what_can_i_do?"&gt;I&amp;rsquo;ve run analysis on a collection run but the configuration was wrong. What can I do?&lt;/h2&gt;
&lt;p&gt;You can modify the configuration (business entities, license pools and groups, license types etc) and rerun analysis on the latest collection run as many times as you need to get the configuration right.&amp;nbsp;You can only run analysis on the latest collection run, so once you load the next collection run (a few weeks later) then any further configuration changes will only apply to analysis of that next collection run data.&lt;/p&gt;
&lt;h2 id="after_my_latest_collection_run,_why_do_all_license_pools_have_zero_allocated_licenses?"&gt;After my latest collection run, why do all license pools have zero allocated licenses?&lt;/h2&gt;
&lt;p&gt;After each new collection run you need to run analysis again on that latest collection run. The majority of the reports are based on the analysis of the latest collection run (except for the capacity planning report and user logins over time), so will not display any data until analysis has been run on the new collection.&lt;/p&gt;
&lt;h2 id="how_do_i_know_which_version_of_the_app_i_am_running?"&gt;How do I know which version of the app I am running?&lt;/h2&gt;
&lt;p&gt;From v1.1.0, a constant was introduced in both the Collector and the Reporting apps to display the app version.&amp;nbsp;If the constants LMA_R_APPIAN_USAGE_INSIGHTS_COLLECTOR_VERSION or LMA_R_APPIAN_USAGE_INSIGHTS_REPORTING_VERSION do not exist in your app, you are either running v1.0.0 or v1.0.1. In this case, if your reporting database includes the Stored Procedure LMA_SP_USERS_BY_license_TYPE, then you are running v1.0.1.&lt;/p&gt;
&lt;h2 id="how_should_i_configure_reporting_to_see_details_per_app_but_also_grouped_at_business_unit_level?"&gt;How should I configure reporting to see details per app but also grouped at business unit level?&lt;/h2&gt;
&lt;p&gt;From v1.1.0 onwards the Appian Usage Insights Quick Start Guide describes how to do this.&lt;/p&gt;
&lt;h2 id="how_do_i_configure_flat_app_thresholds?"&gt;How do I configure flat app thresholds?&lt;/h2&gt;
&lt;p&gt;From v1.1.0 onwards you can do this via the related action within any license type record. See the Appian Usage Insights Quick Start Guide for more information.&lt;/p&gt;
&lt;h2 id="do_you_have_examples_or_scenarios_of_how_to_set_up_the_business_entities?"&gt;Do you have examples or scenarios of how to set up the business entities?&lt;/h2&gt;
&lt;p&gt;Business entities are a fairly flexible concept that allow you to model usage in the most appropriate way for your business. A standard approach - that provides an overview at business unit level while allowing visibility&amp;nbsp;on a per-app level too - would be to configure business entities for your organisation&amp;#39;s larger business units, and then model the apps that belong to those business units as entity license pools. For this you would create one or more license types per app.&lt;/p&gt;
&lt;p&gt;For example, you might configure &amp;quot;Finance&amp;quot; as a business unit, create &amp;quot;Fin App1 Enterprise Users&amp;quot;, &amp;quot;Fin App2 Enterprise Users&amp;quot; and &amp;quot;Fin App3 Enterprise Users&amp;quot; as license types, and map those to the Finance business entity by creating an entity license pool for each license type within the Finance business entity. For each of those entity license pools, you would configure the groups that allow you to identify users of each of those apps (so the entity license pool for &amp;quot;Fin App1 Enterprise Users&amp;quot; might be the group &amp;quot;Fin App1 All Users&amp;quot;, for instance).&lt;/p&gt;
&lt;p&gt;When you find users that still end up in the Default entity, it&amp;#39;s because you haven&amp;#39;t mapped a group for them in your Business Entity - license Pool structure. The aim is to end up with no one left in the Default pool, so you know you have configured things correctly. This can take several iterations.&lt;/p&gt;
&lt;h2 id="why_do_i_have_to_upload_collection_data_from_all_of_my_environments_at_once?"&gt;Why do I have to upload collection data from all of my environments at once?&lt;/h2&gt;
&lt;p&gt;Usage analysis and the resulting reports are based on a snapshot of usage across all in scope environments at the same time. Therefore, for each new collection run loaded into the reporting application, a collection for every active environment is required. These collections should generally have all been run on the same day, or close enough.&lt;/p&gt;
&lt;p&gt;From v1.1.0 it is possible to deactivate an environment so that no further collections need to be uploaded for it. This would be used where an environment that was being reported on is no longer being used.&lt;/p&gt;
&lt;h2 id="can_i_use_a_non-production_environment&amp;nbsp;to_host_the_reporting_app?"&gt;Can I use a non-production environment&amp;nbsp;to host the reporting app?&lt;/h2&gt;
&lt;p&gt;You should consider whether your organisation allows the data that the collector application collects to be stored in a non-production environment. Additionally, as you use the application and the data stored in the reporting application grows, you should consider how you manage capacity in your chosen non-production environment.&lt;/p&gt;
&lt;p&gt;As with any App Market app, clients are responsible for testing these apps in their own environments. When rolling out the Appian Usage Insights applications within your organisation,&amp;nbsp;ensure that the apps are&amp;nbsp;tested&amp;nbsp;in your non-prod environments first according to your usual testing and release procedures.&lt;/p&gt;
&lt;h2 id="how_can_i_export_the_reports?"&gt;How can I export the reports?&lt;/h2&gt;
&lt;p&gt;Currently (v1.1.0) the only export functionality included is the high level Usage by Business Entity report, which can be exported via the &amp;quot;Download usage by business entity&amp;quot; download link on the Usage Reports &amp;gt; Usage By Business Entity report.&lt;/p&gt;
&lt;h2 id="how_do_you_report_on_non-prod_and_prod_licenses_separately,_where_users_need_to_have_one_license_per_environment?"&gt;How do you report on non-prod and prod licenses separately, where users need to have one license per environment?&lt;/h2&gt;
&lt;p&gt;Install the reporting app once per environment tier - e.g. a Dev reporting component, one for Test, one for Prod etc. Load only Dev environment collections into the Dev reporting component and so on.&lt;/p&gt;
&lt;h2 id="how_do_i_configure_the_collector_app_to_gather_login_information_for_the_last_year?"&gt;How do I configure the collector app to gather login information for the last year?&lt;/h2&gt;
&lt;p&gt;The data collection component will collect a maximum of the last 30 days worth of login information. If you have run the collector in the last 30 days, it will collect the login information since the last time it ran. Over time as the collector is run (at least every 30 days) and the collections are loaded into the reporting component, you will build up login data across a longer period. The application doesn&amp;#39;t support collecting older, compressed login audit data. This doesn&amp;#39;t prevent the allocation of users to license pools (which is based on the most recent group membership collections). But it does mean that the login information displayed in the app will only become more meaningful as collections are built up over time.&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: monitoring&lt;/div&gt;
</description></item><item><title>Integrating using Web Services</title><link>https://community.appian.com/success/w/article/3250/integrating-using-web-services</link><pubDate>Tue, 10 Jun 2025 17:41:52 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:fb55cce9-e2b5-4683-80c4-b2047be126c0</guid><dc:creator>joel.larin</dc:creator><description>Current Revision posted to Article by joel.larin on 6/10/2025 5:41:52 PM&lt;br /&gt;
&lt;div&gt;
&lt;div class="content"&gt;
&lt;p&gt;Appian can use Web Services to integrate with external systems as a service provider (other systems calling Appian) or as a client (calling other systems from Appian). Most common protocols and standards are supported by default, but you can extend the platform using Appian&amp;#39;s plug-in framework.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The recommended approach for Appian to access other systems is through use of the &lt;a href="https://docs.appian.com/suite/help/latest/Integration_Object.html"&gt;Integration Object&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;The recommended approach for other systems to access Appian is through the &lt;a href="https://docs.appian.com/suite/help/latest/Web_APIs.html"&gt;Web API Object&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="calling_other_systems_from_appian"&gt;Calling Other Systems from Appian&lt;/h2&gt;
&lt;p&gt;Anytime Appian calls another system using supported authentication and methods, it should be configured using an &lt;a href="https://docs.appian.com/suite/help/latest/Integration_Object.html"&gt;Integration Object&lt;/a&gt;, paired with a &lt;a href="https://docs.appian.com/suite/help/latest/Connected_System_Object.html"&gt;Connected System&lt;/a&gt;. The Connected System object allows for multiple Integrations to be configured with one system, while hosting the authentication configuration in one place.&lt;/p&gt;
&lt;h3&gt;Querying vs. Modifying Data&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Developers should always be aware of whether the integration will be &lt;a href="https://docs.appian.com/suite/help/latest/Call_an_Integration.html#querying-data-versus-modifying-data"&gt;querying (read-only) or modifying (read/write) data&lt;/a&gt; and select the appropriate checkbox for Usage when configuring an Integration object.
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Note:&lt;/strong&gt; Appian will restrict developers from placing Integrations that modify data in places where duplicate calls can occur.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Unlike other Web Service smart services, Integration objects can be called in SAIL or in process.&lt;/li&gt;
&lt;li&gt;Queries via an Integration object can also be used as the source for a service-backed record to create a structured, navigable interface for that data in Appian.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Working with JSON&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;When building the request body of an Integration object as JSON, you should create CDTs or use dictionary syntax that matches the expected structure to structure the data, and then use the function &lt;a href="https://docs.appian.com/suite/help/latest/fnc_system_a_tojson.html"&gt;a!toJson&lt;/a&gt; to format the body. This will account for special characters and nulls, and always produce a well-formed structure.&lt;/li&gt;
&lt;li&gt;When parsing the response body of an Integration that is expected to be JSON, you should use Automatic Output Parsing (&amp;ldquo;Convert the JSON Response body to an Appian value&amp;rdquo;). This will always return your result as structured data in Appian.
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;strong&gt;Note:&lt;/strong&gt; If there are any Date or Date and Time fields expected in the response body, you will need to manually convert these fields from a Text type (e.g. &amp;quot;2018-01-01T12:00:00Z&amp;quot;) to a Date or Date and Time type by parsing the string.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Working with XML&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;When building the request body of an Integration object as XML, you should create CDTs or use dictionary syntax that matches the expected structure to structure the data, and then use the function &lt;a href="https://docs.appian.com/suite/help/latest/fnc_scripting_toxml.html"&gt;fn!toxml&lt;/a&gt; to format the body. This will account for special characters and nulls, and always produce a well-formed structure.&lt;/li&gt;
&lt;li&gt;When parsing the response body of an Integration that is expected to be XML, you should use the option to &amp;ldquo;Return the raw response body&amp;rdquo; and then use the function &lt;a href="https://docs.appian.com/suite/help/latest/fnc_scripting_torecord.html"&gt;fn!torecord&lt;/a&gt; to convert the XML string into the structure of a matching CDT.
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Note: &lt;/strong&gt;The namespace of the CDT must match the namespace of the XML. If you have the WSDL URL for the XML, you can automatically create CDTs which match the XML structure in your environment by adding it to the &lt;a href="https://docs.appian.com/suite/help/latest/Call_Web_Service_Smart_Service.html"&gt;Call Web Service Smart Service&lt;/a&gt;, and then saving and publishing the process model.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Unsupported Methods or Authentication Configurations&lt;/h3&gt;
&lt;p&gt;For SOAP-based Web Services that use unsupported or non-standard data structures follow the advice in the&amp;nbsp;&lt;a href="/success/w/guide/3239/advanced-soap-web-service-configuration"&gt;Advanced SOAP Web Service Configuration guide.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;For Web Services using unsupported authentication methods you may be able to utilize the &lt;a href="/b/appmarket/posts/advanced-call-web-service"&gt;Advanced Call Web Service&lt;/a&gt;&amp;nbsp;or&amp;nbsp;&lt;a href="/b/appmarket/posts/send-http-request-plug-in"&gt;Send HTTP Request&lt;/a&gt;&amp;nbsp;plug-ins. If these do not work for your use case you can always write &lt;a href="https://docs.appian.com/suite/help/latest/Custom_Function_Plug-ins.html"&gt;custom function plug-ins&lt;/a&gt; to perform the call.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="calling_appian_from_other_systems"&gt;Calling Appian from Other Systems&lt;/h2&gt;
&lt;p&gt;Other systems can use Web Services to call an Appian &lt;a href="https://docs.appian.com/suite/help/latest/Web_APIs.html"&gt;Web API&lt;/a&gt; to expose Appian expressions such as query data, modify data, or start a process.&amp;nbsp;See the &lt;a href="/success/w/guide/3238/appian-to-appian-web-api-integration/"&gt;Best Practices for configuring an Appian Web API&lt;/a&gt;&amp;nbsp;guide&amp;nbsp;for more information.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: integrations, Architecture&lt;/div&gt;
</description></item><item><title>Sizing Hardware for Appian</title><link>https://community.appian.com/success/w/article/3301/sizing-hardware-for-appian</link><pubDate>Mon, 30 Dec 2024 18:41:56 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:5bae185d-2a85-4bd7-9669-4b950a08d37c</guid><dc:creator>joel.larin</dc:creator><description>Current Revision posted to Article by joel.larin on 12/30/2024 6:41:56 PM&lt;br /&gt;

&lt;div&gt;
&lt;p&gt;Appian&amp;#39;s hardware sizing process provides a &lt;b&gt;general estimate&lt;/b&gt; of the hardware needed to run your Appian solution.&lt;/p&gt;
&lt;p&gt;This estimate is based on several high-level business parameters and is typically used prior to the start of a project. The sizing can be repeated if parameters change significantly due to new business requirements.&lt;/p&gt;
&lt;p&gt;The sizing recommendations apply to &lt;strong&gt;Production environments only&lt;/strong&gt;. For non-prod environments we recommend following &lt;a href="https://docs.appian.com/suite/help/latest/System_Requirements.html"&gt;System Requirements&lt;/a&gt;&amp;nbsp;for your Appian version.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style="background-color:#a5cdf2;"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;NOTE:&lt;/b&gt; Hardware sizing is not a replacement for proper performance and load testing.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="requesting_a_hardware_sizing"&gt;Requesting a Hardware Sizing&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Fill out the &lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-00-45/Appian-CS-Hardware-Sizing-Survey-_2800_1_2900_.docx"&gt;Appian CS Hardware Sizing Survey&lt;/a&gt;&amp;nbsp;to provide high level estimates of:
&lt;ul&gt;
&lt;li&gt;Expected user load&lt;/li&gt;
&lt;li&gt;Process volume&lt;/li&gt;
&lt;li&gt;Data and document size&lt;/li&gt;
&lt;li&gt;Environment configuration&lt;/li&gt;
&lt;li&gt;Service level expectations&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Email your Account Executive the completed sizing survey.&lt;/li&gt;
&lt;li&gt;Your Account Executive will follow up with you to validate the inputs and provide you with guidance.&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: environments, Platform&lt;/div&gt;
</description></item><item><title>Sizing Hardware for Appian</title><link>https://community.appian.com/success/w/article/3301/sizing-hardware-for-appian/revision/6</link><pubDate>Mon, 30 Dec 2024 18:40:53 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:5bae185d-2a85-4bd7-9669-4b950a08d37c</guid><dc:creator>joel.larin</dc:creator><description>Revision 6 posted to Article by joel.larin on 12/30/2024 6:40:53 PM&lt;br /&gt;
&lt;div&gt;
&lt;p&gt;Appian&amp;#39;s hardware sizing process provides a &lt;b&gt;general estimate&lt;/b&gt; of the hardware needed to run your Appian solution.&lt;/p&gt;
&lt;p&gt;This estimate is based on several high-level business parameters and is typically used prior to the start of a project. The sizing can be repeated if parameters change significantly due to new business requirements.&lt;/p&gt;
&lt;p&gt;The sizing recommendations apply to &lt;strong&gt;Production environments only&lt;/strong&gt;. For non-prod environments we recommend following &lt;a href="https://docs.appian.com/suite/help/latest/System_Requirements.html"&gt;System Requirements&lt;/a&gt;&amp;nbsp;for your Appian version.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style="background-color:#a5cdf2;"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;NOTE:&lt;/b&gt; Hardware sizing is not a replacement for proper performance and load testing.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="requesting_a_hardware_sizing"&gt;Requesting a Hardware Sizing&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Fill out the &lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-00-45/1781.appian_5F00_hardware_5F00_sizing_5F00_survey.docx"&gt;&lt;a href="https://community.appian.com/cfs-file/__key/communityserver-wikis-components-files/00-00-00-00-45/Appian-CS-Hardware-Sizing-Survey-_2800_1_2900_.docx"&gt;community.appian.com/.../Appian-CS-Hardware-Sizing-Survey-_2800_1_2900_.docx&lt;/a&gt;&lt;/a&gt;&amp;nbsp;to provide high level estimates of:
&lt;ul&gt;
&lt;li&gt;Expected user load&lt;/li&gt;
&lt;li&gt;Process volume&lt;/li&gt;
&lt;li&gt;Data and document size&lt;/li&gt;
&lt;li&gt;Environment configuration&lt;/li&gt;
&lt;li&gt;Service level expectations&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Email your Account Executive the completed sizing survey.&lt;/li&gt;
&lt;li&gt;Your Account Executive will follow up with you to validate the inputs and provide you with guidance.&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: environments, Platform&lt;/div&gt;
</description></item><item><title>Sizing Hardware for Appian</title><link>https://community.appian.com/success/w/article/3301/sizing-hardware-for-appian/revision/5</link><pubDate>Mon, 30 Dec 2024 18:40:28 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:5bae185d-2a85-4bd7-9669-4b950a08d37c</guid><dc:creator>joel.larin</dc:creator><description>Revision 5 posted to Article by joel.larin on 12/30/2024 6:40:28 PM&lt;br /&gt;
&lt;div&gt;
&lt;p&gt;Appian&amp;#39;s hardware sizing process provides a &lt;b&gt;general estimate&lt;/b&gt; of the hardware needed to run your Appian solution.&lt;/p&gt;
&lt;p&gt;This estimate is based on several high-level business parameters and is typically used prior to the start of a project. The sizing can be repeated if parameters change significantly due to new business requirements.&lt;/p&gt;
&lt;p&gt;The sizing recommendations apply to &lt;strong&gt;Production environments only&lt;/strong&gt;. For non-prod environments we recommend following &lt;a href="https://docs.appian.com/suite/help/latest/System_Requirements.html"&gt;System Requirements&lt;/a&gt;&amp;nbsp;for your Appian version.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style="background-color:#a5cdf2;"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;NOTE:&lt;/b&gt; Hardware sizing is not a replacement for proper performance and load testing.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="requesting_a_hardware_sizing"&gt;Requesting a Hardware Sizing&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Fill out the &lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-00-45/1781.appian_5F00_hardware_5F00_sizing_5F00_survey.docx"&gt;&lt;a href="https://community.appian.com/cfs-file/__key/communityserver-wikis-components-files/00-00-00-00-45/Appian-CS-Hardware-Sizing-Survey-_2800_1_2900_.docx"&gt;community.appian.com/.../Appian-CS-Hardware-Sizing-Survey-_2800_1_2900_.docx&lt;/a&gt;&lt;/a&gt;&amp;nbsp;to provide high level estimates of:
&lt;ul&gt;
&lt;li&gt;Expected user load&lt;/li&gt;
&lt;li&gt;Process volume&lt;/li&gt;
&lt;li&gt;Data and document size&lt;/li&gt;
&lt;li&gt;Environment configuration&lt;/li&gt;
&lt;li&gt;Service level expectations&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Email your Account Executive the completed sizing survey.&lt;/li&gt;
&lt;li&gt;Your Account Executive will follow up with you to validate the inputs and provide you with guidance.&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: environments, Platform&lt;/div&gt;
</description></item><item><title>Performance and Load Testing</title><link>https://community.appian.com/success/w/article/3216/performance-and-load-testing</link><pubDate>Mon, 30 Dec 2024 18:34:47 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:fee595c7-b5d5-492b-9d68-5c91486b7f62</guid><dc:creator>joel.larin</dc:creator><description>Current Revision posted to Article by joel.larin on 12/30/2024 6:34:47 PM&lt;br /&gt;
&lt;div&gt;
&lt;h3&gt;Why Performance Test?&lt;/h3&gt;
&lt;p&gt;Performance testing can be used to answer critical questions about the application, such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Will pages load fast enough to satisfy end users?&lt;/li&gt;
&lt;li&gt;Can the application store all of the data that will be collected?&lt;/li&gt;
&lt;li&gt;Will performance be consistent over time?&lt;/li&gt;
&lt;li&gt;Which areas of my application should I improve?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Answering these types of questions reduces risk, informs current business decisions and assists future planning. Performance testing is needed to determine if the application will perform within specification given a particular situation. It also validates if the resources provided to the application are sufficient for the given volume and data load. The &amp;quot;right&amp;quot; amount of performance testing can only be determined by the project sponsor and stakeholders after considering the importance or visibility of the application, potential revenue loss due to poor performance, and other risk factors.Appian designers should ensure that end user interfaces perform within the specification before they promote the feature to higher environments. If interfaces do not perform adequately during unit testing, they will not improve during performance testing. There are several ways that interface performance can be captured and various troubleshooting techniques. Please see &lt;a href="/w/guide/3317/interface-performance-and-debugging"&gt;Interface Performance and Debugging&lt;/a&gt; for more details.&lt;/p&gt;
&lt;h3&gt;Process Performance Baseline&lt;/h3&gt;
&lt;p&gt;When designing process models, designers need to pay attention to the response times between user tasks to ensure appropriate user experience. Similarly to interfaces, processes need to perform appropriately during unit tests, before they can be accepted for performance testing. Performance of individual activities is recorded in logs, and designers can utilize the &lt;a href="https://docs.appian.com/suite/help/latest/health-check.html"&gt;Appian Health Check&lt;/a&gt; to find out if there were any expressions or smart services that could impact end users&amp;rsquo; experience. Health Check also provides an HTTP Response Time chart that provides an aggregate view of performance within the environment. These tools should be utilized after every round of functional testing to monitor emerging performance risks. Absence of Health Check should not be a blocker to analyze performance test results. You can still analyze &lt;a href="https://docs.appian.com/suite/help/latest/Logging.html"&gt;Appian Logs&lt;/a&gt; in their tool of choice (Splunk, SolarWinds, Grafana, New Relic, Excel).&amp;nbsp; Additionally, designers can use network monitoring tools built into their browser, to record the exact performance of requests between user clicks during their unit testing.&lt;/p&gt;
&lt;h3&gt;Performance Testing&lt;/h3&gt;
&lt;p&gt;Performance testing should be done once the application is in a stable build with the majority of the functionality built out. The app does not have to be complete to get started, but needs to pass the QA/QC cycle, so that performance results are not skewed by application errors. Additionally, performance testing needs to be executed for major releases of the application. Over time, the test will grow to include additional applications and functionality as your platform use evolves.&lt;/p&gt;
&lt;p&gt;There are two load factors to consider during performance testing:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Data Load - how much data is in the system during performance testing? This is a frequently overlooked factor but applications need to be tested with a pre-loaded set of data in order to ascertain how it will perform in a realistic situation. Performance testing is often executed with blank databases, which will not be the case 3, 6, 12 months or even at application go-live. Results from such testing will be inaccurate.&amp;nbsp; Please read the &lt;a href="/w/guide/3324/best-practices-database-volume-testing"&gt;Database Volume Testing&lt;/a&gt; play for tips on how to load data into your environment.&lt;/li&gt;
&lt;li&gt;Load Volume - how many users are in the system creating transactions? When designing your test, you need to find out how many business processes are executed in a given timeframe by how many users. You also need to make sure that all other significant activity in the system is tested, to set up a realistic transaction volume scenario. Tests need to be designed to emulate real user activity, with appropriate pauses between interactions.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;More details on methodology, complete with test design templates and helpful tips, can be found under &lt;a href="/w/guide/3215/performance-testing-methodology#configure_the_performance_test_environment"&gt;Performance Testing Methodology&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Performance testing should have its own project plan and it should be considered its own agile project. A backlog of performance improvement fixes will start to build with each nightly performance test run. The business should prioritize the improvements based on impact and severity. Promote performance fixes on a nightly basis and rerun the performance test to determine the impact of each change.&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;Tools&lt;/h3&gt;
&lt;p&gt;You can execute performance tests using the &lt;a href="/b/appmarket/posts/appian-locust"&gt;Appian Locust&lt;/a&gt; tool, which uses the open source &lt;a href="https://locust.io"&gt;Locust&lt;/a&gt; load testing framework. It provides an easy, programmatic way to develop and execute load and performance tests for Appian. Alternatively, you can use standard web application performance testing tools. These include JMeter and LoadRunner.&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: Delivery, testing, Platform&lt;/div&gt;
</description></item></channel></rss>